Claude API · 版本迁移

Claude Fable 5 升级 5.1:API 迁移与兼容检查

不要只把 model 改成 claude-fable-5-1 就上线。工具调用、thinking block、缓存、输出上限和回退路径都需要单独验证。

更新日期:2026-09-19·适用:原生 Anthropic 与兼容渠道

1. 迁移前先建立 Fable 5 基线

保存一组能够代表生产流量的请求:普通对话、长上下文、结构化输出、并行工具、失败重试和多轮 thinking。记录模型 ID、HTTP 状态、request ID、输入/输出/缓存 Token、总耗时和业务验收结果。没有旧版本基线,就无法判断 5.1 是改进还是行为漂移。

2. 先在测试环境切换模型 ID

MODEL_ID=claude-fable-5-1
FALLBACK_MODEL=claude-fable-5

先请求模型列表确认渠道存在,再发最小文本请求。401 表示密钥或权限问题,404/模型不存在通常表示渠道尚未开放,429 需要区分额度和限流;这些状态码应由代码处理,不要交给模型猜测。

3. 回归所有 tool use 分支

重点测试强制工具选择、连续工具调用、工具参数校验、工具报错回传和结束条件。对每个工具保留 JSON Schema 测试样本,确保缺失字段、额外字段和错误类型都能被确定性代码拒绝。兼容渠道还要检查 Anthropic tool block 是否被转换成 OpenAI 风格调用,以及转换后是否丢失调用 ID。

4. 检查 thinking block 的保存与回放

如果应用会把上一轮响应完整写回下一轮,请确认 thinking block 的顺序、签名和关联关系符合当前 API 要求。不要自行拼接、删改或伪造推理块。只需要最终答案的业务,可只保存必要的可见消息与结构化状态,减少兼容风险和上下文膨胀。

5.1 的 effort 应作为显式配置,而不是从用户文本里猜。规划、执行和复核可以采用不同档位,但必须设置上限,防止简单任务长期运行。

5. 重新计算缓存与长上下文成本

将稳定的系统提示、工具定义和固定资料放入可缓存区域,把用户问题和实时数据留在动态区。分别观察 cache creation、cache read、普通输入和输出用量。缓存命中率低时,继续堆叠大上下文不会自动省钱。

6. 灰度上线与回退

  1. 先放 1% 非关键流量,验证状态码和账单字段。
  2. 扩大到 5%—10%,比较业务成功率和单位任务成本。
  3. 工具调用或结构化输出失败时回退 Fable 5/Opus 5,但限制重试次数。
  4. 只有在连续观察窗口稳定后,才调整默认模型。

不要在一次请求中隐式切换多个模型,否则日志无法解释。模型资料见 Claude Fable 5.1 API;选型差异见 Fable 5.1 vs Opus 5

7. 三个会直接阻断迁移的变化

变化旧代码风险迁移办法
强制 tool choiceany 或指定 tool 会返回 HTTP 400改用 auto,在提示中明确要求调用,并使用 strict tools 或 JSON 输出约束
thinking 向后兼容Fable 5 无法读取 Fable 5.1 产生的 thinking blocks回退旧模型时仅传递可见消息和应用状态,不回放新模型 thinking
历史消息被编辑改写更早轮次会让已保存 thinking blocks 失效保持历史不可变;需要修正时新增一轮消息

这些变化必须进入自动化回归测试。只验证普通文本请求会漏掉最容易在生产中出错的分支。

8. 强制工具调用的前后差异

迁移前:可能在 5.1 返回 400

{
  "model": "claude-fable-5-1",
  "tool_choice": {"type": "tool", "name": "lookup_order"},
  "tools": [{"name": "lookup_order", "input_schema": {"type": "object"}}]
}

迁移后:auto + 明确指令 + 严格 schema

{
  "model": "claude-fable-5-1",
  "tool_choice": {"type": "auto"},
  "tools": [{
    "name": "lookup_order",
    "description": "查询订单;回答订单状态前必须调用",
    "strict": true,
    "input_schema": {
      "type": "object",
      "properties": {"order_id": {"type": "string"}},
      "required": ["order_id"],
      "additionalProperties": false
    }
  }]
}

应用代码仍要校验参数、订单权限和返回结果。模型选择工具不等于模型获得执行权限。

9. Thinking block 兼容矩阵

产生 thinking 的模型下一轮模型处理建议
Fable 5Fable 5.1新模型可读取旧模型块,但仍需保留原始顺序
Fable 5.1Fable 5不要回传 5.1 thinking;改传可见答案与结构化状态
Fable 5.1Fable 5.1,历史未改保持原始消息和 block,不自行拼接
Fable 5.1Fable 5.1,早期消息被编辑thinking 失效;从最后一个可信状态重新开始

Fable 5.1 使用 adaptive thinking,不能像部分旧模型那样直接关闭。控制成本时应调整 effort,而不是伪造或删除 thinking block。

10. Effort 校准不要一次拍板

从 high 开始建立基线,再分别测试 medium、xhigh 或 max。低 effort 可能减少工具调用和解释,高 effort 可能增加计划、搜索和验证步骤;因此必须同时记录成功率和 Token,不能把“输出更长”当作“质量更好”。

  • medium:格式转换、明确的小修复和低风险批处理。
  • high:默认迁移起点,适合大多数复杂生产任务。
  • xhigh:多轮搜索、编码 Agent 和需要反复工具调用的任务。
  • max:仅留给错误代价极高且高 effort 已失败的少数问题。

11. 灰度、监控和回滚模板

MODEL_PRIMARY=claude-fable-5-1
MODEL_FALLBACK=claude-opus-5
ROLLOUT_PERCENT=5
MAX_MODEL_ATTEMPTS=2
LOG_FIELDS=model,request_id,status,usage,tool_calls,latency,fallback_reason

回退不应偷偷发生。每次回退都记录原因,并避免把 5.1 thinking block 交给不能读取它的旧模型。发布顺序建议为:影子流量 → 1% 非关键请求 → 5% → 20% → 50% → 100%;每一阶段都设置最低成功率、最高单位任务成本和最长延迟阈值。

发布失败条件

  • 出现未处理的 400 tool choice 错误。
  • 结构化输出或工具参数通过率低于旧版本基线。
  • 单位成功任务成本超过预算阈值。
  • 回退后对话状态丢失或重复执行有副作用的工具。

官方来源:Anthropic Fable 5.1 migration guideFable 5.1 overviewEffort documentation,核对日期 2026-09-19。实际渠道字段与权限以接口响应为准。