Sonnet 5.5 上手指南:怎么选、多少钱、从 Sonnet 5 怎么迁

Anthropic 官方指南讲透:Sonnet 5.5 和 Opus 5.5 的分工、单价不变账单却会变的原因,以及迁移时必须处理的几处破坏性改动。

作者:Addy Osmani09-29 · 约 12 分钟
🎧 听播客版0:00 / --:--
0:00 / --:--

Anthropic 发布了 Claude Sonnet 5.5,它是 5.5 家族继 Opus 5.5 之后的第二个模型。官方说它比 Sonnet 5 更聪明、更省 token、快 30%;每个 token 的单价没变,但同样的活通常用更少 token,所以多数场景下账单最多能低 30%。

这篇是 Anthropic 工程师 Addy Osmani 写在 claude.dev 官方博客上的上手指南。它不讲发布会式的跑分,主要回答开发者三件事:Sonnet 5.5 和 Opus 5.5 该选哪个、钱怎么算、从 Sonnet 5 迁过来要改哪几处代码。下面按这个顺序讲清楚,参数和代码尽量保留原样,方便你直接照着改。

先看一个直观对比:让模型写代码重画一张照片

文章开头放了 Lance Martin 做的一个演示:给三个模型同一张日落时分的城市航拍照片,让它们各自写 Python 代码把照片重新“画”出来。没有用任何图像模型,画面里每一笔都是模型写的代码画出来的。

Lance Martin 的 code-to-painting 演示:每个模型写代码重画同一张照片。结尾四联图从左到右依次为照片、Claude Sonnet 5、Claude Sonnet 5.5、Claude Opus 5.5。想法致谢 @jkeatn,参考图致谢 @IceSolst。

看视频里的过程和结果,差别很直白:

  • Sonnet 5 的天空渐变不错,但城市是一排排竖条色块,中间杵着一根很突兀的亮黄色长条,桥和河也简化成平面。
  • Sonnet 5.5 画出了密密麻麻的街区纹理,中央建筑群有明暗和反光,前景还有桥、白色高楼和蓝顶小楼,整体色调和景深更接近照片。
  • Opus 5.5 从视频结果看,和 Sonnet 5.5 在同一个细节量级,建筑轮廓更挺拔清楚,桥也更细。官方没有给这三张图打分,以上是看画面的观感。

视频里每块画布下面还有一个“engine calls”计数:模型自己先写了一套“笔刷引擎”,再靠不断调用它来上色。最终 Sonnet 5 一共调用了 12,249 次,Sonnet 5.5 是 44,561 次,大约是 3.6 倍。这个数说明 5.5 画得更细,但它是这次演示里笔刷引擎的调用次数,不是 token 用量,也不是价格,不能拿来推算成本。另外这只是一次演示、一张照片,官方没有给出评分,也没有给出 Opus 5.5 的调用次数。

先跑起来:一个必须注意的写法

文章给了一个可以直接运行的最小请求:

import anthropic

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"},
)

for block in response.content:
    if block.type == "text":
        print(block.text)

注意最后那个循环:它按每个内容块的类型(block.type)挑出文本来读,而不是直接取 content[0].text。原因是 Sonnet 5.5 默认会先思考,回复的第一块可能是 thinking 块,直接取第一块的文本就会出错。如果你现有代码写的是 content[0].text,迁移时先改这里。

选 Sonnet 5.5 还是 Opus 5.5

官方的划分很干脆:Opus 5.5 面向需要仔细判断的复杂工作;Sonnet 5.5 面向范围明确的日常任务,比如修 bug、快速迭代功能。它还能做出比较像样的文档、幻灯片和表格,官方说它“对设计有不错的眼光”,速度快也适合反复改稿。Haiku 5.5 会在未来几周加入家族,面向高吞吐、低延迟的场景。

你的工作 先选
范围明确的日常编码:修 bug、快速迭代功能、按需求验证 Sonnet 5.5
大量的日常开发 Sonnet 5.5
要有设计感的文档、幻灯片、表格:一页纸、图解、总结页、文档修改、表格整理 Sonnet 5.5
反复运行、定义清楚的 Agent 任务:调查、审阅、起草 Sonnet 5.5
需要仔细判断的复杂工作,包括长程 Agent 式编程(让模型自己连续多步做事)和知识工作 Opus 5.5
最难的问题,需要最强的智力 Opus 5.5

一条更实用的判断标准是:任务有清晰的规格,并且有办法检查结果,就适合 Sonnet 5.5。官方的 prompting guide(提示词指南)里也说,最难的长程工作,Opus 是更好的选择。

