🎁 新人 免费注册,送 10 次调用,最高 $1,免绑卡。
GPT-5.6 成本指南:Prompt Caching 打一折、Reasoning Effort

GPT-5.6 成本指南:Prompt Caching 打一折、Reasoning Effort

目录
  1. 三个档位,同一代
  2. 5.6 缓存机制解读(基于官方文档)
  3. 计费表告诉我们什么
  4. 对照组:同样的负载跑在 GPT-5.5 上
  5. 第二个杠杆:reasoning effort
  6. 不同负载该怎么推荐
  7. tokenizer 没有变
  8. 结论
  9. 常见问题

GPT-5.6 同时调整了两个成本杠杆:缓存输入降到输入费率的 10%(5.x 系列只打五折),而且默认开启 reasoning 后,在我们跑的 50 次调用矩阵里,不发送 reasoning_effort 的费用是设为 none 的 1.5 倍,答案却完全一样。输入这边,现在可以显式设置最多四个缓存断点;输出这边,effort 这个旋钮决定你要为多少思考量付费。我们通过 gateway 在首发模型上实测了这两个杠杆:Sol(输入/输出每 100 万 token 5 美元/30 美元)、Terra(2.50 美元/15 美元)、Luna(1 美元/6 美元),每个费率都对着实时的 usage.cost 计量做了核对。

TL;DR

  • 缓存输入按输入费率的 10% 计费,各档实测为每 100 万 token 0.10/0.25/0.50 美元;5.x 系列只打五折。
  • 断点实现部分复用:改动某个标记后面的块,2431 个 token 里只有 1210 个被重新计费。
  • 前缀不足 1024 个 token 永远不会缓存,重复请求也可能悄无声息地未命中;命中率要按低于 100% 来预算。
  • 缓存写入按写入 token 的 1.25 倍计费;一次从未被读取的写入比不缓存还贵。
  • 在一个 4 任务矩阵里,省略 reasoning_effort 的费用是 none 的 1.5 倍,答案完全一样;一定要显式设置它。

实测时间 2026-07-10,通过 Synthorai gateway(OpenAI 兼容的 chat completions),也就是 OpenAI 发布该系列后的第二天。三个模型都已上线,新的缓存参数原样透传。

三个档位,同一代

命名方式变了:数字代表代次,Sol、Terra、Luna 是能力档位,取代了以前的 pro/mini/nano 后缀。三者都是 1M token 上下文窗口,最大输出 128K。下面每个费率都在已知 token 数上与计量的 usage.cost 精确对上了,包括缓存那一列:

档位输入 /1M输出 /1M缓存输入 /1M(实测)
gpt-5.6-sol$5.00$30.00$0.50
gpt-5.6-terra$2.50$15.00$0.25
gpt-5.6-luna$1.00$6.00$0.10

Sol 是旗舰,也是价格持平的 gpt-5.5 继任者:费率完全一致,都是 5 美元/30 美元。Terra 和 Luna 是同一代的缩减档位,价格分别是 Sol 的一半和五分之一,占据了以前 mini 和 nano 后缀的位置。就 token 计数而言,三者是同一个模型:我们发送的每个样本,它们返回的计数都完全一样。

5.6 缓存机制解读(基于官方文档)

以前 GPT 的缓存只有一种行为:API 自己检测 1024 token 以上的重复前缀,然后把命中缓存的部分按半价计费。正因为如此,我们在服务商对比里把 GPT 那一列归到了「全自动」。5.6 缓存指南把它换成了双模式设计:

{
  "model": "gpt-5.6-luna",
  "prompt_cache_options": { "mode": "explicit", "ttl": "30m" },
  "prompt_cache_key": "tenant-42",
  "messages": [
    {
      "role": "system",
      "content": [
        {
          "type": "text",
          "text": "...stable system prompt, 1024+ tokens...",
          "prompt_cache_breakpoint": { "mode": "explicit" }
        }
      ]
    },
    { "role": "user", "content": "the varying part" }
  ]
}

