最后核对

AGENTS.md 机制请以 Codex AGENTS.md 官方文档AGENTS.md 标准网站openai/codex GitHub repository 为准。最后核对日期:2026-06-19。

AGENTS.md

对于 Codex,每开启一个新的对话窗口,它都会进入一个全新的上下文。它不知道这个项目用什么命令、有哪些目录边界、哪些文件不能改,也不知道团队平时怎么验证结果。

AGENTS.md 正是为了解决这类问题而存在的项目级指令文件。它是一个简单、开放的 Markdown 约定,目标是给不同 coding agent 提供一个稳定、可预测的项目指令入口,把项目结构、开发命令、测试要求、代码风格和协作边界显式写下来,减少反复解释。

更准确地说,AGENTS.md 是面向 coding agent 的 README。README 主要给人看,讲项目是什么、怎么上手;AGENTS.md 给 Codex 和其他 coding agent 看,告诉它们改代码前应该遵守哪些项目规则。

可以把它理解为:

  • 对个人用户:减少重复解释“项目怎么跑、怎么测、哪些地方不能碰”。
  • 对团队项目:把团队共同认可的 agent 使用规则沉淀到仓库里。
  • 对多工具环境:让 Codex、IDE agent、CLI agent 等工具尽量读取同一份项目说明。

本质上就是一份普通的 Markdown 文件。

另外需要注意,截至目前,Claude Code 并不遵守 AGENTS.md 约定,取而代之的是 CLAUDE.md 约定。

存放位置与读取机制

文件位置

对于普通项目,最推荐的做法是在项目根目录创建 AGENTS.md。Codex 在开始处理任务前会自动读取它,并把内容作为工作上下文带入新的对话。

agents-md-editor-rule-example

若希望全局生效,可以撰写 Codex 的全局指令:

  1. 在 Codex_Home 目录中创建 AGENTS.md。默认位置通常是 ~/.codex/AGENTS.md;如果设置了 CODEX_HOME,则以对应目录为准。
  2. 在 Codex 桌面 App 里配置个人偏好或自定义指令。本质上也是写入 Codex_Home 的 AGENTS.md,与上述方法等价。

设置全局规则后,它会影响你打开的所有项目;项目级 AGENTS.md 只影响当前仓库。两者作用域不同,要分清。

codex-app-personalization-settings

请确保文件名始终为 AGENTS.md,并确认大小写是否正确。否则 Codex 不会自动识别。

读取顺序与合并规则

Codex 读取 AGENTS.md 遵循以下顺序:

  1. 先读取全局规则:默认读取 ~/.codex/AGENTS.md。如果同一位置存在 AGENTS.override.md,则优先读取它,适合临时覆盖全局规则。
  2. 然后读取项目规则:进入项目后,Codex 通常会从 Git 根目录开始,一路走到当前工作目录。沿途每一层目录,它会尝试读取项目指令文件。

项目指令文件的默认优先级是:

AGENTS.override.md
AGENTS.md

也就是说,同一目录里如果同时存在这两个文件,AGENTS.override.md 会覆盖 AGENTS.md

Codex 会把读取到的指令从上到下合并。根目录的规则先出现,子目录的规则后出现。越靠近当前目录的规则越具体,因此也更适合写局部要求。

一个文件结构的示例:

AGENTS.md
apps/
  web/
    AGENTS.md
packages/
  database/
    AGENTS.md

上述示例中,根目录 AGENTS.md 写全仓库通用规则,apps/web/AGENTS.md 写前端规则,packages/database/AGENTS.md 写数据库迁移和测试要求。

注意事项

  1. 如果你的项目已经有其他规则文件,可以通过 Codex 配置里的 project_doc_fallback_filenames 添加备用文件名。Codex 会在找不到 AGENTS.override.mdAGENTS.md 时,再尝试这些 fallback 文件。
  2. Codex 还会限制合并后的项目指令大小。官方默认值是 project_doc_max_bytes = 32768,也就是 32 KiB。规则文件太大时,后面的内容可能不会进入上下文,所以尽量保持 AGENTS.md 精简。