Epic Games 的 COO Daniel Vogel 在早期测试后给出的评价是:Sonnet 5.5 在系统设计审计和数据流审查上达到了你会期待更高档模型才有的质量,能管理数万行游戏系统架构代码,响应很快,能处理持续数小时的任务,而且不需要那么细致的提示词。

价格:单价没变,账单会变

Sonnet 5.5 的价格(每百万 token,美元)和 Opus 5.5 对比如下:

每百万 token Sonnet 5.5 Opus 5.5
输入 $2 $4
输出 $10 $20
缓存写入(5 分钟) $2.50 $5
缓存写入(1 小时) $4 $8
缓存读取 $0.20 $0.20

Sonnet 5.5 所有价格,包括批处理和提示词缓存,都和 Sonnet 5 完全一样,所以只换模型 ID,每个 token 的价格不变。如果限定在美国境内推理(inference_geo: "us"),价格是标准价的 1.1 倍。

真正会变的是总账单:官方说 Sonnet 5.5 完成同一个任务通常比 Sonnet 5 少用 token。所以“单价不变”不等于“花费不变”,换完模型后要看你自己的实际用量。

还有两件容易漏掉的事:

  • 默认 effort 不一样。effort 是控制模型想多久的档位;不同产品给 Sonnet 的默认值不同,Claude Platform 默认 high,Claude Code 默认 medium。同一个模型在两处的表现和花费可能不一样,别拿一处的体验去套另一处。
  • 图片更贵。Sonnet 5.5 用高分辨率图片档,长边最多 2576 像素,一张 2000×1500 的图,token 消耗大约是 Sonnet 4.6、Sonnet 4.5、Haiku 4.5 的 2.5 倍。如果用不到细节,发之前先缩小。

规格速查

项目 Sonnet 5.5
模型 ID Claude API、Claude Platform on AWS、Google Cloud、Microsoft Foundry 上是 claude-sonnet-5-5;Amazon Bedrock 上是 anthropic.claude-sonnet-5-5
上下文窗口 1M token,原生支持,不需要 beta 头
最大输出 128k token;Message Batches API 加 output-300k-2026-03-24 beta 头可到 300k
知识截止 2026 年 6 月
思考 默认开启(自适应思考);between_tools 可关闭“开头的思考”
Effort 档位 low、medium、high、xhigh、max
默认 effort Claude API 上是 high;Claude Code 里是 medium
分词器 和 Sonnet 5 相同
最小可缓存提示词 512 token(Sonnet 5 是 1,024)
限流 和 Sonnet 5 分开计算,默认档位数值相同
优先级层 Claude API 上可用
数据保留 符合条件的客户可用零数据保留

Claude API 默认 effort 设为 high,是为了让你一上来就拿到不错的结果。官方建议先用 high 跑评测,再决定你的场景要哪一档。如果想上 xhigh 或 max,要知道模型会想得更久、花得更多,在有些任务上会丢掉 Sonnet 最有价值的“质量、速度、成本”平衡,这时候更该考虑换 Opus 5.5。

从 Sonnet 5 迁移:先改模型 ID,再过六件事

先把模型 ID 改成 claude-sonnet-5-5,然后处理五个破坏性变更(其中好几项会直接返回 400 错误),加一个不会报错但会让你的界面“少显示东西”的变化。每一项的完整说明在官方的 Sonnet 5.5 迁移指南里。

官方还给了偷懒的办法:在 Claude Code 里运行 /claude-api migrate this project to claude-sonnet-5-5,会调用内置的 Claude API 技能,自动替换模型 ID 并改掉破坏性的参数变更。

1. 想关掉开头的思考,改用 between_tools

Sonnet 5.5 上,请求里不写 thinking 字段就是自适应思考;而 thinking: {"type": "disabled"} 会直接返回 400 错误。要关掉开头的思考,改成新的 between_tools:模型只在两次工具调用之间思考,总响应时间相同或更快。

# Before: Claude Sonnet 5
client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "disabled"},
    output_config={"effort": "xhigh"},
    messages=[{"role": "user", "content": "..."}],
)

# After: 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": "..."}],
)

示例里同时把 effort 从 xhigh 降到 high,是因为 between_tools 有几条限制:

  • 只支持 low、medium、high 三档;用 xhigh 或 max 会返回 400,要跑这两档就得用自适应思考。
  • 不能再带别的字段;同时发 display、budget_tokens 或 block_binding 也是 400。
  • 用它的时候,对话中途不能改 effort;想每轮换档,得用自适应思考。
  • 模型在工具调用之间写的简短进度说明,仍然以 thinking 块返回,里面有摘要文字。所以要按类型读内容块,并把这些块连同这一轮助手回复的其余部分原样传回去。没有工具时,回复里只有文本。
  • 所有提供 Sonnet 5.5 的平台都能用,不需要 beta 头;如果你的 SDK 里没有 between_tools,先升级。

