Codex 与用量 · 发布于 2026-09-08 · 更新于 2026-09-08

Codex 不读 AGENTS.md?从启动目录到规则验证的实操教程

AGENTS.md 没有按预期生效时,先检查 Codex 从哪个目录启动、该目录处于哪一个项目,以及同目录是否存在 AGENTS.override.md。把“文件未加载”和“规则已加载但执行不符合要求”分开排查,再用一条无副作用的标记规则验证。

本文目录

先看结论

完全没提到项目规则核对启动目录与文件名先判断能否发现文件
普通规则像被替换了检查同目录 override每个目录最多选一个指令文件
修改后仍按旧规则回答从目标目录启动新会话用新运行复核,不凭旧回复判断
说读到了却没有执行核对冲突与实际结果模型复述规则不能代替验收

先按这 5 步定位问题

  1. 确认运行环境

    确认正在使用 Codex CLI,以及终端当前目录。原生 Windows、WSL、远程机器和另一个 worktree 可能对应不同的文件与配置。

  2. 确认文件能被发现

    检查名称确为 AGENTS.md 或 AGENTS.override.md,文件不为空;再核对当前项目根与启动目录之间的文件位置。

  3. 检查替代与冲突

    同目录的 override 优先于普通 AGENTS.md;不同目录的规则沿路径合并。分别检查文件选择与指令内容,避免把两者混为一谈。

  4. 缩小到一条可观察规则

    在专用示例项目里设置一个测试标记,用新会话询问当前标记。先验证一个明确结果,再逐项恢复复杂规则。

  5. 用结果验证执行

    检查真实修改范围、实际运行的测试与命令结果。区分尚未加载、内容冲突、执行失败和测试命令本身不可用。

本文适用范围与核对依据

本指南由 AIXiamo(AI夏末)整理,面向已经安装 Codex CLI、希望让它遵循项目约定的用户。内容按 2026 年 9 月 8 日的 OpenAI 官方文档核对,命令参数与本地 Codex CLI 0.153.4 的帮助信息交叉检查。

下面的标记示例用于检查启动时的项目指令发现。示例列出的输出是预期结果,实际加载与执行情况需要在自己的环境中验证。App、CLI、远程任务或 worktree 的工作目录不同,先确认正在检查的是哪一份项目。

一、先看目录,再看文件内容

先在准备启动 Codex 的同一个终端执行下面两条命令。第一条用于记录版本;第二条显示当前 Git 项目根。另用 macOS / Linux / WSL 的 pwd,或 Windows PowerShell 的 Get-Location 查看当前目录。若 Git 提示不在仓库中,先确认目录是否正确,不要为了消除报错就在业务目录随意初始化仓库。

在默认项目根识别规则下,Git 根是启动发现的重要边界。官方还支持 project_root_markers 等配置,因此使用自定义配置时,应结合实际项目根判断。

codex --version
git rev-parse --show-toplevel

二、AGENTS.md 与 AGENTS.override.md 怎样组合?

按官方 AGENTS.md 专项说明,Codex 启动时先读取全局指令。全局目录默认为 ~/.codex,设置 CODEX_HOME 时以该值为准;这里先检查 AGENTS.override.md,再检查 AGENTS.md。随后在项目范围内,沿项目根到当前工作目录选择并合并文件;找不到项目根时,项目范围只检查当前目录。

项目范围内的每个目录按 AGENTS.override.md、AGENTS.md、已配置的候选文件名依次寻找非空文件。同一目录最多取一个;跨目录仍会合并,更靠近工作目录的规则用于处理较早规则的冲突。子目录的 override 不等于删除所有父目录约定。

这里描述的是启动发现,不能推导为任务执行期间绝不会再读取更深层的规则,也不要假设一次 cd 就能使现有会话重新加载全部指令。排查时直接从目标目录启动一个新会话,结果更容易比较。

example-project/
├── .git/
├── AGENTS.md
└── docs/
    ├── AGENTS.md
    └── AGENTS.override.md

# 从 docs 启动时,本例的项目文件选择:
# example-project/AGENTS.md
# example-project/docs/AGENTS.override.md
# docs/AGENTS.md 不会在同目录同时追加

三、用一个最小项目检查规则是否加载

新建一个专用的空白示例目录 example-project,在该目录执行 git init,然后新建 docs 子目录。不要把下面的标记规则粘贴进正在工作的业务项目。

按下方标注的路径分别保存三个文件,不要将整段放进同一份 AGENTS.md。根文件定义项目标记和默认检查命令;docs 的两个候选文件刻意给出不同标记,便于观察 override 的选择结果。这里仅询问命令文本,不要求实际运行任何测试。

# 文件:example-project/AGENTS.md
# Example project rules
- 项目标记:ROOT_DEMO
- 本例默认检查命令:npm test

