如果说 CLAUDE.md 是记忆,那 AGENTS.md 就是行动手册。当 AI 编程助手(AI Coding Agent)被投入到某个项目时,这份文件会告诉它:"在这里就该这么干活"。而这份已经被超过 6 万个开源项目采用的文件,如果你还没写过 — 现在就是开始的好时机。

3秒速览
AGENTS.md = 写给 Agent 的 README 列出 Do/Don't + 命令 + 边界 一份文件兼容所有 AI 工具 发现错误就加一行 Agent 会越来越聪明

这是什么?

AGENTS.md 是放在项目根目录的一份 markdown 文件。你可以把它理解为写给 AI 编程助手的 README。人类通过看 README.md 来理解项目,而 AI Agent 则通过 AGENTS.md 来搞清楚"在这个项目里该怎么工作"。

它最早由 OpenAI Codex 团队在 2025 年 8 月提出,现在已经成为由 Linux Foundation 旗下 Agentic AI Foundation 维护的开放标准。关键在于一份文件就能覆盖所有 AI 工具。以前 .cursorrules.builderrules 这些工具专属配置文件把项目根目录搞得乱七八糟,有了 AGENTS.md 就清爽了。

它和 CLAUDE.md 有什么区别?

CLAUDE.md 是 Anthropic 的 Claude 产品专用的。AGENTS.md 则是跨工具的通用标准。想两份都用?在 CLAUDE.md 里加一句 Strictly follow the rules in./AGENTS.md,或者直接用符号链接连起来就行。

它支持的工具清单已经非常庞大。GitHub Copilot、Cursor、Windsurf、Codex、VS Code、Gemini CLI、Devin、Junie(JetBrains)、Amp、Aider、Zed、goose、Roo Code…… 市面上主流的 AI 编程工具几乎全部覆盖。

60K+
使用 AGENTS.md 的开源项目
25+
支持该标准的 AI 编程工具
20%
写入冗余信息增加的 token 成本

有什么不同?

没有 AGENTS.md 的时候,AI Agent 每次都得当一回探险家。它要探索项目结构、猜测构建命令、琢磨代码风格,白白浪费时间和 token。而且大概率还会猜错。

Builder.io 的 Steve Sewell 亲自做过一个实验,结果挺有说服力。他在没有 AGENTS.md 的情况下让 Agent 把 Figma 设计稿转成代码 — Agent 引用了错误的 MUI 版本导致样式崩了、用 useState 替代了项目内部的状态管理库(mobx)、还漏掉了暗色模式的 token。加上 AGENTS.md 之后呢?同样的提示词下,UI 准确度、token 消耗、代码风格都有了明显改善

没有 AGENTS.md有 AGENTS.md
理解项目每次会话都要重新探索结构直接引用关键文件位置
构建/测试跑完整构建(耗时数分钟)文件级命令,几秒钟完成验证
代码风格版本引用错误、库选择失误一次就用对版本和模式
安全性擅自安装包、删文件允许/禁止的行为边界清晰
一致性不同 Agent 结果不同任何工具都遵循同一套规则

GitHub 的 Matt Nigh 分析了超过 2,500 份 AGENTS.md 文件,总结出成功模式。结论很明确 — 好用的 AGENTS.md 都包含 6 个必备部分:运行命令、测试、项目结构、代码风格、Git 工作流,以及边界(Boundaries)。

反过来,失败案例也有共同点。像"You are a helpful coding assistant"这种含糊的指示、把技术栈一股脑全列出来的冗长描述、只有抽象说明而没有具体命令的内容。Ben Tossell 也分享了一组有意思的数据 — 有研究显示,把技术栈、核心文件、架构都写得很详细的 AGENTS.md,反而会拖慢性能、把成本抬高 20%。因为这些东西 Agent 其实自己就能搞清楚。

"AGENTS.md should be pretty empty. It should be your preferences and nudges to correct agent behaviour."

— Ben Tossell,Ben's Bites

上手指南:好 AGENTS.md 怎么写

  1. 先从 Do/Don't 清单开始
    这是最有效的起点。让 AI Agent 干活,每出现一次你不满意的地方,就加一行规则。比如"使用 MUI v3 兼容代码"、"不要硬编码颜色值"之类的。关键是用具体的指令代替抽象描述。
  2. 加入文件级命令
    与其跑整个构建,不如提供只验证单个文件的快速命令,让 Agent 的反馈循环从几分钟压缩到几秒钟。比如 npm run tsc --noEmit path/to/file.tsx 这样。命令又快又便宜,你就可以放心告诉它"每次都跑一遍"。
  3. 用三层结构定义边界(Boundaries)
    这是 GitHub 分析中最有效的模式。分成允许(Always do)、确认后执行(Ask first)、绝对禁止(Never do)三层。其中出现频率最高的约束是"绝不要提交 secret"。
  4. 指向优秀示例文件
    2,500 份文件分析的结论是:一个真实的代码示例胜过三段文字说明。"表单请参考 app/components/DashForm.tsx"、"不要沿用遗留文件 Admin.tsx 的 class 组件写法" — 就这样把好文件和坏文件直接点出来。
  5. 发现反复出错就加一行
    AGENTS.md 不是一次性的成品,而是一份活文档。Agent 犯同样的错误第二次时,再把规则加进去就行。不要一上来就想着写得完美。实战经验告诉我们:迭代比前期规划更有效。

常见错误:写太多

把技术栈、架构、文件清单全写进去反而适得其反。AI Agent 可以通过探索项目自己搞清楚这些。你只需要写它可能会搞错的部分 — 偏好的库、代码约定、绝对不能动的区域这类东西。

如果你在用 monorepo,还有一条建议。可以在每个子目录里嵌套 AGENTS.md。Agent 会优先匹配距离当前工作文件最近的那份 AGENTS.md。OpenAI Codex 的仓库里就有 88 份 AGENTS.md。根目录放通用规则,子包里放该包专属的规则,就这么简单。