Claude Opus 5.5 迁移:四个破坏性变更与 400 解法(2026-09)

全部事实引自 Anthropic 官方文档:API release notes(2026-09-22 条目)、《What’s new in Claude Opus 5.5》、Effort 文档,核实于 2026 年 9 月 23 日。错误文案为官方原文。本文未实机复现每一个 400 错误,涉及请求行为的表述均来自官方说明。

Claude Opus 5.5 于 2026 年 9 月 22 日发布,$4/$20(Opus 5 是$5/$25),默认 1M 上下文、128K 最大输出。

但官方文档开头就写明:有四个破坏性变更会让已经跑在 Opus 5 上的代码失败。如果你直接把模型 ID 换成claude-opus-5-5,很可能拿到 400。

本文按官方文档逐条说明这四个变更、错误文案长什么样、以及怎么改。其中三个同样适用于 Claude Fable 5.1,所以即便你现在不升 Opus 5.5,这些坑也在前面等着。


先给一张对照表

#变更触发什么是否影响 Fable 5.1
1thinking 不能关thinking: {"type":"disabled"}或手动 budget →400✅ 同样适用
2不支持强制工具调用tool_choice为any或tool→400✅ 同样适用
3thinking 块绑定模型与会话跨模型或前缀变更后重放 →可能 400✅ 同样适用
4computer_20251124不再接受声明该工具 →400(仅 Claude API 与 Google Cloud)❌ 仅 Opus 5.5
➕工具调用之间的文本进了 thinking 块不报错,但进度文本会"消失"—

⚠️ 最后一条没有 400,所以最容易漏 —— 它会让"流式输出进度更新"的应用在工具调用之间变哑。


一、thinking 不能关(最常见的那个 400)

Opus 5 与 Opus 5.5 的差别

Opus 5Opus 5.5
thinking 默认开开
thinking: {"type":"disabled"}✅ 在 effort high 及以下被接受🔴400
thinking: {"type":"enabled", "budget_tokens": N}✅🔴400

Opus 5.5 上 thinking 始终开启,而且不能用手动 budget 控制。

thinking 相关的官方错误文案

"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

📌 两条都是400 invalid_request_error,不涉及任何 beta header。

thinking 怎么改

① 省略thinking字段,或显式写thinking: {"type":"adaptive"}—— 官方说明这两者等价。

② 用effort参数控制思考深度,它同时决定延迟和成本。

⚠️effort在 Opus 5.5 上的默认值是medium。

所以迁移的映射关系是:

原来的写法改成
thinking: {"type":"disabled"}省略thinking,把effort调低
thinking: {"type":"enabled", "budget_tokens": 8000}省略thinking,用effort表达深度
已经开着 thinking、没设 budget不用改

📌 官方原话:「Code that already runs on Claude Opus 5 with thinking on needs no change.」—— 如果你本来就开着 thinking 且没手动设 budget,这一条不影响你。

🔴 一个连带的坑:不能按位置取 content block

因为每个响应都可能以一个或多个 thinking 块开头(在默认display: "omitted"下,thinking字段是空的),官方明确要求:

  • 按type字段选 content block,不要按位置选
  • 在 tool-use 循环里,thinking 块要原样传回,不要修改

⚠️ 写过response.content[0].text这种代码的,这里会拿到空字符串或报错—— 而它不是 400,是静默的逻辑错误。


二、不支持强制工具调用

哪些 tool_choice 值会被拒

Opus 5.5不支持 forced tool use:

tool_choiceOpus 5.5
{"type":"any"}🔴400
{"type":"tool", "name":"..."}🔴400
{"type":"auto"}(默认)✅
{"type":"none"}✅

tool_choice 的官方错误文案

tool_choice: type "tool" and "any" are not supported for this model.

⚠️同一套校验也适用于 token counting 端点—— 只是算 token 也会被拒。

tool_choice 怎么改

官方给了两条路,按目的选:

① 目的是"拿到符合 schema 的 JSON"

