Claude Code 正在 Bedrock、Vertex、Mantle 和 Foundry 上多收你的费:Gateway 运营商审计清单

Claude Code 2.1.211 修复了一个 prompt caching 计费回归问题,该问题会在每次请求时将末尾的系统上下文块静默计为新鲜 input token,影响 Bedrock、Vertex AI、Mantle 和 Foundry 四个平台。如果你的团队通过云厂商 gateway 路由 Claude Code,你可能有超额账单需要核查。

发布于 来源 Anthropic Claude Code

归档条目:由 AI 根据所引信源辅助生成,发布时未经逐篇审阅。责任编辑:Joe Werner。

抽象的云 gateway 示意图,带有计费仪表盘和高亮的缓存未命中指示器,深色背景

Claude Code 2.1.211 更新日志末尾那条修复记录,值得单独写一份故障报告:Bedrock、Vertex AI、Mantle 和 Foundry 上存在一个 prompt caching 计费回归——每次请求时,末尾的系统上下文块都被静默地当作新鲜 input token 计费,而不是走缓存读取路径。如果你的团队通过这四个云厂商 gateway 之一路由 Claude Code,那你一直在为本应命中缓存的内容支付全额 token 费用。

这不是一个小问题。Prompt caching 是大规模运行 Claude Code 最核心的成本控制手段之一。当系统上下文块不再命中缓存、每轮都按新 token 计费时,长上下文会话的实际单轮成本会显著上涨。

发生了什么

Claude Code 2.1.211 本周发布,包含一个修复:解决了末尾系统上下文块在四个云厂商 gateway 端点(Amazon Bedrock、Google Cloud Vertex AI、Anthropic Mantle、Microsoft Azure Foundry)上的缓存回归问题。

回归导致系统提示的最后一个块绕过缓存、在每次请求时作为新 input token 计费,即使内容与上一轮完全相同。直接使用 Anthropic API 的团队不受影响——该问题只出现在 gateway 路径上。

Claude Code 大量依赖 prompt caching。一次典型编码会话的系统上下文包含指令、项目背景、rules 文件和 tool schema,这些内容在多轮间基本稳定。一旦这个块无法命中缓存,每轮都会多付出与该上下文块大小成正比的 token 费用。

以一个包含 20,000 token 系统上下文的中等规模编码会话为例:正常情况下,第一轮产生缓存写入费用,后续每轮的系统上下文部分只产生缓存读取费用(约为新 token 价格的 10%)。但在存在回归的版本中,末尾系统上下文块每轮都按全价新 token 计费,一次包含 50 轮交互的会话可能因此多付出数倍于预期的成本。

为什么对 AI 工程团队至关重要

这次回归影响企业 Claude Code 五大部署路径中的四个:

Gateway是否受影响
Anthropic API(直连)否
Amazon Bedrock是
Google Cloud Vertex AI是
Anthropic Mantle是
Microsoft Azure Foundry(通过 Claude apps gateway)是

通过集中 AI gateway 路由所有开发者流量(出于数据驻留、合规或成本分摊需求)走 Bedrock 或 Vertex AI 的团队,每次会话都受到这个回归的影响。

影响程度与会话长度和系统上下文大小成正比。包含大量 rules 文件和项目说明的长上下文编码会话受影响最重。如果你的团队近期注意到 Bedrock 或 Vertex AI 账单中缓存未命中率上升、费用超出预期,应该重点审计 2.1.211 更新之前的那段时期。

Router/operator 视角

这次回归是一个具体案例,说明 AI gateway 运营商为什么需要在 gateway 层主动监控缓存效率指标,而不是仅依赖 Claude Code 内置的成本计数器。

