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

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 应该怎么选

两者最核心的区别,可以归纳为下面这张表:

对比项MemoryAGENTS.md
主要作用让 AI 了解用户和历史背景规定 AI 如何工作
典型内容偏好、习惯、稳定上下文命令、规范、限制和检查要求
使用方式根据当前任务按相关性调用开始工作前读取适用文件
适用范围跨对话、跨任务全局、项目或具体目录
可控程度由系统提炼和管理由用户明确编写
是否适合强制规则不适合适合
是否适合存放敏感信息不适合同样不适合

还有一个更直观的判断方法:

如果 AI 忘记这条信息,只会让协作不够顺手,可以放进 Memory。

如果 AI 忘记这条信息,可能导致错误修改、漏掉检查或产生不合格的交付,就应该写进 AGENTS.md。

完整工作体系通常还会包含另外两类内容:可以重复执行的完整流程,封装成 Skill;项目事实、设计方案、决策和当前进度,写入项目文档。

信息类型推荐位置
长期偏好和稳定背景Memory
必须执行的工作规则AGENTS.md
可重复运行的工作流程Skill
完整事实、决策和进度项目文档
密码、令牌和私密数据不要写入上述位置

Memory 不需要追求数量。真正有价值的是少量、稳定、能够长期复用的信息。

AGENTS.md 也不应该无限增长。规则越多,冲突和遗漏的概率越高。只把会影响实际执行的要求写进去,其余内容交给项目文档。

简单地说:Memory 负责让 AI 逐渐懂你,AGENTS.md 负责让 AI 稳定地做对事情。