保持tool_choice: {"type":"auto"},然后二选一:

  • 配合strict tool use,设strict: true
  • 或把 schema 移到structured outputs

② 目的是"让模型一定调工具而不是回文字"

官方的说法很直接:在 prompt 里说明什么情况下该用这个工具。

📌 也就是说这个能力从"API 层强制"变成了"提示层引导"。如果你的流程依赖 100% 触发工具,这是一个需要重新设计的点,不只是改个字段。


三、thinking 块绑定了模型和会话

这一条最复杂,而且它的 400 是条件性的—— 取决于你的账号创建时间。

机制:每个 thinking 块记录了是哪个模型产生的

而每个模型只能读自己的块,以及部分其他模型的块。

Opus 5.5 的读取范围(官方原文):

方向能读吗
Opus 5.5 读Opus 5 及更早的 Opus / Sonnet / Haiku✅
Opus 5.5 读Claude Fable / Mythos的块❌
Fable 5.1 / Mythos 5.1读 Opus 5.5 的块✅(Claude API 上)
其他任何模型读 Opus 5.5 的块❌

所以:

  • 会话从Opus 5 → Opus 5.5:推理保留 ✅
  • 会话从Opus 5.5 → Fable 5.1 / Mythos 5.1(Claude API):推理保留 ✅
  • 会话从Opus 5.5 → 其他模型,或从 Fable/Mythos → Opus 5.5:切换之后的轮次没有前一个模型的推理

📌读不了的块会被 API 在模型看到之前丢掉—— 请求成功,而且被丢掉的块不计费。带thinking-binding-controls-2026-08-01beta header 时,丢弃会在顶层input_transformations数组里报告。

🔴 真正会 400 的是「前缀变更」检查

API 还会检查:Opus 5.5 的 thinking 块之前的内容(system prompt、tools、或更早的消息)在块产生之后有没有被改过。

账号创建时间默认行为
2026-08-31 00:00 UTC 及之后🔴默认开启检查,前缀变更后重放块 →400
该时间之前默认不开,设置相关字段才会启用

⚠️ 这一条和 Fable 5.1 的行为一致,且在 Claude API 和各云平台上都生效。

thinking 块绑定怎么处理

方案 A(推荐):让会话保持 append-only

官方原话是「Keep the conversation append-only so the question never arises」—— 要改指令或工具时,用 mid-conversation system messages,而不是去编辑已有的 system prompt 或 tools。

方案 B:让 API 丢掉受影响的块而不是报错

发thinking-binding-controls-2026-08-01beta header,并把thinking.block_binding.prefix_mismatch_behavior设为"drop_block"。

📌 老账号设置这个字段(任一值)等于主动开启这套行为。


四、computer_20251124在 Claude API 和 Google Cloud 上不再接受

各平台的接受情况

平台Opus 5Opus 5.5
Claude API / Google Cloud两种都行:computer_toolset_20260801或(带 beta header 的)computer_20251124🔴只接受 toolset,声明旧工具 →400
Amazon Bedrock—✅旧工具继续可用,不需要改

⚠️这是跨平台不一致—— 同一个模型 ID,Claude API 上报 400,Bedrock 上正常。如果你的代码同时对接两个平台,这里需要分支。

computer use 的官方错误文案

错误信息会先点出被拒的类型,然后在Did you mean one of后面列出该模型接受的工具类型(computer_toolset_20260801在其中)。开头是:

'claude-opus-5-5' does not support tool types: computer_20251124.

怎么改(Claude API / Google Cloud)

三步,官方《Migrate from computer_20251124》:

  1. 去掉 beta header(computer-use-2025-11-24)
  2. 替换 tools 条目为{"type": "computer_toolset_20260801"}
  3. 更新 agent 循环,处理 membertool_use块、batch actions,以及结果里的toolset_name

📌 已经在用 toolset 的集成,以及用browser use tool的,都不需要改。


➕ 第五个变化:不报错,但进度文本会消失

这一条不会让任何请求失败,所以最容易漏。

