Skip to content

Sonnet 5.5 缓存读取按 $0.10 计:/cost 和预算数字变了 ​

如果你最近用 Sonnet 5.5 跑长会话,升级到 CLI 2.1.296 之后可能会发现:/cost 里的数字比以前「便宜」了一截。不是你的用法变了,而是 Claude Code 本地的计价口径变了。

2.1.296 更新了 /cost、状态行、--max-budget-usd 以及 SDK 的费用数字:Sonnet 5.5 的缓存读取(cache reads)按每百万 token $0.10 计,此前按 $0.20。

这次改的是什么 ​

Claude Code 里看到的费用,大多是客户端根据 token 用量和单价在本地算出来的估算值。这次调整的是其中 Sonnet 5.5 缓存读取这一项的单价,涉及四处:

位置用途
/cost查看当前会话累计花费
状态行如果你在自定义状态栏里显示费用
--max-budget-usd无人值守 / 脚本运行时的花费上限
SDK 费用字段用 Agent SDK 自己记账、做报表时读到的数字

输入、输出 token 的单价没有变化(Sonnet 5.5 仍是每百万 token 输入 $2、输出 $10),变的只是缓存读取这一项。

需要说明的是:最终扣费以 Anthropic 账单 / 控制台为准。这次更新的意义是让 Claude Code 显示和记账的数字与 Sonnet 5.5 的缓存读取价格对齐,避免本地估算偏高。

为什么对长会话影响明显 ​

Claude Code 的每一轮请求,都会把系统提示、工具定义、CLAUDE.md 和之前的对话再发一遍。好在这部分大多能命中 prompt cache,按缓存读取计价,远比普通输入便宜。

这也意味着:会话越长、轮次越多,缓存读取在总 token 里的占比越高。一个跑了几个小时的重构会话,缓存读取动辄几千万 token,是最大头。

粗算一下:某个会话累计缓存读取 5000 万 token——

  • 旧口径:50 × $0.20 = $10
  • 新口径:50 × $0.10 = $5

输入、输出部分不变,但总数会明显下降。短会话、缓存命中少的场景,变化就不大。

对 --max-budget-usd 的影响 ​

--max-budget-usd 是按本地估算的花费来判断是否叠到上限的。缓存读取单价减半后,同样的预算能跑更多轮,原本会提前停下的长任务,现在可能能跑完。

反过来,如果你把这个上限当成严格的成本闸门,可以考虑:

  • 维持原来的数值,接受能多跑一些;
  • 或按自己的实际历史账单重新校准一个数。

用 SDK 做费用报表的团队,升级前后的数字口径不同,做环比时记得标注版本分界。

和 Haiku 5.5 定价是两回事 ​

前几天的 Haiku 5.5 成为默认 Haiku 模型 讲的是一个新模型上线及其定价;本文讲的是已有的 Sonnet 5.5 在 Claude Code 里缓存读取的计价口径调整。两者都是 5.5 代,但:

  • Haiku 5.5:换了默认模型,输入 / 输出单价整体更低,适合轻量任务;
  • Sonnet 5.5:模型没换,只是缓存读取按 $0.10 计,长会话显示的花费更低。

想了解 Sonnet 5.5 本身的能力和定位,可以看 Sonnet 5.5 介绍。

小结 ​

  • 2.1.296 起,/cost、状态行、--max-budget-usd 和 SDK 把 Sonnet 5.5 缓存读取按 $0.10/百万 token 计(原 $0.20)。
  • 输入、输出单价不变;长会话、缓存命中多的场景,显示花费下降最明显。
  • 依赖预算上限或 SDK 报表的,升级后留意口径变化。

升级后用 claude --version 确认 ≥ 2.1.296,再跑一次 /cost 看看新数字。

Claude-cn.org,专注于 Claude Code 中文教程