OpenRouter 实测 Claude Opus、Sonnet、Haiku 5.5:编码任务全部通过,差异主要在成本
Claude Opus vs Sonnet vs Haiku: Which Should You Use?
OpenRouter 用 11 个隐藏测试编码任务和 Claude Code 修 bug 任务对比 Claude Opus 5.5、Sonnet 5.5、Haiku 5.5,三者全部通过,差异主要在成本。
同一新闻,精选展示《Claude Code 用起来要多少钱:各模型真实会话成本》
将 Claude Sonnet 5.5 作为你的默认模型,Claude Haiku 5.5 用于高并发和子代理任务,而当任务耗时长、含义模糊或出错代价高昂时,使用 Claude Opus 5.5。
对大多数团队来说,选择是在 Opus 和 Sonnet 之间,问题在于 Opus 是否值 Sonnet 每 token 价格的两倍。在我们测试的编程任务上,并不值。我们给每个模型相同的 11 个带隐藏测试的编程任务,以及在 Claude Code 中相同的 bug 修复任务。每个模型都通过了所有测试,因此区分它们的是成本。按任务计算,Haiku 比 Opus 便宜 19 到 30 倍,Sonnet 的成本是 Opus 的一半到三分之二。
这些结果告诉你三者在我们的任务上表现如何。要知道哪一个最适合你的工作流,唯一的方法是在你自己的工作上测试它们。Ori Eval 可以为你做到这一点。你问你的编程代理哪个模型最适合你的项目,它会在你的代码中找到测试材料,编写评估,运行你想比较的模型,并推荐其中一个,同时给出背后的分数、时间和成本。关于在它们之间切换的章节展示了如何让它指向全部三个层级。
简而言之
- 将 Claude Sonnet 5.5 作为你的默认模型。在我们的 GPQA Diamond 和 τ-bench 运行中,它的得分与 Opus 5.5 相当或更好,并通过了所有编程测试,而每 token 价格只有一半。
- 将 Haiku 5.5 用于高并发和子代理任务。它也通过了所有编程测试,成本是 Sonnet 的十二分之一到十六分之一。
- 将 Opus 5.5 保留给耗时长、含义模糊、出错代价高于 token 成本的任务。我们的短任务无法排除它在这方面的优势。
- 我们的任务不是你的任务。在选定一个之前,用 Ori Eval 在你自己的工作上去测试这三者。
- 在 OpenRouter 上,三者只差一个模型字符串,而 Claude Code 可以为每个角色使用不同的模型。
Opus、Sonnet 和 Haiku 有何不同?
Opus 5.5、Sonnet 5.5 和 Haiku 5.5 是同一代模型的三个层级。Anthropic 于 2026 年 9 月 22 日发布 Opus 5.5,9 月 28 日发布 Sonnet 5.5,10 月 7 日发布 Haiku 5.5。三者都有 100 万 token 上下文窗口,并接受文本、图像和 PDF。它们主要在价格上不同,而 Haiku 的基准分数更低。
| 模型属性 / 指标 | Opus 5.5 | Sonnet 5.5 | Haiku 5.5 |
|---|---|---|---|
| 输入,每百万 token | $4.00 | $2.00 | $0.10 |
| 输出,每百万 token | $20.00 | $10.00 | $0.50 |
| 缓存读取,每百万 token | $0.20 | $0.10 | $0.01 |
| Artificial Analysis 智能指数 | 57.6 | 56.0 | 43.4 |
| GPQA Diamond(我们的运行) | 90.4% | 92.4% | 86.6% |
| τ-bench 航空(我们的运行) | 75.5% | 78.7% | 76.0% |
| OpenRouter 上的 token 量,10 月 12 日至 18 日 | 6.18T | 2.45T | 2.07T |
价格为我们 2026 年 10 月 21 日的标价,来自 Opus 5.5、Sonnet 5.5 和 Haiku 5.5 的模型页面。基准行来自我们的 benchmarks 端点,于 10 月 21 日拉取(我们的运行时间为 10 月 17 日)。Artificial Analysis 智能指数 是独立基准测试公司 Artificial Analysis 的 10 项评估的复合分数。T 表示万亿 token,来自我们的 每日排名数据集。
Opus 比 Sonnet 更好吗?
在我们运行的基准测试中,Claude Opus 5.5 并未击败 Claude Sonnet 5.5。在我们运行的 GPQA Diamond(一套包含 198 道研究生水平科学问题的测试集)中,Sonnet 得分更高(92.4% 对 90.4%)。在 τ-bench airline(一个多轮客服智能体基准测试)中,Sonnet 的得分也更高(78.7% 对 75.5%)。在 Artificial Analysis 指数上,Opus 领先 1.6 分。在我们两次运行中,Sonnet 每项任务的成本都不到一半:GPQA 每题 $0.025,而 Opus 为 $0.054;τ-bench 每项任务 $0.16,而 Opus 为 $0.34。
在 10 月 12 日当周,Opus 5.5 在 OpenRouter 上的 token 用量约为 Sonnet 的两倍半。Opus 也是 Claude Code 在大多数套餐中的默认模型,在我们的测试中,当未设置模型时,Claude Code 会通过 OpenRouter 使用 Opus 5.5。如果你没有更改过模型,那么你正在运行的就是 Opus。
Haiku 是否足以替代 Sonnet?
对于定义明确、常规性的工作,Haiku 5.5 可以替代 Sonnet。它在 τ-bench airline 上得分 76.0%,比 Opus 高半分,比 Sonnet 低 2.7 分,每项任务成本 $0.011。这大约是 Sonnet 成本的十四分之一。我们的运行中每个模型有 100 到 200 项任务,因此该基准测试上几分的差距可能是噪声。在 GPQA Diamond 上,Haiku 落后 Sonnet 5.8 分;在 Artificial Analysis 指数上落后 12.6 分,该指数对智能体任务和通用知识各加权 30%,对编程和科学推理各加权 20%。在常规编程方面,我们下面的测试未发现差距。
我们的编程测试显示了什么?
我们测试了两件事:按规格编写函数,以及用 Claude Code 修复一个代码仓库。三个模型在两项测试中都通过了每一项测试。
带隐藏测试的函数
我们编写了 11 个 Python 任务,每个任务都有一个隐藏测试文件。八个日常任务是:解析时长、合并区间、LRU 缓存、不使用 eval 的算术求值器、cron 表达式的下次运行时间、自动换行、语义化版本排序,以及 JSON 路径读取器。三个困难任务是:不使用 re 模块的正则引擎、带三值 NULL 逻辑的 SQL WHERE 过滤器,以及夏令时转换日跨时区的空闲日历时段。每个模型对每个日常任务作答两次,对每个困难任务作答三次,使用模型的默认设置,每个模型共 25 次尝试。
| 指标 | Opus 5.5 | Sonnet 5.5 | Haiku 5.5 |
|---|---|---|---|
| 通过的尝试次数 | 25/25 | 25/25 | 25/25 |
| 每个日常任务成本 | $0.0211 | $0.0112 | $0.0007 |
| 每个困难任务成本 | $0.0739 | $0.0380 | $0.0027 |
| 每个困难任务耗时(秒) | 32.1 | 25.7 | 22.6 |
Haiku 使用的推理最多,但仍最快完成困难任务。在困难任务上,它平均使用 3,202 个推理 token,而 Opus 为 1,252 个。推理 token 是模型在写出答案之前用于思考问题的 token。即使推理更多,Haiku 每个困难任务的成本也只有 Opus 的二十七分之一。
Claude Code 中的一次缺陷修复
我们给 Claude Code 一个小型发票库,其中包含三个缺陷和五个测试。缺陷分别是:使用银行家舍入法(四舍六入五成双)的舍入、在引号内按逗号拆分的 CSV 解析器,以及用覆盖数量而非累加数量的汇总。我们通过 OpenRouter 对每个模型运行三次,使用 ANTHROPIC_MODEL 环境变量选择模型。
| 指标 | Opus 5.5 | Sonnet 5.5 | Haiku 5.5 |
|---|---|---|---|
| 修复全部三个缺陷的运行次数 | 3/3 | 3/3 | 3/3 |
| 每次会话成本中位数 | $0.098 | $0.062 | $0.0052 |
| 轮次 | 5 | 5 | 6 到 8 |
| 实际耗时 | 24 到 30 秒 | 18 到 25 秒 | 22 到 31 秒 |
一轮对话是会话中的一次模型响应。我们根据每个会话的 token 数量按我们的价格计算会话成本,因为 Claude Code 自身对 Haiku 的统计有误。
Claude Code 自身的 total_cost_usd 字段无法识别我们的 Haiku slug,报告每个会话为 $0.16 到 $0.31,是我们计算出的中位数 $0.0052 的 30 到 60 倍。在 print 模式(claude -p)下,当 Claude Code 无法识别模型 slug 时会记录一条警告。我们在通过 Haiku 进行的一次单词回复中再次看到了这一点,Claude Code 报告为 $0.107,而按我们的价格该请求成本约为 $0.002。
[claude-code:unrecognized_model] {"model":"anthropic/claude-haiku-5.5","query_source":"sdk"}如果你通过 OpenRouter 运行 Claude Code,请改为在活动页面查看支出,并在需要限额时使用我们的支出控制。
这些是规模小、定义明确的任务。在这些任务上,三个层级同样可靠,而它们的成本差异很大。它们并不涵盖 Anthropic 构建 Opus 所针对的工作,即长时间运行的智能体编程和知识工作,在这类工作中出错的代价高于 token 成本。
你应该用哪一个?
- 如果你想要一个默认选择,请使用 Claude Sonnet 5.5。在我们的两次基准测试运行中,它的得分与 Opus 相同或更好,并在我们所有的测试中与 Opus 持平,而每 token 价格只有一半。
- 如果你要运行大量请求,例如分类、抽取、子智能体或批量代码编辑,请使用 Haiku 5.5。它以 Sonnet 成本的 1/12 到 1/16、Opus 成本的 1/19 到 1/30 通过了我们给它的每一项测试。请将提示保持在 100,000 token 以下,以维持其较低价格。在 Claude Code 之外,我们的Subagent 服务器工具允许较大的模型将自包含的任务交给较小的模型。
- 对于出错代价高昂的长任务,请使用 Opus 5.5。这正是它为之构建的工作,而我们的短任务无法排除它在这方面的优势。
- 如果你无法判断自己的工作负载属于哪一类,请测试你自己的任务,而不是我们的任务,如下一节所述。
如何在它们之间切换?
我们通过一个 API、一个密钥和一种请求格式提供全部三个模型,因此切换只需更改模型字符串。这个循环将相同的提示发送到每个层级,并打印输出 token 数以及我们在每次响应中返回的成本。
import os
import requests
for model in ["anthropic/claude-opus-5.5", "anthropic/claude-sonnet-5.5", "anthropic/claude-haiku-5.5"]:
r = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}"},
json={"model": model, "messages": [{"role": "user", "content": "Write a Python function that merges overlapping intervals."}]},
timeout=300,
)
usage = r.json()["usage"]
print(f"{model}: {usage['completion_tokens']} output tokens, ${usage['cost']:.4f}")这是我们 2026 年 10 月 13 日运行的输出。
anthropic/claude-opus-5.5: 1190 output tokens, $0.0239
anthropic/claude-sonnet-5.5: 876 output tokens, $0.0088
anthropic/claude-haiku-5.5: 852 output tokens, $0.0004使用 Ori Eval 将你自己的任务在每个层级上运行。Ori Eval 测试是 TypeScript *.eval.ts 文件。在一个文件中将三个 slug 都传给 setupAgent({ model }),相同的测试就会在每个层级上运行。
在 Claude Code 中,你可以保留 Opus 用于规划,并将常规工作交给更便宜的模型。按照我们的设置指南将 Claude Code 指向 OpenRouter,然后为每个角色设置模型。
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-5.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-5.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-5.5"
export CLAUDE_CODE_SUBAGENT_MODEL="anthropic/claude-haiku-5.5"Claude Code 2.1.307 能识别 Opus 和 Sonnet 的 slug,并为它们提供 100 万 token 的上下文窗口。它尚不能识别 Haiku 的 slug,并假定为 200,000 token。要赋予 Haiku 完整的窗口,请在其 slug 后添加 [1m]。我们在路由前会去掉该后缀。不添加该后缀会使 Haiku 会话保持在约 200,000 token 以下。
这些变量设置每个名称指向哪个模型。它们不会改变你使用哪一个。要将 Sonnet 设为主模型,请在会话中运行 /model sonnet,或在启动 Claude Code 前设置 ANTHROPIC_MODEL=sonnet。要用 Opus 规划并用 Sonnet 编写代码,请改为运行 /model opusplan。由于设置了 CLAUDE_CODE_SUBAGENT_MODEL,未指定自己模型的子智能体将在 Haiku 上运行。
如果你更希望我们按请求挑选,Auto Router(openrouter/auto)会为每个提示词选择一个模型。对于编程,Pareto Router 会挑选一个满足你设定的最低编程分数的模型。
常见问题
Claude Haiku 比 Sonnet 便宜吗?
是的。在 OpenRouter 上,对于 10 万 token 以下的提示词,Haiku 5.5 的每输入和输出 token 成本比 Claude Sonnet 5.5 低 20 倍,每百万输入 token 为 $0.10,而后者为 $2.00。在我们的 Claude Code 运行中,每次会话的差距更小,约为 12 倍,部分原因是 Haiku 需要更多轮次才能达到相同结果。
在编程方面,Sonnet 5.5 比 Opus 5.5 更好吗?
在我们的 Claude Sonnet 与 Opus 编程测试中,两者不相上下。两者都通过了全部 25 次隐藏测试尝试,以及通过 OpenRouter 进行的全部三次 Claude Code 运行,而 Sonnet 更快,成本只有三分之二到一半。Opus 在 Artificial Analysis 指数上领先 1.6 分,Anthropic 将其定位为长时间运行的智能体编程,因此对于漫长、模糊的会话,它是更稳妥的选择。
Claude Haiku 擅长什么?
Haiku 5.5 擅长高吞吐量、定义明确的工作,例如分类、提取、路由、子智能体任务和常规代码更改。在我们通过 OpenRouter 进行的测试中,它通过了每一项编程任务,包括正则表达式引擎和 SQL 三值 NULL 逻辑,并在 τ-bench airline 上比 Opus 高出半分。
Claude Code 使用哪个 Claude 模型?
根据Anthropic 的模型配置文档,Claude Code 在 Pro、Max、Team、Enterprise 和 Anthropic API 账户上默认使用 Opus 5.5。当你通过 OpenRouter 运行 Claude Code 时,可以用 ANTHROPIC_MODEL 更改主模型,并用上述环境变量设置每个角色。
后续步骤
- Ori Eval 会在你自己的任务上运行 Opus、Sonnet 和 Haiku,并推荐其中一个。首先,给你的编程智能体这条指令:
run curl -fsSL https://openrouter.ai/skills/spawn-ori-eval and follow the instructions in its output to get started。 - 我们的设置指南涵盖按角色的模型设置,我们的教程Claude Code with OpenRouter: Setup, Models, and Costs 涵盖模型选择和成本。
- Opus 5.5、Sonnet 5.5 和 Haiku 5.5 的模型页面显示当前价格、提供商和正常运行时间。我们的Opus 5.5 vs Sonnet 5.5 对比页面将其中两者并排展示。
- 提示词缓存解释了上表中的缓存读取价格。
- 如果你要从较旧的 Claude 模型迁移,Claude 5.5 迁移指南涵盖 API 变更。
- Cost vs. Quality Tradeoff Framework for Agent Models 和 Confidence Thresholds for Model Escalation Routing 涵盖何时将请求提升到更高层级。
来源:OpenRouter Blog · openrouter.ai