“README.md 是给人类开发者看的项目介绍,而 AGENTS.md 是专门给 AI 读的、项目专属的’宪法’。”
AGENTS.md 是 AI 编码时代的项目级 System Prompt,目前已被超 6 万个开源项目采用,几乎所有主流 AI 编码工具均原生支持。
本文系统介绍 AGENTS.md 的定义、核心理念、五大实践方案、完整编写模板与项目结构,帮助团队快速落地”一份文件,全工具兼容”的 AI 编码规范。
一、AGENTS.md 是什么
AGENTS.md 是一个开放、基于 Markdown 的标准化规范,是专为 AI 编码代理(AI Coding Agent)设计的项目专属操作手册,通常放置在项目根目录(支持子目录嵌套),与 README.md 同级。
| 对比维度 | README.md | AGENTS.md |
|---|---|---|
| 目标读者 | 人类开发者 | AI 编码代理 |
| 核心内容 | 项目介绍、使用说明、贡献指南 | 编码规范、开发命令、权限边界 |
| 维护频率 | 低(核心信息稳定) | 高(持续迭代优化) |
| 格式 | 自由描述 | 结构化、指令化 |
本质:仓库级的标准化 System Prompt,用于统一 AI 在项目内的编码行为、规范、流程与权限边界。
发展历程:2025 年由 OpenAI、Google、Cursor、Factory 等厂商与社区联合提出;2025 年 12 月被捐赠给 Linux 基金会旗下的 Agentic AI Foundation(AAIF)进行中立开源治理。
🔗 参考资料:AGENTS.md 官方市场
二、没有 AGENTS.md 的核心痛点
在没有 AGENTS.md 的日子里,AI 辅助开发面临五大共性困境:
| # | 痛点 | 具体表现 |
|---|---|---|
| 1 | 配置碎片化,维护成本极高 | 不同 AI 工具都有专属配置文件(如 .cursorrules、CLAUDE.md、.copilotrules),同一项目需维护多套规则 |
| 2 | AI 行为不可控,返工成本高 | 没有统一指令约束,AI 生成的代码风格、架构设计与项目规范严重脱节 |
| 3 | 上下文冗余,模型效率下降 | 每次对话都要重复投喂项目架构、规范、命令等信息,占用大量上下文窗口 |
| 4 | 大型项目协作混乱 | Monorepo/多模块项目中,单靠对话无法让 AI 精准适配,跨模块开发极易出现规则冲突 |
| 5 | 团队标准不统一 | 不同开发者给 AI 的 Prompt 风格不一,AI 输出代码质量参差不齐 |
三、核心理念:六大设计原则
AGENTS.md 的设计围绕以下六大核心理念:
| # | 理念 | 说明 |
|---|---|---|
| 1 | 人机文档分离 | README.md 面向人类,AGENTS.md 专供 AI,互不干扰 |
| 2 | 标准化与互操作性 | 统一开放格式,”一份文件,全工具兼容” |
| 3 | 轻量无依赖 | 纯 Markdown 语法,无复杂配置语法和额外依赖 |
| 4 | 最小必要上下文 | 只给 AI 提供必须的可执行指令,拒绝哲学化描述 |
| 5 | 分层优先级设计 | 支持”根目录全局规则 + 子目录专属规则”的嵌套模式 |
| 6 | 可执行性优先 | 所有指令必须具体、可落地、可直接执行 |
四、五大核心实践方案
🗂️ 实践一:仓库聚合(Monorepo)
问题:前后端或相关项目分仓,导致 AI 编码时上下文割裂。
方案:将项目重构为 monorepo(单一代码仓库),使 AI 能在同一上下文中进行全栈开发。
1 | # 存量项目的过渡方案:聚合脚本 |
⚙️ 实践二:统一环境配置
问题:本地环境配置不统一,AI 无法自主启动和验证项目。
方案:
- 将环境变量统一置于
~/.<project>_env文件,由启动脚本自动加载 - 提供封装好的一键启动脚本(如
./scripts/start-server.sh),处理构建、进程管理、健康检查等复杂逻辑
1 | # 一键启动脚本示例 |
✅ 实践三:验证闭环
目标:让 AI 的工作产出从”代码可编译”升级为”功能可运行”。
方案:定义严格的验证规范,特别是为 API 测试设计标准化的 curl 命令模板:
1 | # 标准化 curl 模板(命令独立执行,使用临时文件中转数据) |
关键原则:命令独立执行 + 临时文件中转,避免 Shell 环境差异。
🔍 实践四:自动化检查
理念:写在 AGENTS.md 中的规则必须有自动化检查来保障执行力。
方案:为关键架构约束(如分层依赖规则)编写检查脚本,并通过 Makefile 提供统一入口:
1 | # Makefile 示例 |
检查脚本失败时,必须输出 WHAT(什么错了)+ WHY(为何不允许)+ HOW(如何修复),让 AI 能直接根据指引修复问题。
📚 实践五:参考项目引入
问题:AI 不认识私域组件、内部项目或特定开源代码的细节。
方案:通过 git submodule 直接将相关项目的源码引入到本地的 reference-projects/ 目录,同时为每个参考项目配一份架构说明文档:
1 | reference-projects/ |
五、四大实践场景
场景 1:中小型单体项目(最常用)
根目录放置唯一的 AGENTS.md 文件,覆盖项目全量核心规则,适配 90% 以上的单体项目。
关键原则:所有规则必须量化,而非模糊表述。
| 模糊表述 ❌ | 量化表述 ✅ |
|---|---|
| “编写高质量代码” | “函数行数不超过 50 行” |
| “代码要简洁” | “圈复杂度上限为 10” |
| “注意代码风格” | “注释率不低于 20%” |
迭代闭环:每次 AI 出现错误、踩坑后,将对应约束规则补充到 AGENTS.md 中,持续优化。
场景 2:大型 Monorepo / 多模块项目
采用”全局 + 局部”的分层嵌套式管理,实现细粒度管控。
1 | monorepo-project/ |
行业案例:OpenAI 主仓库使用 88 个 AGENTS.md 文件,分别对应不同业务模块,实现极致精准的 AI 行为控制。
场景 3:团队协作
将 AGENTS.md 纳入项目标准化流程,作为代码仓库的必备文件,由团队共同维护。
- 统一标准:所有开发者使用 AI 时,都遵循统一的项目规则,避免个人 Prompt 带来的输出差异
- 新人入职:新成员可通过 AGENTS.md 快速让 AI 适配项目,降低项目熟悉成本
场景 4:安全与权限
- 写保护机制:所有兼容工具均支持 AGENTS.md 写保护,AI 无法擅自修改核心规则
- 三级权限边界:
| 权限等级 | 行为 | 示例 |
|---|---|---|
| ✅ 可直接执行 | 读取代码、执行标准命令 | 读取 src/、执行 pnpm dev |
| ⚠️ 需用户确认 | 修改配置文件、核心架构 | 修改 .eslintrc.js |
| ❌ 绝对禁止 | 高危系统命令、未经审核依赖 | rm -rf /、引入未审核的 npm 包 |
六、为什么选择 AGENTS.md
| # | 优势 | 说明 |
|---|---|---|
| 1 | 极致降本提效 | 一次编写,全工具兼容,减少重复上下文投喂 |
| 2 | 标准化 AI 开发流程 | 统一项目内 AI 的行为规范,降低 Code Review 和返工成本 |
| 3 | 零门槛快速接入 | 纯 Markdown 格式,只需新增一个文件即可接入所有兼容工具 |
| 4 | 全场景适配 | 从个人项目到超大型企业级 Monorepo 都能完美适配 |
| 5 | 中立开源无厂商锁定 | Linux 基金会 AAIF 中立治理,不被单一厂商专有格式绑定 |
| 6 | 安全可控 | 自带写保护机制 + 权限边界定义,精准管控 AI 操作范围 |
七、完整编写模板(可直接复用)
以下模板适用于大多数项目,可根据实际技术栈调整:
1 | # AGENTS.md - [项目名称] AI 编码代理操作手册 |
[项目根目录]/
├── AGENTS.md # 本文件,AI代理全局规则(禁止AI擅自修改)
├── README.md # 项目人类可读说明文档
├── src/ # 核心源码目录
│ ├── api/ # 接口请求封装
│ ├── components/ # 公共通用组件
│ ├── pages/ # 业务页面代码
│ ├── utils/ # 通用工具函数
│ └── assets/ # 静态资源文件
├── tests/ # 单元测试/集成测试目录
└── scripts/ # 构建和部署脚本
1 | - **目录读写权限**:[例如:仅可直接修改 src/pages/、src/components/,修改配置文件需用户手动确认] |
八、项目结构全景图
单项目结构(中小型项目)
1 | your-project/ |
Monorepo 结构(大型项目)
1 | monorepo-project/ |
九、价值总结
AGENTS.md 的本质是用最小的上下文成本,让 AI 获得最大的项目理解。
| 维度 | 价值 |
|---|---|
| 对 AI | 提供精准上下文,让 AI 从”通用助手”变身”深度适配项目的专属开发专家” |
| 对团队 | 沉淀隐性知识(编码规范、架构约束、开发流程),形成标准化的 AI 辅助开发流程 |
| 对项目 | 构建”打开即理解、改完即验证”的高效开发反馈回路 |
AGENTS.md 不是一个简单的配置文件,而是 AI 编程时代的项目协作事实标准,是跨厂商、跨工具的互操作性协议,是把开发者从重复人机沟通中解放出来的核心载体。