跳到内容
AI Coding Guideline
Esc
导航打开⌘J预览
本页内容

为什么第一次调用更贵

详解缓存写入成本的构成、计费规则、回本时机与无效成本场景,帮你全面清晰掌握AI编程缓存的核心价格逻辑与实用避坑技巧

上一篇的价格表里有一个反直觉的数字:缓存写入是 1.25×(1 小时 TTL 更是 2×)。也就是说,开启缓存后的第一次调用,不但没省钱,反而比完全不用缓存更贵 25%。这一篇解释这笔“入场费”从哪来、什么时候回本、什么情况下会白花。

普通调用

先看没有缓存时服务端在做什么。模型处理输入的过程,本质是为每个 token 计算注意力所需的内部状态(K/V 张量)。普通调用里,这些状态用完即弃:

  • 你付的 1× 输入价,买的是“算一遍”的 GPU 算力;
  • 请求结束,几十 GB 显存被释放给下一个用户;
  • 下一轮同样的前缀进来,从零再算一遍,再付一遍 1×。

缓存写入,还要存下来

标了 cache_control 之后,服务端做的事变成了计算 + 持久化两件:

多出来的 0.25×,买的是“存下来”这件事的真实成本:

  • KV 状态非常大。每个 token 的 K/V 张量在几十到上百 KB 量级(取决于模型结构),比 token 文本本身大几个数量级——30K token 的前缀,缓存下来是 GB 级的数据;
  • 要占用昂贵的存储。这些数据必须放在能被推理集群快速加载的地方,离 GPU 越近越贵;
  • 要维护生命周期。TTL 计时、每次命中刷新、过期回收、按账号和模型隔离,都是持续开销。

这也解释了为什么 1 小时 TTL 的写入价是 2×,变的只是“存多久”——存 12 倍的时长,存储费自然更高。

一次请求进来,服务端的完整决策路径是:

注意“未命中”的三种来源:首次调用只是其中之一。前缀变了一个字节、或 TTL 过期,都会让你再付一次 1.25×——这是下一篇的主题。

什么时候回本

把写入费理解为一笔投资 0.25×,换后续每轮 0.9× 的折扣。算一下回本点:

场景 两轮总费用(以 1× 为单位)
不用缓存,跑 2 轮 1 + 1 = 2.0
用缓存,跑 2 轮 1.25 + 0.1 = 1.35

只要同一前缀被复用一次,就已经回本。轮数越多差距越大——沿用上一篇的例子(30K token 前缀),累计费用曲线是这样的:

上面那条陡峭的线是无缓存(每轮全价 3 万 token),下面平缓的线是有缓存(第一轮 3.75 万,之后每轮只加 0.3 万)。第一轮有缓存反而更高——这正是“第一次调用更贵”的直观图像;从第二轮起两条线交叉,之后差距一路拉大,50 轮时约为 12% 对 100%。

什么情况下写入费是白花的

这笔投资也有亏本的场景,都值得提前识别:

  • 一次性请求、不会有第二轮(比如批量离线处理里每条数据的前缀都不同),标 cache_control 纯属多付 25%;
  • 前缀不稳定,结果是每一轮都在付 1.25× 的写入费,却从来不命中——比不开缓存还贵 25%,这是最糟的状态。验证方法 usagecache_read_input_tokens 是否长期为 0 而 cache_creation_input_tokens 每轮都很大;
  • 前缀太短(多数模型 1024 token)不会真的写入,不亏钱,但也没意义。

最后更新于 2026年8月31日

这个页面有帮助吗?