Claude Opus 5.5:四个破坏性 API 变更及其对路由设置的影响

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

TheRouter Editorial来源 Anthropic
抽象架构示意图,展示 API 请求经过网关路由时的参数形态变化,代表 Claude Opus 5.5 的四个破坏性变更

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 5Opus 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 级别为 lowmedium(默认)、highmax。原来用禁用 thinking 来节省 token 的简单 prompt,改用 low。响应中会出现 thinking 块;在多轮对话中追加时,需要按 type 选择内容块,并将 thinking 块原样传回。

路由影响:如果网关有注入 thinking: {type: "disabled"} 做成本控制的规则,该规则在 Opus 5.5 上会 400。等价替换是 output_config: {effort: "low"}。这两个不是同一个参数,不能混用。

破坏性变更 2:强制 tool_choice 返回 400

tool_choiceanytool 类型均不支持:

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 统一规范化为 anytool 的网关中间件,都需要为 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 5n/a
Claude Haiku 4.5n/a

还有一条仅追加对话的强制规则:对于 2026 年 8 月 31 日 00:00 UTC 后创建的账户,在对 systemtools 或早期消息进行编辑后重放 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-1claude-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 APIclaude-opus-5-5
Amazon Bedrockanthropic.claude-opus-5-5
Google Cloudclaude-opus-5-5
Microsoft Foundryclaude-opus-5-5
Claude Platform on AWSclaude-opus-5-5

Claude Code 中的 /claude-api migrate 技能(/claude-api migrate this project to claude-opus-5-5)会自动处理 ID 替换和全部四个破坏性变更,并能检测 Bedrock 和 Vertex 客户端并调整相应的 ID 格式。

切换模型 ID 前的审计清单

  1. 搜索 thinking 字段用法。 所有 {type: "disabled"}{type: "enabled", budget_tokens: N} 调用都会失败。替换为 output_config: {effort: "..."}
  2. 搜索 tool_choice.typeanytool 的用法。 替换为 auto + 严格工具定义 + prompt 指令。
  3. 审计回退链。 如果在会话中途回退到非 Fable/Mythos 模型,thinking 上下文会丢失。明确决策并记录。
  4. 检查 computer use 工具类型。 如果在 Claude API 或 Google Cloud 上使用 computer_20251124,切换到 computer_toolset_20260801
  5. 重新校准基于成本的路由阈值。 缓存读取价格下降 60% 显著改变了 agentic 工作负载的每任务实际成本。
  6. 检查网关中间件中的 thinking 注入或 tool_choice 规范化逻辑。 对所有 Claude 调用注入这些参数的规则,在 Opus 5.5 上需要加模型感知分支。
客服支持