数据截至 (上游 commit d1ac7f063d20)
AGENTS.md — 架构与原理
30 秒导读: AGENTS.md 是一个约定(不是程序):在仓库根目录放一个叫
AGENTS.md的普通 Markdown 文件,把"怎么装依赖、怎么跑测试、代码风格、提交规范"这类给 AI 编码 agent 看的说明写进去。它的全部价值在于"大家都用同一个文件名、同一种格式",于是 Codex、Cursor、Gemini CLI 等几十家 agent 都能在同一个可预测的位置读到它。
1. 这是什么(零基础也 能懂)
一句话定义。 AGENTS.md 是"给 agent 看的 README"——一个放在仓库里、文件名固定为 AGENTS.md 的普通 Markdown 文件,专门写给 AI 编码助手看。
它解决谁的什么问题。 假设你让一个 AI agent(比如 OpenAI Codex、Cursor)去改你的项目代码。它一进来就懵:依赖怎么装?测试怎么跑?这个仓库用单引号还是双引号?提交信息有没有格式要求?这些信息要么散落在 README、CONTRIBUTING、各种 wiki 里,要么干脆只在某个老员工脑子里。
AGENTS.md 给这些信息一个固定的家:
README.md 是给人看的(快速上手、项目简介、贡献指南);AGENTS.md 补上 agent 需要的那些"额外、有时很琐碎"的上下文——构建步骤、测试、规范——这些塞进 README 会显得乱,对人类贡献者也不一定相关。 —— 这正是项目刻意把两者分开的理由,见
components/WhySection.tsx:17-25。
为什么不直接用 README? 项目方给了三条刻意分开的理由(components/WhySection.tsx:27-55):
- 给 agent 一个清晰、可预测的指令位置;
- 让 README 保持简洁、聚焦人类贡献者;
- 提供精确、面向 agent的指引,与现有 README/文档互补而非打架。
用起来什么样。 它就是一段你能直接读懂的 Markdown。下面是官网首页用的最小示例(逐字来自 components/CodeExample.tsx:22-32 的 HERO_AGENTS_MD 常量):
# AGENTS.md
## Setup commands
- Install deps: `pnpm install`
- Start dev server: `pnpm dev`
- Run tests: `pnpm test`
## Code style
- TypeScript strict mode
- Single quotes, no semicolons
- Use functional patterns where possible
一句话直觉/类比。 把 README 当成"贴在门口给客人看的欢迎牌",AGENTS.md 就是"贴在员工休息室、给新来同事看的操作手册"——同一栋楼,但读者不同、内容不同。
本节不出现底层细节。记住一点就够:AGENTS.md = 给 agent 的 README,文件名固定,内容是普通 Markdown。
2. 顶层全景(它大概怎么转)
这一节讲清"这个约定整体是怎么运作的"。