从指南里提炼出来的关键规则:

  • 断点(breakpoint)标记一个缓存前缀的结尾,覆盖该 block 及其之前的所有内容。implicit 模式(默认)依然会在最新的消息上自动放一个断点;explicit 模式只缓存你显式标记的部分。
  • 每个请求最多写四次缓存,implicit 的自动断点会占掉一个,所以默认模式下显式标记有三个位置可用,explicit 模式下有四个。来自之前对话轮次的断点,在后续请求里是只读的。
  • 1024 token 的下限依然存在:标记的前缀低于这个值就不会被缓存。
  • ttl: "30m" 是保证的最短存活时间,不是上限(「至少 30 分钟……可能保留更久」)。它取代了在 5.6 上已废弃的 prompt_cache_retention,这也意味着旧的 24h 延长保留选项一并消失了。
  • prompt_cache_key 是拿到可靠命中的方式:指南建议给每个租户或会话用一个稳定的 key,把重复请求路由到同一份缓存,每个 key 有大约每分钟 15 个请求的软限制。缓存的作用域限定在你的组织内。
  • 缓存写入在 5.6+ 上按输入费率的 1.25 倍计费,在新的 usage.prompt_tokens_details.cache_write_tokens 字段里上报。在 5.x 及之前,写入是免费的。

GPT-5.5 及更早的版本会用一个干净的 400 拒绝这些新参数(prompt_cache_options is not supported on this model),所以任何上线都要按版本做门控。

这套设计如果听着眼熟,那是应该的:内容 block 上的标记、四个断点、写入加价、滑动的只读历史,正是 Claude 的 cache_control 一直以来的样子。区别在 TTL:OpenAI 保证的 30 分钟下限是 Claude 默认 5 分钟的 6 倍。

计费表告诉我们什么

文档只是声明,实际情况要看网关计费表逐次探测返回的数据。完整原始记录都在运行日志里;下面每一项成本都能按档位费率精确对上,一位不差。

探测结果
显式写入,≈3k-token 标记前缀(Luna)cache_write_tokens=3012,按 $1.25/1M 计费:正好是 1.25x 溢价
换个问题重复cached_tokens=3012,完整标记,按 $0.10/1M 计费;该调用比写入调用便宜 90%
Sol / Terra 上的写入溢价每百万写入 token $6.25 / $3.125:各自 1.25x,分毫不差
Sol / Terra 上的缓存费率每百万 $0.50 / $0.25:正好是输入的 10%
621 token 的标记块,两次从不缓存:cache_write=0cached=0,两次调用均全价
1,221 token 的标记块正常写入(写入 1,212)
两个断点 [A][B],然后修改 Bcached=1212(正好是块 A)+ cache_write=1210(新的尾部,按 1.25x)
一个请求中五个断点无错误接受,全部 5,548 个 token 写入(4 次写入上限统计的是槽位而非 token;靠后的标记会覆盖它之前的所有内容)
在 Luna 上写入的前缀,重新发送到 Terracached=0,重新写入:缓存是按模型区分的
缓存未命中也可能带着 cache_write=0 返回:全价,无任何缓存,无错误

其中三行值得展开说说。

部分复用是真实存在的,也是采用断点的理由。 用一个稳定的块 A 加上替换后的尾部 B,计费表只对尾部重新计费:2431 token 的 prompt 中,1212 token 按缓存费率读回,新的 B 部分 1210 token 按写入溢价计费,总额与费率表一位不差地对上。这就是分层前缀的行为(system prompt、然后 tools、然后 documents,各自标记),Claude 用户就是围绕这个来组织 prompt 的,而 GPT 的自动模式永远无法保证这一点。有一点要注意:完整重复时,匹配长度有时会掉到标记以下(某次探测中 2422 token 的写入只匹配了 1897),所以按折扣费率来做预算,别指望精确的匹配数。

下限和无声的未命中是运营陷阱。 一个标记了 621 个 token 的块两次都没有缓存任何内容,没有报错,除了那些零之外也没有任何用量提示;如果你的”稳定前缀”是一段简短的系统提示词,你就在支付全价,而没有任何东西会告诉你。而一次未命中可能在没有写入的情况下发生,以全价,同样悄无声息。命中率是一个分布,而非承诺,无论你的请求走哪条路径:在生产环境中读取 cached_tokens 并对其设置告警,就像我们的五分钟缓存审计所做的那样。

