Claude Sonnet 5 的新 tokenizer:每个 prompt 多出 41% 的 token
claude-sonnet-5 已经在 Synthorai gateway 上线,现在很便宜:每百万 input / output token 收费 $2 / $10,只有 Opus 4.8 的 1/2.5,也比 Sonnet 4.6 低。趁便宜赶紧用。这是到 2026 年 8 月 31 日为止的促销价;9 月 1 日恢复到 $3 / $15,跟 Sonnet 4.6 的标价一样。
如果你在 Claude 系列上做缓存,缓存和 TTL 的约定可以原样搬过来。真正要多留个心眼的是成本,原因在于 Sonnet 5 数 token 的方式。它用了新的 tokenizer,同样的英文文本切出来的 input token 比 Sonnet 4.6 多约 41%,而你付费和被限流依据的就是 token 数。标价只是账单的一半。
在改代码或者讨论质量之前,先看看这个 token 变化会牵动哪些方面:
- 每个 prompt 的成本。 按标准价算,同一段英文 prompt 比在 Sonnet 4.6 上贵约 41%,因为同样的文本以更多 token、按相同的单价计费。
- 所有基于 token 的估算。 按 4.6 定的单次调用预算,或者用本地 tokenizer 数出来的值,在 Sonnet 5 上会低估约 40%。按实时
usage计量,别靠本地估。 - 上下文窗口余量。 同一份文档要多吃掉约 41% 的窗口,所以长上下文和 RAG 调用每次能塞进去的真实文本更少。
- 速率限制。 同样的工作负载下,tokens-per-minute 上限会快约 41% 用光,吞吐随之下降。
- 缓存命中门槛(一点小好处)。 1,024 token 的最低门槛更容易达到,在 4.6 上刚好卡在门槛以下的前缀,到 Sonnet 5 上可能就能缓存了。
后面会给每一项配上实测数字:价格、缓存经济性,以及 token 数的变化。
价格、缓存、TTL 和 token 数均于 2026-07-01 针对
https://synthorai.io/(Anthropic 原生/v1/messages)实测。单个 token 的价格由实时调用的usage成本推算;促销价 / 标准价以及 8 月 31 日的到期时间来自 Anthropic 的公告。引用前请先用你自己的 prompt 复现一遍。
可用性
import os
from anthropic import Anthropic
anth = Anthropic(
api_key=os.environ["SYNTHORAI_KEY"],
base_url="https://synthorai.io/", # SDK appends /v1/messages
)
msg = anth.messages.create(
model="claude-sonnet-5", # the only line that changes
max_tokens=512,
system=[
{"type": "text", "text": SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"}},
],
messages=[{"role": "user", "content": question}],
)
print(msg.usage) # cache_creation_input_tokens, cache_read_input_tokens, cost
只换 model 字段,缓存链路上的其他部分都不用动。cache_control 背后的机制见缓存教程;缓存为什么存在、架构是怎样的,见系列第一篇。
价格:现在便宜,9 月起回到 Sonnet 4.6 的费率
网关上的按 token 计费,取自普通(未缓存)调用的 usage 成本:
| 模型 | 输入($/M) | 输出($/M) |
|---|---|---|
claude-sonnet-5(促销价,截至 8 月 31 日) | $2.00 | $10.00 |
claude-sonnet-5(标准价,9 月 1 日起) | $3.00 | $15.00 |
claude-sonnet-4-6 | $3.00 | $15.00 |
claude-opus-4-8 | $5.00 | $25.00 |
促销价是实打实的折扣,而相对于 Opus 4.8,它是这套账里长期成立的部分:即便按 $3 / $15 的标准价,Sonnet 5 也比 Opus 便宜,而且两者共用一个 tokenizer(下文细说),所以两种价格下的比较都很干净。
相对于 Sonnet 4.6,折扣是临时的。9 月 1 日两者标价完全一致,所以任何基于今天数字、认为「Sonnet 5 比 4.6 便宜」的方案都会随促销一起过期。而且下一节会说明,标价相同的情况下,处理同样的文本,Sonnet 5 反而更贵。
我们不发布没跑过的能力基准。Sonnet 5 的质量是否值得它相比 4.6 的成本,得由你自己的 eval 说了算,不是我们。
缓存与 TTL:直接替换即可
缓存的约定和 Claude 系列其余型号完全一样。我们跑了一组冷写 / 热读序列,用一个固定的 2.2K token 前缀,每次调用变动 user message,这样响应级缓存就不会污染结果。按当前促销价计算,每次热调用的成本:
| 模型 | 冷调用(缓存写) | 热调用(缓存读) | 冷 → 热 |
|---|---|---|---|
claude-sonnet-5(促销价) | $0.0069 | $0.0017 | 4.0× |
claude-sonnet-4-6 | $0.0079 | $0.0024 | 3.3× |
claude-opus-4-8 | $0.0172 | $0.0043 | 4.0× |
各项不变量的表现和整个 Opus 系列一致:
- 读折扣约 90%。 一次热缓存读的成本大约是输入价格的 10%,与 Anthropic 文档中「最高 90%」的缓存读节省相符。命中一次即可回本。
- 1 小时 TTL 行为相同。 Sonnet 5 接受
cache_control: {"type": "ephemeral", "ttl": "1h"},usage对象也和以前一样拆分桶:cache_creation.ephemeral_5m_input_tokens与ephemeral_1h_input_tokens。1 小时写的溢价约为无缓存的 2×(而 5 分钟写约为 1.25×);无论 TTL 如何,读始终约 10%。
关于这张表有一点要注意:这些热调用的金额是按促销价算的。9 月 1 日起,把 Sonnet 5 的数字乘以 1.5×(输入 $2 → $3,输出 $10 → $15)。今天成本 $0.0017 的一次 Sonnet 5 热调用,到 9 月约为 $0.0026,仍低于 Opus 4.8 的 $0.0043,但不再低于 Sonnet 4.6。
token 计数的陷阱
九月的调价之所以会痛两次,原因就在这里:同一段系统文本,在 Sonnet 5 上报出的输入 token 数比 Sonnet 4.6 多出约 41%。
| 模型 | 输入 token(同一段文本) | 标准价下的输入成本 |
|---|---|---|
claude-sonnet-4-6 | 1,594 | $0.0048 |
claude-sonnet-5 | 2,245 | $0.0067 |
claude-opus-4-8 | 2,245 | $0.0112 |
同一段英文 prompt,Sonnet 5 分词后是 2,245 个 token,跟 Opus 4.8 的计数完全一样,也远高于 Sonnet 4.6 的 1,594。Sonnet 5 用的是 Opus 系列从 4.7 开始采用的新版 tokenizer。
把价格和 token 数放在一起看,情况就很清楚了:
- 在优惠期内,token 数上涨 41%,但费率下降了 33%($2 对 $3),两者抵消。所以同一个未命中缓存的 prompt,花费跟在 4.6 上差不多,而热请求因为输出打了折,还更便宜。
- 从 9 月 1 日起,费率和 4.6 持平了,但 token 数没有回落。同一段英文 prompt,在 Sonnet 5 上比 Sonnet 4.6 贵约 41%(这个前缀是 $0.0067 对 $0.0048),因为在相同的单 token 价格下,同样的文本被算成了更多 token。
跟 Opus 4.8 比就没有这个陷阱:tokenizer 相同(2,245 = 2,245),所以 Sonnet 5 无论是优惠价(2.5 倍)还是标准价(1.67 倍)都干净利落地更便宜。
所以要按九月的账单来做预算,别按七月的:单 token 费率会在 9 月 1 日涨 1.5 倍,而更高的 token 数今天就已经生效了。另外,从实时响应里读 cache_creation_input_tokens / cache_read_input_tokens,别用可能还停留在旧词表的本地 tokenizer。
Sonnet 5 对比 Opus 4.8:长期站得住脚的胜出
这个对比才是这次发布真正长期改变的东西。Sonnet 5 和 Opus 4.8 共用一个 tokenizer,所以对任何 prompt,两者的 token 数都完全一样,成本差异纯粹来自费率:优惠价便宜 2.5 倍,标准价便宜 1.67 倍——冷请求、热请求、输入、输出全都如此。一次命中缓存的热请求,今天是 $0.0017 对 $0.0043;即便到了九月,也大约是 $0.0026 对 $0.0043。
对于前缀每轮都重复的高频缓存 agent 循环,这个差距会不断累积。决策还是老一套:跑自己的 eval,如果 Sonnet 5 过了你的质量标准,那网关这边的账算下来长期都偏向它,不只是撑到八月。如果没过,改一个 model 字段就能切回 Opus 4.8,缓存代码一行都不用动。
迁移清单
- ✅ 缓存代码原样通用。
cache_control标记、断点数量、ttl: "1h"、usage字段名,都和 Opus 系列完全一致。 - ✅ TTL 选择通用。 实时/会话类负载用 5m,突发型或带停顿的 agent 任务用 1h。
- ✅ 折扣经济性通用。 读约 90%,写约 1.25 倍(5m),写约 2 倍(1h)。
- ⚠️ 在预算表上标注 9 月 1 日。 优惠价 8 月 31 日结束,Sonnet 5 涨到 $3 / $15。在这一天到来之前就把 1.5 倍的涨幅算进模型里。
- ⚠️ 重新测量 token 数(从 4.6 或更早版本迁移时)。 同样的文本,Sonnet 5 上多出约 41% 的 token。在标准价下,这会让同一个 prompt 比 4.6 更贵,而不是更便宜。
- ⚠️ 相信实时的
usage对象。 从响应里读*_input_tokens和cost,别用旧版本缓存下来的估算值。
结论
Sonnet 5 短期内很划算,但有时间限制。跟 Opus 4.8 比,它长期便宜 1.67 到 2.5 倍,缓存路径可以直接照搬,所以只要 Opus 工作负载不是对质量特别敏感,第一个该拿来评估的模型就是它。跟 Sonnet 4.6 比,优势只有那点介绍期折扣:9 月 1 日之后价格和 4.6 持平,而新 tokenizer 意味着同样的 prompt 实际上更贵。折扣可以拿,但预算要按 9 月的价格来算,向财务承诺之前先用线上的 usage 对象核实 token 数。
完整的缓存实操,参见四篇系列的第一篇 KV Cache 与 TTL 的工作原理,以及可运行的 Python 教程。
FAQ
Sonnet 5 比 Sonnet 4.6 便宜吗? 只在介绍期内便宜。到 2026 年 8 月 31 日为止是 $2 / $10,而 4.6 是 $3 / $15。9 月 1 日起变成 $3 / $15,两者一样。而且同一段文本在 Sonnet 5 上算出来的 token 数大约多 41%,所以按标准价格算,同样的 prompt 比在 4.6 上更贵。
介绍期价格什么时候结束? 2026 年 8 月 31 日,见 Anthropic 的公告。9 月 1 日起价格变成每百万输入 token $3、每百万输出 token $15。
Sonnet 5 比 Opus 4.8 便宜多少? 介绍价便宜 2.5 倍,标准价便宜 1.67 倍,输入和输出都是。两者共用同一个 tokenizer,token 数一致,两种价格下差异都纯粹来自费率。
我需要改 cache_control 代码吗?
不用。标记语法、断点数量上限、TTL 选项都和 Opus 系列完全一样。只改 model 字段就行,其他不用动。命中缓存的读取约为输入价格的 10%;1 小时的写入约为不缓存的 2 倍,5 分钟的写入约 1.25 倍。
Sonnet 5 能直接替换 Opus 4.8 吗? 在缓存、TTL 和成本层面,迁移很简单,而且两种价格下都更便宜。质量方面,自己跑评估;我们不发布没跑过的能力基准。模型质量的说法参见 Anthropic 的 model card。
验证说明:价格、缓存、TTL 和 token 数数据于 2026-07-01 针对 https://synthorai.io/ 测得,使用 Anthropic 原生的 /v1/messages 路径,单租户。单 token 价格由普通调用的 usage 成本推算得出;每轮成本是小样本中位数,带 2.2K token 的缓存前缀,反映当前的介绍价。介绍期价格和 2026 年 8 月 31 日到期日来自 Anthropic 的 Sonnet 5 公告;折扣/溢价比率与 Anthropic Prompt Caching 文档交叉核对过。你的实际数字会随 prompt、区域和负载而变化。