新人 免费注册,送 10 次调用,最高 $1,免绑卡。
GPT-5.6 成本指南:Prompt Cache 省 90%,Reasoning Effort 实测

GPT-5.6 成本指南:Prompt Cache 省 90%,Reasoning Effort 实测

目录
  1. 三档模型,同一代产品
  2. 文档中的 5.6 缓存机制
  3. 计量数据怎么说
  4. 与 GPT-5.5 上的相同 workload 对比
  5. 第二项杠杆:reasoning effort
  6. 不同 workload 应如何选择
  7. tokenizer 没有变化
  8. 结论
  9. FAQ

GPT-5.6 同时调整了两项成本杠杆:缓存输入降至输入费率的 10%,而 5.x 只打 5 折;同时,reasoning 默认开启。在我们的 50 次调用矩阵中,不传 reasoning_effort 的费用是显式设为 none 的 1.5 倍,但答案完全相同。输入侧现在最多可以显式设置 4 个缓存断点;输出侧则由 effort 参数决定你要为多少推理过程付费。我们在首发当天通过 gateway 实测了这两项机制,覆盖 Sol(每 1M 输入/输出 token 为 $5/$30)、Terra($2.50/$15)和 Luna($1/$6),所有费率都用实时 usage.cost 计量结果核对过。

TL;DR

  • 缓存输入按输入费率的 10% 计费。各档实测每 1M token 分别为 $0.10/$0.25/$0.50;5.x 的折扣只有 50%。
  • 断点支持部分复用:修改某个标记之后的 block 时,2,431 个 token 中只有 1,210 个重新计费。
  • 不到 1,024 个 token 的前缀不会进入缓存,重复请求也可能无提示地 miss;预算时不要按 100% 命中率估算。
  • 写入缓存的 token 按 1.25 倍费率计费;如果写入后从未读取,成本反而高于完全不用缓存。
  • 在包含 4 类任务的矩阵中,不传 reasoning_effort 的费用是 none 的 1.5 倍,但答案相同;应始终显式指定。

数据于 2026-07-10 通过 Synthorai gateway(兼容 OpenAI chat completions)采集,时间是 OpenAI announced the family 后一天。3 个模型都已上线,新缓存参数会原样透传。

三档模型,同一代产品

这一代采用了新的命名方式:数字表示代际,Sol、Terra 和 Luna 表示能力档位,取代原来的 pro/mini/nano 后缀。3 个模型都支持 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 计数看,3 个档位可以视为同一个模型:我们发送的每个样本都返回了完全相同的计数。

文档中的 5.6 缓存机制

过去 GPT 的缓存机制只有一种:API 自动识别重复且不少于 1,024 个 token 的前缀,并按半价计算其中的缓存部分。也正因为如此,我们在 provider comparison 中把 GPT 归为“完全自动”一类。5.6 caching guide 将它改成了双模式设计:

{
  "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" }
  ]
}

从指南中提炼出的关键规则如下:

  • 断点标记的是缓存前缀的末尾,范围包括当前 block 以及之前的所有内容。默认的 implicit 模式仍会在最新一条 message 上自动放置断点;explicit 模式只缓存你主动标记的内容。
  • 每个请求最多写入 4 次缓存。implicit 自动断点会占用 1 个名额,所以默认模式下只能放 3 个显式标记,explicit 模式则可以放 4 个。后续请求只能读取先前对话轮次中的断点,不能再次写入。
  • 1,024 个 token 的最低门槛仍然存在:被标记的前缀低于这个长度时不会缓存。
  • ttl: "30m" 表示保底生命周期,不是上限。文档写的是“至少 30 分钟……也可能保留更久”。它取代了在 5.6 上已废弃的 prompt_cache_retention,原来的 24h 延长保留选项也随之取消。
  • 要稳定匹配缓存,需要使用 prompt_cache_key:指南建议为每个租户或 session 设置稳定的 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),因此上线时必须按模型版本控制参数。

熟悉 Claude 的人对这套设计不会陌生:在 content block 上放标记、最多 4 个断点、写入有溢价、历史内容只能滑动读取,这些一直都是 Claude cache_control 的基本形态。区别在 TTL:OpenAI 保证至少 30 分钟,是 Claude 默认 5 分钟的 6 倍。

计量数据怎么说

文档只是规则说明,下面是 gateway 逐项探测返回的实际计量结果。完整原始记录保存在运行日志中;下表中的每项成本都能按各档费率精确核对。

