Claude Platform Docs
模型与定价Claude Sonnet 5.5

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-5

Claude 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"结束。

所有起始模型

Claude Sonnet 4.6 或更早版本

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 的块。

此页面对您有帮助吗?