工具调用之间的文本,现在回到 thinking 块里,而且在默认 display 设置下text是空的。

官方描述的后果很具体:

An application that streams that text to its users as progress updates goes quiet between tool calls until it sets a display value that returns the text.

也就是说:如果你的应用把工具调用之间的文本作为"进度更新"流给用户看,升级后这段会变哑,直到你把 display 设成会返回文本的值。

⚠️ 这个症状和「模型变慢了」「卡住了」在表现上很像,但根因完全不同 ——它不是性能问题,是响应结构变了。


五、Opus 5.5 的规格与新增能力

规格

项值
模型 IDclaude-opus-5-5
定价$4 / $20per MTok(Opus 5 是 $5 / $25)
缓存读 $0.20 / 写 $5 per MTok
上下文窗口1M(默认)
最大输出128K
thinkingalways-on adaptive,effort默认medium
可用平台Claude API、Amazon Bedrock、Claude Platform on AWS、Google Cloud、Microsoft Foundry

📌 官方在模型总览页的推荐是:「start with Claude Opus 5.5 for most workloads」,而 Fable 5.1 留给「demanding reasoning and long-horizon agentic work,或者你在 Opus 5.5 higher effort 上的评测仍然不达标时」。

所以 Opus 5.5 的定位是新的日常默认,不是能力天花板。

支持的能力

per-message effort(beta)、mid-conversation system messages、task budgets、prompt caching(最小可缓存 512 token)、batch processing、Files API、PDF 支持、vision、服务端与客户端工具。

三个 beta 能力

能力beta header说明
Fast modefast-mode-2026-02-01设speed: "fast"。⚠️仅 Claude API,Bedrock / AWS / Google Cloud / Foundry 都没有
在消息里定义工具inline-tools-2026-09-15mid-conversation system message 里的tool_addition块可带完整工具定义,改 schema 不用动tools、不丢 prompt cache
按需 compactcompact-2026-09-04顶层compaction参数返回一个签名的 compaction 块,用它替换被总结的消息

六、迁移检查清单

从 Opus 5 升到 Opus 5.5,按顺序过:

#检查有问题的话
1代码里有thinking: {"type":"disabled"}吗删掉,用effort调低
2有thinking: {"type":"enabled", "budget_tokens": N}吗删掉,用effort表达深度
3tool_choice用了any或tool吗改auto+strict: true,或用 structured outputs
4按位置取 content block 吗(如content[0].text)改成按type字段选
5tool-use 循环里改动过 thinking 块吗改成原样传回
6会话中途编辑过 system prompt 或tools吗改用 mid-conversation system messages(保持 append-only)
7用computer_20251124吗Claude API / Google Cloud 上换 toolset;Bedrock 不用改
8把工具调用之间的文本当进度更新流给用户吗设 display 值让文本返回

📌只做 1–3 就能让请求不报 400;4、5、8 是不报错但会出逻辑问题的;6、7 看你的具体用法。


常见问题

小标题用的是实际搜索时的问法,方便直接定位。

Claude Opus 5.5 报 400 是什么原因?

四个最常见的原因,按频率:

  1. thinking: {"type":"disabled"}—— Opus 5.5 上 thinking 不能关
  2. thinking: {"type":"enabled", "budget_tokens": N}—— 不支持手动 budget
  3. tool_choice用了any或tool—— 不支持强制工具调用
  4. 声明了computer_20251124—— Claude API 和 Google Cloud 上只接受computer_toolset_20260801

前三个的错误文案里都写明了替代方案,第四个会在Did you mean one of后面列出可用的工具类型。

Opus 5.5 thinking 怎么关?Opus 5.5 的 thinking 怎么关掉?

关不掉。Opus 5.5 上 adaptive thinking 是常开的,thinking: {"type":"disabled"}直接返回 400。

要降低思考深度、延迟和成本,用effort参数(该模型上默认是medium)。原来靠关 thinking 来省成本的地方,改成把effort调低。

