⌘ Codex Context Map

实用排障指南 · 2026 年 9 月 16 日

Codex 为什么没有遵循
我的 AGENTS.md?

先检查指令从哪里加载,再决定是否改写内容。目录边界、同目录覆盖文件和字节截断,都可能让一段指令没有进入加载链。

打开截断演示 →检查自己的仓库
01 / 启动目录

从启动 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 显式指定。

02 / 覆盖文件

检查旁边是否有 AGENTS.override.md

每个目录只选择一个候选文件,因此覆盖文件可能遮盖同目录的普通文件。父目录的文件仍然保留在加载链中。

隐藏覆盖演示展示了支付迁移指令如何替代同目录的候选文件。展开加载链下面“被遮盖或不在当前加载链内”的文件面板,可以查看被跳过的文件。

空文件的版本差异:本工具参考的项目实现先选择第一个存在的候选文件,再读取内容。因此,空覆盖文件仍可能遮盖旁边的普通文件。这个细节与版本有关;可以先看空覆盖演示,再核对自己的 Codex 版本。

03 / 字节预算

定位最后一个能容纳的字节

官方文档的默认项目上限是 32,768 字节。演示将它降为 1,024 字节,让截断位置更容易观察。这是内容字节数,不是 Token 数。

虚构演示:1,024 字节预算
指令来源 保留字节 结果
根目录 AGENTS.md 535 / 535 完整加载
services/AGENTS.md 264 / 264 完整加载
支付服务覆盖文件 225 / 748 省略 523 字节

打开截断场景查看合并预览,再恢复 32 KiB,末尾缺失的段落就会出现。把一个长文件分拆到同一加载路径上的父子目录,并不自动绕过共享预算。

04 / 配置一致

让地图参数与实际配置一致

地图不会自动读取 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 后,所选目录的加载链发生截断时会返回失败退出码。报告包含指令文本和相对路径,分享前请检查。

获取开源工具 →继续探索演示