将 claude-haiku-4-5 更改为 claude-haiku-5-5 是此迁移中最小的部分。五个在 Haiku 4.5 上有效的请求模式现在返回 400 错误,还有几个变化虽然没有请求失败,但会改变您获得的内容、费用或模型在代理中的行为。
Anthropic 表示,现有的 Haiku 4.5 提示在 Haiku 5.5 上应该可以正常工作,无需更改。围绕这些提示的请求代码则是另一回事。本文列出了您将遇到的每个问题:您会看到什么,为什么会发生,以及如何修复它,后面还有一个检查清单。权威参考是 Anthropic 的 Haiku 5.5 迁移指南。
分类:匹配症状
| 您看到的内容 | 原因 | 修复 |
|---|---|---|
| 在思考预算的请求上返回 400 | 手动思考被移除 | 自适应思考加上努力 |
| 在设置了温度、top_p 或 top_k 时返回 400 | 采样参数被锁定 | 移除它们 |
| 在助手回合结束时返回 400 | 预填充被移除 | 以用户回合结束 |
| 在计算机使用时返回 400 | 旧的计算机工具被拒绝 | 转移到计算机工具集 |
| 在编辑早期回合后返回 400 | 思考绑定到历史 | 保持历史为追加模式 |
| 解析器返回空或错误的文本 | 思考块优先 | 按类型选择块 |
| 回复被截断或缺失 | 思考计入上限 | 提高 max_tokens 或降低努力 |
| 令牌计数和账单增加约 30% | 新的分词器 | 在新模型上重新计算 |
| 响应带有停止原因拒绝 | 新的安全分类器 | 在您的客户端中处理 |
前五个错误非常明显。其余的错误则比较隐蔽,这使得它们更难发现。
五个明显的错误
1. 手动思考预算
您会看到:在任何发送 thinking: {"type": "enabled", "budget_tokens": N} 的请求上返回 400。
原因:Haiku 4.5 仅支持带有令牌预算的手动扩展思考。Haiku 5.5 仅支持自适应思考,并通过 effort 控制深度。
修复:发送 {"type": "adaptive"} 或省略 thinking,并选择一个努力级别。旧的预算较小以节省令牌,选择一个较低的级别。
# 之前:Haiku 4.5
thinking={"type": "enabled", "budget_tokens": 8000}
# 之后:Haiku 5.5
thinking={"type": "adaptive"},
output_config={"effort": "medium"},
2. 采样参数
您会看到:在请求设置了 temperature、top_p 或 top_k 时返回 400。
原因:Haiku 5.5 仅接受默认值:temperature 为 1 和 top_p 为 0.99。任何其他值,任何 top_k,或同时发送 temperature 和 top_p 都会返回 400,无论是否使用思考。top_p 为 1 也会被拒绝。
修复:移除所有三个。常见情况是 temperature=0 用于分类器,以获得稳定的标签。用结构化输出或输入为枚举的工具替换它,以便标签集由模式强制,而不是通过采样。此外,检查 SDK 包装器和网关,这些可能会为您添加默认的采样值。
3. 助手预填充
您会看到:当 messages 中的最后一项是助手回合时返回 400,即使思考关闭。
原因:在 Haiku 5.5 中不支持预填充,与当前的 Claude 系列其他产品一致。
修复:以用户回合结束 messages,并用其原本的内容替换预填充。格式控制变为结构化输出(output_config.format)。预填充的前言变为系统提示指令,直接回答。中断回复的继续内容移入用户消息:“您之前的回复以 [text] 结束。从那里继续。”
4. 计算机使用
您会看到:在 Claude API 或 Google Cloud 上,当请求声明 computer_20250124 工具时返回 400。
原因:在这些平台上,Haiku 5.5 仅通过更新的工具集 computer_toolset_20260801 支持计算机使用。
修复:删除 computer-use-2025-01-24 beta 头,将工具条目替换为 {"type": "computer_toolset_20260801"},并更新代理循环:根据每个 tool_use 块的 name 和 toolset_name 进行调度,而不是根据 input.action,在每个这样的块中处理一个回合,并在结果中回显 toolset_name。Zoom 默认开启;如果您的环境不支持它,请在工具集配置中禁用它。在 Amazon Bedrock 上,在选择版本之前检查计算机使用工具的兼容性说明。相同的工具集家族还带来了浏览器使用,这是 Haiku 4.5 从未拥有的。
5. 编辑早期回合
您会看到:当请求在某些内容更改后发送思考块时返回 400:系统提示、工具列表或早期消息。
原因:Haiku 5.5 的思考块仅在发送之前的所有内容未更改时保持有效。对于在 2026 年 8 月 31 日或之后创建的帐户,默认强制执行此检查,而对于旧帐户,仅在请求选择加入时强制执行。
修复:保持对话为追加模式。常见的罪魁祸首是带有时间戳的系统提示、在插件连接时增长的工具列表、客户端截断,以及注入历史的提醒,在下一个回合中被剥离。对于每个回合的指令,Haiku 5.5 支持在 messages 中的系统消息,没有 beta 头,这些消息在不编辑之前内容的情况下添加上下文。
隐蔽的错误
思考块优先。 默认情况下思考是开启的,因此响应可以以一个或多个 thinking 块开始。读取 response.content[0].text 作为答案的代码会中断或返回空文本。按 type 选择块。
思考文本默认为空。 Haiku 4.5 返回总结的思考。Haiku 5.5 返回的 thinking 块具有空文本字段和仅签名。如果您的用户界面显示推理摘要,请设置 thinking: {"type": "adaptive", "display": "summarized"}。无论如何,保持思考块在工具结果中不变;丢弃空块的序列化程序会将它们移除。
max_tokens 现在必须覆盖思考。 为短答案设置的上限可能会被思考用尽,在任何文本之前以 stop_reason: "max_tokens" 结束响应。提高上限或降低努力。
相同文本的令牌数量增加约 30%。 新的分词器更改了 usage 字段、count_tokens 结果、上下文预算,以及为 Haiku 4.5 调整的任何 max_tokens。它还将 100K 令牌的价格线移动到大约 77K 令牌,因为 Haiku 4.5 是这样计算的。在信任成本仪表板之前,请在模型设置为 claude-haiku-5-5 时重新计算真实提示。
默认努力级别为中等。 Haiku 4.5 没有努力设置。Haiku 5.5 默认设置为 medium,这可能比简单路径所需的思考更多。明确设置它。
思考块与创建它们的帐户保持一致。 如果您的服务通过不同的 API 帐户重放存储的对话,Haiku 5.5 的思考块会被静默丢弃,请求在没有该推理的情况下运行。通过生成它的帐户重放每个对话。
优先级层级不再延续。 Haiku 5.5 不支持优先级层级,因此如果您依赖于 Haiku 4.5 的优先级层级,请单独规划容量。
网关列表可能不同。 AIHubMix 上的 Haiku 5.5 页面 当前列出 200K 的上下文长度,而 Anthropic 指定为 1M。在迁移长提示工作负载之前,请确认您使用的路由的限制。
对具有真实权限的代理重要的行为变化
拒绝是新的,且没有任何东西为您捕获它们。 Haiku 5.5 在四个类别中运行安全分类器:网络、生物、前沿 LLM 开发和一般危害。拒绝以正常的 HTTP 200 返回,带有 stop_reason: "refusal" 和 stop_details 中的类别。与 Sonnet 5.5 和 Opus 5.5 不同,Haiku 5.5 没有服务器端的后备:后备模型列表返回 400,默认后备模式使请求被拒绝。在读取 content 之前检查 stop_reason,并在您自己的代码中决定是重新措辞、升级到更大的模型,还是停止。根据 发布帖子,网络安全保护允许比 Sonnet 5.5 更广泛的防御工作,但阻止渗透测试。
工具结果中的用户文本可能被忽略。 Haiku 5.5 被训练为抵抗通过工具结果的提示注入。如果您的工具在任务中传递用户输入的消息在 tool_result 块内,模型可能会将其视为不可信并忽略它。在最后一个工具结果之后,将中间用户输入放在文本块中,并将工具结果中的通知保持在单独的系统消息中。
在低努力下,代理可以提前停止或跳过检查。 在 low 的长编码代理系统提示下,Haiku 5.5 有时会在任务完成之前将任务交还,而在 low 和 medium 下,有时会在不运行测试的情况下报告代码更改已完成。Anthropic 的 Haiku 5.5 提示指南 为两者提供了简短的说明。对于可以写文件或运行命令的代理,未经验证的“完成”是两者中更危险的。
强制工具跳过思考。 强制 tool_choice 仍然被接受,但模型随后在思考之前调用该工具。对于具有副作用的工具,auto 加上明确指令可以让模型在行动之前进行推理。
搜索工具需要今天的日期。 当 Haiku 5.5 有搜索工具时,在系统提示或工具描述中给出当前日期。在 Anthropic 的测试中,这使答案与最近的结果相结合。
通过 AIHubMix 迁移的请求
一个使用 temperature=0、思考预算和预填充 { 的 Haiku 4.5 分类器,重写为 Haiku 5.5 在 AIHubMix Claude 本地端点:
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["AIHUBMIX_API_KEY"],
base_url="https://aihubmix.com",
)
r = client.messages.create(
model="claude-haiku-5-5",
max_tokens=2000, # 留出思考和 JSON 的空间
output_config={
"effort": "low", # 替换旧的思考预算
"format": { # 替换预填充和 temperature=0
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"label": {"type": "string", "enum": ["billing", "bug", "other"]}
},
"required": ["label"],
"additionalProperties": False,
},
},
},
messages=[{"role": "user", "content": "Ticket: 'I was charged twice for October.'"}],
)
if r.stop_reason == "refusal":
raise RuntimeError(f"declined: {r.stop_details}")
text = next(b.text for b in r.content if b.type == "text")
print(text)
确认网关是否将 output_config 字段和更新的 beta 头保持不变是值得在第一次测试运行时确认的。当迁移的路由通过您的评估时,AIHubMix 模型列表 使您可以轻松地将相同的代码指向 Sonnet 5.5,以处理在 Haiku 上持续失败的任何任务类型。
迁移检查清单
- 将模型 ID 更改为 claude-haiku-5-5,无日期后缀。
- 用自适应思考和明确的努力级别替换每个思考预算。
- 移除温度、top_p 和 top_k,包括包装器添加的默认值。
- 用结构化输出、系统指令或用户回合继续替换助手预填充。
- 将计算机使用转移到计算机工具集并更新代理循环。
- 如果思考块被重放,则使对话历史为追加模式。
- 按块类型读取响应内容,并在重放时保持空的思考块。
- 在短答案路由上提高 max_tokens,或降低努力。
- 在读取内容之前处理拒绝停止原因;不要配置服务器端后备。
- 在新模型上重新计算提示令牌并重新基准成本仪表板。
- 检查哪些提示现在超过 100K 令牌并修剪或拆分它们。
- 如果用户看到推理摘要,请将显示设置为总结。
- 将中间用户输入放在工具结果之外。
- 给启用搜索的代理提供今天的日期。
- 在移动大量数据之前,重新检查速率限制、优先级层级需求和网关的上下文限制。
常见问题
我的 Haiku 4.5 提示在 Haiku 5.5 上能正常工作吗?
Anthropic 表示,现有提示应该可以正常工作,无需更改。围绕它们的请求参数是导致错误的原因:思考预算、采样设置、预填充和旧的计算机使用工具都返回错误。
为什么我删除温度 0 后分类器失败了?
它不应该失败,但标签可能变化更大。使用结构化输出或具有枚举字段的工具,以便允许的标签由模式强制。这比温度 0 更可靠。
我还能关闭思考吗?
可以,在低、中和高努力下。在 xhigh 和 max 下,禁用思考会返回错误。Anthropic 建议使用较低的努力级别,因为模型可以自行跳过简单请求的思考。
当 Haiku 5.5 拒绝时,我的代码应该怎么做?
在读取内容之前检查停止原因。Haiku 5.5 没有服务器端后备,因此您的代码决定是重新措辞、将请求发送到更大的模型,还是向用户返回错误。
为什么迁移后我的令牌使用量增加了?
有两个原因。新的分词器对相同文本计算约 30% 更多的令牌,且思考默认开启,增加了输出令牌。降低努力并在新模型上重新计算您的提示。
我需要为提示缓存更改任何内容吗?
通常不需要,而且变得更简单:可缓存的最小提示从 4096 降低到 512 令牌,早期回合的思考块默认保留在缓存前缀中。避免编辑早期回合,因为这现在会使思考块和缓存失效。
对话可以从 Haiku 5.5 升级到更大的模型吗?
可以。Sonnet 5.5 和 Opus 5.5 可以读取 Haiku 5.5 的思考块,因此升级到任一模型的对话保留其早期推理。对于其他目标模型,请首先检查保留思考的文档。
继续阅读:Claude Haiku 5.5 系列
- 在规划迁移之前,了解新模型是否符合您的质量标准是有帮助的。有关 Haiku 4.5、GPT-6 Luna 和 Sonnet 5.5 的基准测试,请阅读 Claude Haiku 5.5 vs Haiku 4.5: What Ten Cents Now Buys
- 检查清单的第 2 步要求您选择一个努力级别。有关每个级别在令牌中的费用和起始位置,请阅读 Claude Haiku 5.5 努力级别:中等是默认,低通常足够
- 分词器的变化不仅影响价格线,还影响您的仪表板。要了解这对实际账单的影响,请阅读 Claude Haiku 5.5 定价:90% 削减背后的 100K 线
来源
- Claude Haiku 5.5 迁移指南 (Claude 平台文档)
- 提示 Claude Haiku 5.5 (Claude 平台文档)
- 介绍 Claude Haiku 5.5 (Anthropic)
- AIHubMix 上的 Claude Haiku 5.5
- Claude Haiku 5.5 以每百万令牌 0.10 美元的价格发布。在迁移之前阅读 100K 规则 (Roo 的通讯)