写入溢价是真实存在的,它会改变盈亏平衡点。 三个档位上写入 token 都精确按 input 费率的 1.25 倍计费(Luna 写入计费为每百万 $1.25,Terra $3.125,Sol $6.25),我们最终一轮的每次探测都能一位不差地对上。这份溢价只有在前缀被再次读取时才回本:一次永远等不到命中的写入,比完全不缓存还贵 25%,这跟我们在 LangChain 那篇里测到的 Claude 写入溢价是同一个坑。只标记你确定会重复的前缀,而不是所有看起来稳定的内容。

我们探测所及的范围内,30分钟的下限依然成立。在写入后15分钟进行的带键重读返回了完全缓存的结果(1,313个token中命中1,313个,按10%的费率结算),远超旧的内存驻留期限5到10分钟,同一间隔的第二次带键探测重现了这一结果。我们没有探测完整的30分钟。

对照组:同样的负载跑在 GPT-5.5 上

公平的比较应该按同价位来做:Sol 沿用了 gpt-5.5 的完整定价($5/$30),所以它是名副其实的对等继任者,下面还有 Terra 和 Luna 两个降配档。标价一样,但缓存条款差得很远:

gpt-5.5gpt-5.6-sol
每百万 token 输入 / 输出标价$5.00 / $30.00$5.00 / $30.00
缓存输入费率输入价的 50%(官方文档)输入价的 10%(实测)
缓存控制仅自动自动 + 最多 4 个显式标记
生命周期尽力保留 5-10 分钟,可选 24 小时保证下限 30 分钟(按 key);无 24 小时选项
缓存写入费写入 token 按输入价 1.25 倍收费

在相同的标价下,缓存条款才是真正的升级。一个 3,000-token 的前缀在 5.5 上其自动缓存决定命中时每次调用花费 $0.0075,而在预热的 Sol 上花费 $0.0015,缓存部分便宜 5 倍。更深层的变化在于控制力和可见性:5.5 的命中依赖于你既无法触发也无法调试的不透明前缀检测,而 5.6 让你精确标记应当缓存的内容,用 prompt_cache_key 路由重复请求,并在 usage 中观察每一次写入的落地。未命中现在会以你所创建字段中的零值显示,而不是悄无声息。降级路径叠加其上:如果 5.5 对该工作负载是过度供给的,Terra 将整个价目表减半,Luna 将其除以五,同样的预热前缀降至 $0.00075 和 $0.0003。5.5 保留的唯一一点是可选的 24 小时保留期;如果你的流量是针对巨大前缀的每日批处理,这个权衡就会朝相反的方向发展。并且请注意第二个杠杆在迁移时朝相反方向切:5.6 默认进行推理,因此一个未固定 reasoning_effort 就迁移过来的 5.5 工作负载会以相同的价目表产生新的输出支出。

第二个杠杆:reasoning effort

缓存控制的是输入端的花费,reasoning_effort 控制的是输出端。因为 reasoning token 按输出价计费,而且和你的 prefix 不同,它永远无法被缓存。GPT-5.6 在所有 tier 上都接受从 nonexhigh 的取值。发布博文里还提到 Sol 有一个 max 档,但通过 chat completions 根本用不了(Sol 和 Terra 都会返回 400: 'reasoning_effort' does not support 'max' with this model),所以在网关和 SDK 走的 API 路径上,xhigh 就是实际的上限。

我们跑了一个 50 次调用的矩阵:四种任务形态(给一条评论分类、从日志行里抽取一个字段、一道多步算术应用题、一个小型代码生成任务),配上全部六种设置,即从 nonexhigh 再加上省略参数的情况,在 Terra 和 Luna 上跑,并用 Sol 抽查。50 个答案在每种设置下全都正确。变的只是账单。这些都是短输出调用(可见 token 只有几十个),所以按输出价计费的那几十个 reasoning token 在总花费里占了大头。比率那一列比较的是整次调用的成本:

