OpenAI Memory 与 AGENTS.md:一个负责记住,一个负责约束

OpenAI Memory 是一套让 AI 在不同对话之间保留有用信息的机制。
它的目标不是保存全部聊天记录,而是提炼那些长期稳定、未来仍可能用得上的内容,例如沟通偏好、常用工具、工作习惯和持续存在的背景信息。这样开始新任务时,AI 不必每次都从零了解用户。
Memory 和 AGENTS.md 都会影响 AI 的工作方式,但它们解决的是不同问题:
- Memory 帮助 AI 逐渐了解用户。
AGENTS.md规定 AI 工作时必须遵守的规则。
一个积累默契,一个明确边界。
需要说明的是,官方文件名是 AGENTS.md,不是 agent.md。
OpenAI Memory 是什么
Memory 可以理解为 AI 的长期上下文。
普通对话结束后,新对话通常不会完整继承之前的内容。Memory 会从符合条件的历史对话中提取可能长期有用的信息,在后续任务相关时重新提供给 AI。
适合进入 Memory 的内容包括:
- 稳定的表达和沟通偏好
- 长期使用的软件、平台或技术环境
- 经常出现的术语和业务背景
- 已经形成习惯的协作方式
- 跨任务仍然有效的个人偏好
Memory 并不等于完整的聊天备份。它不会逐字保存所有内容,也不保证每段对话都会立即形成记忆。Codex 的本地记忆通常在后台生成,较短、仍在进行或缺乏长期价值的对话可能不会被纳入。
ChatGPT 网页端的 Memory 与 Codex 本地记忆也是两套独立机制。在一个产品中形成的记忆,不会自动出现在另一个产品中。
Codex 的本地记忆通常保存在:
~/.codex/memories/这些文件主要是系统生成的记忆状态。用户可以查看,但不建议把直接修改内部文件当作日常维护方式。
在 Codex 桌面端,可以使用 /memories 控制当前对话是否使用或贡献本地记忆;全局开关位于 Settings > Personalization。具体行为可以参考 OpenAI Memories 官方文档。
Memory 适合保存稳定信息,不适合充当资料仓库或强制规则系统。密码、令牌、临时任务进度、易过期数据、大段原始资料和必须严格执行的操作要求,都不应放进 Memory。
可以用一个问题判断:三个月后,这条信息还有没有用?如果答案是肯定的,它可能适合进入 Memory;如果它只对当前任务有效,更适合留在项目文档或当前对话中。
本地记忆目录里的三层结构
打开 ~/.codex/memories/ 后,可能会看到几类看起来相近的文件。它们不是三份平行的“用户资料”,而是记忆形成过程中的不同环节。
raw_memories.md 可以理解为原材料池。任务里反复出现、可能具有长期价值的信息,会先作为候选留在这里,等待后续判断、去重和归纳。它不是聊天记录备份,也不需要手动把整段对话复制进去。
rollout_summaries/ 更像记忆证据库。这里保存任务级摘要和必要的上下文线索,用来回答“这项偏好是基于一次临时反馈,还是在多个任务中都出现过”。有了这层证据,系统能减少把偶发要求误判为长期习惯的风险。目录暂时为空,通常只表示尚未生成可用的任务摘要。
extensions/ad_hoc/notes/ 则是主动管理记忆的入口。当用户明确提出“请记住这件事”“以后按这个方式处理”时,可以新增一条小而清晰的说明,供后续记忆整理使用。它适合记录经过确认的长期约定,而不是保存完整资料。
日常维护时,不要直接修改 raw_memories.md 或 rollout_summaries/。需要新增、修正或删除一条长期记忆时,应当通过 extensions/ad_hoc/notes/ 提交一条明确的变更说明。这让原始候选、证据和最终记忆各自保持职责清晰。
AGENTS.md 是什么
如果某项要求不能依赖 AI“碰巧想起来”,就应该写进 AGENTS.md。
AGENTS.md 是面向 Codex 的工作说明文件。Codex 开始任务前会读取当前目录下适用的规则,并据此决定如何检查、修改和交付结果。
适合写入 AGENTS.md 的内容包括:
- 开始和结束任务时需要执行的命令
- 代码、文档或文件的格式规范
- 可以修改和禁止修改的目录
- 测试、构建和检查要求
- 文件命名与交付位置
- 安全边界和禁止操作
- 项目特有的协作约定
AGENTS.md 支持分层配置:
~/.codex/AGENTS.md 全局规则
项目目录/AGENTS.md 项目规则
子目录/AGENTS.md 局部规则全局文件适合放跨项目通用的工作习惯,项目根目录的文件负责项目级规范,子目录中的文件则处理局部差异。离当前工作目录越近的规则越具体,可以覆盖上层约定。
AGENTS.md 还可以和项目一起纳入 Git,接受版本管理和团队评审。它的默认合并大小上限为 32 KiB,因此最好保持简短,只保留真正影响执行的内容。详细背景可以放进项目文档,再从 AGENTS.md 中引用。
更多配置方式可以查看 OpenAI AGENTS.md 官方文档。
Memory 和 AGENTS.md 应该怎么选
两者最核心的区别,可以归纳为下面这张表:
| 对比项 | Memory | AGENTS.md |
|---|---|---|
| 主要作用 | 让 AI 了解用户和历史背景 | 规定 AI 如何工作 |
| 典型内容 | 偏好、习惯、稳定上下文 | 命令、规范、限制和检查要求 |
| 使用方式 | 根据当前任务按相关性调用 | 开始工作前读取适用文件 |
| 适用范围 | 跨对话、跨任务 | 全局、项目或具体目录 |
| 可控程度 | 由系统提炼和管理 | 由用户明确编写 |
| 是否适合强制规则 | 不适合 | 适合 |
| 是否适合存放敏感信息 | 不适合 | 同样不适合 |
还有一个更直观的判断方法:
如果 AI 忘记这条信息,只会让协作不够顺手,可以放进 Memory。
如果 AI 忘记这条信息,可能导致错误修改、漏掉检查或产生不合格的交付,就应该写进 AGENTS.md。
完整工作体系通常还会包含另外两类内容:可以重复执行的完整流程,封装成 Skill;项目事实、设计方案、决策和当前进度,写入项目文档。
| 信息类型 | 推荐位置 |
|---|---|
| 长期偏好和稳定背景 | Memory |
| 必须执行的工作规则 | AGENTS.md |
| 可重复运行的工作流程 | Skill |
| 完整事实、决策和进度 | 项目文档 |
| 密码、令牌和私密数据 | 不要写入上述位置 |
Memory 不需要追求数量。真正有价值的是少量、稳定、能够长期复用的信息。
AGENTS.md 也不应该无限增长。规则越多,冲突和遗漏的概率越高。只把会影响实际执行的要求写进去,其余内容交给项目文档。
简单地说:Memory 负责让 AI 逐渐懂你,AGENTS.md 负责让 AI 稳定地做对事情。