Claude Sonnet 5.5 vs Sonnet 5:同价,单任务省 80%
目录
Claude Sonnet 5.5 和 Claude Sonnet 5 的 token 价格相同,输入每百万 token $2,输出每百万 token $10,因此成本差异完全取决于 token 用量。在 API 默认配置下运行 13 个单轮任务时,Sonnet 5.5 的单任务成本为 $0.0041,Sonnet 5 则为 $0.021,前者低 80%,且两个模型全部答对。我们发现的问题在于输出格式:当 effort 低于 xhigh 时,Sonnet 5.5 有时不会使用隐藏推理,而是直接把解题过程写进回复,即使 prompt 明确要求只返回答案。
TL;DR
- 在 API 默认配置下,Sonnet 5.5 的单任务成本为 $0.0041,Sonnet 5 为 $0.021,两个模型在全部 39 次调用中均回答正确。
- Sonnet 5.5 在
low、medium和higheffort 下的成本基本相同;max的成本是默认配置的 3.5x。 - 低于
xhigh时,Sonnet 5.5 在 156 个仅要求答案的 prompt 中,有 68 个把解题过程写进了回复;增加 system prompt 也未能解决。 - 在包含四个问题的工具循环中,Sonnet 5.5 使用
max时每次运行成本为 $0.042,高于 Opus 5.5 默认配置的 $0.033。
Anthropic 于 2026-09-28 发布 Sonnet 5.5,并称其速度提升 30%,单任务成本相比 Sonnet 5“最高可降低 30%”。我们在次日进行了实测。
Claude Sonnet 5.5 有哪些变化?
价格没有变化,但 thinking 控制方式和多个请求参数有所调整。Sonnet 5.5 使用 adaptive thinking:模型会自行决定回答前需要进行多少隐藏推理,这部分 reasoning token 按输出计费。开发者可通过 effort 控制推理力度。在 Messages API 中,对应参数为 output_config.effort,共有从 low 到 max 五个级别。API 默认值为 high。
| Sonnet 5.5 | Sonnet 5 | Opus 5.5 | |
|---|---|---|---|
| 发布日期 | 2026-09-28 | 2026-06-30 | 2026-09-22 |
| 输入 / 输出,每 1M token | $2 / $10 | $2 / $10 | $4 / $20 |
| 缓存读取,每 1M token | $0.20 | $0.20 | $0.20 |
| 上下文窗口 / 最大输出 | 1M / 128K | 1M / 128K | 1M / 128K |
| 知识截止时间(仅公布月份) | 2026 年 6 月 | 2026 年 1 月 | 2026 年 6 月 |
| API 默认 effort | high | high | medium |
| 最低 thinking 配置 | between_tools(high 或更低) | disabled | 无法关闭;thinking 始终启用 |
| 可缓存 prompt 的最小长度 | 512 个 token | 1,024 个 token | 512 个 token |
Sonnet 5 上线时,$2 / $10 属于首发优惠价,但 Anthropic 定价页面 现在已将其列为标准价格;原计划上调至 $3 / $15 的方案并未实施。
根据 迁移指南,以下请求可在 Sonnet 5 上使用,但在 Sonnet 5.5 上会返回 HTTP 400:
thinking: {"type": "disabled"}。应改用thinking: {"type": "between_tools"}。该配置会关闭首次回答前的推理,并且仅在high或更低 effort 下可用。- 强制调用工具,即将
tool_choice设为any或指定工具。应保留auto,并在 prompt 中说明何时使用工具。 - 手动设置 thinking budget(
budget_tokens)、使用非默认的temperature、top_p或top_k,以及预填 assistant 消息,也就是替模型写好回复开头。 - 对于从 2026-08-31 起创建的账号,在修改 system prompt、工具或更早的消息后,重新传入 Sonnet 5.5 的 thinking block。
- 在 Claude API 和 Google Cloud 上使用旧版
computer_20251124computer use 工具。
还有一项变化不会触发错误:模型在工具调用之间写出的简短说明现在会作为 thinking block 返回。在默认显示配置下,该 block 内容为空,因此依赖 streaming 展示这些说明的界面会突然没有输出。
发布基准测试结果如何?
Anthropic 自己公布的表格显示,Sonnet 5.5 的多项得分仅比 Opus 5.5 低几个百分点,但 token 价格只有后者的一半,同时大幅领先 Sonnet 5。
| 基准测试(测试内容) | Sonnet 5.5 | Sonnet 5 | Opus 5.5 | GPT-6 Sol |
|---|---|---|---|---|
| Terminal-Bench 4.0(终端中的智能体编程) | 70.6% | 10.3% | 66.4%(xhigh) | 未公布 |
| CursorBench 4.0(编辑器内编程) | 55.5% | 34.1% | 57.8% | 未公布 |
| GDPval-AA v2.1(知识工作文档,Elo 评分,越高越好) | 1844 | 1449 | 1846 | 1487 |
| OSWorld 2.1(computer use,按部分完成度计分) | 80.1% | 57.0% | 81.8% | 未公布 |
| Humanity’s Last Exam,使用工具 | 64.5% | 54.9% | 67.7% | 未公布 |
Artificial Analysis 还指出了成本风险:Sonnet 5.5 在 max effort 下的 Intelligence Index 得分为 56,比同样使用 max 的 Opus 5.5 低 2 分,但每个任务使用了约 193K 个输出 token。这是其测得的最高值,比 max 下的 Opus 5.5 或 Sonnet 5 高约 60%,每个指数任务的成本约为 $7.60。
我们如何测量?
我们向三个模型发送了 13 个答案已知的单轮任务,每个任务只包含一个 prompt 和一次回复,不使用工具。其中 8 个是短任务,例如计算 60 以下质数之和、统计 1 到 500 中数字 7 出现的次数;另外 5 个需要真正的多步计算,例如包含 10 个物品的背包问题、穿过带障碍物的 8x8 网格的路径数,以及 13 的 1,001 次方对 10,007 取模。所有标准答案均在本地通过暴力计算得到,每个 prompt 都以“只回复一个整数,不要包含其他内容”结尾。每项任务分别在 API 默认配置和五个 effort 级别下运行 3 次,总计 702 次调用,全部通过原生 Messages API 完成。每个 prompt 都带有唯一的随机字符串,避免命中响应缓存。成本按 Anthropic 标价计算。评分同时检查最终答案是否正确,以及回复是否只包含答案。
准确率无法区分这些模型。Sonnet 5.5 在全部 234 次调用中均回答正确;Sonnet 5 在成功返回的 233 次调用中全部正确,另有一次服务器错误;Opus 5.5 在 low 和默认配置下各答错一个任务。
Sonnet 5.5 的单任务成本是否低于 Sonnet 5?
默认配置下,Sonnet 5.5 的成本比 Sonnet 5 低 80%;在 low、medium 和 high 下低 77% 到 78%。原因是它的输出 token 数量只有后者的约五分之一。两者标价完全相同,因此所有成本差异都来自 token 效率。Sonnet 5 在各个 effort 级别下每项任务会输出约 1,800 到 2,100 个 token;Sonnet 5.5 在达到 xhigh 前约为 400 个。
| 全部 13 个任务,单任务数据 | Sonnet 5.5 | Sonnet 5 | Opus 5.5 |
|---|---|---|---|
| API 默认配置 | $0.0041(396 个 token) | $0.0212(2,105) | $0.0070(334) |
low | $0.0043(409) | $0.0184(1,817) | $0.0065(309) |
medium | $0.0040(383) | $0.0180(1,780) | $0.0082(393) |
high | $0.0043(416) | $0.0188(1,858) | $0.0088(421) |
xhigh | $0.0059(574) | $0.0202(2,001) | $0.0105(507) |
max | $0.0146(1,438) | $0.0193(1,909) | $0.0234(1,149) |
表中的 token 数量是每次调用的平均输出 token 数,包含 reasoning token。在五个高难度任务中,默认配置的成本降幅为 84%($0.0057 对 $0.0348)。在我们的工具循环中,每一轮都会重新发送完整对话记录,输入 token 成为主要成本,因此降幅只有 8%。对这类单轮 prompt 而言,Anthropic 所称的“最高可降低 30%”相当保守;对我们测试的短工具循环而言,这个说法则偏乐观。
由于只有 13 个任务,默认配置下 80% 的降幅范围较宽:对任务重抽样得到的 95% 区间为低 66% 到 85%;从 low 到 xhigh 的每个档位,区间下限都高于 50%。
各个 effort 级别的成本是多少?
在 Sonnet 5.5 上,low、medium 和 high 的单任务成本均约为 $0.0042,因此默认的 high 在这组测试中没有额外成本;xhigh 的成本高约 40%,max 则是默认配置的 3.5x。使用 max 时,Sonnet 5.5 的单任务成本是 Opus 5.5 默认配置的两倍($0.0146 对 $0.0070),但准确率没有提高。
这种持平关系并不适用于所有场景:在一个更长的 DevOps 任务中,另一位测试者 发现 high 使用的输出 token 数约为 medium 的两倍。如果 workload 对 effort 敏感,就需要单独测试所有档位。
为什么 Sonnet 5.5 会把解题过程写进答案?
低于 xhigh 时,Sonnet 5.5 并非每次都会使用 thinking block。没有使用时,它会直接在回复中推理。thinking block 是响应中单独承载模型推理的部分,默认情况下其文本为空,最终答案随后放在 text block 中返回。
在 Sonnet 5.5 的 234 条回复中,包含 thinking block 的 166 条都只返回了答案。其余 68 条没有 thinking block,并且全都先写解题过程,例如先输出“09:47 + 3:46 = 13:33 … + 1:39 = 15:40”,然后再输出“15:40”。最终答案每次都正确,但回复格式不符合 prompt 要求。
| 只包含答案的回复 | Sonnet 5.5 | Sonnet 5 | Opus 5.5 |
|---|---|---|---|
| API 默认配置 | 22 / 39 | 38 / 39 | 38 / 39 |
low | 12 / 39 | 37 / 39 | 38 / 39 |
medium | 24 / 39 | 37 / 39 | 39 / 39 |
high | 30 / 39 | 38 / 39 | 39 / 39 |
xhigh | 39 / 39 | 35 / 38 | 39 / 39 |
max | 39 / 39 | 37 / 39 | 39 / 39 |
这种现象按任务出现:凡是出现这种情况的任务,Sonnet 5.5 三次重复都写出了解题过程,只有默认配置下的一个任务是三次中有两次。low 下 13 个任务中有 9 个出现这种情况,默认配置下 6 个,medium 下 5 个,high 下 3 个(都是简短的算术题)。按任务计算时,由于只有 13 个任务,这些差距都无法通过 Holm 校正,因此应把这些计数视为本次观察到的结果,而不是可以据此规划的比例。Sonnet 5 的格式错误有所不同:它会用粗体给出正确答案,然后附上一小段解释。其 xhigh 行只有 38 次调用,因为另一次遇到了服务器错误。
增加 system prompt 也没有改善。该 prompt 要求“只返回最终结果”,并在内部完成所有计算。Sonnet 5.5 在 low 下的 24 个短任务中有 8 个只返回答案,在 medium 下有 9 个;不加该 system prompt 时分别为 6 个和 9 个。xhigh 可以解决问题,每次都会生成 thinking block 并只返回答案,但成本比 low 到 high 高约 40%。对于需要解析模型输出的代码:
- 如果回复必须只有一行答案,使用
xhigh。 - 或者读取最后一个非空行。在这里的 68 个案例中,该行全部是正确答案。
- Anthropic 的 structured outputs 也可以通过 schema 限制回复格式;我们没有测试这条路径。
import anthropic
client = anthropic.Anthropic()
prompt = "Compute 7 raised to the power 222, modulo 1000. Reply with a single integer, nothing else."
resp = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=16000,
output_config={"effort": "xhigh"}, # low, medium, high (API default), xhigh, max
messages=[{"role": "user", "content": prompt}],
)
text = "".join(block.text for block in resp.content if block.type == "text")
lines = text.strip().splitlines()
answer = lines[-1] if lines else None # below xhigh, working can precede the answer
print(answer, resp.usage.output_tokens) # output_tokens includes the reasoning
工具循环中的表现如何?
在默认配置、low 和 medium 下,Sonnet 5.5 每次都能完成包含四个问题的代码阅读循环,每次运行成本约为 $0.011,只有 Opus 5.5 的三分之一。使用 max 时,它的工具调用次数增加到三倍,成本也超过 Opus 5.5。每个模型都可在一个小型合成代码库中使用三种工具,分别是列出文件、读取文件和搜索。每个答案需要跨文件查询 3 到 6 次。
| 工具循环,每种配置运行 12 次 | 完成数 | 轮次中位数 | 每次运行的工具调用数 | 每次运行成本 | 总耗时中位数 |
|---|---|---|---|---|---|
| Sonnet 5.5,默认配置 | 12 / 12 | 3 | 4.8 | $0.0112 | 6.7 s |
Sonnet 5.5,low | 12 / 12 | 3 | 4.9 | $0.0112 | 7.4 s |
Sonnet 5.5,medium | 12 / 12 | 3 | 5.1 | $0.0113 | 6.8 s |
Sonnet 5.5,max | 12 / 12 | 4 | 14.7 | $0.0422 | 20.1 s |
| Opus 5.5,默认配置 | 12 / 12 | 4 | 5.3 | $0.0332 | 25.3 s |
| Sonnet 5,默认配置 | 11 / 12 | 3.5 | 4.2 | $0.0122 | 15.8 s |
VentureBeat 报道的客户反馈 称,与 Sonnet 5 相比,Sonnet 5.5 的工具调用次数更少,例如 Lovable 的调用次数减少了三分之一。我们的循环太短,未能体现这一点:Sonnet 5.5 每次运行调用工具 4.8 次,Sonnet 5 为 4.2 次。不过,Sonnet 5.5 的成本仍低 8%,完成速度也快了一倍以上。
Sonnet 5.5 是否更快?
它更早完成任务,主要是因为输出更少。在默认配置的单轮任务中,从发送请求到接收完整响应的总耗时中位数分别为:Sonnet 5.5 3.9 秒、Sonnet 5 8.1 秒、Opus 5.5 5.5 秒。两个 Sonnet 按总耗时计算的输出速度基本相同,分别约为每秒 88 和 91 个 token。因此,等待时间减半并不是因为 Sonnet 5.5 生成 token 更快,而是因为其输出 token 数量只有五分之一。在高难度任务中,两者的总耗时分别为 5.8 秒和 21.0 秒。
Sonnet 5 的 token budget 能否直接沿用?
为 Sonnet 5 设定的上下文预算和 max_tokens 上限应当仍然适用。Anthropic 的迁移说明指出 Sonnet 5.5 使用相同的 tokenizer;我们测试的四段固定文本(英文段落、Python 代码、JSON 工具参数、中文段落)在两个模型以及 Opus 5.5 上的计数完全相同,例如英文为 1,270 个 token,中文为 493 个;Sonnet 5.5 和 Opus 5.5 每次请求固定多出 2 个 token。带工具的请求在输入上略便宜:Anthropic 的价格页列出,隐藏的工具使用系统提示在 Sonnet 5.5 上为 286 个 token,在 Sonnet 5 上为 354 个。
应该选择哪个模型?
对于大多数 Sonnet 5 workload,可以直接切换;剩下的问题是选择哪个 effort 级别。
| Workload | 需要注意 | 建议 | 数据 |
|---|---|---|---|
| 由代码解析的输出:抽取、分类、单值结果 | 低于 xhigh 时,解题过程可能写进回复 | 使用 xhigh 的 Sonnet 5.5,或使用 medium 并解析最后一行 | xhigh 下仅答案回复为 39 / 39,medium 下为 24 / 39;xhigh 成本高约 40% |
| 对话和面向用户的文本 | 延迟与成本 | 使用 medium 的 Sonnet 5.5 | 每项任务 $0.0040,总耗时中位数 3.9 s |
| 使用工具的智能体循环 | max 导致工具调用次数成倍增加 | 使用默认配置或 medium 的 Sonnet 5.5;与其使用 max 的 Sonnet 5.5,不如切换到 Opus 5.5 | 默认配置每次运行 $0.011,max 为 $0.042,Opus 5.5 为 $0.033 |
| 关闭 thinking 或强制调用工具的 Sonnet 5 代码 | 更换模型后返回 HTTP 400 | 使用 between_tools(high 或更低)和 tool_choice: auto | Anthropic 迁移指南 |
无论选择哪个 effort 级别,代码中都应保留两项检查:回复格式是否符合 parser 预期,以及是否设置了单次请求的输出 token 上限。在单轮 prompt 中,max 使单任务成本增加到 3.5x;在工具循环中,工具调用次数增加到 3x。
常见问题
Sonnet 5.5 是否比 Opus 5.5 便宜?
在默认配置下,Sonnet 5.5 的单轮任务成本比 Opus 5.5 低 41%,工具循环的单次运行成本只有后者的三分之一。使用 max 时则相反:Sonnet 5.5 的单轮任务成本是 Opus 5.5 默认配置的两倍,工具循环的单次运行成本也高 27%。
Sonnet 5.5 应该使用哪个 effort 级别?
在我们的测试中,Sonnet 5.5 使用 low、medium 和 high 时的成本基本相同($0.0040 到 $0.0043),因此对话和工具循环可以从 medium 开始。如果代码要求回复中只能包含一个值,应使用 xhigh;max 的成本是默认配置的 3.5x。
Sonnet 5.5 还能关闭 thinking 吗?
Sonnet 5.5 会拒绝 thinking: {"type": "disabled"} 并返回 HTTP 400。应改为发送 thinking: {"type": "between_tools"},该配置可在 low、medium 或 high effort 下使用。
相关测量:Claude Opus 5.5 vs Opus 5、Claude Sonnet 5 tokenizer 和 各厂商的 thinking 控制方式。
测量日期为 2026-09-29,即发布次日。所有请求均通过网关发送至 Anthropic Messages API。测试包含 702 次已评分的单轮调用(13 个任务,标准答案通过暴力计算得到,重复 3 次,使用 6 种 effort 配置和 3 个模型)、48 次输出格式 system instruction 测试、72 次工具循环运行(4 个多步问题,重复 3 次,使用 6 种配置),以及每个模型对四段固定文本的 token 计数。所有 prompt 均加入随机字符串;成本按 Anthropic 标价计算。