Claude Opus 5.5:四个破坏性 API 变更及其对路由设置的影响
Claude Opus 5.5 四个破坏性变更:thinking 无法禁用、强制 tool_choice 返回 400、thinking 块无法跨非 Fable/Mythos 模型、computer_20251124 已移除。每个变更有具体修复方案,三个涉及公告未提及的回退路由影响。

Anthropic 于 2026 年 9 月 22 日发布了 Claude Opus 5.5。性能达到 Fable 5.1 水平、总成本比 Opus 5 降低 40%——这些核心数据是真实的。但对 operator 来说,真正的故事在迁移指南里:四个破坏性参数变更,任意一个在切换模型 ID 的瞬间就会让现有集成静默失败。
本文逐一梳理每个变更的报错信息、修复方案,以及(在相关场景下)对回退路由和跨 provider 行为的影响。
成本数学:40% 是工作负载数字,不是 token 单价
先把定价说清楚,因为这个数字很容易被误读。
token 单价相比 Opus 5 下降了 20%:
| Token 类型 | Opus 5 | Opus 5.5 | 变化 |
|---|---|---|---|
| 输入 | $5/M | $4/M | −20% |
| 输出 | $25/M | $20/M | −20% |
| 缓存写入 | $6.25/M | $5/M | −20% |
| 缓存读取 | $0.50/M | $0.20/M | −60% |
Anthropic 引用的 40% 成本降幅是针对典型工作负载的,而非单独的 token 价格。之所以能到 40%,是因为 agentic 和编程工作负载是缓存读取密集型的——长编程会话中大部分 token 是 prompt cache 读取,而这部分价格下降了 60%。如果你的工作负载缓存读取比例高,40% 是合理的;如果是短上下文、低缓存调用,实际降幅接近 20%。
路由策略影响:如果你有基于成本的回退规则(每小时花费超过阈值时路由到 Opus 5),需要针对 Opus 5.5 重新校准阈值。agentic 工作负载的每任务实际成本变化幅度远超 token 单价所示。
破坏性变更 1:thinking 无法禁用
Opus 5.5 上,thinking 字段已被移除。发送 thinking: {type: "disabled"} 或 thinking: {type: "enabled", budget_tokens: N} 会返回 400:
"thinking.type.disabled" is not supported for this model.
"thinking.type.enabled" is not supported for this model.
thinking 始终开启且始终自适应。控制接口是 effort 参数,而非 thinking。
之前(Opus 5):
client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={"type": "disabled"},
messages=[{"role": "user", "content": "..."}],
)
之后(Opus 5.5):
client.messages.create(
model="claude-opus-5-5",
max_tokens=16000,
output_config={"effort": "low"}, # low effort 替代禁用 thinking
messages=[{"role": "user", "content": "..."}],
)
effort 级别为 low、medium(默认)、high 和 max。原来用禁用 thinking 来节省 token 的简单 prompt,改用 low。响应中会出现 thinking 块;在多轮对话中追加时,需要按 type 选择内容块,并将 thinking 块原样传回。
路由影响:如果网关有注入 thinking: {type: "disabled"} 做成本控制的规则,该规则在 Opus 5.5 上会 400。等价替换是 output_config: {effort: "low"}。这两个不是同一个参数,不能混用。
破坏性变更 2:强制 tool_choice 返回 400
tool_choice 的 any 和 tool 类型均不支持:
tool_choice: type "tool" and "any" are not supported for this model.
推理端点和 token 计数端点均会触发此报错。如果你通过名称强制运行某个工具,或用 any 确保至少有一次工具调用,这两种模式都已失效。
之前(Opus 5):
client.messages.create(
model="claude-opus-5",
tools=tools,
tool_choice={"type": "tool", "name": "get_weather"},
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)
之后(Opus 5.5):
client.messages.create(
model="claude-opus-5-5",
tools=[{**tool, "strict": True} for tool in tools],
tool_choice={"type": "auto"},
messages=[{
"role": "user",
"content": "What's the weather in Paris? Use the get_weather tool.",
}],
)
在每个工具定义上加 strict: True 启用严格工具使用:模型保证其 input 与工具的 input_schema 匹配。结合 prompt 中的明确指令,这可以替代大多数 type: "tool" 的使用场景。对于用 any 保证结构化响应的场景,结构化输出是替代方案。
路由影响:任何将所有 Claude 调用的 tool_choice 统一规范化为 any 或 tool 的网关中间件,都需要为 Opus 5.5 添加模型感知分支。
破坏性变更 3:thinking 块无法自由跨模型边界传递
这是对运行多模型回退的团队来说最隐蔽的变更。
在 Claude API 上,Opus 5.5 产生的 thinking 块只能被 Claude Fable 5.1 和 Claude Mythos 5.1 读取。其他任何模型都无法读取。具体来说:如果回退或故障转移在会话中途将请求从 Opus 5.5 路由到 Opus 5、Sonnet 5、Haiku 4.5 或任何非 Fable/Mythos 模型,这些轮次会在没有 thinking 上下文的情况下继续——不会报错,thinking 块会被静默丢弃。
反向也有具体规则:Opus 5.5 可以读取 Opus 5 及更早 Opus、Sonnet、Haiku 模型产生的 thinking 块,但无法读取 Fable 或 Mythos 模型的 thinking 块。
兼容性矩阵:
| 生产方 → 消费方 | Opus 5.5 块 | Opus 5 块 |
|---|---|---|
| Claude Opus 5.5 | ✓ | ✓(可读) |
| Claude Fable 5.1 | ✓(可读) | ✓ |
| Claude Mythos 5.1 | ✓(可读) | ✓ |
| Claude Opus 5 | — | ✓ |
| Claude Sonnet 5 | — | n/a |
| Claude Haiku 4.5 | — | n/a |
还有一条仅追加对话的强制规则:对于 2026 年 8 月 31 日 00:00 UTC 后创建的账户,在对 system、tools 或早期消息进行编辑后重放 thinking 块,默认返回 400。Claude Code、claude.ai、Claude Managed Agents 和 Claude Agent SDK 已强制执行此规则;直接调用 API 的用户需要自行审计。
路由影响: 如果你的回退链是 claude-opus-5-5 → claude-opus-5 → claude-sonnet-5,会话中途的故障转移会从第二跳开始丢失 thinking 上下文。是否可以接受取决于具体使用场景。对于编程 agent 和文档分析会话,丢失 thinking 上下文通常会降低下一轮的质量;对于简单的问答回退,可能问题不大。
如果需要在故障转移中保持 thinking 块的连续性,回退链应为 claude-opus-5-5 → claude-fable-5-1 或 claude-opus-5-5 → claude-mythos-5-1。两者都能读取 Opus 5.5 的块。但成本差异显著——Fable 5.1 为 $10/$50 输入/输出,而 Opus 5.5 为 $4/$20——这是一个需要主动做出的质量与成本权衡,而非从通用回退规则中继承。
破坏性变更 4:computer_20251124 工具类型已移除
在 Claude API 和 Google Cloud 上,类型为 computer_20251124 的工具条目会返回 400。替代方案是 computer_toolset_20260801 工具集。
之前:
tools = [{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1280,
"display_height_px": 800,
"display_number": 1,
}]
# 加上 beta header: "computer-use-2024-10-22"
之后:
tools = [{"type": "computer_toolset_20260801"}]
# 不需要 beta header。工具条目中无需 name 或显示尺寸。
工具集形式不在工具条目中内联设置显示尺寸——这些通过 system prompt 或环境配置来设置。Amazon Bedrock 在现有模型上保留了 computer_20251124 支持;移除仅适用于 Claude API 和 Google Cloud。
各平台的模型 ID
claude-opus-5-5 是不带日期后缀的固定快照 ID,同样的无日期方案适用于各平台:
| 平台 | 模型 ID |
|---|---|
| Claude API | claude-opus-5-5 |
| Amazon Bedrock | anthropic.claude-opus-5-5 |
| Google Cloud | claude-opus-5-5 |
| Microsoft Foundry | claude-opus-5-5 |
| Claude Platform on AWS | claude-opus-5-5 |
Claude Code 中的 /claude-api migrate 技能(/claude-api migrate this project to claude-opus-5-5)会自动处理 ID 替换和全部四个破坏性变更,并能检测 Bedrock 和 Vertex 客户端并调整相应的 ID 格式。
切换模型 ID 前的审计清单
- 搜索
thinking字段用法。 所有{type: "disabled"}或{type: "enabled", budget_tokens: N}调用都会失败。替换为output_config: {effort: "..."}。 - 搜索
tool_choice.type为any或tool的用法。 替换为auto+ 严格工具定义 + prompt 指令。 - 审计回退链。 如果在会话中途回退到非 Fable/Mythos 模型,thinking 上下文会丢失。明确决策并记录。
- 检查 computer use 工具类型。 如果在 Claude API 或 Google Cloud 上使用
computer_20251124,切换到computer_toolset_20260801。 - 重新校准基于成本的路由阈值。 缓存读取价格下降 60% 显著改变了 agentic 工作负载的每任务实际成本。
- 检查网关中间件中的
thinking注入或tool_choice规范化逻辑。 对所有 Claude 调用注入这些参数的规则,在 Opus 5.5 上需要加模型感知分支。
相关阅读
AI 路由新闻与供应商动态 →
Claude API:按需 Compaction 与 `auto` 权限模式,重写你的 Agent 循环设计
Anthropic 本周发布了两个面向 Operator 的 Beta 功能:`compact-2026-09-04` 把摘要生成移出关键路径,`auto` 权限模式把信任评估从你的代码转移到服务器。两者都改变了延迟、成本和控制权之间的边界。

Fable 5.1 打破两个 Operator 假设:`tool_choice` 强制调用和 Thinking Block 复用
Claude Fable 5.1 带来两个静默的管道杀手:`tool_choice: any` 和 `tool_choice: tool` 现在返回 400,而 Thinking Block 的版本绑定与前缀不匹配强制执行对 2026 年 8 月 31 日之后创建的账户立即生效。在将生产流量路由到新模型之前,两者都需要立即迁移。

Claude Sonnet 5 的三项破坏性 API 变更:迁移前每位 Operator 必须完成的审查
Claude Sonnet 5 带来三个生产级陷阱:adaptive thinking 默认开启、temperature/top_p/top_k 传非默认值将返回 400、新 tokenizer 导致 token 数量膨胀约 30%。这是 operator 迁移前的完整核查清单。