本文为「术语解构」系列。

一、账单上差了 50 倍的两行数字

打开 DeepSeek 的官方定价页,V4-Flash 这个模型的输入价格写了两行:

  • 输入(缓存命中):0.02 元 / 百万 tokens
  • 输入(缓存未命中):1 元 / 百万 tokens

同样是把 100 万个 token 喂给同一个模型,价格差了 50 倍。V4-Pro 更夸张:命中 0.025 元,未命中 3 元,差 120 倍

这不是 DeepSeek 独有的玩法。Anthropic 的 Claude,缓存读取按标准输入价的 10% 计费——Sonnet 4.6 的输入从 3 美元/百万降到 0.3 美元/百万。OpenAI 的 GPT-5.5,输入 5 美元/百万,缓存输入 0.5 美元/百万,同样是 1/10

也就是说,2026 年主流大模型 API 的账单上,“你输入了多少 token”已经不是决定性变量了。决定性变量是:这些 token 里,有多少是模型“见过”的。

这个“见过”的判定机制,就是今天要拆的术语——前缀缓存(Prefix Caching),以及它背后的计费逻辑。

二、模型凭什么给你打一折:前缀缓存的极简原理

大模型处理你的提示词,不是“读一遍文字”这么轻松。每个 token 进来,模型都要为它计算一大堆注意力中间结果(专业名词叫 KV Cache,键值缓存),存在显存里,供后续生成使用。提示词越长,这一步烧的算力越多——这也是为什么长提示词的首字响应总是慢半拍。

前缀缓存的思路很直接:如果这次请求的开头部分,和之前某次请求的开头一模一样,那这部分的中间结果就不用重算了,直接复用上次存下来的。

打个比方。我整理邮票贴片时,前 30 页已经排定、贴好、写完说明的部分,不会因为要加第 31 页就全部拆掉重排——只有新的那一页需要动手。模型也一样:相同的前缀直接翻到“上次整理好的位置”,只算新增的后缀。

但这里有一条铁律,也是整篇文章最重要的一句话:

前缀必须从第 0 个 token 开始一模一样。差一个字,从那个字开始往后全部重算。

前缀缓存如何判断缓存命中
前缀缓存如何判断缓存命中

Anthropic 官方文档的表述是“缓存命中要求提示片段 100% 精确匹配”。DeepSeek 的机制同样是从第一个 token 开始逐段比对前缀。没有“大致相似”,没有“意思差不多”,只有逐字节一致。

至于 KV Cache 在显存里到底长什么样、为什么它是长上下文的最大瓶颈、DeepSeek 靠什么把它压缩到别家的十分之一——这些留给下一篇《KV Cache》专门拆,今天我们只盯住账单。

三、三家计费模式对比:自动派、手动派,和正在换阵营的 OpenAI

三家厂商对缓存的收费设计完全不同,背后是三种产品哲学。先上核对过的官方数据(2026 年 7 月 12 日):

厂商 / 模型标准输入缓存写入缓存读取读取折扣触发方式
DeepSeek V4-Flash1 元/百万免费0.02 元/百万1/50全自动
DeepSeek V4-Pro3 元/百万免费0.025 元/百万1/120全自动
Claude Sonnet 4.6$3/百万$3.75(5 分钟)/ $6(1 小时)$0.30/百万1/10手动打断点
Claude Opus 4.8$5/百万$6.25 / $10$0.50/百万1/10手动打断点
GPT-5.5$5/百万免费$0.50/百万1/10自动(≥1024 token)
GPT-5.6-sol$5/百万$6.25$0.50/百万1/10自动

(注:Claude 现已同时支持自动缓存模式;GPT-5.6 为新一代命名,见下文。)

大模型 API 的三种缓存计费模式
大模型 API 的三种缓存计费模式

自动派(DeepSeek、OpenAI 旧款):什么都不用改。系统自动识别请求之间的公共前缀,命中了就按折扣价计费,写入不收钱。DeepSeek 甚至把缓存落到了硬盘上,早上建立的上下文,隔了几个小时还能命中。代价是“尽力而为”——命中与否你无法强制。

