Claude Code 终于支持 AGENTS.md,而真正的重点是 mods
2.1.277 版加入 AGENTS.md 兜底读取,并预览了一套能改写上下文加载的 TypeScript 钩子系统

Anthropic 于 9 月 18 日发布了Claude Code 2.1.277 版,解决了这个工具历史上得票最高的功能请求:原生支持 AGENTS.md —— 这是 OpenAI Codex、Cursor、GitHub Copilot、Gemini CLI、Devin 以及六万多个开源项目共用的跨工具指令格式。这件事拖了 13 个月、在 GitHub 上攒到 5,200 多票,Anthropic 才动手。但 AGENTS.md 这项改动并不是这次发布中最有分量的部分。在它下面,Anthropic 同时放出了 Claude Code mods 的首次公开演示 —— 那是一层 TypeScript 中间件,让开发者可以拦截并改写这个工具加载上下文、处理工具输出和渲染界面的方式。
一个所有其他编程智能体早就在读的文件,僵持了 13 个月
AGENTS.md 和 CLAUDE.md 都是放在仓库根目录的 Markdown 文件,充当 AI 编程智能体的常驻指令文档。每次会话开始,智能体都会先读它,然后才做别的事 —— 构建命令、测试约定、目录结构、风格要求,以及其他任何项目特有的规则。这两种格式的区别,从来都不在技术内容上,而在于哪个工具读哪个文件。
CLAUDE.md 是 Anthropic 的专有格式,只有 Claude Code 会读。AGENTS.md 由 OpenAI 在 2025 年 8 月随 Codex 一同发布,是一个与工具无关的替代方案。到 2025 年 12 月,OpenAI 和 Anthropic 一起把这个格式贡献给Linux 基金会新成立的智能体 AI 基金会(AAIF) 时,已有超过六万个开源仓库采用了它。Cursor、Copilot、Gemini CLI、Devin、Amp、Jules 和 VS Code 全都原生读取 AGENTS.md。只有 Claude Code 不读。
凡是把 Claude Code 和其他任何主流编程智能体一起用的团队,都要长期缴一笔维护税:把两份几乎相同的指令文件保持同步,项目约定一变就两边都改,并依赖 Anthropic 自己给出的变通办法 —— 在 POSIX 系统上把 CLAUDE.md 软链接到 AGENTS.md,或者用一行 @ 导入。一家公司在为自家产品的限制提供变通方案,而GitHub issue #6235 一路涨过 5,200 票,始终没有官方回应。到 2026 年 8 月,总结 Anthropic 立场的评论已经以《Anthropic 对 Claude Code 中呼声最高的功能说了不》为题在流传。
延伸阅读:Claude Code 的 SendFeedback 工具,让 AI 自己起草会话失败报告
四种指令模式,取代「要么 CLAUDE.md、要么什么都没有」的二选一
2.1.277 版并不是简单地把 AGENTS.md 加成一个固定的并行读取项。它引入了四种可配置的指令模式,可在 /config 菜单的「Project instructions」中选择。
默认模式 claude-md-or-agents-md 会在 CLAUDE.md 存在时读它,不存在时回退去读 AGENTS.md。第二种模式 claude-md-and-agents-md 会同时加载两个文件。第三种模式恢复此前的行为,只读 CLAUDE.md。第四种面向企业部署,只加载集中管理的组织指令。回退行为意味着,一个已经为 Codex、Cursor 或 Copilot 配置好的仓库,不需要任何额外设置就能在 Claude Code 里工作。双加载模式则照顾了这样的团队:既想用 AGENTS.md 保持跨工具兼容,又想把 Claude 专属的指令放在单独的文件里。
Anthropic 的文档还指出,仓库自带的 .claude/settings.json 不能设置这些模式选项 —— 只有用户设置、--settings 参数或受管设置才可以。这个设计防止了签入项目的代码去控制个人或组织的指令加载策略。
mods 系统如何工作:Claude Code 流水线里的 TypeScript 中间件
Claude Code 工程师 Thariq Shihipar 宣布,AGENTS.md 的实现正是用 Claude Code mods 做出来的 —— 那是 Anthropic 即将推出的、用于定制该工具框架的机制。agents-md 加载器是第一个内置 mod,源码和文档已发布在官方的anthropics/claude-code 仓库中。
框架(harness)是包裹模型的那层软件:它从指令文件、技能和对话历史中组装上下文;调用工具;管理会话循环;执行权限;并驱动终端界面。在此之前,这一层完全是 Anthropic 的代码。技能往上下文里注入指令。MCP 连接添加外部工具。但这两种机制都不允许开发者改变上下文如何被组装,或工具结果在模型看到之前如何被处理。mods 改变了这一点。
按 Anthropic 的 mods 文档,每个 mod 都导出一个 register(on, options) 函数,它的处理器会拿到引擎接口、当前事件,以及一个通往剩余处理器链的续延 —— 这个设计与 Express 或 Koa 的中间件如出一辙,也就是 Node.js Web 服务器所用的那套组合模型,如今被搬到了一个 AI 编程工具的运行时流水线上。agents-md 这个 mod 具体挂在三个事件上:session.start、prompt.context 和读取操作上的 tool.call,把 AGENTS.md 文件插入到 Claude Code 为 CLAUDE.md 所用的同一套项目指令框架中。
它的含义很具体。一个 mod 可以在模型读到工具输出之前拦截它、从 shell 结果中过滤掉敏感数据、维护会话状态,或者在对话旁边打开一个 UI 面板。mods 可以嵌套:最先注册的 mod 包住后面所有的,因此组织管理员可以在最前面加上强制安全策略的 mod,限制用户安装的 mod 能调用什么。仓库中内置了四个 mod:AGENTS.md 加载器、在对话旁显示未提交改动的 diff 面板、用于插件分析的遥测模块,以及面向受管企业部署的组织安全 mod。自定义 mod 需要打开一个实验性的函数钩子开关,目前在 Bedrock、Vertex 和 Foundry 部署上还不可用。
延伸阅读:Anthropic 给 Claude Code 加入第一方插件评测:六种评分器和一道 CI 关卡
竞争格局的变化,以及接下来会怎样
Anthropic 和 OpenAI 都是智能体 AI 基金会的白金成员,同坐在一个标准机构里 —— 而 Claude Code 却有 13 个月是唯一不认这套跨厂商格式的主流编程智能体,尽管这个格式正是两家公司共同贡献给该基金会的。最终的化解方式是架构性的,而不是政治性的:Anthropic 先建了 mods 系统,再把 AGENTS.md 支持实现成一个 mod。这个先后顺序很重要。未来的指令格式扩展 —— 更多跨工具约定、组织专用的上下文结构,或者别的项目组织方式 —— 都可以走同一条路,而不需要 Anthropic 为每一项单独发一次版本。
对目前在用 Claude Code 的团队来说,眼下的变化很具体:一个只有 AGENTS.md、没有 CLAUDE.md 的仓库,现在不用改动就能用。对在 Claude Code 之上做工具的开发者来说,现在值得研究的是 mods 架构,途径是 agents-md 这个 mod 的源码 —— 它是目前关于「钩子如何与引擎接口组合」最完整的可用文档。
开发者社区对这次公告的反应总体是正面的。OpenAI 负责 Codex 核心产品工作的 Thibault Sottiaux 公开表示欢迎。而让 AGENTS.md 支持成为可能的 mods 系统,会不会也把工具开发者吸引到一个共享的 Claude Code 扩展生态里来,才是这次发布抛出的更有分量的问题。