Claude Platform Docs
模型与定价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 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 Sonnet 5.5 的价格与 Claude Sonnet 5 相同。请参阅 Claude 定价。有关其"context window"(上下文窗口)和输出限制,请参阅 Claude Sonnet 5.5 模型页面。有关功能和提示编写,请参阅 Claude Sonnet 5.5 的新功能和为 Claude Sonnet 5.5 编写提示。

向 Claude Sonnet 5.5 发送请求

此请求可按原样在 Claude Sonnet 5.5 上运行。它设置了"effort"(努力程度)级别,各 SDK 标签页按块类型读取回复。它省略了五项会返回 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:

"thinking.type.disabled" is not supported for this model. Use "thinking.type.between_tools" for the lowest thinking setting, or "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

between_tools 适用于所有提供 Claude Sonnet 5.5 的平台,无需 beta 标头。它在 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,请使用自适应思考。有关提示编写指导,请参阅在不进行前置思考的情况下运行。

在未定义 between_tools 的 SDK 版本中,Python 和 TypeScript 示例无法通过类型检查。请更新 SDK,或像 C#、Go 和 Java 示例那样以原始 JSON 传递该值。

之前(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 解析器解析工具调用输入。
  • 在 Amazon Bedrock 上,将计算机使用从 computer_20250124 迁移到 computer_20251124。
  • 显式设置 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 没有日期后缀。在其他平台上,请使用可用性下列出的 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 限制。在 Amazon Bedrock 上,结构化输出(包括严格工具使用)不适用于 Claude Sonnet 5.5。在该平台上,请发送不带 strict 的 auto,在提示中说明何时调用该工具,并在您的代码中验证工具输入。

之前(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 Opus 5、Claude Opus 5.5 或任何 Claude Fable 或 Claude Mythos 模型的块。API 会丢弃模型无法读取的块。请求仍会返回 200,且被丢弃的块不计费。请参阅在对话中途切换模型。

每个 Claude Sonnet 5.5 思考块还会针对其之前的对话进行签名。对于在 2026 年 8 月 31 日 00:00 UTC 或之后创建的账户,API 默认强制执行此要求,适用于 Claude API、Amazon Bedrock 和 Google Cloud。在这些账户上,如果在编辑了较早的历史记录后重放某个块,请求会返回 400 错误。请保持对话仅追加,并使用对话中途的系统消息来更改指令或工具。Claude Sonnet 5.5 生成的思考块仅在生成它们的账户或与其关联的账户中有效。请参阅保留的思考。

在 Claude API 和 Google Cloud 上,计算机使用需要工具集

在 Claude API 和 Google Cloud 上,Claude Sonnet 5.5 仅通过 computer_toolset_20260801 工具集支持计算机使用。在这些平台上,computer_20251124 会返回 400 错误。Claude Sonnet 5.5 在任何平台上都不接受 computer_20250124。请找到您当前发送的版本:

您当前发送的版本发送该版本的起始模型在 Claude API 和 Google Cloud 上发送在 Amazon Bedrock 上发送
computer_20251124Claude Sonnet 5、Claude Sonnet 4.6computer_toolset_20260801computer_20251124
computer_20250124Claude Sonnet 4.5、Claude Haiku 4.5、Claude Sonnet 4computer_toolset_20260801computer_20251124

如果您发送了 fine-grained-tool-streaming-2025-05-14 beta 标头,请在迁移到工具集时将其移除。与工具集条目一起使用时,它会返回 400 错误。请改为在每个需要的工具上设置 eager_input_streaming: true。

已经发送工具集的代码无需更改。从 computer_20251124 迁移列出了请求和智能体循环方面的更改。有关其他平台,请参阅兼容性。

advisor 工具接受的 advisor 更少

使用 advisor 工具时,Claude Sonnet 5.5 执行器需要以下 advisor 之一:Claude Opus 5、Claude Opus 5.5、Claude Sonnet 5.5、Claude Fable 5、Claude Fable 5.1、Claude Mythos 5 或 Claude Mythos 5.1。Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 5 和 Claude Sonnet 4.6 作为 advisor 会返回 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" 则可获取与推理混合的更新。请在每个非空 thinking 块之后的 tool_use 块之前渲染该 thinking 块。使用 between_tools 时,文本无需 display 即可返回。请参阅面向用户的进度更新。

安全分类器和回退

Claude Sonnet 5.5 拒绝的类别比 Claude Sonnet 5 更多。拒绝会返回 stop_reason: "refusal",其 stop_details 可能会指明以下类别之一:

  • "cyber": 该请求可能助长网络危害,例如恶意软件或漏洞利用开发。
  • "bio": 该请求可能助长生物危害,例如危险的实验室方法。
  • "frontier_llm": 该请求可能协助开发竞争性 AI 模型。
  • "reasoning_extraction": 该请求要求模型在响应文本中复现其内部推理。
  • "general_harms": 该请求属于其他使用政策领域。良性工作也可能触发此类别。

服务器端回退(fallbacks: "default",beta,仅限 Claude API)会在 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 或更早版本,请继续阅读后面的小节。

破坏性变更

原本省略思考的请求现在会进行思考。 请参阅思考默认开启和关闭前置思考。

思考预算会返回错误。 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"(采样参数)会返回错误。 Claude Sonnet 4.6 及更早的模型以及 Claude Haiku 4.5 接受 temperature、top_p 和 top_k。在 Claude Sonnet 5.5 上,非默认值会返回 400 错误。请将其移除。

思考文本默认被省略。 请参阅处理响应中的思考。

其他变化

  • 令牌数增加约 30%: Claude Sonnet 5.5 使用 Claude Sonnet 5 的"tokenizer"(分词器)。与 Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 相比,相同文本产生的令牌数约多 30%,具体取决于内容。请使用令牌计数重新计算,并重新审视 max_tokens 和成本。
  • Effort: xhigh 是新增的,且各级别经过了重新校准。请参阅建议的更改。
  • 图像: Claude Sonnet 5.5 使用高分辨率图像层级,长边最多 2576 像素,每张图像最多 4,784 个视觉令牌。Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 的上限为 1568 像素和 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,请首先应用前面的所有章节,然后进行以下更改。

"Prefill"(预填充)会返回错误。 Claude Sonnet 5.5 会以 400 错误拒绝预填充的最后一个助手轮次,与 Claude Sonnet 4.6 和 Claude Sonnet 5 相同。Claude Sonnet 4.5、Claude Haiku 4.5 及更早的模型接受预填充。错误内容如下:

This model does not support assistant message prefill. The conversation must end with a user message.

根据每个预填充的用途进行替换:

  • 输出格式: 使用结构化输出,或在分类场景中使用带有枚举字段的工具。
  • 开场白: 在系统提示中要求直接回答。
  • 不必要的拒绝: 在用户消息中给出清晰的指令通常就足够了。
  • 续写: 将其移到用户消息中,例如"Your previous response was interrupted and ended with [previous_response]. Continue from where you left off."
  • 上下文提醒: 将其放在用户轮次中。

工具输入转义。 工具调用参数中的转义可能有所不同。请使用标准 JSON 解析器解析 input。

计算机使用。 Claude Sonnet 5.5 不接受 computer_20250124。请参阅计算机使用表格。

Effort。 Claude Sonnet 4.5 没有 effort 参数。请按照建议的更改中的说明显式设置 effort 级别。

上下文和输出。 Claude Sonnet 5.5 拥有更大的上下文窗口(无需 beta 标头)和更高的输出限制。请参阅模型页面。移除所有上下文窗口相关的 beta 标头。

Beta 标头。 移除 interleaved-thinking-2025-05-14,因为自适应思考会自动交错进行。在每个需要的工具上,将 fine-grained-tool-streaming-2025-05-14 替换为 eager_input_streaming: true。该标头与计算机使用或浏览器使用工具集条目一起使用时会返回 400 错误。请参阅细粒度工具流式传输。

结构化输出。 output_format 参数已弃用,并将在未来移除。如仍要使用,请添加 structured-outputs-2025-11-13 beta 标头。否则,API 会返回 400 错误。请改用 output_config.format。

从 Claude Sonnet 4 或更早版本迁移

Claude Sonnet 4 已在 Claude API 上停用,但在 Amazon Bedrock 和 Google Cloud 上仍可使用。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。
  • 成本: 每令牌价格更高,且相同文本产生的令牌更多。请重新计算令牌并重新确定成本基线。请参阅 Claude 定价。
  • 提示缓存: 最小可缓存提示从 4,096 个令牌降至 Claude Sonnet 5.5 的最小值。
  • 交错思考: 自适应思考会在工具调用之间自动运行,无需 beta 标头。
  • 路由: Claude Sonnet 5.5 可以读取 Claude Haiku 4.5 的思考块。向上切换的对话会保留其推理。切换回 Claude Haiku 4.5 的对话会丢弃 Claude Sonnet 5.5 的块。

Was this page helpful?