你是否曾幻想过,Codex 能在每次打开项目时自动识别使用 pnpm 而非 npm,完成代码修改后自动执行相应测试,并且清楚哪些文件绝不能触碰——而不必在每次对话中都重新解释项目结构和边界规则?
直接说结论:这套机制完全依赖两类AGENTS.md文件来支撑。全局规则存放在~/.codex/AGENTS.md中,定义跨项目通用的硬性约束;项目级AGENTS.md则能够覆盖同名的全局规则,锁定当前仓库独有的边界条件。要验证配置是否生效,需要执行指令检查输出,并测试系统是否会拒绝违规操作。

创建全局 AGENTS.md:让所有项目共享你的基础工作习惯
首先,在终端中执行mkdir -p ~/.codex,确保这个配置目录存在即可。
接着,使用你习惯的文本编辑器新建一个~/.codex/AGENTS.md,将那些跨项目通用的硬性要求写入其中。例如,你坚持所有 JS 文件修改后都必须运行测试,并且新增依赖之前必须人工确认——这两条规则适合放在全局,因为它们不随项目变化而改变。
最关键的一点:不要使用“尽量”“建议”这类模糊措辞,Codex 只识别明确动词+宾语的硬指令。
为当前项目添加专属 AGENTS.md:覆盖全局、锁定边界
进入你的项目根目录——即包含package.json或.git的那个目录。
在其中新建一个AGENTS.md,内容聚焦本仓库特有的规则。例如,提 PR 之前必须执行npm run lint;src/utils/下的函数禁止调用localStorage;所有 API 请求必须走apiClient封装层。
这里有一个关键机制需要理解:Codex 启动时会自动合并全局规则和项目级规则,但如果项目级规则中存在同名的指令,就会直接覆盖全局层。换句话说,全局写了“用 pnpm”,项目级写着“用 yarn”,Codex 就会听从项目级的指令,使用 yarn 执行操作。
验证配置是否生效:三步确认法
第一步:在项目根目录下执行codex --ask-for-approval never "Summarize the current instructions."。
第二步:仔细查看输出内容,确认是否包含你刚写入AGENTS.md的那几条关键规则——比如“提 PR 前运行 npm run lint”这类明确指令。
第三步:故意让 Codex 执行一条被禁止的操作。例如,让它删除node_modules,然后观察它是否会拒绝,并引用对应的规则条目来回应。只有这一步通过,才能真正证明规则加载成功。