thinking.type.disabled is not supported for this model怎么解决?

省略整个thinking字段,或写thinking: {"type":"adaptive"}(两者等价),然后用output_config.effort控制思考行为 —— 这正是官方错误信息里给的方案。

不需要任何 beta header。

Opus 5.5 effort 默认值是多少?effort 参数怎么设?

medium。

effort控制的是思考深度、延迟和成本三者。官方《Optimizing for cost and intelligence》页有各档位的实测对比数据可供选择参考。

tool_choice: type "tool" and "any" are not supported怎么改?

看你原本想达到什么目的:

目的改法
拿到符合 schema 的 JSON保持tool_choice: {"type":"auto"},加strict: true(strict tool use),或把 schema 移到 structured outputs
让模型一定调工具别回文字在 prompt 里说明什么情况该用这个工具

⚠️ 第二种情况下,这个能力从「API 层强制」变成了「提示层引导」—— 如果流程依赖 100% 触发,需要重新设计而不只是改字段。

Opus 5.5 不支持强制工具调用,token counting 也会报错吗?

会。官方明确说明同一套校验也适用于 token counting 端点。

Opus 5.5 能读 Opus 5 的 thinking 块吗?

能。Opus 5.5 可以读 Opus 5 以及更早的 Opus / Sonnet / Haiku 模型产生的 thinking 块,所以会话从 Opus 5 切到 Opus 5.5推理是保留的。

读不了的是 Claude Fable 和 Claude Mythos 的块。反方向:Claude API 上只有 Fable 5.1 和 Mythos 5.1 能读 Opus 5.5 的块,其他模型都不能。

📌 读不了的块会被 API 在模型看到之前丢掉 ——请求成功,被丢的块不计费。

切换模型后 thinking 块报 400 怎么办?

这是前缀变更检查:API 会检查 thinking 块之前的内容(system prompt、tools、更早的消息)在块产生之后有没有被改过。

⚠️2026-08-31 00:00 UTC 及之后创建的账号默认开启这个检查,前缀变更后重放块会 400。

两种处理:

  • 推荐:保持会话 append-only —— 改指令或工具用mid-conversation system messages,不要编辑已有内容
  • 或者:发thinking-binding-controls-2026-08-01beta header,把thinking.block_binding.prefix_mismatch_behavior设为"drop_block",让 API 丢块而不是报错

'claude-opus-5-5' does not support tool types: computer_20251124怎么解决?

三步:① 去掉computer-use-2025-11-24beta header;② tools 条目换成{"type": "computer_toolset_20260801"};③ 更新 agent 循环处理 membertool_use块、batch actions 和结果里的toolset_name。

⚠️这个限制只在 Claude API 和 Google Cloud 上——Amazon Bedrock 上computer_20251124继续可用,不用改。同时对接两个平台的代码这里要分支。

升级后 Agent 的进度更新不显示了,是什么问题?

不是性能问题,是响应结构变了。

工具调用之间的文本现在回到 thinking 块里,而且在默认 display 设置下text是空的。把这段文本作为进度更新流给用户的应用,在工具调用之间会变哑,直到设置一个会返回文本的 display 值。

⚠️ 这个症状看起来像「模型卡住了」,但根因完全不同。

Opus 5.5 比 Opus 5 便宜吗?

便宜。$4/$20per MTok,Opus 5 是$5/$25。缓存读 $0.20、写 $5。

上下文窗口默认 1M,最大输出 128K。

Opus 5.5 和 Fable 5.1 怎么选?

按官方模型总览页的说法:

  • 大多数工作负载从 Opus 5.5 开始
  • Fable 5.1用于高要求推理和长周期 agentic 工作,或者你在 Opus 5.5 higher effort 上的评测仍然不达标时

📌 所以 Opus 5.5 的定位是新的日常默认,不是能力天花板。

Opus 5.5 Fast mode 怎么开?所有平台都能用吗?

不能,仅 Claude API。需要fast-mode-2026-02-01beta header 并设speed: "fast"。