任务(Luna)none 下的 reasoning token默认(省略)下默认成本相对 none
classify001.0x
extract001.0x
math0243.5x
code0392.5x

三个发现。第一,5.6 本身是自适应的:在两个简单形态上,任何设置都没花掉一个 reasoning token,所以这个旋钮在那里是免费的。第二,在看起来该动脑子的形态上(math、code),默认档即使毫无收益也会推理:省略参数的情况下,Luna 的 math 和 code、Terra 的 math 都要付出 none 价格的 2.5 到 3.5 倍(Terra 的 code 那次恰好在默认档没花任何 token),而答案完全一样。把 Terra 和 Luna 整个矩阵加起来,成本是 1.5 倍。第三,中间那几档设置(表里没列)是噪声,不是一个可调的旋钮:Terra 的 math 那次在 low 花了 19 个 reasoning token,medium 花了 0 个,high 花了 21 个,xhigh 又回到 0 个;Luna 的 code 那次 xhigh 花了 101 个,high 却只花了 41 个。这些名字代表的是意图,不是预算,和我们在 GLM 5.2 上测到的行为一样。

每次调用都显式传 reasoning_effort,并把分类、抽取、路由、短转换这类任务默认设为 none。只有当你的 eval 显示更高的设置确实改变了结果时,才对某个具体调用点做升级,而不是因为任务感觉难。我们这四种形态是短输出的 API 负载;真正困难的多步任务或许值得那份推理开销,但要用测量结果来证明。

两个杠杆是叠加的。prefix 一旦预热,Luna 调用的输入端只要 list 价的十分之一,而 reasoning 默认档在短任务上就成了剩下最大的一笔开销:Luna 的 math 调用在 none 下总共 $0.00007,省略参数则是 $0.00025,光是 reasoning 默认档就多加了 $0.00018,是整次托管调用的两倍多。只做缓存却不锁定 effort,省下来的钱又从另一头漏出去了。

不同负载该怎么推荐

现在这个决策有了清晰的结构,我们对 gateway 客户的建议如下:

工作负载形态建议
聊天,单个大而稳定的系统提示保持 implicit;自动断点已覆盖你,无论哪种方式折扣都是 90%
带分层前缀的智能体(系统 + 工具 + 文件)使用 explicit 模式,标记每个稳定层,易变内容放在最后;某一层变更时只从其标记处重新计费
带重排序上下文的 RAG在检索块之上的各层显式标记;这样重排序只需为末尾付费
定时任务与零星任务,间隔 10-30 分钟30m TTL 下限正是针对这些情况(5.x 和 Claude 的 5m 默认值从不命中);在我们的探测中,带键的重读在 15 分钟时可完全命中
短提示(<1,024 tokens)缓存不适用;别花精力做标记

与形态无关:为每个租户或会话发送一个稳定的 prompt_cache_key(文档将该键作为可靠匹配的基础),使每个标记层都保持在 1,024-token 下限之上,并监控 cached_tokens,因为存在无声的未命中。请记住缓存是按模型区分的:跨层级的 A/B 测试会在每一侧从零重新预热。并在同一次提交中设置另一个调节杆:按上述矩阵固定 reasoning_effort,除非评估另有说明,否则设为 none

档位选择上,90% 折扣对成本的影响比档位本身还大。一个负载反复重放 3,000-token 前缀,在预热后的 Luna 流量上每千次调用为该前缀支付约 $0.30,在预热后的 Sol 上是 $1.50;缓存部分在不同档位之间的差价,比 output token 上的差价要小。所以先按 output 质量和价格选档位,再让缓存把 input 那一侧抹平。从 gpt-5.5 过来,Sol 是同一价目表下的原地升级,缓存读取便宜 5 倍,还能控制什么时候读;如果你的 eval 认为更小的档位扛得住,就往下降到 Terra 或 Luna,价目表在此基础上再减半或除以五。

tokenizer 没有变