探测项结果
显式写入,标记的前缀约 3k token(Luna)cache_write_tokens=3012,按 $1.25/1M 计费:正好是 1.25 倍
换一个问题后重复请求cached_tokens=3012,整个标记范围都按 $0.10/1M 计费;本次调用比写入调用便宜 90%
Sol / Terra 的写入溢价每 1M 个写入 token 分别为 $6.25 / $3.125:都精确等于 1.25 倍
Sol / Terra 的缓存费率每 1M token 为 $0.50 / $0.25:正好是输入费率的 10%
标记 621 个 token 的 block,调用两次始终没有缓存:cache_write=0cached=0,两次都按全价计费
标记 1,221 个 token 的 block正常写入(写入 1,212 个)
设置两个断点 [A][B],之后修改 Bcached=1212(正好是 block A)+ cache_write=1210(新 tail,按 1.25 倍计费)
单个请求中设置 5 个断点全部接受,没有报错,共写入 5,548 个 token(4 次写入的上限按 slot 计算,不按 token 计算;后面的标记会覆盖此前全部内容)
在 Luna 上写入前缀,再发送给 Terracached=0,重新写入:缓存按模型隔离
缓存 miss也可能同时出现 cache_write=0:全价计费、没有缓存、没有报错

其中 3 项需要进一步说明。

部分复用确实有效,这也是采用断点的主要原因。 在 block A 保持稳定、tail B 被替换后,计量结果只对 tail 重新计费:总共 2,431 个 prompt token,其中 1,212 个按缓存费率读取,新的 B 有 1,210 个按写入溢价计费,总成本可以按价目表精确核对。这正是 Claude 用户会围绕它组织 prompt 的分层前缀模式:system prompt、tools、documents 依次分层标记。GPT 的自动模式无法保证这种复用方式。还有一点:完整重复请求中,实际匹配长度有时会短于标记位置。有一次探测写入了 2,422 个 token,但只匹配 1,897 个。因此做预算时应使用折扣费率,不要假定每次都能精确匹配全部 token。

最低门槛和静默 miss 是实际运维中的坑。 一个标记了 621 个 token 的 block 连续两次都没有缓存。API 不报错,usage 中除了计数为 0 也没有其他提示。如果你的“稳定前缀”只是较短的 system prompt,实际仍会按全价收费,而且没有明显告警。缓存 miss 也可能不触发写入,同样静默地按全价计费。无论请求经过什么路径,命中率都是分布,不是承诺。生产环境应读取 cached_tokens 并配置告警,就像我们的 五分钟缓存审计 所做的那样。

写入溢价确实存在,并且改变了盈亏平衡点。 3 个档位的写入 token 都严格按输入费率的 1.25 倍计费:Luna 每 1M 为 $1.25,Terra 为 $3.125,Sol 为 $6.25。最终一轮的每次探测都能精确核对。只有前缀再次被读取时,这笔溢价才会回本。一次从未命中的写入,比完全不使用缓存贵 25%。这与我们在 LangChain post 中测得的 Claude 写入溢价问题相同。只标记确定会重复使用的前缀,不要看到内容稳定就全部缓存。

在我们的探测范围内,30 分钟的保底 TTL 确实有效。带 key 的请求在写入 15 分钟后再次读取,1,313 个 token 全部命中,并按 10% 费率准确计费,已经明显超过过去 5 到 10 分钟的内存缓存周期。第二组带 key 的探测以相同时间间隔重复,也得到相同结果。我们没有测试完整的 30 分钟。

与 GPT-5.5 上的相同 workload 对比

公平的比较应基于同价位模型:Sol 沿用了 gpt-5.5 的完整价目表($5/$30),因此是对应的直接继任者,Terra 和 Luna 则是更低档的选择。标价相同,缓存条款却差别很大:

gpt-5.5gpt-5.6-sol
每 1M 输入/输出标价$5.00 / $30.00$5.00 / $30.00
缓存输入费率输入费率的 50%(文档值)输入费率的 10%(实测值)
缓存控制仅自动自动 + 最多 4 个显式标记
生命周期5-10 分钟,尽力而为;可选 24h 保留带 key 时保证至少 30 分钟;取消 24h 选项
缓存写入费写入 token 按输入费率的 1.25 倍

在标价相同的情况下,升级的核心是缓存条款。一个 3,000 token 的前缀在 5.5 自动缓存命中时,每次调用成本为 $0.0075;Sol 缓存预热后的成本为 $0.0015,缓存部分便宜 5 倍。更大的变化是控制能力和可观测性:5.5 是否命中取决于不透明的前缀检测机制,既不能主动触发,也无法调试。5.6 则允许精确标记需要缓存的内容,使用 prompt_cache_key 路由重复请求,并通过 usage 查看每次写入。miss 不再完全没有踪迹,而是显示为你主动启用的字段中的 0。还可以继续降档:如果 5.5 对 workload 的配置过高,Terra 会将整张价目表减半,Luna 则降到五分之一;同一预热前缀的成本也会分别降至 $0.00075 和 $0.0003。5.5 唯一保留的优势是可选的 24 小时缓存。如果流量模式是每天围绕超大前缀运行一次 batch,这项取舍可能更有利于 5.5。迁移时还要留意第二项成本杠杆:5.6 默认启用 reasoning,因此把 5.5 workload 直接迁过来却不固定 reasoning_effort,会在相同价目表之上增加新的输出成本。

