Claude Sonnet 5 与 GPT 5.6 Sol:价格、上下文,以及切换的代价

两者都是 0.1 倍率。Sol 输入贵 1.67 倍、输出贵 2 倍,上下文 37.2 万 token,而 Sonnet 5 是 100 万。更麻烦的是,它们的请求结构根本不一样。

倍率一样,标价不一样

两个 id 都是 0.1 倍率,谁也没有额外的折扣。差别在于倍率乘上去的那个官方单价:Claude Sonnet 5 是输入每百万 token 3 美元、输出 15 美元,GPT 5.6 Sol 则是 5 美元和 30 美元。

乘完之后,Sonnet 5 是 0.30 / 1.50 美元每百万 token,Sol 是 0.50 / 3.00 美元。输入端 Sol 贵 1.67 倍,输出端贵 2 倍——差距在输出侧被拉开,而模型一旦开始长篇解释,涨的正是这一侧。

能力上没有谁被阉割:text、tools、thinking 两边都列,单次响应的输出上限也都是 12.8 万 token。目录里记录的东西,分不出高下。

上下文差了 2.7 倍

Sonnet 5 的上下文是 100 万 token,Sol 是 37.2 万。Claude 这边大约多出 2.7 倍空间,这也是两条目录条目之间最大的一处差异。

但空间不等于价值。窗口是空是满,两边都按 token 计费,所以多出来的容量只有在任务确实塞不进 37.2 万 token 时才换得到东西——整仓通读、很长的 agent 对话记录、切开就会丢掉交叉引用的一整套文档。

换句话说,这一栏怎么读取决于你的 prompt 有多长。稳稳待在 37.2 万以内,那它就不构成选择理由,决定权全部回到价格上;一旦越过去,37.2 万就是一堵墙,不是慢一点的问题,另一边再便宜也绕不过来。

这两个 id 不能互相顶替

价格表看不到的就是这一段。Sonnet 5 走 /v1/messages,认 x-api-key 和 anthropic-version 两个头,body 里是 messages 数组,外加必填的 max_tokens。Sol 走 /v1/responses,认 Authorization: Bearer,body 里是 input。

所以这不像换两个 Claude id 那样改一个字段就完事:端点不同、鉴权头不同、请求结构不同,解析响应的代码也得跟着改。如果你的客户端已经在说其中一种方言,这笔改造成本就实实在在压在对比的另一头。

顺便记一下 GPT 5.6 Terra:同样走 /v1/responses、同样 37.2 万 token 上下文、同样 0.1 倍率,官方价 2 / 12 美元,折下来 0.20 / 1.20 美元。要是你本来就在 OpenAI 那套结构里,先看看同结构里的便宜选项,可能比跨供应商更划算。

同一个问题分别问两个模型——注意两次调用几乎没有共同之处。
# Claude Sonnet 5 — Anthropic shape
curl -sS 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": "Why does this test flake?"}]
  }'

# GPT 5.6 Sol — OpenAI Responses shape
curl -sS https://token-share.app/v1/responses \
  -H "Authorization: Bearer $TOKEN_SHARE_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "input": "Why does this test flake?"
  }'

怎么用自己的活儿把这事定下来

你真正想知道的那件事——在你自己的代码上谁表现更好——目录里根本没有。上面这些数字只能框出问题的边界,告诉你猜错了要付多少钱,答不了这个问题本身。

最省事的做法是:挑二十个你做过、知道正确答案的任务,两个 id 各跑一遍,然后重点看它们各自在哪儿翻车,而不是看谁答得漂亮。两边输出上限都是 12.8 万 token,所以公平的比法是给同样的 max_tokens、同样的 prompt。

跑完再算钱:把每次实际消耗的输入、输出 token 数乘上各自的有效单价(Sonnet 5 是 0.30 / 1.50,Sol 是 0.50 / 3.00)。有意思的地方在于,输出单价贵一倍的模型,如果只用一半的输出 token 就把话说清楚,总账反而可能更便宜——这一点不实测是看不出来的。

常见问题

单次请求哪个便宜?
按 token 算是 Sonnet 5 便宜:0.1 倍率之后,输入 / 输出是 0.30 / 1.50 美元每百万,Sol 是 0.50 / 3.00。但"单次请求"是另一个问题,取决于两个模型各自要花多少 token 才能把话说完。别默认按 token 的排序能直接搬到按次上,拿自己的 prompt 数一下 token 数再说。
同一个请求体能同时发给两个模型吗?
不能。Sonnet 5 在 /v1/messages 上,要 messages 数组和必填的 max_tokens,鉴权用 x-api-key 加 anthropic-version;Sol 在 /v1/responses 上,字段是 input,鉴权用 Authorization: Bearer。请求体和返回结构两边都不一样。
100 万上下文是不是意味着 Sonnet 5 记性更好?
它的意思只是单次请求能塞进更多——100 万 token 对 Sol 的 37.2 万。两个模型都不会把上一轮的东西带到下一轮,也都是按 token 计费、跟窗口填了多少无关。所以把窗口填满是一个花钱的决定,不是给模型升级记忆。