Claude Code 2.1.237 修复了经 LLM 网关路由时提示缓存失效的问题,2.1.236 新增了可被覆盖的默认模型配置

Claude Code 2.1.237 修复了一个将所有经自定义 base URL 路由的会话提示缓存静默失效的 bug。如果你一直在通过网关路由 Claude Code,自 2.1.229 起,每一轮对话都在以完整上下文窗口的 token 成本重新处理。

发布于 来源 Anthropic

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

抽象插图,展示缓存检查点如何恢复 AI 路由网关层的高效信号传输

如果你通过网关或自定义 base_url 接入 Claude Code,那么至少从 2.1.229 版本起,你的提示缓存一直在悄悄失效。每一轮对话都会把完整的会话历史以全量 token 的价格重新处理一遍。这个问题在本周发布的 2.1.237 中已经修复。

两个版本放在一起看更有价值,2.1.236 和 2.1.237 都带来了专门影响网关接入部署的变化。

什么出了问题,2.1.237 修复了什么

Claude Code 的提示缓存机制防止每次 API 调用时重新编码完整的上下文窗口。当会话经过自定义 base_url 时,无论是自建代理、企业 AI 网关还是托管路由服务,2.1.237 修复了一个导致每次请求都使缓存失效的 regression。官方 changelog 只说了一句,"修复了使用 LLM 网关或自定义 base URL 的会话的提示缓存问题",但实际的运营后果远不止这句话。

对于一个携带 30 到 50K token 项目上下文的典型 Claude Code 会话,缓存未命中意味着每一轮都在以冷 token 全量发送这些内容,而不是在整个会话中摊销成本。在 30 到 60 轮的编程会话中,根据上下文在各轮之间有多少部分保持不变,输入端的实际费用倍数就可能达到 5 到 10 倍。跟踪每个会话 token 成本的团队会看到输入 token 数量异常偏高,却没有任何报错说明原因。

这个 regression 看起来可以追溯到 2.1.229,那个版本重构了会话管理系统提示边界的方式。2.1.237 的修复为发往非 Anthropic base URL 的请求恢复了 cache-control 头部。

如果你在 2.1.236 或更早版本上通过网关路由 Claude Code,请在下次重度会话前更新到 2.1.237。

新增的 ANTHROPIC_DEFAULT_MODEL 环境变量(2.1.236)

对于网关运营方来说,第二个值得关注的变化是新增了 ANTHROPIC_DEFAULT_MODEL 这个环境变量。

在 2.1.236 之前,Claude Code 有 ANTHROPIC_MODEL,它会强制指定一个模型,用户通过 /model 的选择也无法覆盖它。这对需要管控后端调用模型的运营方部署场景很有用,但代价是用户失去了在会话中切换模型的能力。

ANTHROPIC_DEFAULT_MODEL 的语义则不同,它设置新会话启动时使用的模型,但用户通过 /model 做出的选择可以覆盖它,而且这个覆盖会在重启后持久保存。具体的运营迁移路径如下表所示。

场景之前现在
强制使用某个模型,用户无法更改ANTHROPIC_MODEL=claude-opus-5-...保持不变,继续用 ANTHROPIC_MODEL
设置一个合理的默认值,允许用户更改无简洁方案;ANTHROPIC_MODEL 会锁死模型使用 ANTHROPIC_DEFAULT_MODEL=claude-sonnet-5-...
网关运营方允许用户选择,但需要计费可追溯的起始点变通方案:在 managed settings 中设置模型ANTHROPIC_DEFAULT_MODEL 加上允许 /model 覆盖

对于通过路由服务接入并支持按模型计费归因的团队,这个新变量让你可以为成本分摊设定一个起始模型,而不必把用户锁定在这个选择上。

auto 模式在 Bedrock、Vertex 和 Foundry 上的行为现在统一了

2.1.236 的第三个变化是 auto 模式的一致性修复。在此之前,在 Bedrock、Vertex AI 和 Azure Foundry 上运行的会话,或者关闭了遥测的会话,运行的是一个降级版本的 auto 模式分类器。这次修复将分类器默认值与 Claude API 行为对齐,包括基于严重程度打分的分类。如果你一直在把 Claude Code 路由到云托管的 Claude 端点,并发现 auto 模式对工具调用的审批行为与直接使用时不一致,这就是原因所在。修复后,无论底层用的是哪条 provider 路径,auto 模式设置都应该产生相同的审批行为。

沙箱拒绝规则现在能抵抗重命名绕过(2.1.236)

多租户网关运营方还需要注意一个沙箱层面的变化。macOS 沙箱中的通配符 read-deny 规则,比如用 **/.env 拦截凭证文件读取,现在会在允许读取的区域内优先生效,而且无法通过重命名被拦截的文件来绕过。在 2.1.236 之前,攻击者可以把 .env 改个名字来规避这条规则。这次修复让 deny 规则真正像一个拒绝名单来运作。

网关运营方需要做的事

  • 更新到 2.1.237,并在下一次会话中观察输入 token 数量。如果你的会话之前触发了这个 regression,你应该会看到冷 token 量明显下降。
  • 在 ANTHROPIC_MODEL 和 ANTHROPIC_DEFAULT_MODEL 之间做选择,根据你是需要强制指定模型还是只需设置一个默认值来决定。
  • 审查你的 auto 模式配置,特别是如果你的路由目标是 Bedrock、Vertex 或 Foundry。分类器一致性修复可能会改变审批行为,你现有的策略未必能覆盖到所有情况。
  • 检查沙箱拒绝规则,如果你在共享或多租户场景下使用 Claude Code。通配符优先级修复总体是好事,但值得对照你现有的规则集验证一遍。

如果你通过 TheRouter 把 Claude Code 会话路由到多个 provider,这次提示缓存修复适用于任何使用自定义 ANTHROPIC_BASE_URL 的会话,而这正是 TheRouter 接入方式的工作原理。把你的 Claude Code 安装指向 TheRouter 端点,然后更新到 2.1.237,即可恢复缓存效率。

帮助与联系