有人说 DeepSeek Flash「相当于免费」,我去看了一眼它的API定价。

输入词元(token)的缓存命中价是 0.0028 美元/百万,缓存未命中价是 0.14 美元/百万,输出是 0.28 美元/百万。命中和未命中的输入价格相差 50 倍。

当时我对缓存命中并不是很理解,稍微问了一下AI之后, 就和AI得出了一个结论:用词越一致,缓存命中率越高,也就越省钱。

这个解释听起来很顺。我甚至已经把它提炼成了一句话:

用词精准就是在省钱。

但继续核对缓存规则后,我发现自己把两件事混在了一起。

这 50 倍差价,和你有没有反复使用同一个词无关。

真正影响缓存的是:每次发给 AI 的内容,前面那一大段有没有变。

01-prefix-stable

假设第一轮对话是:

用户:根据这份316 不锈钢保温杯资料,写一个商品标题和五条卖点。
AI:……

第二轮请求通常会把第一轮的用户问题、AI 回答和新的问题一起发给模型:

用户:根据这份316 不锈钢保温杯资料,写一个商品标题和五条卖点。
AI:……
用户:再写三条适合商品详情页的购买理由。

假设商品资料和上一轮对话一共有 10000 个 token,这次新问题有 50 个 token。

如果前面的内容命中缓存,输入成本是:

  • 前面 10000 个 token:10000 ÷ 1000000 × 0.0028 美元 = 0.000028 美元;
  • 新增 50 个 token:50 ÷ 1000000 × 0.14 美元 = 0.000007 美元;
  • 这次输入一共是 0.000035 美元,不含 AI 的输出费用。

如果前面的内容没有命中缓存,10050 个 token 都按未命中价计算:

10050 ÷ 1000000 × 0.14 美元 = 0.001407 美元

对前面那 10000 个重复 token 来说,命中和未命中的价格正好相差 50 倍。把新增的 50 个 token 也算进去,这一次的输入成本大约降到了未命中时的四十分之一。

但即使最后一句不再说「保温杯」,而是改成「这款商品」,前面的 10000 个 token 仍然没有变,照样可以命中缓存。变化的只是最后新增的几十个 token,它们本来就要按未命中价计算。

官方给出的例子也是:第一次发送 A+B,第二次发送 A+B+C,第二次可以复用前面的 A+B。至于新增的 C 用了什么词,不影响前面 A+B 的缓存。

反过来,如果第二轮把最前面的商品资料改了,比如把「316 不锈钢」改成「304 不锈钢」,后面的标题、卖点和对话即使一个字没动,也无法完整复用原来的缓存。因为变化发生在前面,缓存前缀从这里就断了。

02-prefix-break

所以,想让缓存真正省钱,最有效的做法不是强迫自己重复同一个词,而是:

  • 把长期不变的内容放在前面;
  • 把每次变化的内容放在后面;
  • 保持系统提示词、工具定义和参考材料的顺序稳定;
  • 不要无意义地重写已经进入上下文的历史内容。

回头看,我最初的结论不能说完全错,但论证它的理由错了。

「用词精准」确实能省钱,只是原理不同。

说得更短,输入和输出的 token 就更少;概念前后一致,AI 误解和返工也会更少。它节省的是上下文长度和沟通轮次,不是靠同义词触发缓存。

这次纠错最后留下了两个结论:

表达精准,减少浪费。

前缀稳定,提高复用。

我原本想从一张定价表里提炼一句漂亮的话。最后发现,真正值得保留的不是那句漂亮话,而是两种机制之间不能被省略的区别。

先把机制理解对,再谈洞察。否则,越简洁的结论,可能只是越容易传播的错误。