Claude Code:v2.1.277 中 AGENTS.md 支持受遥测限制

Claude Code v2.1.277 在禁用遥测时静默无法加载 AGENTS.md 项目指令。这是因为该功能被一个远程功能标志所限制,该标志需要网络连接才能解析,实际上对于设置了 DISABLE_TELEMETRY=1 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 的用户,禁用了本地文件读取能力。

远程功能标志限制本地文件访问

在版本 2.1.277 中,agents-md 插件配置了 isOnByDefault: false。该插件的可用性由名为 tengu_agents_md_mod 的远程功能标志决定。如果 Claude Code 无法从 Anthropic 的服务器获取此标志——当遥测或非必要流量被禁用时会发生这种情况——该插件保持不可用,本地 AGENTS.md 文件永远不会被读取。

这种行为对使用 Bedrock 和 Vertex 等第三方网关的用户影响尤为严重,这些网关的网络策略通常会阻止解析这些标志所需的流量,导致这些用户完全缺少该功能。

影响与静默失败

用户经历了静默失败,模型会在没有 AGENTS.md 中包含的项目指令的情况下回答,且没有任何警告或错误消息。这导致一些用户认为模型只是忽略了他们的指令,可能浪费了时间在提示工程上,而实际上该文件从未被加载到上下文中。

变通方案与配置

在 v2.1.281 修复之前,用户采用了多种变通方案来在使用项目指令的同时保持隐私设置:

  • @path 导入: 创建包含 @AGENTS.md 的单行 CLAUDE.md 文件,允许工具加载指令而不依赖功能标志。
  • 会话级覆盖: 使用 --settings 标志清除特定会话的遥测环境变量:claude --settings '{"env":{"DISABLE_TELEMETRY":"","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC":""}}'。
  • 符号链接: 创建从 AGENTS.md 到 CLAUDE.md 的符号链接(ln -s AGENTS.md CLAUDE.md)。

开发者回应与解决方案

一位 Anthropic 工程师(@mpoteat)确认该问题是与推出终止开关实现相关的“人为错误”。该问题在版本 2.1.281 中已解决,该版本移除了读取本地文件时对遥测的依赖。

“抱歉各位,这是推出过程中的产物,我们需要一种通过功能标志远程关闭它的方式,如果它破坏了某些东西,而关闭遥测后你无法获得这些标志。它已经在今天发布的 v2.1.281 中修复了。”

社区见解与设计批评

Hacker News 上的技术讨论强调了关于使用功能标志控制本地行为的几个设计问题:

  • 隐私与功能的权衡: 批评者认为,隐私设置(禁用遥测)不应静默禁用无关的本地功能。
  • 氛围编码: 一些用户将此描述为“氛围编码”,暗示 AI 生成的代码库补丁可能导致绕过传统测试的微妙而严重的错误。
  • 标准化: 社区持续要求 Claude Code 完全采用 AGENTS.md 和 .agents/ 标准,而不是专有的 CLAUDE.md 格式。
  • 全局配置: 用户指出缺乏对全局 ~/.codex/AGENTS.md 或用户级指令文件的支持,这些文件可以在不手动复制的情况下跨项目持久存在。

Sources

相关

  • Dispatch
  • Dispatch
  • 项目
  • Dispatch
  • Dispatch