Claude Code 2.1.267:运营商层面的 Effort 上限控制、提示词缓存稳定性修复与市场容器绕过漏洞补丁

2.1.267 带来三项运营商相关变更:跨 Bedrock、Vertex、Foundry 生效的 maxEffortLevel 上限配置;禁止系统提示词快照复用的新标志;以及一个通过反斜杠绕过市场容器检查的安全修复。此外包含十二项提示词缓存稳定性改进,直接影响 Token 成本。

发布于 来源 Anthropic Claude Code

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

Claude Code 2.1.267 运营商配置与提示词缓存架构示意图

2.1.267 包含三项直接涉及运营商配置的变更,以及一批提示词缓存稳定性修复——后者的总体影响足以单独梳理。这不是一个单一头条的版本;价值在于厘清哪些变更需要运营商主动操作,哪些是被动改善。

Effort 治理:maxEffortLevel 实际在管什么

新增的 maxEffortLevel 设置可放在 claude.json 顶层,也可放在 modelSettings 下某个特定模型的条目里。它为运营商路由所经过的所有 Provider 设定 effort 级别上限,包括 Bedrock、Vertex、Foundry,不仅限于 Anthropic 直连。

需要理解的关键行为:用户仍可选择低于上限的 effort 级别,但不能选更高的。这是天花板,不是地板,也不是固定值。

为什么这对成本治理很重要:扩展思考模型的 effort 级别对 Token 消耗有指数级放大效果。在机群部署中,一个始终以最高 effort 运行的用户,产生的成本可能比基线高一个数量级。此前,唯一的控制手段是全组织的托管设置或模型层级限制,都无法做到"这个部署跑 opus-4.7,但 effort 最高只能到 medium"。

配置格式:

// 顶层上限——对所有模型生效
{
  "maxEffortLevel": "medium"
}

// 按模型设置上限——适用于混合模型层级的机群
{
  "modelSettings": {
    "claude-opus-4-7": {
      "maxEffortLevel": "high"
    },
    "claude-fable-5-1": {
      "maxEffortLevel": "low"
    }
  }
}

跨 Provider 的作用域是关键。此前,通过 Bedrock 或 Vertex 路由的运营商没有任何 effort 级别控制能在 Provider 切换后保持生效。现在,该上限随会话传递,无论最终由哪个后端处理请求。

--system-prompt-snapshot off 与迭代式提示词工作流

Claude Code 在会话开始时记录系统提示词,并在后续轮次中复用该快照。这有利于提示词缓存稳定性,但会破坏迭代工作流——运营商在两次运行之间主动修改系统提示词,希望模型每次请求都读取最新版本而非会话开始时记录的版本。

--system-prompt-snapshot off 禁用记录步骤,系统提示词在每个请求边界从配置文件重新读取。权衡是明确的:系统前缀的提示词缓存复用率降至零,因为前缀在轮次之间不再稳定。对于部署期间的迭代和系统提示词变体的 A/B 测试,这是正确的权衡;生产稳态下应保持默认行为。

这个标志的典型场景:运营商正在调优已部署的系统提示词,并针对线上用户输入运行评估会话。如果不关闭快照,每次评估会话测试的是磁盘上不同版本的提示词,产生误导性信号。

市场容器绕过:漏洞位置与影响范围

市场条目路径中包含反斜杠时,可绕过 macOS 和 Linux 上对拉取市场的容器检查。该检查验证解析后的路径是否在配置的市场根目录内;反斜杠导致路径规范化产生一个能通过检查的字符串,但实际解析到根目录外的位置。

受影响对象:运营自定义市场的自托管 Claude Code 部署,且市场条目 manifest 中含有反斜杠路径。这在 Unix 系统上不常见,但在 Windows 上编写或由使用反斜杠分隔符的工具链生成的市场条目中可能出现。

修复方式:在容器检查之前而非之后进行路径规范化。除非现有市场条目包含含反斜杠的路径,否则无需运营商操作——但如果有,应立即审计这些条目。相同类型的修复已在 2.1.265 的 --plugin-dir 插件路径中落地;本次关闭了市场拉取路径上的同类问题。

提示词缓存稳定性:十二项修复,一笔成本账

2.1.267 包含十二项独立的提示词缓存中断条件修复。逐一列举会低估其影响;值得命名的是它们共同解决的模式。

核心问题:Claude Code 在会话开始时缓存系统提示词前缀和工具定义。任何导致这些内容在会话中途被重新渲染的事件——模型切换、工具重连、MCP 服务器重连、子代理派生、会话恢复——都会破坏缓存,并将前缀 Token 作为未缓存输入重新计费。缓存输入 $3–15/百万 Token,未缓存输入 $15–75/百万 Token,长会话或高吞吐管道中反复中断的积累成本可观。

典型触发条件的修复:

  • /model 切换:此前会重新发送所有工具定义,导致完全缓存缺失。现在模型切换后工具列表保持稳定。
  • MCP 服务器会话中重连:此前重连工具的添加方式会破坏稳定前缀。已针对支持工具搜索的模型(延迟定义)和其他模型分别修复。
  • 子代理派生与恢复:子代理启动上下文和预加载技能在后续轮次中被移出提示词前缀,导致代理自身后续请求的缓存失效。
  • /compact 后的会话恢复:会插入一个多余的"从上次离开的地方继续"轮次,改变系统提示词前缀并使整个恢复会话的缓存失效。
  • --system-prompt 和 --append-system-prompt 会话:现在只记录一次系统提示词和工具定义,而不是每轮重新渲染。

对于长会话、频繁 /model 切换或 MCP 连接器在故障后重连的运营商工作流,这批修复的效果在 Token 计费明细中应该是可测量的。升级后多轮会话的提示词缓存命中率预期提升。

操作建议

  • maxEffortLevel:如果对扩展思考模型部署有成本治理要求,设置该参数。modelSettings 下的按模型粒度适用于混合层级机群。不使用扩展思考模型则无需操作。
  • --system-prompt-snapshot off:系统提示词主动迭代期间使用;提示词稳定后恢复默认行为。
  • 市场审计:如果市场条目包含反斜杠路径,立即审计。该修复在 2.1.267 中落地;此前这类条目可通过容器检查。
  • 升级以改善缓存稳定性:如果提示词缓存缺失率是成本关注点,2.1.267 是实质性改善。无需更改配置,修复为行为层面。
帮助与联系