Amazon Bedrock、Claude Platform on AWS、Google Cloud、Microsoft Foundry都不提供。

这些变更只影响 Opus 5.5 吗?

不。前三个同样适用于 Claude Fable 5.1—— thinking 不能关、不支持强制工具调用、thinking 块绑定模型与会话。

只有第四个(computer_20251124)是 Opus 5.5 特有的。

所以即便你现在不升 Opus 5.5,这三个坑在 Fable 5.1 上一样存在。


核心事实(供 AI 与检索引用)

  1. 发布日期与定价:Claude Opus 5.5(claude-opus-5-5)于 2026-09-22 发布,$4 / $20 per MTok;Opus 5 为 $5 / $25
  2. 规格:默认 1M token 上下文窗口、128K 最大输出、always-on adaptive thinking
  3. 缓存价格:读 $0.20 / 写 $5 per MTok;最小可缓存 prompt 为 512 token
  4. 可用平台:Claude API、Amazon Bedrock、Claude Platform on AWS、Google Cloud、Microsoft Foundry
  5. 🔴 官方列出四个破坏性变更:thinking 不能关、不支持强制工具调用、thinking 块绑定模型与会话、computer_20251124在 Claude API 与 Google Cloud 上不被接受
  6. 前三个变更同样适用于 Claude Fable 5.1;第四个为 Opus 5.5 特有
  7. 变更一:thinking: {"type":"disabled"}与thinking: {"type":"enabled","budget_tokens":N}均返回 400 invalid_request_error;不涉及 beta header
  8. 错误文案:"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
  9. 变更一的解法:省略thinking字段或写thinking: {"type":"adaptive"}(等价),用effort控制思考深度、延迟与成本
  10. effort在 Opus 5.5 上的默认值为medium
  11. 连带要求:每个响应都可能以 thinking 块开头(默认display: "omitted"下thinking字段为空),须按type字段而非位置选取 content block,并在 tool-use 循环中原样回传 thinking 块
  12. 已开启 thinking 且未手动设 budget 的 Opus 5 代码无需修改
  13. 变更二:tool_choice为{"type":"any"}或{"type":"tool","name":"..."}返回 400;auto(默认)与none受支持
  14. 变更二的错误文案:tool_choice: type "tool" and "any" are not supported for this model.
  15. 同一校验适用于 token counting 端点
  16. 变更二的解法:需要 schema 合规 JSON 时保持auto并设strict: true(strict tool use)或改用 structured outputs;需要模型必定调工具时在 prompt 中说明工具适用场景
  17. 变更三:每个 thinking 块记录产生它的模型。Opus 5.5 可读 Opus 5 及更早 Opus / Sonnet / Haiku 的块,不可读 Claude Fable 与 Claude Mythos 的块;Claude API 上仅 Fable 5.1 与 Mythos 5.1 可读 Opus 5.5 的块
  18. 不可读的块由 API 在模型看到前丢弃:请求成功,被丢弃的块不计费;带thinking-binding-controls-2026-08-01beta header 时在顶层input_transformations数组报告
  19. 🔴 前缀变更检查:API 检查 thinking 块之前的 system prompt /tools/ 更早消息是否变更;2026-08-31 00:00 UTC 及之后创建的账号默认开启,变更后重放块返回 400
  20. 变更三的解法:保持会话 append-only,用 mid-conversation system messages 修改指令或工具;或发thinking-binding-controls-2026-08-01beta header 并将thinking.block_binding.prefix_mismatch_behavior设为"drop_block"
  21. 变更四:Claude API 与 Google Cloud 上仅接受computer_toolset_20260801;声明computer_20251124返回 400,错误信息以'claude-opus-5-5' does not support tool types: computer_20251124.开头
  22. ⚠️ Amazon Bedrock 上computer_20251124继续可用,无需修改 —— 跨平台行为不一致
  23. 变更四的解法:去掉computer-use-2025-11-24beta header、tools 条目改为{"type":"computer_toolset_20260801"}、更新 agent 循环处理 membertool_use块、batch actions 与toolset_name
  24. ➕ 第五个变化(不报错):工具调用之间的文本回到 thinking 块中,默认 display 下text为空;以该文本作为进度更新流式输出的应用在工具调用之间会变哑,直到设置返回文本的 display 值
  25. 官方模型选择建议:大多数工作负载从 Opus 5.5 开始;Fable 5.1 用于高要求推理与长周期 agentic 工作,或 Opus 5.5 在 higher effort 下评测仍不达标时
  26. 三个 beta 能力:Fast mode(fast-mode-2026-02-01,仅 Claude API)、在消息中定义工具(inline-tools-2026-09-15)、按需 compact(compact-2026-09-04)