# 文件:example-project/docs/AGENTS.md
# Docs rules
- 目录标记:DOCS_NORMAL

# 文件:example-project/docs/AGENTS.override.md
# Docs override
- 目录标记:DOCS_OVERRIDE
- 本目录默认检查命令:npm run docs:check

四、用两个新会话比较预期结果

先停留在 example-project 根目录运行第一条命令。退出该 CLI 会话后,再从同一终端运行第二条命令。--cd docs 指定第二次运行的工作目录;--sandbox read-only 限制模型通过工具改写工作文件。

根目录运行预期复述 ROOT_DEMO 与 npm test;docs 目录运行预期保留 ROOT_DEMO,使用 DOCS_OVERRIDE,并将本目录检查命令识别为 npm run docs:check。如果出现 DOCS_NORMAL,优先核对 override 的拼写、实际路径和内容是否为空。

这只是一个诊断信号。如果回答遗漏或矛盾,继续检查实际文件与配置,不把模型的一句“已经读取”视作证明。

codex --sandbox read-only "不要调用工具或修改文件。仅依据已加载的项目规则,列出项目标记、目录标记(如果有)和默认检查命令。"

# 退出上一个会话后,从 example-project 根目录运行:
codex --cd docs --sandbox read-only "不要调用工具或修改文件。仅依据已加载的项目规则,列出项目标记、目录标记(如果有)和默认检查命令。"

五、目录正确仍不生效,继续查哪些地方?

检查文件是否误存为 AGENTS.md.txt、是否只有空白内容,以及当前运行是否使用了另一个 Codex 主目录。配置、全局规则和工作项目要属于同一套运行环境。

project_doc_max_bytes 默认值为 32768,单位是字节。超长指令存在截断风险;先精简重复背景,把关键命令和验收条件写清楚,再验证实际加载结果。不要假设每份文件都能额外获得一个独立的 32 KiB 配额。

修改规则或发现参数后,用新运行复核。若设置没有生效,还要检查更高优先级的配置覆盖;不要只反复编辑一份未被当前运行采用的 config.toml。相关参数见文末的官方高级配置与配置优先级说明。

  • 同目录出现 override 时,先读它的具体内容,再决定是否需要调整。
  • 检查命令要真实存在于项目中;文档写了 npm test,不代表项目一定定义了 test 脚本。
  • 指令文档可以约定工作方式,不能代替权限设置、凭证管理和程序校验。

六、规则读到了,怎样验证它真正执行?

将“认真测试”改成可以核对的约定,例如“修改解析函数后,运行项目已有的解析测试;报告执行命令、退出结果和未覆盖情况”。命令名称应来自实际项目,不照搬示例中的 npm 脚本。

对一次小修改,分别检查修改范围、测试输出和最终说明。下面的 Git 命令用于查看工作区差异及空白错误;它们不能代替功能测试。若有新建文件,也要在 status 中逐个核对。

出现未遵守规则的情况,应先找出是哪一项没有完成及其原因。只有读到文件、指令没有冲突、执行条件可用,仍无法达到验收要求时,才继续评估任务拆分或提示方式。

git status --short
git diff --stat
git diff --check
git diff

# 随后运行该项目已定义、与修改相关的实际测试命令

安全与事实检查

  • 记录 Codex CLI 版本、实际启动目录和对应项目根。
  • 区分同目录文件替代与跨目录指令合并。
  • 更改后用目标目录的新会话验证,并保存实际观察结果。
  • 示例标记与预期输出用于诊断,不保证任意模型逐字输出。
  • 公开求助时只贴脱敏后的目录结构、必要规则和错误,避免发布凭证或整份会话日志。

常见问题

AGENTS.override.md 会覆盖整个项目的规则吗?

它优先替代同一目录的普通 AGENTS.md;父目录选中的指令仍参与合并。发生内容冲突时,还要结合所在目录和实际指令优先级判断。

修改 AGENTS.md 后需要清理缓存吗?

官方建议通过新运行或重新启动 CLI 复核。排查重点是实际工作目录、被选中的文件与配置,不是寻找一个未说明的缓存清理命令。

Codex 说已经读到规则,就代表一定会遵守吗?

不能仅凭复述下结论。继续检查实际修改、命令执行结果和测试覆盖;规则可能有冲突,执行条件也可能不足。

AGENTS.md 写得越长,效果越好吗?

没有这样的保证。优先写当前项目可执行的命令、边界和验收条件;重复背景与无关历史会增加理解负担,超长内容还可能触及读取限制。

官方参考

产品功能、方案名称、用量与地区可用性以 OpenAI 当前官方页面为准。

AIXiamo 购买、交付与售后条件以对应实时商品页和原订单为准,不是上述官方文档的服务承诺。内容维护与纠错