另外,如果你用 between_tools 关掉了开头的思考,那些不带工具、但需要几步推理的请求,改回自适应思考更合适。

2. 强制指定工具的 tool_choice 不能用了,改用 auto + 严格工具

tool_choice 的类型为 any 或 tool 会返回 400 错误,连 token 计数接口也一样。改成发 auto,同时把工具标成 strict: true(让模型的输入严格符合你的 schema),并在提示词里写清什么时候该用这个工具:

weather_tool = {
    "name": "get_weather",
    "description": "Get the current weather in a given location",
    "input_schema": {
        "type": "object",
        "properties": {"location": {"type": "string"}},
        "required": ["location"],
        "additionalProperties": False,
    },
    "strict": True,
}

client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    tools=[weather_tool],
    tool_choice={"type": "auto"},  # was {"type": "tool", "name": "get_weather"}
    messages=[
        {"role": "user", "content": "What's the weather in Paris? Use the get_weather tool."}
    ],
)

严格工具要求每个对象都写 additionalProperties: false。

3. 对话只能往后追加

Sonnet 5.5 的 thinking 块和“这个模型加这段对话”绑定。Sonnet 5.5 能读 Sonnet 5 的 thinking 块,所以一段对话从 Sonnet 5 切到 Sonnet 5.5,之前的推理还在;但其他任何模型都读不了 Sonnet 5.5 的块。换句话说,别在中途把 5.5 的对话历史交给别的模型接着用。

4. 计算机使用改用 toolset

在 Claude API 和 Google Cloud 上,Sonnet 5.5 只通过 {"type": "computer_toolset_20260801"} 支持计算机使用(让模型操作电脑界面);声明旧的 computer_20251124 会返回 400。要做的改动比较多:

  • 去掉请求里的 anthropic-beta: computer-use-2025-11-24 头;SDK 里删掉 betas 参数,用标准客户端调用 Messages API,不再走 beta 命名空间。
  • 替换 tools 条目,并更新你的 Agent 循环,处理成员 tool_use 块、批量动作,以及结果里的 toolset_name。
  • 如果你发了 fine-grained-tool-streaming-2025-05-14 这个 beta 头,也要删掉,它和 toolset 条目放在一起会返回 400;需要流式的工具,改成在该工具上设 eager_input_streaming: true。
  • Amazon Bedrock 目前仍然接受 computer_20251124。

5. 检查 advisor 搭配

advisor 工具让一个模型(执行者)向另一个更强的模型(顾问)请教。用 Sonnet 5.5 当执行者时,Opus 4.8、Opus 4.7 和 Sonnet 5 都不能当顾问;可以用的是 Opus 5.5、Opus 5 和 Sonnet 5.5 自己。所有可用顾问的建议都是加密返回的,放在 advisor_redacted_result 块里,你的代码读不到建议的文字。

6. 工具调用之间的话,要从 thinking 块里读

这一项不会报错,但你的界面可能不再显示模型在两次工具调用之间写的备注。超过一两句的备注现在以“进度更新”形式的 thinking 块返回,而这些块在默认的 display 设置下是空的。

用自适应思考时,把 thinking.display 设成 "updates"(beta,需要 thinking-display-updates-2026-08-18 头)或 "summarized",并在渲染时,把每个非空 thinking 块放在紧跟其后的 tool_use 块之前。用 between_tools 时,文字不需要设 display 就会返回。

Sonnet 5.5 还新增了按消息设置 effort(beta)、对话中途插入系统消息、对话中途更换工具(beta)。如果你是从 Sonnet 4.6 或更早的版本,或从 Haiku 4.5 迁移,迁移指南里针对每个起点都有清单。

调优:几件比换参数更该先做的事

重新扫一遍 effort。 各档位已经重新校准,同一档的“想多久”和 Sonnet 5 不一样,旧设置不能直接照搬。官方的起点建议:

  • 默认先用 high,除非你的场景是 Agent 或对延迟很敏感。
  • Agent 式编程和多步工具调用:定义清楚的任务用 medium,更难或更长的任务再升到 high。
  • 聊天和其他对延迟敏感的场景:从 medium 或 low 起步。
  • xhigh 和 max 只用在评测证明质量确实提升的地方。