我们的 24 个样本(一段叙事文本的九种语言版本、其中六种语言的技术版和新闻版、一个 Python 函数、一个 JSON tool-call)在所有完成的对比里,GPT-5.5、Sol、Terra、Luna 的计数完全一致。基于 5.5 校准的 token 预算和缓存下限估算可以原封不动沿用;跨语言的表现见我们的 tokenizer 分语言评测,对 5.6 同样适用。

结论

  • 缓存折扣从 50% 加深到 90%,加上 30 分钟的保证 TTL,才是这次发布里真正的降价;档位价格是标题,但缓存条款对账单的影响更实在。
  • 分层 prompt 就用显式断点:部分复用是实测出来的,不是理论上的,而且心智模型可以从 Claude 一对一迁移过来。
  • 遵守 1,024-token 下限,发 prompt_cache_key,监控 cached_tokens;静默 miss 和静默完全不缓存两种情况都存在。
  • 显式发送 reasoning_effort,默认 none:在我们的整个矩阵里,不加管理的默认值多计费 1.5 倍,单个任务上最高到 3.5 倍,而答案完全一样。
  • xhigh 是能达到的上限(chat completions 里 max 为 400s);相对 5.5 无需重新校准 tokenizer。

常见问题

GPT-5.6 是否像 Claude 一样支持显式 prompt caching? 支持。通过 prompt_cache_options: {"mode": "explicit"} 配合内容块上的 prompt_cache_breakpoint 标记,每次请求最多可写入四次(隐式模式下为三次,因为自动断点会占用一个名额)。我们通过一个 OpenAI 兼容网关测试:一个标记了 3012 个 token 的前缀在第一次调用时写入,第二次调用时按缓存价完整读回。

GPT-5.6 的缓存输入价格是多少? 是输入价格的 10%,三个档位都验证过:Luna 每百万 token 0.10 美元,Terra 0.25 美元,Sol 0.50 美元。GPT-5.x 的缓存 token 按输入价的 50% 计费,所以 5.6 的缓存 token 价格降低到原来的五分之一。

GPT-5.6 的缓存比 GPT-5.5 更好吗? 在折扣力度和控制能力上,是的:缓存价 10% 对 50%,四个显式断点对只能被动检测、既无法触发也无法调试的自动模式,以及带 key 时 30 分钟的保底对 5-10 分钟的尽力而为。5.5 唯一还占优的地方是可选的 24 小时保留档位,而 5.6 去掉了这一项。

GPT-5.6 缓存的存活时间有多长? 文档保证至少 30 分钟(ttl: "30m" 是唯一被接受的值),可能更长;该选项取代了已弃用的 prompt_cache_retention,包括旧的 24 小时扩展层级。在我们的探测中,写入后 15 分钟的按键重读命中完整;我们没有探测完整的 30 分钟。

我需要 prompt_cache_key 吗? 发送它:文档将每个租户或会话的稳定键作为 5.6 上可靠匹配的基础,每个键每分钟约有 15 个请求的软限制。包含它没有任何代价,将其与 cached_tokens 监控配对,是你验证折扣是否真正生效的方法。

reasoning_effort 对 GPT-5.6 成本的影响有多大? 在我们的 50 次调用矩阵(四种任务形态、六种设置、Terra 和 Luna)中,每种设置都给出了正确答案,整体上省略该参数的费用是设为 none 的 1.5 倍,在算术任务上最高达到 3.5 倍。在简单形态(分类、抽取)上,任何设置都完全没有消耗 reasoning token。固定用 none,只在评测需要时再往上调。

GPT-5.6 Sol 支持最高等级的 reasoning effort 吗? 通过 chat completions 不支持。带 reasoning_effort: "max" 的请求会返回 400,列出 nonexhigh 的可选值,Sol 和 Terra 都一样。

API 工作负载应该用哪个 GPT-5.6 档位? Sol 是 gpt-5.5 的等价替代者(价格卡完全相同,5 美元/30 美元,缓存读取便宜 5 倍);Terra 和 Luna 是缩减档位,分别为其价格的一半和五分之一。一旦你的前缀稳定并带上 key,90% 的缓存折扣会把输入侧成本拉平,所以在你的输出质量评测允许的范围内尽量往下降,让档位来决定输出价格。

← 返回博客