AGENTS.md:给 AI 写一份项目说明书

问题
你有没有这种经历:每次让 AI 帮你写代码,它都用错缩进、选错框架、命名风格跟你项目格格不入?你纠正一次,下次对话它又忘了。
根本原因是:AI 没有你项目的上下文。它不知道你用 4 空格还是 Tab,不知道你的 commit message 用中文还是英文,不知道你的测试跑在 Jest 还是 Vitest 上。
AGENTS.md 就是解决这个问题的。
它是什么
AGENTS.md 是一个放在项目根目录的 Markdown 文件。AI 编码助手(QoderWork、Cursor、Claude Code、Codex 等)在开始工作前会自动读取它,把里面的内容当作项目规则来遵守。
你可以把它理解为:写给 AI 的 README。README 是给人看的,AGENTS.md 是给 AI 看的。
它不是某个工具的私有格式,而是一个正在形成共识的约定。不同工具可能叫不同名字(Cursor 用 .cursorrules,Claude Code 用 CLAUDE.md),但 AGENTS.md 正在成为跨工具的通用标准。
里面写什么
没有固定模板,但以下内容最常见:
项目概述:一两句话说清楚这是什么项目、用什么技术栈。
编码规范:缩进、命名、文件组织、import 顺序。你团队 code review 时反复提的那些东西。
工作流约定:分支策略、commit message 格式、PR 描述模板、测试要求。
架构边界:哪些模块不能动、哪些目录放什么、依赖方向是什么。
禁止事项:不要用的库、不要碰的文件、不要引入的模式。
常用命令:怎么跑测试、怎么构建、怎么部署。
一个真实例子
# AGENTS.md
## 项目概述
这是一个 Astro 5 静态博客,部署在 Cloudflare Pages。
纯静态输出,不使用任何客户端 JS 框架。
## 编码规范
- 使用 2 空格缩进
- 组件用 PascalCase,文件名用 kebab-case
- CSS 写在 .astro 文件的 <style> 标签里,不单独建文件
- 不使用 Tailwind,不使用 CSS-in-JS
## 内容规范
- 博文放在 src/content/blog/,格式为 Markdown
- frontmatter 必须包含 title、date(ISO 8601 带时间)、description
- 中英文之间加空格
## 工作流
- 每篇文章写完后执行 astro build 验证
- 部署命令:wrangler pages deploy dist --project-name ohmyself-blog
- commit message 用英文,格式:type: description
## 禁止
- 不要引入 React/Vue/Svelte 等客户端框架
- 不要使用 localStorage 或任何浏览器存储 API
- 不要修改 public/ 下已有的图片文件
就这么简单。AI 读到这个文件后,写出来的代码就会自动遵守这些规则。
怎么写好它
几条经验:
写规则,不写教程。 AI 不需要你解释什么是 Git,它需要你告诉它”commit message 用 conventional commits 格式”。
写例外,不写常识。 如果整个行业都用 ESLint,你不需要写”请使用 linter”。但如果你禁用了某条规则,那值得写。
写约束,不写偏好。 “不要用 any 类型”是约束。“我觉得 TypeScript 比 JavaScript 好”是偏好,AI 不需要知道。
保持更新。 项目演进后,AGENTS.md 也要跟着改。过时的规则比没有规则更危险——AI 会严格遵守它读到的每一条指令。
越短越好。 500 行以内的 AGENTS.md 效果最好。太长 AI 会”注意力分散”,关键规则反而被忽略。
和 README 的区别
README 面向人类开发者,语气是”欢迎贡献,这是项目介绍”。AGENTS.md 面向 AI,语气是”你必须这样做,不许那样做”。
README 可以有历史背景、设计理念、感谢名单。AGENTS.md 只要可执行的规则。
两者不冲突,可以共存。很多项目的 AGENTS.md 开头就写一句”项目介绍见 README.md”,然后只列规则。
进阶用法
分层放置。 根目录放全局规则,子目录放局部规则。比如 src/api/AGENTS.md 里写 API 层的特殊约定,AI 进入那个目录时会同时读取两份。
配合 CI 检查。 把 AGENTS.md 里的规则同步到 ESLint/Prettier 配置里。AI 遵守规则,CI 验证规则,双保险。
版本控制。 AGENTS.md 应该进 Git。它和代码一样是项目的一部分,改动应该有 review。
最后
AGENTS.md 的本质是一个认知对齐工具。它把你脑子里那些”理所当然但从来没写下来”的项目知识,变成 AI 能读懂的显式规则。
写一次,每次对话都生效。比每次重复交代背景高效一百倍。
如果你正在用任何 AI 编码工具,花十分钟写一个 AGENTS.md。这可能是你今年投入产出比最高的十分钟。