团队协作

多人协作时,AGENTS.md 适合保存团队共同认可的项目规则;个人路径、本机工具习惯、临时约束和私有工作流偏好,则更适合留在本地。这样团队规则保持稳定,个人习惯也不会被提交到仓库。

使用场景

下面这些内容适合放在本地私有规则里:

  • 本机缓存、SDK、脚本或临时目录路径。
  • 个人常用命令、别名、编辑器习惯。
  • 只对自己有效的语言风格、回复格式、验证偏好。
  • 不方便进入团队文档的临时限制,例如“今天先只做只读分析”。

文件分工

文件作用是否提交到 Git
AGENTS.md团队共享的项目规则、命令、边界和交付要求可以提交
AGENTS.override.mdCodex 官方识别的覆盖文件,适合临时覆盖同目录规则通常不提交,除非团队明确约定
AGENTS.local.md个人本地偏好、私有路径和临时规则应加入 ignore

需要注意:AGENTS.local.md 不是 Codex 默认识别的标准文件名。如果你想让 Codex 读取它,需要借助 hooks、社区工具(见下方推荐),或在配置中把它加入 fallback 文件名。

无论是否使用本地规则,都应遵守:

  • 不把 token、密钥、账号密码写进 AGENTS.local.md
  • AGENTS.local.mdAGENTS.override.md 加入全局 gitignore 或项目 .gitignore
  • 不在本地规则里绕过团队的测试、审批和安全要求。
  • 每次引入 hooks 工具前,先确认它是否会替换命令、执行仓库文件、访问网络或写入敏感目录。

社区工具推荐

社区工具 codex-agents-local 提供了 AGENTS.local.md 的本地覆盖方案。它通过 Codex hooks 在会话开始或提交提示词时同步本地规则。

安装前建议先让 Codex 审查安装提示词,再决定是否执行:

Read https://github.com/samzong/codex-agents-local/blob/main/INSTALL_PROMPT.md

Follow that prompt in Codex to install codex-agents-local.
社区工具提示

codex-agents-local 不是 Codex 官方功能。安装前请检查脚本会改哪些文件、会启用哪些 hooks、是否符合你的团队安全要求。

安装或修改本地规则后,可以用这些命令检查状态:

codex-agents-local doctor
codex-agents-local sync --cwd . --check
codex-agents-local sync --cwd . --json

如果还没有安装社区工具,可以先检查 ignore 状态:

git check-ignore -v AGENTS.local.md AGENTS.override.md

参考模板

# AGENTS.md

## 项目概览

- 项目类型:
- 主要语言:
- 关键目录:
- 不要修改的目录:

## 常用命令

- 安装依赖:`...`
- 本地开发:`...`
- 运行测试:`...`
- 类型检查:`...`
- 格式化:`...`

## 代码规范

- 遵循现有代码风格。
- 不做无关重构。
- 新增功能必须补充或更新测试。

## 安全边界

- 不读取或提交 `.env`、密钥和私有凭据。
- 不执行删除生产数据的命令。
- 修改数据库迁移前先说明影响。

## 交付要求

- 说明改动文件。
- 说明验证命令和结果。
- 说明未验证项和剩余风险。

最佳实践

  • 多利用市面上已有的、经过无数开发者验证的成熟辅助工具。比如写“运行测试:pnpm test”比写“记得自己检查一遍代码是否有问题”有用。
  • 确保没有跟其他规范文档的指令产生冲突。
  • 勤于更新。随着项目逐渐推进,里面的命令也需要与时俱进。
  • AGENTS.md 可以承担导航的作用。可以告诉 Codex 项目文档的阅读目录清单,而不是把文档写进 AGENTS.md里。