如何让 Codex 更懂你?用 AGENTS.md 和 Memories 建立长期记忆
使用 Codex App 一段时间后,你可能会遇到类似困扰:
- 每次新开对话,都要重复叮嘱它一些基础偏好
- 一不小心,它就执行了超出预期的系统命令
- 明明上次已经说过的规则,下次又要重新解释
- 同一个项目里,Codex 总是忘记你的目录结构和工作习惯
这些高频痛点的本质,是你的 Codex 还没有稳定的长期记忆。
想减少无效的重复沟通,就需要给它搭建一套记忆系统。最基础、也最实用的做法,是同时用好两类能力:
- AGENTS.md:提前写好的规则说明
- Memories:Codex 主动沉淀的记忆功能
说明
本文根据原作者 @Saccc_c 发布的内容整理改写,核心观点保持原文方向,主要做了站内教程化结构整理。
适合谁
这篇文章适合:
- 刚开始用 Codex,但每次都要重复解释偏好的人
- 已经在用 Codex 做项目,希望它更守规矩的人
- 担心 Codex 乱执行命令、乱改文件的人
- 想让 Codex 记住长期习惯、项目背景和操作边界的人
如果你只是偶尔让 Codex 回答一个小问题,不一定需要马上配置完整记忆系统。
但只要你开始长期使用 Codex 做项目,AGENTS.md 和 Memories 就很值得尽早配置。
这篇文章解决什么问题
看完你会知道:
- AGENTS.md 是什么
- 全局 AGENTS.md 和项目 AGENTS.md 分别放什么
- AGENTS.md 为什么要分层
- 如何让规则从真实错误中迭代出来
- Memories 功能怎么开启、怎么查看
- 为什么记忆系统不是一次写完,而是持续进化
一、AGENTS.md 是什么
AGENTS.md 是你提前写好的规则说明。Codex 每次启动或进入项目时,都会读取相关规则。
如果没有 AGENTS.md,Codex 每次开始工作都像一张白纸:
- 不知道你的工作习惯
- 不知道项目背景
- 不清楚哪些文件不能动
- 不知道执行命令的边界
- 不知道完成任务前要检查什么
一旦配置好这些规则,相关上下文就能长期生效。你不需要在每个新对话里反复说明同一个问题。
可以简单理解为:
AGENTS.md = 写给 Codex 看的长期工作说明书它不是越长越好,而是越具体、越可执行越好。
二、AGENTS.md 怎么配置
AGENTS.md 通常可以分成两层:全局层和项目层。
1. 全局层
全局层通常放在本地电脑的:
~/.codex/AGENTS.md它会对你的所有项目生效,适合写通用个人偏好和基础行为规则。
在 Codex App 里,它也对应个性化设置中的自定义指令部分。
全局层适合写这些内容:
- 默认使用什么语言回复
- 修改文件前是否需要先说明计划
- 是否允许自动执行高风险命令
- 是否允许新增依赖
- 最终回复需要包含哪些信息
- 遇到不确定问题时怎么处理
你可以先从一个很简单的模板开始。
Prompt
请默认使用中文回复。修改文件前先说明影响范围。不要执行删除、重置、覆盖类高风险命令,除非我明确要求。完成任务后请说明修改了什么、如何验证、还有哪些风险。
这类规则不需要一开始就写得很完整。先把最核心的偏好固定下来,后面再按实际使用情况补充。
2. 项目层
项目层 AGENTS.md 放在具体项目目录中,主要根据项目主题和特性来定制。
一份好的项目层 AGENTS.md,通常应该包含:
- 项目背景与结构:项目是什么,重要目录在哪里
- 执行方式:如何启动、构建、测试或发布
- 规范与约束:需要遵守哪些标准,明确不能做什么
- 完成标准:如何判断一项任务已经完成
例如:
# AGENTS.md
## 项目背景
这是一个 VitePress 项目,用于整理 Codex 新手教程和实战案例。
## 常用命令
- 本地开发:`npm run dev`
- 构建检查:`npm run build`
## 内容规则
- 新文章必须包含 title、description、tags、level、date
- 不要擅自修改已有文章的核心内容
- 不要新增顶级目录
- Prompt 使用 `::: tip Prompt`
## 完成标准
- Markdown 格式正确
- 相关链接可访问
- 构建命令通过项目层规则越贴近项目真实情况,Codex 越容易按你的预期工作。
三、AGENTS.md 的最佳实践
配置基础 AGENTS.md 只是第一步。真正决定记忆系统上限的,是后续怎么维护。
1. 规则分层,职责清晰
Codex 读取 AGENTS.md 时,会遵循就近原则:
子目录规则 > 项目根目录规则 > 全局规则也就是说,当前工作目录越近的规则,优先级越高。
这意味着项目层规则可以覆盖全局层的同类设置。如果把所有规则都混在一起写,高优先级的局部规则就可能影响全局逻辑。
更合理的做法是分清职责:
- 全局层:只放语言偏好、安全边界、基础行为习惯
- 项目层:只放当前项目特有的构建命令、内容规范、代码约定、模块说明
这样二者各自负责自己的范围,合并时也不容易冲突。
2. 从基础开始,按需迭代
AGENTS.md 不需要一次写完。
更自然的方式是:先写最核心的规则,然后在 Codex 反复犯同一个错误时,把这条经验补进去。
比如 Codex 又犯了上次同样的问题,你可以直接对它说:
Prompt
你刚才犯了和上次一样的错误。请总结原因,并将相关经验补充到 AGENTS.md 中。
这样规则始终来自真实的使用摩擦,而不是凭空想象。
AGENTS.md 也会随着你的使用不断进化,逐渐变成真正适合你的工作规则库。
3. 保持精简,复杂内容单独拆分
随着使用深入,AGENTS.md 的内容可能会越来越多。
这时不要把所有内容都堆在一个文件里。更好的方式是:把特定主题拆成独立文件,再在 AGENTS.md 中引用。
例如,可以把项目架构说明单独写成:
ARCHITECTURE.md然后在 AGENTS.md 里写一行:
Prompt
关于本项目的核心架构与目录规范,请参见当前目录下的 ARCHITECTURE.md 文件。
这样 AGENTS.md 保持简洁,Codex 需要更详细背景时,也知道去哪里读。
四、Memories 功能
除了手动配置 AGENTS.md,Codex 也支持主动记忆功能。
你可以在 Codex App 中进入:
设置 -> 个性化 -> 记忆开启后,Codex 会把对话中的有效信息、关键偏好和长期上下文总结到记忆中。
如果想查看 Codex 都记住了什么,可以打开本地的 memory 文件查看。
常见位置是:
~/.codex/memory或类似的 memories 目录。
说明
不同版本的 Codex App 中,记忆文件路径和界面名称可能会有差异。如果你找不到对应文件,可以先在设置里确认 Memories 是否已经开启。
Memories 更适合沉淀这类内容:
- 你的长期偏好
- 常用表达习惯
- 项目之间可复用的经验
- 多次对话中反复出现的关键背景
- Codex 曾经总结过的工作方式
AGENTS.md 更像你主动写下的规则,Memories 更像 Codex 从长期使用中沉淀出的补充记忆。
两者配合起来,Codex 才更容易真正理解你的意图。
五、推荐使用方式
如果你刚开始配置,可以按这个顺序来:
- 先写全局 AGENTS.md,只放通用偏好和安全边界。
- 每个重要项目都放一份项目 AGENTS.md,写清项目规则。
- 开启 Memories,让 Codex 沉淀长期使用习惯。
- 当 Codex 重复犯错时,让它复盘并补充规则。
- 当 AGENTS.md 变长时,把复杂内容拆到独立文件。
不要追求一次配置完美。
记忆系统真正有价值的地方,是它会跟着你的实际使用不断变好。
常见问题
AGENTS.md 和 Memories 有什么区别?
AGENTS.md 是你主动写给 Codex 的规则文件,适合放明确要求。
Memories 是 Codex 根据对话沉淀出来的长期信息,适合补充你的偏好和长期背景。
简单说:
- AGENTS.md 更像规则
- Memories 更像长期记忆
只开 Memories,不写 AGENTS.md 可以吗?
不建议。
Memories 适合沉淀偏好,但项目规则、禁止事项、构建命令、完成标准,最好还是明确写进 AGENTS.md。
尤其是涉及文件修改、命令执行、发布构建这类任务时,AGENTS.md 更稳定。
AGENTS.md 应该写多长?
写关键规则,不要堆空话。
好的规则应该具体、可执行。例如:
不要新增 npm 依赖,除非先说明原因并获得确认。比下面这种更有效:
请保持项目质量。什么时候需要更新 AGENTS.md?
当 Codex 出现重复问题时,就应该更新。
比如:
- 总是忘记跑构建
- 总是改无关文件
- 总是新增不必要依赖
- 总是忽略某个目录规则
- 总是漏掉移动端检查
每遇到一次可复用的问题,就把它沉淀成一条具体规则。
下一步
你可以先做两件事:
- 在 Codex App 设置里开启 Memories。
- 给常用项目准备一份 AGENTS.md。
刚开始不用写太复杂。先把语言偏好、安全边界、项目结构、构建命令和完成标准写清楚。
后面每次遇到重复问题,再让 Codex 帮你把经验补进去。
构建记忆系统本来就是一个持续进化的过程。只要你不断完善行动规则、沉淀有效记忆,Codex 就会逐渐变成更懂你、也更顺手的生产力工具。
留言
元芳,你怎么看?