← 返回所有文章

agent 为什么不遵守 CLAUDE.md 等规则文件?

4 分钟阅读作者:The Octuo team
Octuo macOS 应用中的记忆模块截图

先分清是文件没加载,还是规则加载后没有被遵守。文件可能不在查找范围内,被另一个文件替代,或因内容过大而未完整加载。如果文件已经加载,就检查指令是否含糊、是否相互冲突。先抓住一条具体失效的规则排查,再决定是否补充文字。

文件真的加载了吗?

在 Claude Code 中,用 /context 查看启动时加载的记忆文件,用 /memory 查找并打开指令文件。文件存在于磁盘上,并不等于会话已经读到了它。子目录里的 CLAUDE.md 按需加载,因此没有出现在启动列表里,不一定说明出了问题。

可以让 Claude Code 读取相关子目录中的另一个文件,触发相应的加载过程,再用一个必须遵守该规则的小任务验证。例如,先让它提出一个文件名,检查是否符合命名约定,再授权较大的修改。

对于 Codex,可以要求它列出已加载的指令来源。官方指南建议:如果规则看起来没有更新,在目标目录重新启动。它在每次运行开始时构建一次指令链;在终端交互界面中,通常就是每次启动会话时。

两个工具分别按什么规则查找文件?

Claude Code 会把发现的 CLAUDE.md 文件拼接进上下文,并不按机械规则让一个覆盖另一个。记忆指南提醒,如果指令互相矛盾,它可能选择其中任意一条。因此应比较相关文件的实际内容,不要默认离工作目录最近的规则一定生效。

对于 AGENTS.md,还要检查 Claude Code 文档中的项目指令选择规则和可用条件。默认选择下,项目路径上的 CLAUDE.md 或 CLAUDE.local.md 可能阻止直接加载 AGENTS.md。如果两类文件都需要,记忆指南介绍了导入 AGENTS.md 或选择同时读取两类文件的方式。

Codex 的查找逻辑不同。它先读取全局指令,再从项目根目录向当前工作目录逐层查找。同一目录内,AGENTS.override.md 优先于 AGENTS.md,每个目录最多采用一个文件。越靠近工作目录的指令会覆盖前面的指令。空文件会被跳过,合并内容默认上限为 32 KiB。

如果你同时使用两个工具,可以参考一起使用 Claude Code 和 Codex,然后分别核实它们实际加载了哪些来源。

已加载的规则怎样写才容易执行?

把模糊要求改成能观察、能核对的要求。与其说“保持整洁”,不如指定新文件应放在哪里;与其说“检查工作”,不如写明检查项目以及交付时应提供的证据。增加提醒之前,先删去过时的例外和互相矛盾的副本。

Claude Code 建议每个 CLAUDE.md 控制在 200 行以内。这是写作建议,与 Codex 的合并字节上限不是同一种限制。它的排查指南还区分了行为指导和技术约束:CLAUDE.md 提供上下文,权限设置和 hook 则用于执行约束。不要把指令文件中的一句话当成技术上的访问边界。

如何让助手记住你说过的话介绍了更广泛的整理习惯。针对眼前的问题,保留一个能复现规则失效的例子,每次只改一处,再重新验证。

Octuo 适合放在哪里

把目标告诉 Octuo,它会把工作交给支持的工具和 agent,带上所需上下文,再把结果收拢回来。

Octuo 具有账号级记忆,任务及其上下文可以跨会话延续。内置的 Canvas 记忆模块让你查看和管理 agent 可用的记忆,但不展示完整提示词或内部推理。记忆是它可以参考的上下文,并不意味着每项任务都会使用每条记忆。

Octuo 委派工作时会传递所需上下文;这不等于导入各个工具的原生聊天历史。编程工具自身的指令文件是否加载,仍应按上面的步骤排查。

常见问题

应该在每个文件里重复同一条规则吗? 建议在合适的范围内保留清晰的规则。添加副本之前,先检查现有内容是否互相矛盾。

指令文件越长越好吗? 不一定。Claude Code 建议保持简洁,Codex 对合并内容设有大小上限。应让关键指令便于查找和核对。

Codex 一直显示旧指令怎么办? 在目标目录重新启动,并询问它加载了哪些来源。改写规则之前,先检查覆盖文件和文件实际内容。

来源

上述产品名称归各自所有者所有,我们与它们没有任何关联。