手动派(Anthropic):你要在请求里显式打 cache_control 标记(俗称缓存断点),告诉系统“缓存到这里为止”。写入要加价:5 分钟有效期收 1.25 倍,1 小时有效期收 2 倍。看起来吃亏,算一笔账就知道不亏:多付的写入费是 0.25 倍,而每次命中省 0.9 倍——只要缓存被读一次,就已经回本。5 分钟有效期还有个隐藏福利:每次命中会免费续期,高频调用场景下缓存实际上永不过期。

正在换阵营的 OpenAI:这是我核对官方定价页时发现的一个新细节。GPT-5.5 和 5.4 的定价表里,“缓存写入”一列是空的(不收费);但 2026 年 7 月刚全面开放的 GPT-5.6 系列(sol / terra / luna 三档),定价表里出现了独立的缓存写入列,费率正好是输入价的 1.25 倍——和 Anthropic 一模一样。自动派的代表开始向手动派的计费结构靠拢,这说明“写入收费 + 深度读取折扣”可能会成为行业标准答案。

那厂商为什么敢打一折甚至打到 1/120?因为缓存命中的部分,真的几乎不花钱。命中时最烧算力的预填充(prefill)环节被整段跳过,数据从缓存直接加载——边际成本本来就比正常推理低一个数量级。DeepSeek 把这个环节的价格打到极致,本质上是把自家架构上的成本优势(KV Cache 压缩到传统方案的 10%,下篇细讲)直接让渡给开发者,同时精准打击没有同类压缩能力的对手:你跟,可能亏钱;不跟,丢客户。

换个角度看,这个巨大的价差还是厂商在用价格杠杆训练开发者:把提示词写成“缓存友好”的结构,你省钱,厂商省算力,双赢。

四、三个最容易踩的坑:标题这句话其实不严谨

“同样一段话,第二次问只收 1/10”——这是大多数人对缓存计费的直觉理解,但严格来说有三处不准确。搞懂这三处,你就超过了 90% 只看过定价表的人。

坑一:便宜的不是“同样的问题”,是“同样的前缀”。

你今天问“帮我总结这份财报”,明天再问一模一样的“帮我总结这份财报”,未必命中缓存——如果你的系统提示词里有任何变化,或者对话历史不同,前缀就对不上。反过来,两次问题完全不同,但系统提示词、工具定义、知识库这些开头部分一致,照样命中。缓存看的是开头,不是问题本身。

最经典的翻车姿势:有人在系统提示词开头塞了一行“当前时间:2026-07-12 14:23:07”。这个前缀每秒都在变,缓存命中率直接归零——每次请求都付全价(Anthropic 用户还要额外付 1.25 倍的写入费),写进去的缓存永远没机会被读出来。Anthropic 官方文档专门把这个案例写进了“常见错误”一节。

坑二:缓存有时效。

Anthropic 默认 5 分钟,可加钱升到 1 小时;OpenAI 不做保证;DeepSeek 因为落了硬盘,有效期最长,但官方同样注明“尽力而为,不做保证”。如果你的调用频率是“每 7 分钟一次”,撞上 5 分钟有效期,就会出现最惨的情况:每次都付写入费,每次都过期,一次读取都没有。

坑三:短提示词根本不缓存。

OpenAI 要求前缀至少 1024 token 才启用自动缓存;Anthropic 各模型的最低门槛从 512 到 4096 token 不等(Sonnet 4.6 是 1024)。一句“你是一个乐于助人的助手”加一个短问题,享受不到任何折扣。这个门槛设计也合理:太短的前缀,缓存管理本身的开销比省下的算力还贵。

五、实操三步:把命中率从 30% 做到 95% 以上

原理和坑都清楚了,落地就三步。

第一步:重排提示词——稳的在前,变的在后。

提高AI缓存命中率的提示词排列方法
提高AI缓存命中率的提示词排列方法

按变化频率排序:工具定义(几乎不变)→ 系统提示词(很少变)→ 知识库/few-shot 例子(偶尔变)→ 对话历史(每轮追加但不修改)→ 用户本轮输入(每次都变)。所有会变的东西,包括时间戳、请求 ID、随机数,一律移到最后。光这一步,自动派(DeepSeek/OpenAI)就开始命中了,一行代码不用改。

第二步:手动派打好断点。