第二项杠杆:reasoning effort

缓存决定输入侧的支出;reasoning_effort 决定输出侧的支出,因为 reasoning token 按输出费率计费,而且无法像前缀一样缓存。GPT-5.6 的所有档位都接受从 nonexhigh 的设置。发布文章还为 Sol 提到了 max effort,但 chat completions 不支持该值(Sol 和 Terra 都会返回 400: 'reasoning_effort' does not support 'max' with this model)。因此,在 gateway 和 SDK 常用的 API 路径上,xhigh 才是实际上限。

我们运行了一个包含 50 次调用的矩阵:4 种任务形态,包括评论分类、从日志行提取字段、多步算术应用题和小型代码生成;覆盖从 nonexhigh 的全部 6 种设置,再加上省略参数;主测 Terra 和 Luna,并对 Sol 做了抽查。50 次调用在所有设置下都给出了正确答案,差别只在账单。这些调用的可见输出都很短,只有几十个 token,因此几十个按输出费率计费的 reasoning token 就足以主导总成本。下表中的倍数比较的是整次调用成本:

任务(Luna)none 时的 reasoning token默认(省略参数)时默认成本相对 none
分类001.0x
提取001.0x
数学0243.5x
代码0392.5x

可以得出 3 个结论。第一,5.6 本身会自适应:在两类简单任务中,无论使用哪种设置,都没有消耗任何 reasoning token,因此此时调整参数不会增加成本。第二,对看起来需要思考的任务(数学、代码),默认设置会进行 reasoning,即使结果没有任何改善。对于 Luna 的数学和代码任务,以及 Terra 的数学任务,省略参数的成本是 none 的 2.5 倍到 3.5 倍,但正确答案完全相同。Terra 的代码任务恰好在默认设置下没有消耗 reasoning token。汇总 Terra 和 Luna 的整个矩阵后,省略参数的总费用是 none 的 1.5 倍。第三,中间档位并不是线性的调节旋钮,结果噪声很大。表中未列出的 Terra 数学任务,在 low 下消耗 19 个 reasoning token,medium 为 0,high 为 21,xhigh 又变成 0;Luna 代码任务在 xhigh 下消耗 101 个,而 high 下为 41 个。这些名称表达的是意图,不是预算。我们在 GLM 5.2 上也测到过相同现象。

每次调用都应显式发送 reasoning_effort,分类、提取、路由和短文本转换默认设为 none。只有 eval 证明更高设置确实能改变结果时,才对特定调用点升级,不要仅凭任务看起来困难就提高档位。我们的 4 类任务都是输出较短的 API workload。真正困难的多步任务可能值得支付 reasoning 成本,但应由测量结果决定。

两项杠杆会叠加生效。前缀预热后,Luna 调用的输入侧只需支付标价的十分之一。对于短任务,默认 reasoning 反而会成为剩余成本中的最大项:Luna 数学调用在 none 下总成本为 $0.00007,省略参数时则为 $0.00025。默认 reasoning 单独增加了 $0.00018,是受控调用总成本的两倍多。只做缓存却不固定 effort,节省下来的费用会从另一侧漏掉。

不同 workload 应如何选择

现在的决策结构已经很清晰。我们给 gateway 客户的建议如下:

workload 形态建议
只有一个大型稳定 system prompt 的 chat保持 implicit;自动断点已经可以覆盖,无论哪种模式折扣都是 90%
使用分层前缀的 agent(system + tools + files)使用 explicit 模式,逐层标记稳定内容,把易变内容放在最后;某一层变化后,只会从该层的标记开始重新计费
context 顺序会变化的 RAG在检索 chunk 之前的层设置显式标记;重新排序时只需为 tail 付费
间隔 10-30 分钟的 cron 和零散任务30m TTL 保底正好适合这类场景,5.x 和 Claude 默认的 5m 都无法命中;我们的探测中,带 key 的请求在 15 分钟后仍全部命中
短 prompt(<1,024 个 token)缓存不生效,不必花时间设置标记

