先给结论:Sonnet 5.5 的价目表一行没动,请求合同却动了。2026 年 9 月 28 日,Anthropic 发布 Claude Sonnet 5.5(claude-sonnet-5-5)。输入 / 输出仍是 $2 / $10,缓存读仍是 $0.20。官方说输出快 30% 以上,多数任务大约省 30%——省的是每任务 token,不是标价。真正会炸生产的,是从 Sonnet 5 抄过来的旧开关:thinking: {"type": "disabled"} 返回 400;tool_choice 的 any / tool 同样 400;非默认的 temperature / top_p / top_k 也是 400。更不声张的坑在 JSON 抽取:无工具请求里用 between_tools,模型先不思考,Structured Output 也会抽歪。官方提示页把这类任务单独列成「Reasoning tasks with JSON output」。
这篇按 2026 年 9 月 29 日写,依据当天仍有效的模型页、What's new 与迁移指南。本站 9 月 24 日已有《Opus 5.5 为什么不能再靠 tool_choice 强制出 JSON》。本文不重写那四处,只回答:从 Sonnet 5 换到 5.5,JSON 流水线多出来的那一层要改什么。Haiku 5.5 官方仍写「未来几周」,这篇不预支。
9 月 28 日发了什么
Claude Sonnet 5.5 是 Claude 5.5 家族的第二档。官方定位:速度与智力的折中;日常编码、改 bug、做文档与表格。模型 ID 在 Claude API、Google Cloud、Microsoft Foundry、Claude Platform on AWS 都是 claude-sonnet-5-5;Bedrock 是 anthropic.claude-sonnet-5-5。退役承诺不早于 2027 年 9 月 28 日。分词器与 Sonnet 5 相同,同一段文本 token 数不变。
价目(每百万 token):输入 $2、输出 $10、5 分钟缓存写 $2.50、1 小时缓存写 $4、缓存读 $0.20。批处理半价。上下文 1M,同步最大输出 128K;Message Batches 加 output-300k-2026-03-24 可到 300K。默认可缓存前缀从 Sonnet 5 的 1,024 token 降到 512。默认 effort 是 high——Opus 5.5 默认是 medium。漏写 effort,行为按 high 走,不是「跟 Sonnet 5 一样」的静默兼容。
公告把 Sonnet 5.5 写成 Opus 5.5 的更快、更便宜互补档。这篇不拿排行榜选型。要看的是:价目一行没动,thinking、tool_choice 和 JSON 抽取的合同动了。
五处硬失败,一张表
文档把「换成 5.5 就 400」的请求列得很清楚。前三条和 Opus 5.5 / Fable 5.1 同源,但第一行的替代写法不一样:
| 旧写法(Sonnet 5) | 5.5 上会怎样 | 该改成什么 |
|---|---|---|
thinking: {"type": "disabled"} 或 enabled + budget_tokens | 400 invalid_request_error,报错指向 between_tools | 关前置思考用 {"type": "between_tools"};要推理用省略或 adaptive |
tool_choice: {"type": "any"} 或 {"type": "tool", "name": "..."} | 400;token 计数接口同样验 | auto(或 none)+ strict: true,或 Structured Output |
| 改 system / tools / 更早消息后再回放 thinking 块 | 2026-08-31 之后开的账号默认 400 | 对话只追加;改指令用中途 system 消息 |
Claude API / Google Cloud 上的 computer_20251124 | 400 | computer_toolset_20260801;Bedrock 仍收旧工具 |
| advisor 指定 Opus 4.8 / 4.7 或 Sonnet 5 | 400 | 换成 5.5 接受的 advisor(含 Opus 5.5、Fable / Mythos 5.1,或 5.5 自己) |
还有一处不报错但会静音:工具调用之间偏长的说明改走 thinking 块。默认 display: "omitted" 时空文本。靠流式「中间句」当进度条的界面会突然没声。要进度,自适应思考设 thinking.display(updates 要 beta 头);between_tools 会带回摘要文本,但这个类型不许再带 display。
温度也从「可调」变成「只能默认」:把 temperature、top_p 或 top_k 设成非默认值,400。以前靠降温度逼 JSON 更稳的请求,现在只能把稳交给 Schema。
disabled 作废,between_tools 才是最低档
Sonnet 5 上关 thinking 写 disabled。5.5 上这一行直接 400,报错指向 between_tools。最低档的形状是:
{
"model": "claude-sonnet-5-5",
"thinking": { "type": "between_tools" },
"output_config": { "effort": "high" }
}
between_tools 不用 beta 头,各平台都收。它只关前置思考:工具调用之间偏长的进度仍以 thinking 块回来,回灌时原样传,模型拿到的是完整笔记,不是摘要。无工具时,响应里通常只剩 text,看起来像旧的 disabled。
限制写得很死:只接受 low / medium / high。配 xhigh 或 max,400。旁边再塞 display、budget_tokens、block_binding,也是 400。对话中途改 output_config.effort,还是 400——要按轮调 effort,必须走自适应思考。服务端 fallback 落到 Sonnet 5 时,between_tools 会被译成那边的 disabled。
所以 5.5 并没有「thinking 必须一直开到满」。它拆掉的是 disabled 这个旧开关。开关一拆,关思考的人要写新类型;要稳定 JSON 的人,往往不该关——见下一节。
无工具 JSON 抽取,不要关 thinking
官方 Prompting 页单独开了一节:给 Sonnet 5.5 一个需要几步演算的 JSON 题(加总、套规则、排序),模型在 low / medium 上常不先想。有 Structured Output 时,可见正文只能是 JSON,演算只能发生在 thinking 里。thinking 被跳过,准确率就掉。
官方给的顺序是:
- 能走 Structured Output 就走。正文只剩符合 Schema 的对象,不用再
JSON.parse聊天句。见《Structured Output 是什么》。 - 用自适应思考,不要用
between_tools。无工具请求里,between_tools等于先不思考。「先想再答」写进提示词也无效。测试里把「先出答案、再出 JSON」拆成两次请求,合规率高,但费用和延迟都很高,官方不推荐当默认。 - 系统提示末尾加一句
Think the problem through before you answer.在high上,准确率接近xhigh,多出来的输出 token 不多;low/medium也会升,但更费。 - 给
max_tokens留出 thinking。low/medium配 Structured Output 时,模型偶发想到顶。官方说:stop_reason是max_tokens的响应,即使正文是合法 JSON,也当失败重试。
没有 Structured Output 时,模型常在正文里演算、把 JSON 放在最后。整段 JSON.parse 会失败。官方写法是:只读 text 块,从每个 { 或 [ 试解析,留下最后一个完整值,不要取第一个 { 到最后一个 } 的整段——中间可能夹着草稿。原理见《JSON.parse 为什么失败》。这是兜底,不是合同。
强制工具这条,跟 Opus 5.5 一样 400
5.5 家族共用同一句报错:
tool_choice: type "tool" and "any" are not supported for this model.
替代仍是:tool_choice 留 auto,工具开 strict: true,用 JSON Schema 卡住参数;最终答复走 Structured Output。想让模型倾向调工具,把「何时该调」写进提示词。提示词影响 auto 选哪把工具,不代替 Schema。 细节不在这里展开,见《Opus 5.5 为什么不能再靠 tool_choice 强制出 JSON》《Tool Calling 为什么依赖 JSON Schema》。
5.5 还多了一处名字容错:偶尔用错大小写调用工具,或参数名差一点。宿主不要当致命错误;能唯一对上就收,否则回 is_error: true 并写出准确名字。Schema 仍要严,名字匹配可以宽一档。
价目没变,默认 effort 是 high
标价与 Sonnet 5 相同。官方 30% 的「更便宜」来自每任务更少 token,不是价目表。独立评测已经写出反例:任务不自己限制输出时,新模型可能更贵。换路由之前,用同一份 Schema 跑一遍抽取。
effort 档位重新校准过。同一档 high,5.5 想的量和 Sonnet 5 不是一回事。官方建议:日常从 high 起;代理编码、步骤清楚的工具循环从 medium 起;聊天和延迟敏感从 medium 或 low 起。改顶层 effort 会打掉 prompt cache;按轮改要用自适应思考下的 per-message effort(beta)。between_tools 不许中途改档。
和 Opus 5.5 并排时不要混默认值:Opus 5.5 默认 medium,Sonnet 5.5 默认 high。只换模型字符串、不写 effort,账单和延迟都会跳。thinking 块也不能跨档乱读:5.5 能读 Sonnet 5、Opus 4.8、Haiku 4.5 及更早的块,不读 Opus 5 / Opus 5.5 / Fable / Mythos。反过来,别的模型也不读 Sonnet 5.5 的块。从 Opus 5.5 切到 Sonnet 5.5,推理历史会被接口丢掉,请求仍 200,丢弃的块不计费。
温度、缓存、计算机工具、advisor
temperature / top_p / top_k 非默认即 400。以前靠采样参数「收紧 JSON」的流水线,现在只能收紧 Schema。缓存门槛降到 512 token,短系统提示更容易命中;代价是改顶层 effort 仍会废缓存。
Claude API 与 Google Cloud 上,计算机工具只收 computer_toolset_20260801。Bedrock 继续收 computer_20251124。advisor(beta)不能再让 5.5 执行器配 Opus 4.8 / 4.7 或 Sonnet 5;5.5 接受的 advisor 一律返回加密的 advisor_redacted_result,客户端读不到建议正文。
中途改工具 Schema,可走 inline-tools-2026-09-15,在对话中途的 system 消息里带完整定义,不去改请求顶层的 tools。这和 thinking 块绑前缀是一套:历史只追加。compaction(compact-2026-09-04)可以在保留 thinking 有效的前提下换摘要块,条件见官方 Compaction 页。
换模型字符串之前先核的五件事
- 搜
thinking。删掉disabled和budget_tokens。只要关前置思考,写between_tools,effort 不超过high。JSON 演算题走自适应思考。 - 搜
tool_choice。任何any/ 点名tool都改成auto,开strict,收紧input_schema。 - 搜
temperature/top_p/top_k。非默认就删。稳 JSON 靠 Schema,不靠采样。 - 显式写
effort。不要吃默认 high。和 Opus 5.5 共用路由时,两边默认值不同。 - 回放与缓存。8 月 31 日后的账号不要改历史里的 tools / system。从 Opus 5.5 切过来,做好 thinking 被丢的准备。
用本地 JSON 工具看 Schema
把模型 ID 改成 claude-sonnet-5-5 之前,先在浏览器里摊开三份文本:旧的 input_schema、一条曾经靠 disabled 或强制 tool_choice 拿到的 arguments、你准备交给 Structured Output 的那份 Schema。
- JSON 校验 — 文法是否合法;有 Schema 就一起核必填和多余键。
- JSON 格式化 — 展开压成一行的工具定义,看
additionalProperties有没有写。 - JSON Diff — 对比「关 thinking 时的样本」和「strict Schema 允许的最小对象」。
数据不离开浏览器。合同稳定了,再改模型字符串。5.5 会换 effort、会拒收 disabled 和旧 tool_choice;你的字段名和 required 不应跟着一起松。
常见问题 FAQ
只改 model 为 claude-sonnet-5-5 能上线吗?
不能当默认。只要请求里还有 thinking.disabled、budget_tokens、tool_choice 的 any/tool、非默认温度,或 Claude API 上的 computer_20251124,就会 400。
between_tools 是不是新的 disabled?
只在无工具时看起来像。有工具时,进度仍走 thinking 块。它不接受 display / budget_tokens / 中途改 effort,也不能配 xhigh 或 max。JSON 演算题不要用它。
价目没变,账单为什么还会动?
默认 effort 是 high,档位重新校准过。官方 30% 省钱来自每任务更少 token,不是标价。任务不限制输出时,独立评测见过更贵的结果。用同一份 Schema 自己跑一遍。
和 9 月 22 日的 Opus 5.5 是一回事吗?
强制工具、thinking 块绑定、旧计算机工具,两条线同源。Sonnet 5.5 多出来的是 disabled→between_tools、默认 effort high、温度锁定、advisor 配对,以及无工具 JSON 不要关思考。分开迁,不要一张工单。
没有 Structured Output,还怎么收 JSON?
只读 text 块,解析最后一个完整 JSON 值,不要吃整段正文。stop_reason 为 max_tokens 就重试。这是兜底。能上 Schema 就上 Schema。
Haiku 5.5 到了吗?
截至 2026 年 9 月 29 日,官方仍写「未来几周」。不要把这篇的 breaking change 预支到还没发布的档。
总结
Sonnet 5.5 把价目表按住,把 disabled 收成了 400。从 Sonnet 5 抄请求,会在 thinking、tool_choice、温度三处硬失败。要关前置思考,写 between_tools;要稳定 JSON,走自适应思考 + Structured Output,或 auto + strict + JSON Schema。无工具的演算题关 thinking,官方已经量过会抽歪。
先在本地校验工具里把 Schema、样本 arguments、strict 合同看平,再改 claude-sonnet-5-5。标价可以不变;字段合同不应跟着一起松。