首页 > 开源 > Codex CLI 的 Bedrock 接入绕过了 GPT-5.6 缓存,4 天花掉 1386 美元,85% 是白写的

Codex CLI 的 Bedrock 接入绕过了 GPT-5.6 缓存,4 天花掉 1386 美元,85% 是白写的

OSChina资讯 2026-08-24 11:08 1 阅读 查看原文

GitHub 上有个 Issue 值得关注。

一位开发者在使用 Codex CLI 的 Amazon Bedrock 原生 provider 接入 GPT-5.6 Sol 时,发现 4 天花掉了约 1386 美元,其中85% 花在了 prompt cache write 上,而不是真正的推理使用

事情是这样的:Codex 在工作时会维护一个 prompt_cache_key,这个 key 用来标记可以复用的缓存前缀。但在 Bedrock 的 Responses API 请求里,prompt_cache_optionsprompt_cache_breakpoint 两个字段都没有被序列化出去。结果就是每次请求都重新写入缓存,没有一次读取,缓存完全白写。

战术数据很具体:3656 次请求,171.94M 的 cache-write tokens,而 cached_input_tokens 为零。一次本地 Codex 会话的 76 次 Sol 请求中,平均每次有 88K 的 cache-write tokens,没有任何缓存命中。

Codex Issue

这个 Issue 还关联了上游的 #35300,说明这不是单例。评论区另一位用户 kevmyung 补充说,从 0.146.0 升级到 0.147.0 后,cache write-to-read ratio 从 0.08 飙到了 8.84,日成本至少翻了 5 倍。

AWS 的文档里已经明确写了 Bedrock 上 GPT-5.6 的显式缓存模式,专门为 agentic 工作流(稳定的 system prompt + tool definitions 前缀 + 变化中的 tool/user content)设计的。Codex 的 workload 正好匹配这个场景,但接口没连上。

Issue 作者提了四个具体的修复请求:

  1. 对支持 GPT-5.6 的 Responses provider 序列化 prompt_cache_options
  2. 给 content blocks 加上 prompt_cache_breakpoint 字段
  3. 在 Codex 的稳定 instruction/tool 前缀末尾自动打断点
  4. 在每轮 usage telemetry 里暴露 cache reads 和 cache writes

有一点要说明,Issue 作者很严谨地解释了:不是所有 cache write 都是 bug,冷启动、分支、fork、compaction 都会产生写入。问题是 Bedrock 原生 provider 完全没给用户选择显式缓存的机会

另外,评论区还有另一层讨论:cache_write_input_tokens 应该作为独立的诊断指标展示,但不应该自动加到 provider 的 input_tokens 上去算总成本,除非 provider 确认这两个 bucket 是不重叠的。这个语义细节如果搞错了,会直接导致成本展示翻倍。

来源:https://github.com/openai/codex/issues/37674