你的 AGENTS.md 可能只用了 30% 的功能
上一章我们讲了 AGENTS.md 是什么、怎么写。但大多数团队把它用得太浅了——他们以为 AGENTS.md 就是“给 AI 写几条规则”,实际上它有一套精妙的设计机制:就近优先、指令优先级、自动执行命令;此外社区还衍生出“本地覆盖”等实践。这些机制决定了 AGENTS.md 在大型项目中能不能真正发挥作用。
这一章不再重复基础概念,直接逐条拆解官方标准,把每一个容易被忽略的细节讲透。
一、官方定义:不是 “README for AI”,而是 “README for Agents”
1.1 官网原文
“AGENTS.md is a simple, open format for guiding coding agents. Think of it as a README for agents.”
官网上的这句话,关键信息在最后一个词:agents,不是 AI。
Agent 和 AI 的区别在于:Agent 不只是“生成代码”,它要执行操作——构建、测试、部署、提交。所以 AGENTS.md 的内容不只是“描述”(像 README 那样),更强调可执行的指令。
1.2 官方定位的三个关键点
| 受众 | “for guiding coding agents” | 主要读者是编码 Agent,内容偏可执行指令;但它是纯 Markdown,团队仍需维护,故也应保持清晰可读 |
| 格式 | “a simple, open format” | 纯 Markdown,无强制字段,自由使用标题 |
| 定位 | “a README for agents” | 对标 README,但与之互补、内容侧重不同(complements,非 replaces) |
核心认知:AGENTS.md 不是“给 AI 看的 README”,而是"给 Agent 执行的指令集"。你在里面写的 npm test 不是"建议",Agent 会 实际执行。
二、三大设计理由 —— 官方为什么坚持分离
2.1 理由一:给 Agent 一个清晰、可预测的指令位置
“Give agents a clear, predictable place for instructions.”
在 AGENTS.md 出现之前,每个 AI 工具都有自己的指令格式:
- Cursor 用 .cursor/rules/*.mdc
- Claude Code 用 CLAUDE.md
- Copilot 用 .github/copilot-instructions.md
- Windsurf 用 .windsurfrules
如果你同时用 3 个工具,就得维护 3 份指令文件。AGENTS.md 统一了这个入口——任何工具都从项目根目录的 AGENTS.md 读取指令。
2.2 理由二:保持 README 简洁
“Keep READMEs concise and focused on human contributors.”
这并非空话。实践中常见的反模式是:README 被 AI 指令"污染"——测试命令、构建流程、代码规范塞满 README,导致人类读者要翻很久才能找到"怎么运行"。AGENTS.md 正是为了把这部分内容分流出去。
2.3 理由三:提供精确的、Agent 专属的指导
“Provide precise, agent-focused guidance that complements existing README and docs.”
关键词是 complements(互补),不是 replaces(替代)。AGENTS.md 不替代 README,不替代架构文档,它只是补充那些 “Agent 需要但人不关心” 的信息。
三、核心机制与一个社区实践 —— 官方文档里容易被忽略的细节
3.1 机制一:无强制字段
官方 FAQ 第一条就明确:
Q: Are there required fields? A: No. AGENTS.md is just standard Markdown. Use any headings you like; the agent simply parses the text you provide.
这意味着 AGENTS.md 没有“正确格式”。你可以写 3 行,也可以写 300 行。但推荐的内容板块包括:
- 项目概览(Project overview)
- 构建与测试命令(Build and test commands)
- 代码风格指南(Code style guidelines)
- 测试说明(Testing instructions)
- 安全注意事项(Security considerations)
- 提交与 PR 规范(Commit messages / PR guidelines)
- 部署步骤(Deployment steps)
3.2 机制二:就近优先(Proximity Priority)
这是 AGENTS.md 最强大但最容易被忽略的机制。
官方规则:离被编辑文件最近的 AGENTS.md 优先生效。
在 monorepo 中:
project/
├── AGENTS.md # 全局规则
├── packages/
│ ├── web/
│ │ └── AGENTS.md # Web 子包规则(就近优先,对全局补充 / 冲突时本目录胜出)
│ └── api/
│ └── AGENTS.md # API 子包规则(就近优先,对全局补充 / 冲突时本目录胜出)
当 AI 编辑 packages/web/src/App.tsx 时,它会读取 packages/web/AGENTS.md(优先级最高),然后才是根目录的 AGENTS.md。
OpenAI 自己的 Codex 仓库使用了 88 个 AGENTS.md 文件——每个子包都有独立的规则。
3.3 机制三(社区惯例·非官方机制):本地覆盖(Local Override)
社区常见做法:创建 AGENTS.override.md(加入 .gitignore),可以在不修改团队共享文件的情况下做个人定制。需说明:AGENTS.md 官方规范并未规定 *.override.md 这一文件名,也未将"本地覆盖"列为官方机制;规范原生的分层是上面的"就近优先",本地覆盖通常靠 .gitignore + 自定义命名或就近嵌套实现。
这个机制解决了一个现实问题:团队标准 vs 个人偏好。
- 团队 AGENTS.md 规定"使用 npm"
- 你个人偏好 pnpm → 在 AGENTS.override.md 里写 pnpm install
- .gitignore 保证你的覆盖不会影响团队
3.4 机制四:指令优先级链
官方给出的完整优先级:
冲突时的覆盖顺序(由高到低):
用户聊天中的显式指令 (最高,覆盖一切)
↓
最近的 AGENTS.md(子目录,就近胜出根目录)
↓
根目录 AGENTS.md
注:README.md 与其他文档和 AGENTS.md 是互补关系,而非上述覆盖链的一环——AGENTS.md 补充的是“Agent 需要但人不关心”的信息,不与 README 争优先级。
关键结论:人在循环中始终拥有最终决定权。你在聊天框里说“不要执行测试”,Agent 就不会执行——即使 AGENTS.md 里写了测试命令。
3.5 机制五:Agent 会自动执行命令
Q: Will the agent run testing commands found in AGENTS.md automatically? A: Yes—if you list them. The agent will attempt to execute relevant programmatic checks and fix failures before finishing the task.
这是 AGENTS.md 和 README 最本质的区别。README 里的命令是"给人看的",AGENTS.md 里的命令是会被 AI 实际执行的。
这意味着:
- 不要在 AGENTS.md 里写你不希望 AI 自动执行的命令
- 测试命令要写完整,包含必要的前置步骤
- 生产环境相关的命令需要特别标注"需人工确认"
四、跨工具兼容生态——20+ 工具的统一入口
4.1 兼容工具列表(截至 2026 年 7 月)
官网首页展示的兼容工具已有 20+ 个(完整列表见官网 “View all supported agents”)。下表按类别归纳;其中标 * 者以其他文件为原生指令,对 AGENTS.md 的支持以各工具官方文档为准:
| IDE 集成 | Cursor、VS Code、Zed、JetBrains Junie |
| 独立 Agent | OpenAI Codex、Devin、Aider、Gemini CLI、Claude Code* |
| 平台集成 | GitHub Copilot、Google Jules、Windsurf |
| 扩展工具 | RooCode、Kilo Code、goose、opencode、Augment Code |
| 企业 / 其他 | Semgrep、Warp、UiPath、Ona、Phoenix、Amp、Factory |
- Claude Code 的原生指令文件为 CLAUDE.md;其对 AGENTS.md 的支持情况请以 Anthropic 官方文档为准(社区亦有以符号链接复用 AGENTS.md 的实践)。
4.2 兼容性矩阵
不同工具对 AGENTS.md 的读取方式有所不同:
| OpenAI Codex | ✅ 原生 | ✅ | — |
| Cursor | ✅ | ✅ | .cursor/rules/*.mdc |
| Claude Code | ⚠️ 原生为 CLAUDE.md,AGENTS.md 支持以官方文档 / 配置为准 | ✅(CLAUDE.md 体系) | CLAUDE.md 优先 |
| GitHub Copilot | ✅ | ✅ | .github/copilot-instructions.md |
| Windsurf | ✅ | ✅ | .windsurfrules |
| Aider | ✅ | ✅ | CONVENTIONS.md 回退 |
说明:AGENTS.md 官方规范并未定义 *.override.md 本地覆盖机制,故本表不再单列该维度;"支持子目录嵌套"指该工具是否支持就近读取子目录指令文件。Claude Code 对 AGENTS.md 的原生支持请以 Anthropic 官方文档为准。
实操建议:如果你的团队同时使用多个 AI 工具,优先维护 AGENTS.md 作为统一入口,然后按需为特定工具添加专属配置。
五、官方 FAQ 精华摘录
| 有必填字段吗? | 没有。纯 Markdown。 | 从最小模板开始,按需扩展 |
| 指令冲突怎么办? | 最近的 AGENTS.md 优先;用户聊天覆盖一切 | 善用子目录嵌套和本地覆盖 |
| Agent 会自动执行命令吗? | 会。它会尝试执行并修复失败。 | 只写你想让 AI 执行的命令 |
| 可以后续更新吗? | 当然,视为活文档。 | 随项目演进持续更新 |
| monorepo 怎么办? | 每个子包放独立 AGENTS.md,最近优先。 | 参考 OpenAI 88 个文件的实践 |
| 如何迁移旧文件? | mv AGENT.md AGENTS.md && ln -s AGENTS.md AGENT.md | 一步完成,创建软链接保持兼容 |
六、常见错误与修正
错误一:没有写构建命令
❌ AGENTS.md 里只有"代码风格"和"PR 规范"
✅ 必须包含构建和测试命令——这是 Agent 最需要的执行指令
错误二:忽略子目录嵌套
❌ 整个 monorepo 只有一个根目录 AGENTS.md
✅ 给每个子包写独立的 AGENTS.md,利用就近优先机制
本章小结
下一章预告
AGENTS.md 只是冰山一角。AI 辅助开发的文件生态远比你想象的丰富——工具专属规则、技能文件、忽略文件、MCP 连接、可复用命令模板……下一章,我们将全景展示 6 大类 × 数十种辅助文件,让你知道"AI 工作区到底能放多少东西"。
觉得有用?点个"在看"支持一下。评论区聊聊:你的 AGENTS.md 用了哪些机制?
参考资料
- AGENTS.md 官网
- AGENTS.md GitHub 仓库
- Cursor Rules 文档
- Claude Code 官方文档:Memory
- GitHub Copilot:Adding repository custom instructions
- Linux Foundation:Announces the Formation of the AAIF
网硕互联帮助中心





评论前必须登录!
注册