Claude Sonnet 5.5 迁移指南
借助本迁移指南,从较早的 Sonnet 模型或 Claude Haiku 4.5 切换到 Claude Sonnet 5.5。启用 Claude Sonnet 5.5 的指导内容包括会返回错误的设置、思考方面的变化,以及针对每种起始模型的检查清单。
本指南列出了从 Claude Sonnet 5、Claude Sonnet 4.6、Claude Sonnet 4.5、Claude Sonnet 4、Claude 3.7 Sonnet 或 Claude Haiku 4.5 迁移到 Claude Sonnet 5.5 所需的代码更改。请先阅读前两节,然后向下阅读到与您当前模型对应的章节。迁移检查清单按起始模型列出了每一项更改。
Claude Code
让 Claude Code 为您迁移代码
/claude-api migrate 将此项目迁移到 claude-sonnet-5-5Claude Sonnet 5.5 的价格与 Claude Sonnet 5 相同,但提示缓存读取除外,其费用为每百万令牌 0.10 美元,是 Claude Sonnet 5 费率的一半。请参阅定价。有关其上下文窗口和输出限制,请参阅 Claude Sonnet 5.5 模型页面。有关功能和提示编写,请参阅 Claude Sonnet 5.5 的新功能和为 Claude Sonnet 5.5 编写提示。
向 Claude Sonnet 5.5 发送请求
此请求可以按原样在 Claude Sonnet 5.5 上运行。它设置了 effort 级别,并省略了五个会返回 400 错误的设置:思考预算、采样参数、助手预填充、强制工具选择以及 thinking: {"type": "disabled"}。
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Analyze the trade-offs between microservices and monolithic architectures",
}
],
output_config={"effort": "medium"},
)
print(f"Stop reason: {response.stop_reason}")
for block in response.content:
if block.type == "text":
print(block.text)默认启用思考
在 Claude Sonnet 5.5 上,不含 thinking 字段的请求会以 adaptive thinking(自适应思考)运行,thinking: {"type": "adaptive"} 也是如此。在 Claude Sonnet 4.6 及更早的模型以及 Claude Haiku 4.5 上,此类请求不进行思考。若要继续在不进行前置思考的情况下运行,请参阅关闭前置思考。
| 模型 | 不含 thinking 字段时的思考 | 接受的 thinking.type 值 | 默认 display |
|---|---|---|---|
| Claude Sonnet 5.5 | 开启 | "adaptive"、"between_tools" | "omitted" |
| Claude Sonnet 5 | 开启 | "adaptive"、"disabled" | "omitted" |
| Claude Sonnet 4.6 | 关闭 | "adaptive"、"disabled"、"enabled"(已弃用) | "summarized" |
| Claude Sonnet 4.5 和 Claude Haiku 4.5 | 关闭 | "disabled"、"enabled" | "summarized" |
处理响应中的思考
原本不进行思考的代码需要完成以下全部三项。来自 Claude Sonnet 5 的代码可能已经具备前两项。
- 按
type读取内容块。 响应可能以thinking块开头,因此读取content[0].text的代码会出错。 - 在工具使用循环中原样传回
thinking块,包括空块。请参阅保留思考块。 - 重新审视
max_tokens。 它涵盖思考和文本,且思考令牌按输出令牌计费。请参阅成本控制。
思考文本默认被省略。thinking 块到达时 thinking 字段为空,并带有一个 signature。若要获取可读的摘要,请设置 display: "summarized",这是 Claude Sonnet 4.6 及更早模型以及 Claude Haiku 4.5 上的默认值。请参阅控制思考显示。
关闭前置思考
若要在 Claude Sonnet 5.5 上关闭前置思考,请发送 thinking: {"type": "between_tools"}。这是最低的思考设置。它在工具调用之间的进度更新仍会以带有摘要文本的 thinking 块形式返回。没有工具时,响应仅包含文本。Claude Sonnet 5 则使用 thinking: {"type": "disabled"} 关闭思考,而更早的模型默认不进行思考。在 Claude Sonnet 5.5 上,disabled 会返回 400 invalid_request_error:
To turn thinking off on this model, send "thinking": {"type": "between_tools"} instead of {"type": "disabled"}. The model does not think before responding. The short updates it writes between tool calls come back as thinking blocks.between_tools 适用于所有提供 Claude Sonnet 5.5 的平台。它在 low、medium 和 high effort 下均被接受。在 xhigh 或 max 下,它会返回 400 错误。若要以这些级别运行,请使用自适应思考:省略 thinking 字段或发送 thinking: {"type": "adaptive"}。between_tools 不接受其他字段:与其一同发送 display、budget_tokens 或 block_binding 会返回 400 错误。使用服务器端回退时,回退到 Claude Sonnet 5 的 between_tools 请求会在该模型上以 thinking: {"type": "disabled"} 运行。
使用 between_tools 时,effort 不能在对话中途更改:与当前生效级别不同的逐消息 output_config.effort 会返回 400 错误。若要在每一轮中改变 effort,请使用自适应思考。有关提示编写指导,请参阅在不进行前置思考的情况下运行。
之前(Claude Sonnet 5):
client.messages.create(
model="claude-sonnet-5",
max_tokens=16000,
thinking={"type": "disabled"},
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "..."}],
)之后(Claude Sonnet 5.5):
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=16000,
thinking={"type": "between_tools"},
output_config={"effort": "high"},
messages=[{"role": "user", "content": "..."}],
)按起始模型划分的迁移检查清单
从上往下依次处理各组,在涉及您的模型的那一组之后停止。对于 Claude Haiku 4.5,请应用除"Claude Sonnet 4 或更早版本"之外的所有组,最后以"仅限 Claude Haiku 4.5"结束。
所有起始模型
- 将模型 ID 更改为
claude-sonnet-5-5。 - 按
type读取内容块,并原样传回thinking块。 - 如需在不进行前置思考的情况下继续运行,请在
high或更低的 effort 下发送最低思考设置。 - 将强制工具使用替换为
auto和严格工具。 - 保持对话仅追加。
- 将计算机使用迁移到工具集,且不使用
fine-grained-tool-streaming-2025-05-14beta 标头。在 Amazon Bedrock 上,computer_20251124也可以使用。 - 将顾问工具与受支持的顾问配对使用,并预期会收到加密的建议。
- 从
thinking块中读取工具调用之间的文本。 - 处理拒绝,并配置回退。
- 重新运行您的 effort 扫描,并重新确定成本基线。
Claude Sonnet 4.6 或更早版本
- 预期不含
thinking字段的请求也会进行思考,并重新审视max_tokens。 - 用 effort 级别替换思考预算。
- 移除
temperature、top_p和top_k。 - 如果您显示思考文本,请设置
display: "summarized"。 - 重新计算令牌,并重新规划图像令牌预算。
Claude Sonnet 4.5 或更早版本
- 替换助手预填充。
- 使用标准 JSON 解析器解析工具调用输入。
- 显式设置
output_config.effort。 - 移除所有上下文窗口相关的 beta 标头。
- 移除
interleaved-thinking-2025-05-14,并将fine-grained-tool-streaming-2025-05-14替换为eager_input_streaming。 - 将
output_format移至output_config.format。
Claude Sonnet 4 或更早版本
- 将工具版本更新为
text_editor_20250728和code_execution_20260521。 - 处理
refusal和model_context_window_exceeded停止原因。 - 检查工具字符串参数中的末尾换行符。
- 移除
token-efficient-tools-2025-02-19和output-128k-2025-02-19。 - 审查您的提示。
仅限 Claude Haiku 4.5
- 替换
claude-haiku-4-5-20251001或其别名。 - 按更高的每令牌价格重新确定成本基线。
- 审查那些在 Claude Haiku 4.5 上因过短而无法缓存的提示。
从 Claude Sonnet 5 迁移到 Claude Sonnet 5.5
所有起始模型都需要完成本节中的更改。将您的模型 ID 替换为 claude-sonnet-5-5,它没有日期后缀。在其他平台上,请使用可用性下列出的 ID。
不支持强制工具使用
本页上所有较早的模型都接受类型为 any 或 tool 的 tool_choice。Claude Sonnet 5.5 会以 400 错误拒绝这两者,包括在令牌计数端点上:
tool_choice: type "tool" and "any" are not supported for this model.请发送 tool_choice: {"type": "auto"},并将该工具标记为 strict: true,以使其输入与 schema 匹配。此时模型可以不调用该工具而直接作答,因此请在提示中说明何时使用它。严格工具使用支持 JSON Schema 的一个子集,并要求每个对象都设置 additionalProperties: false。请参阅 JSON Schema 限制。
之前(Claude Sonnet 5):
client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
tools=tools,
tool_choice={"type": "tool", "name": "get_weather"},
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)之后(Claude Sonnet 5.5):
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
# 严格工具使用:每次调用都符合工具的 input_schema
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.",
}
],
)该示例将列表中的每个工具都标记为严格。一个请求最多可包含 20 个严格工具,且 MCP、计算机使用和浏览器使用工具集条目不接受 strict。在较长的工具列表中,只标记需要的工具。
思考块与模型和对话绑定
Claude Sonnet 5.5 读取来自 Claude Sonnet 5、Claude Opus 4.8、Claude Haiku 4.5 及更早模型的思考块。在 Claude API 和 Claude Models on Google Cloud (Google managed) 上,它还读取来自 Claude Haiku 5.5 的思考块。它不读取来自 Claude Opus 5、Claude Opus 5.5 或任何 Claude Fable 或 Claude Mythos 模型的块。
API 会丢弃模型无法读取的块。请求返回 200,且被丢弃的块不计费。请参阅切换模型再切换回来。
请保持对话仅追加,以使思考块通过前缀检查。若要更改指令或工具,请参阅对话中途系统消息和工具更改。
未通过 “prefix check”(前缀检查)可能会也可能不会导致 400 错误。要识别并处理这两种情况,请参阅思考块的前缀检查。
前缀检查在 Claude API 和部分云平台上运行。
Claude Sonnet 5.5 思考块仅在生成它们的账户或与其关联的账户中有效。请参阅保留思考。
部分计算机使用工具版本不受支持
Claude Sonnet 5.5 通过 computer_toolset_20260801 工具集支持计算机使用。在 Amazon Bedrock 上,Claude Sonnet 5.5 还接受带有 computer-use-2025-11-24 beta 标头的 computer_20251124 工具。对于任何它不接受的计算机使用工具版本(例如 Claude API 上的 computer_20251124),Claude Sonnet 5.5 都会返回 400 错误。它在任何平台上都不接受 computer_20250124。
使用工具集的集成无需更改。要迁移到工具集,请将 computer_20251124 或 computer_20250124 替换为 computer_toolset_20260801,并移除该版本的 beta 标头。有关请求和智能体循环方面的更改,请参阅从 computer_20251124 迁移。
如果您发送了 fine-grained-tool-streaming-2025-05-14 beta 标头,请在迁移到工具集时将其移除。与工具集条目一起使用时,它会返回 400 错误。请改为在每个需要的工具上设置 eager_input_streaming: true。
Advisor 工具接受的顾问更少
使用 Advisor 工具时,Claude Sonnet 5.5 执行器需要以下顾问之一:Claude Opus 5、Claude Opus 5.5、Claude Sonnet 5.5、Claude Fable 5、Claude Fable 5.1、Claude Fable 5.2、Claude Mythos 5、Claude Mythos 5.1 或 Claude Mythos 5.2。Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 5、Claude Sonnet 4.6 和 Claude Haiku 5.5 作为顾问会返回 400 错误。建议以 advisor_redacted_result 块的形式加密返回,因此其文本在响应中不可读。请参阅模型兼容性。
工具调用之间的文本在思考块中返回
在 Claude Sonnet 5.5 上,模型在工具调用之间写下的超过一两句话的说明会以进度更新 thinking 块的形式返回,在默认 display 下为空。较短的评论仍为 text。在 Claude Sonnet 5 及更早的模型上,工具调用之间的所有文本都以 text 块返回。不会有请求失败,但显示这些说明的界面将不再显示它们。
使用自适应思考时,将 display 设置为 "updates"(beta,需 thinking-display-updates-2026-08-18 标头)可单独获取这些更新,设置为 "summarized" 则可获取与推理混合在一起的更新。请在其后紧跟的 tool_use 块之前渲染每个非空的 thinking 块。使用 between_tools 时,无需 display 即可返回该文本。请参阅面向用户的进度更新。
安全分类器和回退
与 Claude Sonnet 5 相比,Claude Sonnet 5.5 会在更多类别中拒绝。拒绝会返回 stop_reason: "refusal",其 stop_details 可能指明以下类别之一:
"cyber": 该请求可能助长网络危害,例如恶意软件或漏洞利用开发。"bio": 该请求可能助长生物危害,例如危险的实验室方法。"frontier_llm": 该请求可能有助于开发具有竞争关系的 AI 模型。"reasoning_extraction": 该请求要求模型在响应文本中复现其内部推理。"general_harms": 该请求属于另一个使用政策领域。良性的工作也可能触发此类别。
服务器端回退(fallbacks: "default")在 Claude API 和 Claude Models on Google Cloud (Anthropic managed) 上处于 beta 阶段,它会在 Claude Sonnet 5 上重试 "cyber" 和 "frontier_llm" 拒绝。它不会重试 "bio"、"reasoning_extraction" 或 "general_harms" 拒绝。请参阅拒绝和回退以及拒绝如何计费。
对于来自 Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 的代码,实时网络安全防护措施是新增的。如需开展合法的安全工作,请申请加入 Cyber Verification Program。
其他更改
- 提示缓存: 最小可缓存提示为 512 个令牌,低于 Claude Sonnet 5、Claude Sonnet 4.6 和 Claude Sonnet 4.5 上的 1,024 个。请参阅提示缓存。
- 新功能: 有关对话中途的系统消息、对话中途的工具更改以及逐消息 effort,请参阅 Claude Sonnet 5.5 的新功能。使用
between_tools时,effort 不能在对话中途更改。
推荐的更改
重新运行您的 effort 扫描。Claude Sonnet 5.5 有五个 effort 级别:low、medium、high、xhigh 和 max。Claude API 上的默认值为 high。这些级别经过了重新校准,因此同一级别产生的思考量与 Claude Sonnet 5 上不同。除非您的工作负载是智能体型或对延迟敏感的,否则请从 high 开始。对于智能体编码和多步骤工具使用,规格明确的任务从 medium 开始,更难或更长的任务则改用 high。对于聊天和其他对延迟敏感的工作,从 medium 或 low 开始。在 output_config.effort 中设置级别。请参阅 Claude Sonnet 5.5 的推荐 effort 级别。然后对照为 Claude Sonnet 5.5 编写提示重新评估特定于模型的提示指令。
从 Claude Sonnet 4.6 及更早的 Sonnet 模型迁移到 Claude Sonnet 5.5
首先应用前面的每一节,替换 claude-sonnet-4-6。然后进行以下更改。如果使用的是 Claude Sonnet 4.5 或更早版本,请继续阅读后面的小节。
破坏性更改
省略 thinking 的请求也会进行思考。 请参阅默认启用思考和关闭前置思考。
思考预算会返回错误。 Claude Sonnet 4.6 将 thinking: {"type": "enabled", "budget_tokens": N} 作为已弃用的设置接受。Claude Sonnet 4.5 和 Claude Haiku 4.5 在所有思考中都使用它。Claude Sonnet 5.5 会返回 400 错误:
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.移除预算并设置 effort 级别。预算与 effort 级别之间没有固定的对应关系,因此请在两到三个级别上运行您的评估。
之前(Claude Sonnet 4.6):
client.messages.create(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[{"role": "user", "content": "..."}],
)之后(Claude Sonnet 5.5):
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "high"}, # or "max", "xhigh", "medium", "low"
messages=[{"role": "user", "content": "..."}],
)“Sampling parameters”(采样参数)会返回错误。 请移除 temperature、top_p 和 top_k。
思考文本默认被省略。 请参阅处理响应中的思考。
其他更改
- 令牌增加约 30%: Claude Sonnet 5.5 使用 Claude Sonnet 5 的分词器。与 Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 相比,相同的文本会产生约多 30% 的令牌,具体取决于内容。请使用令牌计数重新计算,并重新审视
max_tokens和成本。 - Effort: Claude Sonnet 5.5 支持
xhigh,且各级别经过了重新校准。请参阅推荐的更改。 - 图像: Claude Sonnet 5.5 使用高分辨率图像层级,长边最多 2,576 像素,每张图像最多 4,784 个视觉令牌。Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 的上限为 1,568 像素和 1,568 个令牌。一张 2000×1500 的图像在 Claude Sonnet 5.5 上消耗的令牌约为 2.5 倍。请参阅分辨率和令牌成本。
从 Claude Sonnet 4.5 或更早版本迁移
如果使用的是 Claude Sonnet 4.5、Claude Sonnet 4 或 Claude 3.7 Sonnet,请首先应用前面的每一节,然后进行以下更改。
预填充会返回错误。 与 Claude Sonnet 4.6 和 Claude Sonnet 5 一样,Claude Sonnet 5.5 会以 400 错误拒绝预填充的最后一个助手轮次。Claude Sonnet 4.5、Claude Haiku 4.5 及更早的模型接受预填充。错误内容如下:
This model does not support assistant message prefill. The conversation must end with a user message.根据每个预填充的用途进行替换:
- 输出格式: 使用结构化输出,或在分类时使用带有枚举字段的工具。
- 开场白: 在系统提示中要求直接回答。
- 不必要的拒绝: 在用户消息中给出清晰的指令通常就足够了。
- 续写: 将其移至用户消息,例如"您之前的回复被中断了,结尾是
[previous_response]。请从中断处继续。" - 上下文提醒: 将其放在用户轮次中。
工具输入转义。 工具调用参数中的转义可能有所不同。请使用标准 JSON 解析器解析 input。
计算机使用。 Claude Sonnet 5.5 不接受 computer_20250124。请参阅部分计算机使用工具版本不受支持。
Effort。 Claude Sonnet 4.5 没有 effort 参数。请显式设置 effort 级别(请参阅推荐的更改)。
上下文和输出。 Claude Sonnet 5.5 拥有更大的上下文窗口和更高的输出限制。请参阅 Claude Sonnet 5.5 模型页面。移除所有上下文窗口 beta 标头。
Beta 标头。 移除 interleaved-thinking-2025-05-14,因为自适应思考会自动交错进行。用每个需要的工具上的 eager_input_streaming: true 替换 fine-grained-tool-streaming-2025-05-14。该标头与计算机使用或浏览器使用工具集条目一起使用时会返回 400 错误。请参阅细粒度工具流式传输。
结构化输出。 output_format 参数已弃用。若仍要使用它,请添加 structured-outputs-2025-11-13 beta 标头。否则,API 会返回 400 错误。请改用 output_config.format。
从 Claude Sonnet 4 或更早版本迁移
Claude Sonnet 4 已在 Claude API 上停用,但可在 Claude Models on Google Cloud (Google managed) 和 Amazon Bedrock 上使用。Claude 3.7 Sonnet 已停用。从这两个模型中的任何一个迁移时,请首先应用前面的每一节,然后进行以下更改:
- 工具版本: 使用
text_editor_20250728,工具名称为str_replace_based_edit_tool,且没有undo_edit命令。使用code_execution_20260521。请参阅文本编辑器工具和代码执行工具。 - 停止原因: 处理
refusal。Claude 4.5 及更高版本的模型在达到上下文窗口限制时还会以model_context_window_exceeded停止。请参阅停止原因与回退。 - 末尾换行符: Claude 4.5 及更高版本的模型会在工具调用字符串参数中保留末尾换行符。
- Beta 标头: 移除
token-efficient-tools-2025-02-19和output-128k-2025-02-19。 - 提示: 对照提示编写最佳实践审查您的提示。
从 Claude Haiku 4.5 迁移到 Claude Sonnet 5.5
首先应用直至并包括从 Claude Sonnet 4.5 或更早版本迁移在内的每一节,跳过 Claude Sonnet 4 小节。然后进行以下更改:
- 模型 ID: 将
claude-haiku-4-5-20251001或别名claude-haiku-4-5替换为claude-sonnet-5-5。 - 成本: 每令牌价格更高,且相同的文本会产生更多令牌。请重新计算令牌并重新确定成本基线。请参阅定价。
- 提示缓存: 最小可缓存提示从 4,096 个令牌降至 Claude Sonnet 5.5 的最小值。
- 交错思考: 自适应思考会自动在工具调用之间运行。
- 路由: Claude Sonnet 5.5 读取 Claude Haiku 4.5 的思考块。向上迁移的对话会保留其推理。迁回 Claude Haiku 4.5 的对话会丢弃 Claude Sonnet 5.5 的块。
此页面对您有帮助吗?