无论 workload 形态如何,都应为每个租户或 session 发送稳定的 prompt_cache_key。文档明确把 key 作为 5.6 稳定匹配缓存的基础。每个已标记的层都要超过 1,024 个 token 的最低门槛,并监控 cached_tokens,因为确实存在静默 miss。还要记住,缓存按模型隔离:跨档位做 A/B test 时,两侧都需要从零开始预热。在同一个 commit 中也应处理另一项杠杆:根据上面的矩阵固定 reasoning_effort,除非 eval 得出不同结论,否则设为 none

选择档位时,90% 的缓存折扣对成本的影响比档位本身更大。一个反复使用 3,000 token 前缀的 workload,在 Luna 预热流量下,每 1,000 次调用为该前缀支付约 $0.30;在 Sol 上则为 $1.50。不同档位在缓存输入部分的差距,小于它们在输出 token 上的差距。因此应先根据输出质量和价格选择档位,再用缓存压低输入侧成本。如果从 gpt-5.5 迁移,Sol 可以在相同价目表下直接替换,缓存读取便宜 5 倍,并且可以控制何时缓存。只要 eval 证明较小模型足以满足要求,就可以降到 Terra 或 Luna,使整张价目表在此基础上减半或降至五分之一。

tokenizer 没有变化

我们的 24 个样本包括 9 种语言的叙事文本、其中 6 种语言的技术和新闻版本、一个 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 会返回 400;从 5.5 迁移无需重新校准 tokenizer。

FAQ

GPT-5.6 是否像 Claude 一样支持显式 prompt cache? 支持。使用 prompt_cache_options: {"mode": "explicit"},并在 content block 上添加 prompt_cache_breakpoint 标记。每个请求最多写入 4 次;在 implicit 模式下,自动断点会占用 1 个名额,因此只能显式写入 3 次。通过兼容 OpenAI 的 gateway 实测,一个标记了 3,012 个 token 的前缀会在第一次调用时写入,第二次调用则按缓存费率完整读取。

GPT-5.6 的缓存输入费用是多少? 输入费率的 10%。3 个档位的实测价格分别为:Luna 每 1M token 为 $0.10,Terra 为 $0.25,Sol 为 $0.50。GPT-5.x 的缓存 token 按输入费率的 50% 计费,因此 5.6 的缓存 token 费率低 5 倍。

GPT-5.6 的缓存是否优于 GPT-5.5? 在折扣力度和控制能力上,是的。缓存费率从 50% 降至 10%;从只能依赖无法触发或调试的自动检测,变为最多支持 4 个显式断点;带 key 的缓存保证至少保留 30 分钟,而 5.5 只有尽力而为的 5-10 分钟。5.5 剩下的唯一优势是可选的 24 小时保留档位,5.6 已取消该选项。

GPT-5.6 的缓存能保留多久? 文档保证至少 30 分钟,ttl: "30m" 是唯一可接受的值,实际可能更久。这个选项取代已废弃的 prompt_cache_retention,包括过去的 24 小时延长保留档位。我们的探测中,带 key 的请求在写入 15 分钟后重新读取时全部命中;没有测试完整的 30 分钟。

是否必须使用 prompt_cache_key? 应该发送。文档将每个租户或 session 的稳定 key 作为 5.6 可靠匹配缓存的基础,每个 key 的软限制约为每分钟 15 个请求。携带该字段不会增加费用。将它与 cached_tokens 监控配合使用,才能确认折扣是否真正生效。

reasoning_effort 会让 GPT-5.6 的成本变化多少? 在我们的 50 次调用矩阵中,包含 4 类任务、6 种设置,并覆盖 Terra 和 Luna。所有设置都得出了正确答案,但总体上省略参数的费用是 none 的 1.5 倍,在算术任务中最高达到 3.5 倍。对于分类和提取这类简单任务,所有设置都没有消耗 reasoning token。应固定为 none,只在 eval 支持时升级。

GPT-5.6 Sol 是否支持最高的 reasoning effort? 通过 chat completions 不支持。无论 Sol 还是 Terra,发送 reasoning_effort: "max" 都会返回 400,并列出从 nonexhigh 的可用值。

API workload 应选择哪个 GPT-5.6 档位? Sol 是 gpt-5.5 的同价位继任者,价目表同为 $5/$30,但缓存读取便宜 5 倍。Terra 和 Luna 分别是其一半和五分之一的低配档。当前缀稳定并带有 key 后,90% 的缓存折扣会大幅压低输入侧成本。因此,在输出质量 eval 允许的范围内尽量降档,由模型档位决定输出价格。

本系列其他实测成本指南:七个 ASR 模型的转录成本实测图像生成成本实测GPT Realtime 语音价格实测

← 返回博客