Claude Sonnet 4.5 于 11 月 30 日退役:迁移 5.5 时 8/14 请求失败
目录
Claude Sonnet 4.5(claude-sonnet-4-5-20250929)将于 2026 年 11 月 30 日停止提供 Claude API。Sonnet 4.5 常见的 14 种请求形式(请求参数的不同组合)中,有 8 种会在官方推荐的替代模型 Claude Sonnet 5.5 上返回 HTTP 400。Anthropic 已于 9 月 30 日弃用 Sonnet 4.5。弃用期间模型仍会响应,但退役日期之后,发给该模型的所有请求都会失败。Amazon Bedrock 会继续提供该模型至 2027 年 4 月 8 日,Google Cloud 尚未公布日期。我们通过 Anthropic API 向 Sonnet 4.5、Claude Sonnet 4.6 和 Sonnet 5.5 发送了相同的 14 种请求,并比较了响应结构、token 数量和成本。
TL;DR
- Claude Sonnet 4.5 将于 2026 年 11 月 30 日停止提供 Claude API,并于 2027 年 4 月 8 日退出 Amazon Bedrock。
- 使用 API 版本
2023-06-01时,Sonnet 5.5 拒绝了 14 种请求中的 8 种;使用2026-10-21时则为 9 种。 - Sonnet 4.6 只拒绝了其中 1 种,即 assistant prefill,价格与 Sonnet 4.5 相同。
- 短请求在 Sonnet 5.5 上每 1,000 次成本为 $1.54,在 Sonnet 4.5 上为 $1.47。尽管标价降低了 33%,实际成本基本不变。
Claude Sonnet 4.5 何时停止服务?
Sonnet 4.5 将于 2026 年 11 月 30 日从 Anthropic 运营的所有平台下线,在两个合作伙伴运营的平台上则会晚一些。因此,具体退役日期取决于调用平台。
| 平台 | 2026 年 10 月 26 日的状态 | 最后服务日期 |
|---|---|---|
| Claude API、AWS 上的 Claude Platform、Google Cloud 上由 Anthropic 管理的 Claude Models、Microsoft Foundry | 9 月 30 日弃用 | 2026 年 11 月 30 日退役 |
Amazon Bedrock(anthropic.claude-sonnet-4-5-20250929-v1:0) | 10 月 8 日起进入 Legacy 状态 | 2027 年 4 月 8 日结束生命周期;2027 年 1 月 8 日起进入「public extended access」,届时价格可能上涨 |
Google Cloud,由 Google 管理(claude-sonnet-4-5@20250929) | 正式可用 | 尚未宣布弃用;模型页面给出的退役时间为「不早于」2026 年 9 月 29 日 |
来源:Anthropic 的模型弃用说明、Bedrock 的模型生命周期(Legacy),以及 Google Cloud 的 Sonnet 4.5 模型页面和合作伙伴模型弃用说明(两者均于 10 月 22 日更新)。
Bedrock 的 Legacy 状态有单独的规则。新客户无法开始使用该模型。已有账户如果连续 15 天没有调用,也可能失去访问权限。此外,用户无法再为该模型购买新的 Provisioned Throughput(预留容量)。从 2027 年 1 月 8 日开始,该模型将进入 public extended access,期间 Anthropic 可能提高价格。
Synthorai 通过 Amazon Bedrock 和 Google Cloud 提供 Sonnet 4.5,因此在 11 月 30 日之后,通过 Synthorai 调用 claude-sonnet-4-5 仍可继续使用。Bedrock 自身的结束日期是 2027 年 4 月 8 日。截至 10 月 26 日,claude-sonnet-4-5 和 claude-sonnet-4-5-20250929 均可通过 Synthorai 正常响应。应利用这段额外时间完成迁移:Bedrock 可能从 1 月 8 日起调整价格,而且该模型最终仍会下线。
哪些 Sonnet 4.5 请求会在 Sonnet 5.5 上失败?
Sonnet 4.5 接受的 14 种请求形式中,有 8 种会在 Sonnet 5.5 上失败,另有 1 种会在 Sonnet 4.6 上失败。我们使用 anthropic-version: 2023-06-01,通过 Anthropic API 向每个模型分别发送了一次各种形式的请求。10 月 21 日发布主要版本之前的 Anthropic SDK 使用的就是这个 API 版本。200 表示请求被接受,400 表示请求被拒绝。
| 请求 | Sonnet 4.5 | Sonnet 4.6 | Sonnet 5.5 |
|---|---|---|---|
| 不设置采样或 thinking 参数 | 200 | 200 | 200 |
temperature: 0 | 200 | 200 | 400 |
temperature: 1.0(默认值) | 200 | 200 | 200 |
top_p: 0.9 | 200 | 200 | 400 |
top_k: 40 | 200 | 200 | 400 |
thinking: {"type": "enabled", "budget_tokens": 2048} | 200 | 200 | 400 |
thinking: {"type": "disabled"} | 200 | 200 | 400 |
tool_choice: {"type": "auto"} | 200 | 200 | 200 |
tool_choice: {"type": "any"} | 200 | 200 | 400 |
tool_choice: {"type": "tool", "name": ...} | 200 | 200 | 400 |
| Assistant prefill(请求以不完整的 assistant 消息结束) | 200 | 400 | 400 |
stop_sequences | 200 | 200 | 200 |
带有 1 小时 cache_control 的 system prompt | 200 | 200 | 200 |
max_tokens: 64000 | 200 | 200 | 200 |
错误消息说明了应改用什么参数:
| 请求 | Sonnet 5.5 上的错误消息 |
|---|---|
非默认值的 temperature、top_p、top_k | ”`temperature` is deprecated for this model.” |
使用 budget_tokens 的 thinking | ""thinking.type.enabled” is not supported for this model. Use “thinking.type.adaptive” and “output_config.effort” to control thinking behavior.” |
thinking: disabled | ”To turn thinking off on this model, send “thinking”: {“type”: “between_tools”} instead of {“type”: “disabled”}.” |
强制 tool_choice | ”tool_choice: type “tool” and “any” are not supported for this model.” |
| Assistant prefill | ”This model does not support assistant message prefill. The conversation must end with a user message.” |
新版 SDK 主要版本会发送 API 版本 2026-10-21。该版本对这三个模型都移除了采样参数,因此 Sonnet 4.5 上的 temperature 也会失败。在两个 API 版本下,其余各项结果都与上表一致。
如何修复各种失败的请求?
Sonnet 5.5 为每种失败请求都提供了替代方式:
| Sonnet 4.5 请求 | Sonnet 5.5 替代方式 |
|---|---|
temperature、top_p、top_k | 删除这些参数,改为通过 prompt 约束输出 |
使用 budget_tokens 的 thinking | 使用 "thinking": {"type": "adaptive"}(由模型决定思考量),并设置 "output_config": {"effort": "low"}、"medium" 或 "high"(默认值;effort 控制可使用的思考量) |
thinking: disabled | 使用 "thinking": {"type": "between_tools"}(回答前不进行 thinking;工具调用之间的简短注释会作为 thinking block 返回) |
tool_choice: any 或 tool | 使用 tool_choice: auto,并在 prompt 中指定工具名称;测试中,每个模型的 auto 都在 10 次请求中返回了 10 次工具调用 |
| Assistant prefill | 以 user 消息结束;如需 JSON 输出,请使用结构化输出 |
Sonnet 4.5 中设置 thinking 预算的调用,在 Sonnet 5.5 上应改为:
import anthropic
client = anthropic.Anthropic()
# Sonnet 4.5:
# client.messages.create(model="claude-sonnet-4-5-20250929", max_tokens=4096,
# thinking={"type": "enabled", "budget_tokens": 2048}, messages=messages)
response = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
thinking={"type": "adaptive"},
output_config={"effort": "medium"}, # low, medium or high (the default)
messages=[{"role": "user", "content": "Extract the invoice total as JSON."}],
)
哪些变化不会触发错误?
Sonnet 5.5 响应的第一个 content block 不一定是文本,因此读取 response.content[0].text 的代码即使收到 200,也可能报错。Sonnet 5.5 默认会进行 thinking(high effort 的 adaptive thinking)。如果响应使用了 thinking,第一个 block 会是 thinking,除非明确请求其内容,否则其中的文本为空。我们按照 Sonnet 4.5 代码的调用方式,不设置 thinking 参数,发送了 20 个抽取类 prompt。其中 11 个 Sonnet 5.5 响应以 thinking block 开头。Sonnet 4.5 和 Sonnet 4.6 的 40 个响应则全部以文本开头。另有 20 个只需返回一个单词的分类 prompt,三个模型都以文本开头。
应按类型读取 text block,而不是依赖位置:
text = "".join(block.text for block in response.content if block.type == "text")
Thinking 也计入输出 token。对于 Sonnet 4.5 不会生成 thinking 的同类调用,Sonnet 5.5 每次抽取调用平均产生 69 个 thinking token。这些 token 记录在 usage.output_tokens_details.thinking_tokens 中,并按输出价格计费。
Sonnet 5.5 比 Sonnet 4.5 便宜吗?
Sonnet 5.5 的单 token 价格比 Sonnet 4.5 低 33%。每百万输入和输出 token 分别为 $2 / $10,而 Sonnet 4.5 为 $3 / $15。但相同调用的实际成本基本不变,因为同样的文本会计为更多 token,而且模型默认启用 thinking。我们为每个模型测试了 40 个短生产请求(20 个分类、20 个抽取)。Sonnet 5.5 每 1,000 次调用的成本为 $1.54,Sonnet 4.5 为 $1.47。
| 调用 | Sonnet 4.5 单次成本 | Sonnet 5.5 单次成本 | 输入 token,4.5 到 5.5 |
|---|---|---|---|
| 分类(单词标签),n=20 | $0.00080 | $0.00067 | 240 到 309 |
| 抽取(从电子邮件提取 JSON 字段),n=20 | $0.00214 | $0.00241 | 310 到 388 |
| 定义一个工具的单次工具调用,n=10 | $0.00253 | $0.00128 | 577 到 391 |
token 数量的变化来自 tokenizer,也就是将文本拆分为 token 的组件。Sonnet 5.5 使用 Anthropic 新模型的 tokenizer,而 Sonnet 4.5 和 Sonnet 4.6 共用旧版 tokenizer。我们使用 Anthropic 免费的 count_tokens 端点,统计了各类真实文本的 8,000 字符样本。统计时减去了仅包含「OK」的消息 token 数,Sonnet 4.5 为 8 个,Sonnet 5.5 为 10 个,这基本代表每条消息的固定开销:
| 文本(8,000 字符) | Sonnet 4.5 和 4.6 | Sonnet 5.5 | 变化 |
|---|---|---|---|
| 英文技术博客文章 | 3,179 | 3,846 | +21% |
| 文章的德文译文 | 3,536 | 4,546 | +29% |
| 文章的中文译文 | 5,770 | 6,378 | +11% |
| 文章的日文译文 | 5,559 | 6,112 | +10% |
| Python 源代码 | 2,433 | 3,216 | +32% |
| JSON 记录 | 2,079 | 2,745 | +32% |
中文和日文文章中包含英文术语、数字和 Markdown。对于较短的纯中文或纯日文文本,两个 tokenizer 的统计结果相同。如果按 Sonnet 4.5 的价格计算,Sonnet 5.5 每 1,000 次调用的成本会达到 $2.31。这说明 token 用量增加了 57%,33% 的降价抵消了其中大部分,但没有全部覆盖。工具调用是例外:尽管 tokenizer 会产生更多 token,其输入量仍从 577 降至 391。因此,API 添加到 prompt 中的工具使用说明在 Sonnet 5.5 上可能更短。对于一个工具和一个短 prompt,成本降低了一半。
是否应该先迁移到 Sonnet 4.6?
Sonnet 4.6 的迁移成本最低。它与 Sonnet 4.5 价格相同,使用相同的 tokenizer(上面所有文本的 token 数量完全一致),而且在测试的 14 种请求中,只有 assistant prefill 失败。其退役日期不早于 2027 年 2 月 17 日,可将迁移到 Sonnet 5.5 的时间推迟约 11 周。如果无法在 11 月 30 日之前改造 thinking 预算、强制工具调用和响应解析,可以先迁移到 Sonnet 4.6,再安排后续的 Sonnet 5.5 迁移。
| Sonnet 4.5 | Sonnet 4.6 | Sonnet 5.5 | |
|---|---|---|---|
| 标价,每百万输入 / 输出 token | $3 / $15 | $3 / $15 | $2 / $10 |
| 测试的 14 种请求中被拒绝的数量 | 0 | 1 | 8 |
| 相同文本的 token 数量 | 基准 | 相同 | 英文 +21%,代码和 JSON +32%,中文和日文文章约 +10% |
| 测试中每 1,000 次短调用的成本 | $1.47 | $1.47 | $1.54 |
| Claude API 退役日期 | 2026 年 11 月 30 日 | 不早于 2027 年 2 月 17 日 | 不早于 2027 年 9 月 28 日 |
11 月 30 日之前应检查什么?
| 如果代码中有以下行为 | 检查项 | 修改方式 |
|---|---|---|
设置 temperature、top_p 或 top_k | 是否使用任何非默认值 | 迁移到 Sonnet 5.5 时删除;Sonnet 4.6 在 2023-06-01 上仍接受这些参数 |
| 设置 thinking 预算 | thinking.budget_tokens | 改用带 effort 级别的 adaptive thinking |
| 关闭 thinking | thinking: disabled | 改为 thinking: between_tools |
| 强制调用工具 | tool_choice 为 any 或 tool | 改为 auto,并在 prompt 中指定工具名称 |
| 预填 assistant 消息 | 以 assistant 消息结束的请求 | 改为以 user 消息结束;JSON 使用结构化输出 |
读取 content[0].text | 响应解析逻辑 | 按 type == "text" 过滤 block |
| 按 token 数量规划预算 | prompt 和上下文限制 | 使用 count_tokens 重新统计;测试中英文增加 21%,代码增加 32% |
| 在 Amazon Bedrock 上运行 | 使用 Bedrock 日期,而不是 Anthropic 日期 | 2027 年 4 月 8 日结束,1 月 8 日起价格可能变化 |
常见问题
Claude Sonnet 4.5 何时退役? Claude Sonnet 4.5 将于 2026 年 11 月 30 日从 Claude API、AWS 上的 Claude Platform、Google Cloud 上由 Anthropic 管理的 Claude Models,以及 Microsoft Foundry 退役。Amazon Bedrock 将于 2027 年 4 月 8 日停止提供该模型。截至 2026 年 10 月 26 日,由 Google 管理的 Google Cloud 尚未公布日期。
什么模型会替代 Claude Sonnet 4.5?
Anthropic 推荐使用 Claude Sonnet 5.5(claude-sonnet-5-5)。Claude Sonnet 4.6 也可作为短期替代方案:价格与 Sonnet 4.5 相同,测试中只有 assistant prefill 被拒绝,并且至少可用到 2027 年 2 月 17 日。
11 月 30 日之后,Sonnet 4.5 请求会怎样?
发给已退役模型的请求会失败,因此从 11 月 30 日开始,通过 Claude API 调用 claude-sonnet-4-5-20250929 会返回错误。平台不会自动迁移调用,需要自行修改模型名称和请求形式。
相关阅读
- Claude Sonnet 5.5 成本:effort 级别,以及与 Sonnet 5 相比的单任务成本
- LLM thinking 控制:不同厂商如何实现 adaptive thinking 和 effort
- GPT-4 和 GPT-3.5 Turbo 下线:OpenAI 模型面临的同类迁移问题
- LLM 结构化输出:无需 assistant prefill 的 JSON 输出