如果你的团队通过 Bedrock、Vertex、Mantle 或 Foundry 路由 Claude Code,建议立即执行以下操作:

  1. 立即升级。 将所有开发者工作站和 CI 环境的 Claude Code 升级至 2.1.211 或更高版本。修复已包含在新版本中,但只在更新后生效。若团队通过企业 MDM 或集中部署管理 Claude Code 版本,需要将 2.1.211 列入强制推送计划,而不是等待开发者自行更新。

  2. 审计近期账单。 导出过去 30–60 天的 Bedrock 或 Vertex AI 使用日志,对比 cache_read_input_tokens 和 cache_creation_input_tokens 的比例。系统上下文稳定的情况下,正常会话的 cache_read 应远高于 cache_creation。如果二者比例接近 1:1 甚至 cache_creation 更高,回归几乎可以确定是主因。对于有 SLA 的企业账号,可以联系 AWS 或 Google Cloud 的账单支持,提供证据请求退款。

  3. 关注 subagent 模型漂移。 2.1.211 同时修复了一个相关问题:使用显式 model override 启动的 subagent,在 resume 或收到后续消息后会回退到父会话的模型。对于通过 gateway 将特定 subagent 路由到更低成本或更快模型(如将代码分析子任务路由到 Haiku,主要生成任务保留 Sonnet 5)的团队,这意味着路由决策在会话中途被静默覆盖,产生意外的成本超支。

  4. 检查 gateway 认证 daemon 稳定性。 2.1.211 还修复了 LLM gateway 认证(ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL)下的后台任务在 daemon 重启后报 "Not logged in" 的问题。这影响使用自定义 gateway 凭证(而非标准 API key)的团队。对于在 Kubernetes 或 ECS 上运行 Claude Code daemon 的场景,建议在 2.1.211 升级后验证 daemon 重启后的认证恢复行为。

2.1.210 和 2.1.208 中其他值得关注的 operator 修复:

  • Worktree 隔离漏洞修复(2.1.210): 使用 isolation: 'worktree' 的 subagent 此前可以在主仓库 checkout 上执行 git 写入命令。对于使用隔离 subagent 审查不可信代码、或在 CI 管道中运行并行代码修改任务的团队,这是一个关键的安全边界问题——攻击者控制的代码内容可能通过 subagent 污染主分支。
  • Bedrock/Vertex/Foundry 上 auto mode 默认值修复(2.1.210): /doctor 此前在这三个平台上跳过了 auto mode 默认建议,而这些平台上 auto mode 已不再需要手动开启。通过 MDM 托管部署的团队可能因此一直在使用非最优的权限模式,需要主动运行 /doctor 确认。
  • Hook 超时误报修复(2.1.210): Hook callback 超时被误报为用户拒绝,导致无人值守会话停下来等待。这影响使用 PreToolUse/PostToolUse hook 做策略执行的 gateway 运营商——长时间运行的 hook(如调用外部审批系统)在超时后不再会让 agent 误认为被拒绝。
  • Bedrock 流式响应解析修复(2.1.208): 当 gateway 对响应做转换时,Bedrock 流式请求会失败并报含糊的 "Truncated event message received"。现在错误消息会显示具体的 content-type 并指向代理,大幅降低排查时间。
  • 权限预览安全性(2.1.211): 发送给聊天频道的权限预览未对双向覆盖字符、零宽字符和形近引号进行过滤,存在 tool 输入视觉篡改审批消息的风险。对于使用 Claude Code 在 Slack 或 Teams 频道发送权限确认请求的企业,这是一个需要立即更新的安全修复。

TheRouter 用户应关注和尝试的事项

通过多 provider gateway 路由 Claude Code 的团队,应将这次 prompt cache 计费回归作为一个信号:在 gateway 层建立缓存效率指标的主动监控,而不是仅依赖 Claude Code 内置的成本计数器。

具体来说:如果你的 gateway 收集每请求的 token 明细,可以添加对 cache_creation_input_tokens 与 cache_read_input_tokens 比例的监控告警。当系统上下文内容稳定时,如果 cache_creation 占比突然上升,通常意味着 gateway 路径上的缓存未按预期工作。

Claude apps gateway 文档 描述了 Bedrock 和 Vertex 的路由架构。多云部署的团队应在 2.1.211 更新后确认版本,并对比更新前后的成本指标,量化回归的实际影响。

对于使用多个云 gateway 路由 Claude Code 流量的团队,这次事件也提供了一个建立"跨 provider 缓存基线测试"的机会:定期在每个 provider 路径上运行一组固定的测试会话,验证 cache_read 比例是否符合预期,作为 gateway 健康检查的一部分。这样可以在账单超支达到生产规模之前,更早发现类似的计费异常。

帮助与联系