Anthropic在9月28日发布Claude Sonnet 5.5。价格与Sonnet 5完全相同(10),Terminal-Bench 4.0拿到70.6%,反超发布仅6天的旗舰Opus 5.5。真正值得看的不是分数,是那个五档effort旋钮。但旋钮不是油门:Anthropic自己的数据里,最高档Max在FrontierCode上比次高档Xhigh低5.9分。本文拆解这个反例、四档各档的真实行为副作用、官方成本叙事与第三方实测的落差,附完整迁移checklist和可跑的effort sweep脚本。
关键词:Claude Sonnet 5.5、effort参数、agentic coding、Terminal-Bench、FrontierCode、max_tokens、prompt cache、迁移
一、发布事实
以下数据全部来自Anthropic官方发布表,未经第三方复现。
| Benchmark | Sonnet 5.5 | Sonnet 5 | Opus 5.5 | GPT-6 Sol |
|---|---|---|---|---|
| Terminal-Bench 4.0 | 70.6% | 10.3% | 66.4%¹ | — |
| FrontierCode 1.1 (Main) | 52.1% Xhigh / 46.2% Max | 42.4% | 54.4% | 49.3% |
| CursorBench 4.0 | 55.5% | 34.1% | 57.8% | — |
| GDPval-AA v2.1 | 1844 | 1449 | 1846 | 1487² |
| AA-Briefcase v1.1 | 1811 | 1359 | 1822 | 1483² |
| Humanity’s Last Exam (带工具) | 64.5% | 54.9% | 67.7% | — |
| OSWorld 2.1 (部分评估) | 80.1% | 57.0% | 81.8% | — |
| Chartography (无工具) | 61.6% | 15.6% | 64.4% | 53.6%² |
¹ Opus 5.5的66.4%是在最高effort档测的 ² Anthropic自行跑分
Terminal-Bench 4.0测的是”模型能不能在命令行里完成复杂的多步专业任务”,这个榜单的形态跟Claude Code的实际用法高度重合,所以这一列的权重应该给得比其他列高。Sonnet 5.5在这一项反超旗舰,差距4.2分。
几个值得记的:Chartography(视觉图表识别)从15.6%跳到61.6%,是相对提升最大的一项;GDPval-AA 1844对1846,差2分。附带一提,Sonnet 5.5是第一支只靠截图就把宝可梦红版通关的Sonnet模型。
Anthropic自己在发布稿里加了一句限定:跑分只捕捉模型能力的一个侧面,在他们自己和外部测试者的实测中,Opus 5.5在需要持续判断力的复杂开放式工作上仍然明显更强。这句话待会儿会用到。
1.1 规格
| 项 | 值 |
|---|---|
| 模型ID | claude-sonnet-5-5(Bedrock上是anthropic.claude-sonnet-5-5) |
| 上下文窗口 | 1M tokens,原生,不需要beta header |
| 最大输出 | 128K;Batch API下可到300K(需output-300k-2026-03-24 beta header) |
| 知识截止 | 2026年6月 |
| Tokenizer | 与Sonnet 5相同 |
| 最短可缓存prompt | 512 tokens(Sonnet 5是1024) |
| 退役承诺 | 不早于2027年9月28日 |
| 可用平台 | Claude API、AWS Bedrock、Google Cloud、Microsoft Foundry、Claude Platform on AWS |
| 数据保留 | 符合条件的客户可选零数据保留 |
| Fast mode | 无 |
最短可缓存prompt长度从1024降到512。缓存读取价是输入价的十分之一,这个门槛降低意味着更短的系统提示和工具定义也能吃到缓存折扣。对工具定义多的Agent场景是直接的账单改进。
Claude Code从v2.1.284起,sonnet别名指向Sonnet 5.5,默认medium档,1M上下文原生启用。
1.2 价格
| 每百万tokens | Sonnet 5.5 | Opus 5.5 |
|---|---|---|
| 输入 | $2 | $4 |
| 输出 | $10 | $20 |
| 缓存写入(5分钟) | $2.50 | $5 |
| 缓存写入(1小时) | $4 | $8 |
| 缓存读取 | $0.20 | $0.20 |
与Sonnet 5逐项相同。Batch API输入输出五折,美国境内专属推理(inference_geo: "us")是标准价的1.1倍。
也就是说换模型ID不改变单价。Anthropic省钱的说法是:Sonnet 5.5完成同一件工作”typically needs far fewer tokens”,因此单任务成本最多降低30%。
1.3 官方的成本叙事和第三方实测,方向是反的
官方口径:单任务最多省30%。而且分档位给出了具体倍数:
| 基准 | 档位 | 相对Sonnet 5最好成绩的成本 |
|---|---|---|
| Terminal-Bench 4.0 | Medium | 不到十分之一 |
| FrontierCode 1.1 | High | 约五分之一(追平GPT-6 Sol最好成绩) |
| CursorBench 4.0 | Low | 不到十分之一 |
| AA-Briefcase v1.1 | Medium | 约九分之一 |
| FrontierCode 1.1 | High | 分数高10分,成本约十五分之一 |
Artificial Analysis的独立实测给出了完全不同的图景:
- 方向一致,绝对值不同。它自己跑的Terminal-Bench:Sonnet 5.5得63.6%,Opus 5.5得59.6%,GPT-6 Astra得59.1%。Sonnet 5.5确实第一,但没官方说的那么夸张。
- 在Max档,Sonnet 5.5每个测试任务写了约193,000个token,是Artificial Analysis测过的所有模型里最多的,比Opus 5.5多约60%。单任务成本$7.60,比Sonnet 5贵约50%。
$7.60比Sonnet 5贵50%,这跟”最多省30%”的方向正好相反。
Datacamp自己做的上手测试结论更保守:Sonnet 5.5和Opus 5完成同一类任务,成本基本持平。
三家数据放一起,能得出的结论是:省下来的钱来自你把档位调低了,不来自模型本身变便宜了。 Anthropic的30%是”低档位打旧档位”的口径,Artificial Analysis的-50%是”高档位打旧版”的口径。两个数都不算撒谎,但只有第二个对按默认档迁移的团队有参考价值。
这也解释了为什么Anthropic自己的推荐是”从high开始”——high是Claude API的默认值,不是成本最优档。Artificial Analysis认为high是性价比最优档,两家在这一点上倒是碰巧一致。
二、effort旋钮到底是什么
2.1 一条被砍掉的旧路
Anthropic对手写思考预算的处理是三级跳:
| 模型 | 手写budget_tokens |
|---|---|
| Sonnet 4.5及更早 | 必需,所有思考都靠它 |
| Sonnet 4.6 | 弃用,设了会有警告 |
| Sonnet 5 | 移除,返回400错误 |
| Sonnet 5.5 | 移除,返回400错误 |
Sonnet 5.5的迁移文档写得很直接:budget_tokens在Sonnet 5.5上返回400错误,删掉它,然后设一个effort档位。文档还补了一句:预算和档位之间没有固定映射关系,所以要”run your evaluations at two or three levels”。
这条路的消失不是偷懒。budget_tokens要求调用方自己猜”这道题该想多少token”,猜错的代价很直接:给少了答案被截断,给多了白烧钱。Adaptive thinking把”该想多少”的判断交还给模型,effort参数再把”这个判断的松紧度”交还给调用方。控制权换了两次手。
2.2 五档和默认值
| 档位 | 官方定位 |
|---|---|
max |
绝对最大能力,对token消耗不设约束 |
xhigh |
官方推荐给最难的编码和agentic场景 |
high |
默认档,token消耗和智能水平之间的平衡点 |
medium |
成本敏感场景,用智能水平换token |
low |
短任务、范围明确、对延迟敏感且不敏感于智能水平 |
默认值有个容易踩的差异:Claude API默认high,Claude Code和Claude应用默认medium。 不同入口拿到的默认行为不一样,所以”我什么都没改”在不同地方是两种配置。
2.3 档位被重新校准过
档位是重新校准的,同一个档位在Sonnet 5.5上产生的思考量跟在Sonnet 5上不一样,你原来的设置不会继承过来。
官方给了一条粗略的跨模型映射供参考:
- Sonnet 5.5的
medium≈ Sonnet 5的高档 - Sonnet 5.5的
high≈ Sonnet 5的最高档
做benchmark时,按观察到的思考长度来匹配,而不是按档位名匹配。
档位名不是稳定契约,思考长度才是。 你在Sonnet 5上用的high,迁到Sonnet 5.5之后实际思考量可能变成了别的档位。任何从Sonnet 5迁过来的团队都必须重跑一次effort sweep,官方在迁移checklist里也把”re-run your effort sweep”和”re-baseline cost”列为必做项。
三、这个旋钮不是油门
3.1 官方数据里藏着一个反例
把第一章那张表竖着看FrontierCode 1.1这一行:
| 配置 | FrontierCode 1.1 得分 |
|---|---|
| Sonnet 5.5 @ Xhigh | 52.1% |
| Sonnet 5.5 @ Max | 46.2% |
| Opus 5.5 | 54.4% |
| GPT-6 Sol | 49.3% |
| Sonnet 5 | 42.4% |
最高档比次高档低5.9分。
Anthropic给了原因:Max档下模型更频繁地触发code-review功能,把工作拆给多个子agent。在一些情况下这导致了超时,或者改动了任务范围之外的东西——而FrontierCode恰好惩罚这两件事。
这个反例的分量在于:它不是第三方的挑刺,是厂商自己在官方表格里放进去的数字,而且用的是自己旗舰分数最高的那个基准。“参数化推理”这个抽象概念,第一次被官方数据打出了一个具体破绽:档位和结果之间不是单调关系。
原因也不难理解。effort调高改变的不只是”想多久”,还有”干什么”——高 effort下模型倾向于在完成主任务后自己开启额外的review和验证轮次,有时候派子agent。FrontierCode的评判标准是”这个agent的代码改动会不会被合并”,越界改动和超时都是直接扣分项。它在惩罚的不是能力不足,是行为发散。
3.2 各档位的行为副作用
这一节的内容全部来自Anthropic官方的prompting文档,不是我在跑分表里读出来的。官方在这块写得比跑分表诚实得多。
| 档位 | 思考特征 | Agent行为变化 | 实际副作用 |
|---|---|---|---|
low |
思考保持简短,会跳过验证 | 会把改动报成”完成”但没跑任何检查,比如因为项目依赖没装就跳过测试 | 假阳性完成——最需要警惕的一种 |
low / medium |
思考量较低 | 长agentic任务里更可能在完成前停下来问用户:确认计划、问一个它自己能回答的问题、做完多部分任务的第一部分就问要不要继续 | 交互轮次增加,长任务跑不完 |
medium及以上 |
几乎每次回复前都先短暂思考,包括一句问候 | — | 首个可见token的等待时间增加 |
xhigh/ max |
思考和回复都长得多 | 完成任务后自己开启额外的review和验证轮次,有时派子agent;会顺手修它注意到的相关问题 | token暴涨;额外的测试、文档、辅助文件产出 |
有两行的工程影响比表格本身更大。
第一行low的”假阳性完成”,是这份文档里工程价值最高的一条。原文的描述是:在agentic编码任务上,Sonnet 5.5通常会在报告改动完成前检查自己的工作,但low档下它有时会在没有跑任何能验证改动的检查的情况下,就报告改动完成。官方给的例子很具体:项目依赖没装,它就跳过了测试。
测试没跑、绿了但其实是跳过的、构建根本没启动。区别在于以前你得从CI日志里分辨这个,现在模型会主动告诉你”完成了”,而它自己知道没验证。Anthropic为这个专门给了一段system prompt补丁,放在后面第3.4节。
最后一行medium以上”包括一句问候”这个细节,说明了一件容易被忽略的事:effort影响的是首token延迟,不只是总成本。 官方明确说,如果你在用medium跑Chat这类延迟敏感的场景,更高档位意味着回复开始前要等更久。对交互式产品来说这个成本不是钱,是体感。
3.3 想让它少想,说”少想”是没用的
想去掉更多思考,就降effort档位。在system prompt里让模型少想,不会可靠地减少思考。
这条值得单列,因为它戳中了一个很常见的误区——很多人在调成本的时候会先去改prompt,”你能不能少用点token””请直接给结论”。这些在旧模型上有一定效果,在adaptive thinking模式下不可靠。官方的态度很明确:这是一个参数,不是一个措辞。
3.4 两个system prompt补丁
Anthropic为三个场景各给了一段可以直接抄的文本。
补丁一:要求真实验证检查(low档必备)
官方说加上这段之后,跳过检查或做表面检查的情况会变得很少,对任务质量没有可测量的影响,单任务成本只略升。
补丁二:干完就停(xhigh/max档必备)
还有一个专门给xhigh/max的变体,抑制它自己开启额外review轮次和reviewer子agent:
值得留意的是,官方在讲第一段时用了一个词:Carrying work through。在low/medium档上,模型在完成前停下来问你是正常行为。 如果你的工作流是靠模型一路跑到底,加了这段prompt它确实会一路做到底——但代价是那些档位的session会跑得更久、花得更多。官方说得很清楚,这段prompt不能替代你自己对高风险和不可逆操作设的规则。
这三段prompt在中文工作流里怎么落地,可以参考AGENTS.md的写法规范——同样的道理,写成仓库里的版本化文件比每次在对话里重复一遍更可靠。
(未完待续)