实用排障指南 · 2026 年 9 月 16 日
Codex 为什么没有遵循
我的 AGENTS.md?
先检查指令从哪里加载,再决定是否改写内容。目录边界、同目录覆盖文件和字节截断,都可能让一段指令没有进入加载链。
从启动 Codex 的目录开始检查
初始项目指令链从项目根目录延伸到工作目录;兄弟目录里的文件不在这条路径上。官方 AGENTS.md 指南介绍了发现顺序和备用文件名。
northstar/
├── AGENTS.md
├── services/
│ ├── AGENTS.md
│ └── payments/ ← 从这里启动
│ ├── AGENTS.md
│ └── AGENTS.override.md
└── apps/web/
└── AGENTS.md ← 不在这条链上
在地图中选中 services/payments,再与
apps/web 对比,查看共有和不同的来源文件。嵌套 Git
仓库也可能改变根目录;如果自动检测与预期边界不同,可以在 CLI 中用
--root 显式指定。
检查旁边是否有 AGENTS.override.md
每个目录只选择一个候选文件,因此覆盖文件可能遮盖同目录的普通文件。父目录的文件仍然保留在加载链中。
隐藏覆盖演示展示了支付迁移指令如何替代同目录的候选文件。展开加载链下面“被遮盖或不在当前加载链内”的文件面板,可以查看被跳过的文件。
空文件的版本差异:本工具参考的项目实现先选择第一个存在的候选文件,再读取内容。因此,空覆盖文件仍可能遮盖旁边的普通文件。这个细节与版本有关;可以先看空覆盖演示,再核对自己的 Codex 版本。
定位最后一个能容纳的字节
官方文档的默认项目上限是 32,768 字节。演示将它降为 1,024 字节,让截断位置更容易观察。这是内容字节数,不是 Token 数。
| 指令来源 | 保留字节 | 结果 |
|---|---|---|
| 根目录 AGENTS.md | 535 / 535 | 完整加载 |
| services/AGENTS.md | 264 / 264 | 完整加载 |
| 支付服务覆盖文件 | 225 / 748 | 省略 523 字节 |
打开截断场景查看合并预览,再恢复 32 KiB,末尾缺失的段落就会出现。把一个长文件分拆到同一加载路径上的父子目录,并不自动绕过共享预算。
让地图参数与实际配置一致
地图不会自动读取 Codex
配置。请明确提供字节上限、备用文件名和根目录。只有添加
--global 才读取全局指导。公共演示中的
TEAM_GUIDE.md 是显式配置的虚构备用文件。
为自己的仓库生成报告
安装 Node.js 20 或更新版本后运行:
npx codex-context-map . --html context-map.html
用浏览器打开生成的 HTML,即可离线查看。也可以指定目录和模型参数:
npx codex-context-map services/payments --root . \
--max-bytes 32768 --fallback TEAM_GUIDE.md \
--html context-map.html
第二条命令使用 POSIX shell 的续行符;PowerShell 中请写成一行。添加
--check
后,所选目录的加载链发生截断时会返回失败退出码。报告包含指令文本和相对路径,分享前请检查。