思考也算在 max_tokens 里,所以要留足空间。Agent 式编程建议把 max_tokens 设成模型上限 128,000,并用流式输出。想让它少想,就降 effort;在系统提示里叫它“少想一点”并不可靠。

删掉给 Sonnet 5 打的补丁。 已有的 Sonnet 5 提示词不改也应该表现不错。如果里面有“引导别拒绝”、“工具调用失败重试”的胶水代码、“不要偷懒”之类的话,先删掉,重跑评测,再去调别的。

低 effort 时,要明确要求做真检查。 Sonnet 5.5 一般会在报告改动完成前先检查自己的工作,但在低 effort 时,有时会跳过真正能验证这次改动的检查。如果你看到“改完了”却没有测试或构建输出,官方 prompting guide 建议在系统提示里加下面这一段(原文保留,可直接复制):

When you change code that can be run, built, or type-checked, run a real
check that exercises the change before reporting it done: the project's
tests, type-checker, or build, or the changed command itself. A syntax-only
check, or a check command that failed to start, does not count; if all
that is missing is the project's declared dependencies, install them with
its own package manager and lockfile (e.g. npm install, pip
install -r requirements.txt), never via sudo or the system package manager,
unless told not to. Only if no real check can run here, say which one you
did not run and why instead of reporting the change as done.

大意是:改了能运行、构建或类型检查的代码,报告完成前必须跑一次真正覆盖这次改动的检查;只查语法、或检查命令根本没跑起来,都不算;如果只是缺项目声明的依赖,就用项目自己的包管理器和锁文件装,别用 sudo 或系统包管理器,除非被告知可以;真的没法跑检查,就说明哪一项没跑、为什么,而不是直接报告完成。

要看思考进度,读 thinking.display,别让模型把推理写在回复里。 让模型在回复里写出自己的推理,会引来 reasoning_extraction 类型的拒绝。想展示思考进度,读摘要形式的 thinking:

thinking={"type": "adaptive", "display": "summarized"}

只想要给用户看的进度提示,可以用 display: "updates"(beta)。想让更新出现在可预测的位置,比如第一次调用工具前一行、结束时一小段回顾,就在系统提示里写明。

多缓存一些提示词。 最小可缓存提示词降到了 512 token,所以更短的系统提示和工具定义现在也能进缓存。对 Sonnet 5.5 来说,缓存读取只要输入价的十分之一。注意:在请求之间改顶层 effort 会让缓存失效;某一轮想换档,用按消息设置的 effort(beta),它不会破坏缓存。

被拒绝时会发生什么

在 Anthropic 的自动化行为审计里,Sonnet 5.5 在多数对齐与诚实的指标上优于或持平 Sonnet 5。它也是第一个带有与最强模型类似的网络安全防护的 Sonnet 模型;官方的说法是,大多数常规软件开发不会受影响。

如果请求被拒,接口仍返回 HTTP 200,但 stop_reason 是 "refusal",stop_details 会给出五种类别之一:cyber、bio、frontier_llm、reasoning_extraction、general_harms。

服务端回退(fallbacks: "default",beta,Claude API 上)会把 cyber 和 frontier_llm 两类拒绝改在 Sonnet 5 上重试,另外三类不会重试。你也可以用 SDK 中间件或自己写重试。做正当安全工作的人,官方说网络安全验证计划(Cyber Verification Program)不久会扩展到包含 Sonnet 5.5。

在哪里用

Sonnet 5.5 今天就能用,平台和模型 ID 如下:

  • Claude API:claude-sonnet-5-5
  • Amazon Bedrock:anthropic.claude-sonnet-5-5
  • Claude Platform on AWS:claude-sonnet-5-5
  • Google Cloud:claude-sonnet-5-5
  • Microsoft Foundry:claude-sonnet-5-5,仅限 Global Standard 部署

在 Claude Code 里:从 v2.1.284 起(TypeScript 版 Agent SDK 需 v0.3.284 或更高),sonnet 这个别名在 Claude API 上指向 Sonnet 5.5。默认 medium effort,原生 1M 上下文。Claude Code 里不能关闭 Sonnet 5.5 的思考,effort 决定它想多久;它没有 fast mode。 默认模型仍然是 Opus 5.5,想在范围明确的任务上用 Sonnet,用 /model sonnet 切换。

来源
Building with Claude Sonnet 5.5Addy Osmani(claude.dev 官方博客)·2026-09-28·查看主材料
↑ 正文结束
✓ 本篇全文免费开放

会员可复制、下载全文 Markdown,还能让你的 AI 订阅和提问。

阅读原文 ↗
📮 新解读第一时间进邮箱

读完觉得有用?留个邮箱,每篇新解读发布就送达,随时退订。