AGENTS.md 是 Codex 项目级自然语言规则文件,放置在项目根目录,属于静态软性规则。它以 Markdown 文本描述项目背景、架构约束、编码规范、修改边界、输出格式,Codex 在会话初始化时读取全文,指导主代理、子代理在执行任务时遵守约定。它和 rules.toml 硬拦截规则互为补充:AGENTS.md 侧重行为指引,rules.toml 侧重强制拦截。
一、文件基础信息
1.1 存放位置与加载优先级
- 路径:项目根目录
AGENTS.md,和.codex文件夹同级,可提交到Git仓库,团队共享。 - 加载顺序:会话启动时自动读取,项目 AGENTS.md 优先级高于用户全局自然语言规则。
- 生效范围:默认作用于主代理,派生的子代理默认继承这份规则;子代理配置可单独关闭继承,使用独立指令。
注意:AGENTS.md 是自然语言指引,不是强制拦截器。Codex 会尽力遵循,但不会自动阻断操作;高危文件保护、命令黑名单这类强制限制,需要写在
rules.toml。
1.2 AGENTS.md 适用场景
✅ 适合写入 AGENTS.md
- 项目架构说明、技术栈介绍、目录结构说明
- 编码规范、命名约定、注释要求、代码风格
- 代码修改约束:哪些模块不能大幅重构、新增代码的规范
- 输出格式约定:文档、报告、代码评审结果的输出模板
- 业务背景、业务限制、数据库设计约定
❌ 不适合写在 AGENTS.md
- 高危命令拦截、文件锁定保护(放到
rules.toml) - 事件触发脚本、自动化校验(放到 Hooks)
- MCP服务、子代理配置(放到
.codex/config.toml或对应toml文件)
二、标准 AGENTS.md 模板结构
推荐固定章节,方便团队维护,Codex 更容易理解和执行。
# AGENTS.md 项目代理规则 ## 项目概述 简要描述项目用途、技术栈、核心模块,让Codex快速理解项目背景。## 架构约束
定义整体架构原则,禁止跨层调用、禁止随意修改核心底层模块等。 ## 编码规范
语言、命名、注释、错误处理、单元测试相关要求。 ## 文件修改限制
说明哪些目录仅可读,哪些文件修改需要额外说明。 ## 输出格式规范
定义代码评审、文档、报告的输出格式。## 任务执行约束
执行任务的行为准则:先检索代码,再修改;修改前说明变更范围等。
完整示例 AGENTS.md
# AGENTS.md ## 项目概述 前端项目,技术栈 Vue3 + TypeScript + Vite。项目包含业务页面、公共组件、工具函数。## 架构约束
1. 业务逻辑统一放在 composables,不要直接写在模板内。
2. 组件拆分遵循单一职责,禁止超大单文件组件。
3. 不要修改底层 src/core 模块,如需改动必须先说明理由。 ## 编码规范
1. 变量、函数使用小驼峰命名,组件使用大驼峰。
2. 新增功能必须补充类型定义,尽量使用interface。
3. 新增组件/接口,需要编写基础注释。 ## 文件修改限制
1. public/ 静态资源仅读取,不做删除操作。
2. 修改 .env 文件前,必须提示人工确认。 ## 输出格式规范
代码修改完成后,输出变更清单:【文件路径】变更简述。## 任务执行约束
1. 修改代码前,先检索相关文件,理解上下文。
2. 大规模重构任务,先输出重构方案,确认后再修改代码。
3. 不要自动删除代码,优先注释保留,附带说明。
三、关键语法与编写技巧
- 使用简短条目列表,不要大段长文本。Codex更容易读取、理解每条约束。
- 使用明确的动词:禁止、必须、应当、优先,减少模糊描述。
- 区分硬性约定和建议:“必须”代表强制要求;“建议”代表优化参考。
- 可以引用项目目录结构,指定目录范围,限制Codex的检索和修改边界。
- 支持引用项目内其他文档,例如
参考 docs/api.md,Codex会自动读取。
限制:文件不宜过长,建议控制在 2000 字符以内。过长会占用大量上下文,增加Token消耗,降低执行效率。
四、AGENTS.md 与子代理
默认情况下,由主代理派生的子代理自动继承 AGENTS.md 的全部规则。
在子代理配置 .codex/agents/xxx.toml 中,可以关闭继承:
name = "code-reviewer"
inherit_agents_md = false
developer_instructions = "独立评审规则,不继承项目AGENTS.md"
关闭继承后,该子代理不再读取根目录AGENTS.md,仅使用自身配置内的指令。
五、AGENTS.md 和 rules.toml 对比
| 项目 | AGENTS.md | rules.toml |
|---|---|---|
| 文件类型 | Markdown自然语言 | TOML声明式配置 |
| 作用类型 | 软性指引,行为规范 | 硬性强制拦截 |
| 核心能力 | 定义项目背景、编码风格、输出格式 | 文件保护、命令黑名单、审批控制 |
| 执行时机 | 会话初始化加载,作为系统提示一部分 | 工具调用前校验,违规直接拦截 |
| 能否被子代理继承 | 默认继承,可手动关闭 | 默认继承,可单独覆盖 |
六、管理斜杆命令
Codex 内置命令,快速查看、校验、重载 AGENTS.md:
# 查看当前加载的 AGENTS.md 内容 /agents-md show校验AGENTS.md语法与长度,给出优化建议 /agents-md validate 修改文件后重载,无需重启会话/agents-md reload
七、最佳实践
- 只写项目独有规则,通用编码规范尽量放到 Agent Skills,避免AGENTS.md臃肿。
- 定期精简,删除过时约束,控制文本长度,减少上下文开销。
- 敏感文件、高危命令保护,不要依赖AGENTS.md,必须在rules.toml配置强制拦截。
- 团队协作时,修改AGENTS.md如同修改代码,走代码评审流程。
- 测试验证:修改后执行
/agents-md validate,查看Codex识别效果。 - 非交互模式会自动加载AGENTS.md,跨平台环境下文件内容全平台通用。
八、常见问题
Q:修改 AGENTS.md 需要重启Codex会话吗?
A:不需要,执行 /agents-md reload 即可重新加载。
Q:AGENTS.md 可以在全局配置里定义吗?
A:全局可以设置全局自然语言规则,但项目根目录AGENTS.md优先级更高,适合项目专属约束。
Q:AGENTS.md 能否阻止Codex删除文件?
A:不能。AGENTS.md只是指引,Codex仍可执行删除操作。阻止文件删除必须配置 rules.toml 的 file_protection。
Q:非交互模式(codex exec)是否加载AGENTS.md?
A:会自动加载,和交互模式行为一致。
九、总结
AGENTS.md 是 Codex 项目的自然语言规则文件,用于描述项目背景、架构约束、编码规范与输出要求,作为软性指引约束主代理与子代理的行为。它和 rules.toml 配合使用,AGENTS.md负责“告诉代理怎么做”,rules.toml负责“拦截危险操作”。
文件跨平台通用,支持团队Git共享,支持子代理继承或单独关闭继承。编写时保持简洁清晰,避免写入强制拦截类规则,能够大幅提升Codex输出代码的一致性,贴合项目的开发规范。
0 条笔记