用 Claude 的话,把 cache_control 打在“最后一个跨请求不变的块”上,而不是最后一个块上。Anthropic 允许一个请求最多 4 个断点,可以把“工具定义”和“知识库”分开缓存——工具几个月不动,知识库每天更新,各缓存各的。

第三步:盯住命中率字段。

三家的 API 响应里都带缓存统计:DeepSeek 是 prompt_cache_hit_tokensprompt_cache_miss_tokens,Anthropic 是 cache_read_input_tokenscache_creation_input_tokens,OpenAI 是 cached_tokens。把“缓存读取 / 总输入”做成监控指标,长期低于 50% 就回头查前两步。

做到位是什么效果?先看社区里的极端案例:一位开发者用 DeepSeek API 跑 Web 开发,单日消耗约 8900 万 tokens,缓存命中率 98.07%,总费用 4.39 元人民币。开源项目 DeepSeek-Reasonix 把整个 Agent 循环围绕缓存稳定性重新设计,单日 4.35 亿输入 tokens,命中率 99.82%,实际花费 1.38 美元——同样的量不走缓存要 61 美元。

再贴一份我自己的账单。我有一个每天定时运行的 A 股分析 Agent:AKShare 拉行情数据,DeepSeek V4-Flash 做分析,结果推送到飞书。它的提示词结构天然缓存友好——固定的角色设定和分析规则在前面,每次变化的行情数据在最后。

过去 30 天(6 月 13 日至 7 月 12 日),DeepSeek 后台的数字是:700 次 API 请求,33,676,238 个 tokens,总消费 5.73 元。

DeepSeek 平台用量后台截图
DeepSeek 平台用量后台截图

算一笔反事实的账:这 3367 万 tokens,哪怕全部按最便宜的“缓存未命中输入”1 元/百万计价——连一个 2 元/百万的输出 token 都不算——也要 33.7 元。实际账单 5.73 元,差了近 6 倍。这个差额只有一个来源:大部分输入前缀命中了 0.02 元/百万的缓存价。

单日数据看得更清楚。用量最大的一天是 6 月 14 日,后台的逐项拆解是:

  • 输入(命中缓存):16,670,976 tokens
  • 输入(未命中缓存):449,817 tokens
  • 输出:108,912 tokens

输入侧命中率 97.4%。按官方定价核算当日成本:命中部分 0.33 元,未命中部分 0.45 元,输出 0.22 元,合计约 1 元——和消费曲线上那根 1 元的峰精确吻合。如果这 1712 万输入 tokens 全按未命中计价,当天要花 17.3 元:同一天,同样的调用,缓存把账单压缩了 17 倍。

DeepSeek 后台 6 月 14 日 tokens 拆解截图
DeepSeek 后台 6 月 14 日 tokens 拆解截图

这份账单里还有个反直觉的细节:当天最贵的一项,不是那 1667 万个命中 token(3 毛 3),而是区区 45 万个未命中 token(4 毛 5)。决定账单的不是你喂了多少 token,而是有多少 token 没命中。

我没有为这个结果做过任何专门优化,只是恰好把“稳的放前面、变的放后面”这个结构做对了。换句话说:缓存折扣不是需要努力争取的优惠,而是结构做错了才会错过的默认待遇。

顺带一提,缓存不只省钱,还救延迟:命中时预填充被跳过,DeepSeek 给过一组数据,128K 的长提示词高度命中缓存时,首 token 延迟从 13 秒压到 500 毫秒。对 Agent 类应用来说,这个收益不比省钱小。

写在最后

回到标题的问题:同样一段话,第二次问为什么只收 1/10 的钱?

因为模型第一次处理时算出的中间结果被存了下来,第二次直接复用,最贵的计算环节整段跳过——厂商把省下的算力,以 1/10(DeepSeek 甚至 1/50、1/120)的价格差返还给你。而能不能拿到这个折扣,只取决于一件事:你的前缀,从第 0 个 token 开始,是否一模一样。

那么下一个问题来了:这份被反复复用的“中间结果”到底是什么?它为什么大到能吃掉半张显卡的显存?DeepSeek 又是怎么把它压缩到传统方案 10% 的?

这就是下一篇要拆的术语:KV Cache


本文价格数据核对自 DeepSeek、Anthropic、OpenAI 官方定价页(2026 年 7 月 12 日)**