Claude Sonnet 5 与 Opus 5 该选哪个

两者都是 100 万 token 上下文。Opus 5 的官方价是 Sonnet 5 的 1.67 倍,但倍率分别是 0.25 和 0.35,实际计费只贵 1.19 倍,输入和输出都是。什么时候这笔钱花得值。

差别在价格,不在能力档位

大家最先比的那些规格,Sonnet 5 和 Opus 5 是一样的:都是 100 万 token 上下文,最多输出 12.8 万 token,都支持工具调用和扩展思考,都走 /v1/messages。谁也不是谁的缩水版。

分歧在价格。官方定价 Sonnet 输入每百万 token 3 美元、Opus 5 美元;输出分别是 15 和 25 美元。但两者的倍率不同——Sonnet 5 是 0.35 倍,Opus 5 是 0.25 倍——所以实际计费 Sonnet 是 1.05 / 5.25 美元每百万,Opus 是 1.25 / 6.25 美元。Opus 大约贵 1.19 倍,而不是只看官方价得出的 1.67 倍。

这一点的实际后果是:日常写代码,两者给出的答案在结构上没什么区别,价差就是全部的区别。什么时候不再成立,是下一节的内容。

这笔价差换来什么

Sonnet 5 本来就能胜任的活儿,两者给出的答案在结构上没有差别,那 1.19 倍花在了看不出来的地方。日常改代码、写测试、多步工具调用,多半属于这一类。

差距出现在长推理链上——早期一步偏差会顺着后面每一步放大;以及答错的代价远高于 token 成本的场景。这两点都不是从任务描述上能判断的,得看你自己的任务,所以真正有用的做法是同一个 prompt 分别跑两个 id,对比结果。

两者走同一个端点、同样的请求结构,切换只是改一个字段,做一次对比也就多花一次调用。

两个模型走同一个端点,只有 model 字段不同。
curl https://token-share.app/v1/messages \
  -H "x-api-key: $TOKEN_SHARE_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Explain this stack trace."}]
  }'

100 万 token 上下文做不到的事

100 万 token 是容量,不是记忆力。窗口是空是满,两个模型的单价都一样,所以每次请求都把整个仓库贴进去,只会让账单翻倍,不会让答案变好。

当长前缀确实会重复时——系统提示词、对话反复引用的某个文件——真正起作用的是提示词缓存。缓存读取与新输入分开计价,稳定的前缀就不必每轮都按全价重算。

常见问题

怎么判断 Opus 5 那 1.19 倍对我的任务值不值?
同一个 prompt 分别跑两个 id,比一下产出。Sonnet 5 本来就能胜任的任务,两边答案往往差不多,多花的钱看不出效果。差距通常出现在长推理链,以及答错代价很高的场景——但这取决于你的具体任务,不是一个通用排名能回答的。
两个模型是官方价的同一个折扣吗?
不是。Sonnet 5 按官方每 token 定价的 0.35 倍计费,Opus 5 按 0.25 倍,所以 Opus 实际只贵 1.19 倍,而不是官方价暗示的 1.67 倍。倍率是逐模型设定的:整个目录从 0.1 倍到 0.5 倍都有,每个模型页会标出自己的倍率。
这和 Anthropic 官方的模型是同一个吗?
是同一个。请求转发到 Anthropic 上游,模型 ID 和返回结果都来自官方。不同的是计费方式,以及请求由哪个账号池承载。