先给结论:Opus 5.5 不是把模型字符串换一下就完事。2026 年 9 月 22 日,Anthropic 发布 Claude Opus 5.5(claude-opus-5-5)。价目表好看:输入 / 输出 $4 / $20,比 Opus 5 低 20%;缓存读 $0.20,低 60%。官方说典型工作负载大约省 40%。同一天 OpenAI 把 GPT-6 Sol / Luna 砍到半价。真正会炸生产的,是四处硬失败:thinking 关不掉;tool_choice 的 any / tool 返回 400;thinking 块绑模型和对话;Claude API 与 Google Cloud 拒收 computer_20251124。以前靠「强制工具调用」保证出一份 JSON 的流水线,现在必须改走 auto + strict: true 的 JSON Schema,或 Structured Output。
这篇按 2026 年 9 月 24 日写,依据 Anthropic 当天仍有效的模型页与「What's new」。本站已有《Tool Calling 为什么依赖 JSON Schema》《Structured Output 是什么》《Agents API 之后为什么更需要 JSON》。本文只回答:换到 5.5 之后,JSON 合同哪一层要改。
9 月 22 日发了什么
Claude Opus 5.5 是 Claude 5.5 家族的第一档。官方定位:长跑 Agent 编码与知识工作。模型 ID 在 Claude API、Google Cloud、Microsoft Foundry 都是 claude-opus-5-5;Bedrock 是 anthropic.claude-opus-5-5。退役承诺不早于 2027 年 9 月 22 日。Sonnet 5.5 与 Haiku 5.5「未来几周」才来。
价目(每百万 token):输入 $4、输出 $20、5 分钟缓存写 $5、1 小时缓存写 $8、缓存读 $0.20。批处理半价。Fast mode 仅 Claude API:speed: "fast" 加 fast-mode-2026-02-01,输入 / 输出 $8 / $40,官方写最高约 2.5 倍速度。默认 effort 是 medium——Opus 5 默认是 high。漏写 effort,行为会变,不是无声兼容。
公告里的基准表把 Terminal-Bench 4.0 写成 66.4%(相对 GPT-6 Astra 的 57.9%)。Anthropic 自己也说:到这个能力档,分差不如真实任务可靠;和 Fable 5.1 的体感差距比分数窄。这篇不拿排行榜当选型依据。
四处硬失败,一张表
文档把「换成 5.5 就 400」的请求列得很清楚。前三条对 Fable 5.1 同样成立:
| 旧写法 | 5.5 上会怎样 | 该改成什么 |
|---|---|---|
thinking: {"type": "disabled"} 或 enabled + budget_tokens | 400 invalid_request_error | 省略 thinking,或 {"type": "adaptive"};深度用 effort |
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 仍收旧工具 |
还有一处不报错但会静音:工具调用之间的短说明,改走 thinking 块。默认 display: "omitted" 时空文本。靠流式「中间句」当进度条的界面,会突然没声。要进度,设 thinking.display。
为什么不能再靠 tool_choice 强制出 JSON
2024–2025 年的常见补丁是:定义一个「提取」工具,把 tool_choice 设成 any 或点名那把工具,模型就不得不交一份 input_schema 里的对象。程序读 tool 的 arguments,不再 JSON.parse 聊天正文。这条路在 5.5 上直接 400:
tool_choice: type "tool" and "any" are not supported for this model.
官方替代不是「再写一句请输出 JSON」。替代是:tool_choice 留 auto,工具定义开 strict: true,用 JSON Schema 卡住参数;要固定形状的最终答复,把 Schema 放到 Structured Output。想让模型倾向调工具而不是用散文回答,把「何时该调」写进提示词。提示词影响选哪把工具,不代替 Schema。
所以 5.5 并没有让 JSON 变次要。它拆掉了「强制调用」这根拐杖。拐杖一拆,合同必须自己站得住。原理见《Tool Calling 为什么依赖 JSON Schema》。
auto + strict + JSON Schema
迁移后的最小形状是:
{
"model": "claude-opus-5-5",
"tool_choice": { "type": "auto" },
"tools": [
{
"name": "extract_order",
"description": "Extract a confirmed order. Call when the user has named a sku and a quantity.",
"strict": true,
"input_schema": {
"type": "object",
"properties": {
"sku": { "type": "string" },
"qty": { "type": "integer", "minimum": 1 }
},
"required": ["sku", "qty"],
"additionalProperties": false
}
}
]
}
strict: true 让解码阶段按 Schema 收参数。缺字段、类型错、多出来的键,应在这一层被挡,而不是靠「强制调用」赌模型会交对象。最终答复如果也要进程序,用 Structured Output,不要再解析助手句子。见《Structured Output 是什么》《JSON.parse 为什么失败》。
中途改工具 Schema,5.5 支持用 inline-tools-2026-09-15 在对话中途的 system 消息里带完整定义,而不去改请求顶层的 tools——这和「thinking 块绑前缀」是一套:历史只追加,不改已经发出去的合同快照。
Thinking 关不掉,回灌也不能改
5.5 上 adaptive thinking 常开。再写 disabled 或手动 budget_tokens,400。深度、延迟、费用用 effort:low / medium / high / xhigh / max。以前关 thinking 省 token 的地方,改降 effort。同一档 effort,5.5 往往比 Opus 5 想得更多,尤其 xhigh 和 max。给 max_tokens 留出 thinking 的空间。
每个 thinking 块记下是哪一档模型写的。5.5 能读 Opus 5 及更早的 Opus / Sonnet / Haiku 块,不读 Fable / Mythos。反向:Fable 5.1 与 Mythos 5.1 在 Claude API 上能读 5.5 的块,别的模型不行。读不了的块会被接口丢掉再送给模型,请求仍 200,丢弃的块不计费。要看见这次丢了什么,加 thinking-binding-controls-2026-08-01,看顶层 input_transformations。
更狠的是前缀绑定。2026 年 8 月 31 日 00:00 UTC 及之后开的账号,默认检查 thinking 块之前的 system、tools、更早消息有没有被改过。改过再回放,400。这是 Fable 5.1 带过来的 preserved thinking。不要回头改历史里的工具 Schema 来「修合同」——那会让整段 thinking 作废。新工具用中途 system 消息加;回灌时 thinking 块原样传回。
computer_20251124 与进度条变安静
Claude API 和 Google Cloud 上,5.5 只收 computer_toolset_20260801。还带着 computer-use-2025-11-24 beta 头和旧工具类型,400。Bedrock 继续收 computer_20251124。浏览器工具、已经在用 toolset 的集成不用改。循环一侧要处理成员 tool_use 块、批量动作、结果上的 toolset_name。
工具调用之间的短句不再是 text 块。默认省略显示后,进度流没了,也没有报错。这不是 Schema 问题,是读块时按位置而不是按 type。先按类型分流,再决定要不要开 thinking.display。
价目表旁边还站着 Sol / Luna
同一天 OpenAI 发布 GPT-6 Sol(gpt-6-sol,$2 / $10)和 GPT-6 Luna(gpt-6-luna,$0.10 / $0.50),大约是 GPT-5.6 同档的一半。Astra 仍是 $10 / $50。Luna 官方场景就是高流量、目标清楚的抽取和摘要——正是 JSON 流水线爱用的那一档。价低不等于 Schema 可以松。
选型不要只看标价。Opus 5.5 的 40% 省钱,一半来自缓存和「每任务更少 token」,不是价目表上的 20%。默认 effort 从 high 降到 medium,账单和延迟都会动。换模型之前用同一份 Schema 跑一遍抽取,比对着发布会数字改路由更有用。GPT-5.5 仍按计划在 10 月 14 日退出 ChatGPT / Work / Codex(API 不受这次退役影响);那是另一条产品线,不要和 5.5 的 breaking change 混成一次「全盘升级」。
换模型字符串之前先核的四件事
- 搜
tool_choice。任何any/ 点名tool都改成auto。要稳定 JSON,开strict并收紧input_schema。 - 搜
thinking。删掉disabled和budget_tokens。显式写effort。按type读块,thinking 原样回灌。 - 搜
computer_20251124。Claude API / Google Cloud 换成 toolset。Bedrock 可以暂时不动。 - 回放与缓存。8 月 31 日后的账号不要改历史里的 tools / system。中途改 Schema 走追加消息。compaction(
compact-2026-09-04)可以在保留 thinking 有效的前提下换摘要块,条件见官方 Compaction 页。
用本地 JSON 工具看 Schema
把模型 ID 改成 claude-opus-5-5 之前,先在浏览器里摊开三份文本:旧的 input_schema、一条曾经靠 tool_choice 逼出来的 arguments、你准备改成 strict 的那份 Schema。
- JSON 校验 — 文法是否合法;有 Schema 就一起核必填和多余键。
- JSON 格式化 — 展开压成一行的工具定义,看
additionalProperties有没有写。 - JSON Diff — 对比「强制调用时的样本」和「strict Schema 允许的最小对象」。
数据不离开浏览器。合同稳定了,再改模型字符串。5.5 会换 effort、会多想、会拒收旧 tool_choice;你的字段名和 required 不应跟着一起松。
常见问题 FAQ
只改 model 为 claude-opus-5-5 能上线吗?
不能当默认。只要请求里还有 thinking.disabled、budget_tokens、tool_choice 的 any/tool,或 Claude API 上的 computer_20251124,就会 400。
没有强制工具,还怎么保证输出是 JSON?
tool_choice 用 auto,工具开 strict,input_schema 写满 required 并关掉 additionalProperties。最终答复走 Structured Output。不要 JSON.parse 聊天正文。
thinking 关不掉,是不是账单一定更贵?
不一定。价目更低,缓存读更便宜,官方称典型负载大约省 40%。默认 effort 是 medium。用 effort 换深度,不要用 disabled 换账单。
Fable 5.1 要不要一起改?
thinking 常开、禁止强制工具、thinking 块绑定,Fable 5.1 已经有。computer_20251124 这条主要打在 Claude API / Google Cloud 的 5.5 上。Bedrock 仍收旧计算机工具。
进度条为什么突然没了?
工具之间的短句改走 thinking 块,默认 display 省略文本。按 type 读块,需要进度就设 thinking.display。这不是 Schema 校验失败。
和 10 月 14 日 GPT-5.5 退役是一回事吗?
不是。GPT-5.5 退出的是 ChatGPT / Work / Codex,API 不受那次退役影响。Opus 5.5 是另一家的新模型加 breaking change。两条线分开迁。
总结
Opus 5.5 把「强制工具调用」从合法拐杖收成了 400。价目表和 40% 的典型省钱,盖不住四处硬失败。要稳定 JSON,走 auto + strict + JSON Schema,或 Structured Output。thinking 常开、块绑对话、旧计算机工具在部分平台作废——这些都是换字符串之前的清单,不是上线之后的观察。
先在本地校验工具里把 Schema、样本 arguments、strict 合同看平,再改 claude-opus-5-5。模型会换,effort 会调;你的字段合同不应跟着一起松。