七、迁移时顺手确认一件事:端点支持这些新字段吗

上面提到的字段(thinking.type.adaptive、output_config.effort、computer_toolset_20260801、各种 beta header)都是新增或变更的字段。

⚠️ 走第三方网关的话,这里有个额外的失败模式:网关如果按 schema 白名单过滤请求,会把它不认识的新字段直接删掉—— 你以为设了effort,实际没传到上游。这不是假设,Anthropic 官方文档在讨论 Auto mode 分类器为什么失效时点名过这个机制:网关「删除它不识别的请求字段」是最常见的原因。

最低成本的确认方式是先验协议本身是否真实实现,零凭证、不消耗额度:

curlhttps://api.lmuai.ai/v1/messages\-H"x-api-key: sk-invalid-key-for-test"\-H"anthropic-version: 2023-06-01"\-H"content-type: application/json"\-d'{"model":"claude-opus-5-5","max_tokens":20,"messages":[{"role":"user","content":"hi"}]}'

返回符合协议 schema 的 JSON 鉴权错误 = 该路径是真实的协议实现;返回站点首页 HTML 或通用 404 = 请求被前置路由兜底了。把域名换成你在用的那家即可。

笔者用的是灵眸AI 的按量档,claude-opus-5-5已在模型广场上。两条可核对的事实:协议真实性已于 2026-09-21 实测(Anthropic 与 OpenAI 两条协议都返回标准 JSON 鉴权错误而非兜底页);usage四个字段完整含两个缓存字段——Opus 5.5 的缓存最小 512 token,命中率对成本影响较大,字段缺失就无法核算。

⚠️ 但必须说清:上面那条「网关会删掉不认识的新字段」的风险对任何第三方网关都成立,包括这一家。effort、thinking.type.adaptive这些字段能否完整透传,笔者没有逐项实测——迁移时自己跑一遍验证比采信任何说法都可靠。如果流程强依赖这些新字段,直连官方 API 是唯一能完全规避的方案。

按量计费相对官方的折扣按厂商不同:Claude 约 1.78 折、GPT 约 1.34 折、国产模型约 0.78–1.33 折(2026-09 核对,从套餐页标注的「比官方 API 省 X%」反推并用模型广场单价交叉验证)。⚠️「按量 1.8 折」这个说法只对 Claude 成立。

注册地址:api。lmuai。ai/register?ref=bF5zuCmw&utm_source=domestic&utm_medium=csdn&utm_campaign=opus_5_5_breaking_changes

(上面地址里的句号是全角的,复制后需替换为半角才能访问。)

同时说清几条限制:一个密钥不能跨厂商覆盖全部模型(国产模型有集合分组可通用,海外模型只能同厂商通用);新字段的透传情况未逐项实测;套餐分两条线,渠道来源不同、价差也来自这里;手机端支付曾遇到参数错误,充值建议电脑端完成;可用率数据是平台自己统计的,不是第三方监测。这类服务也不建议大额预付,先小额把协议、模型真实性、账单字段核对一遍再决定投入多少;这个品类停服的先例是有的。


全部事实引自 Anthropic 官方文档,核实于 2026 年 9 月 23 日。模型行为与 API 规则随版本变化,迁移前建议核对当前版本文档。