杂七杂八 / 2026/7/8
中文/EnglishCodex分析

本文探讨 OpenAI Codex 的记忆机制,以及它如何保存长期记忆。
这套机制主要包含三个记忆层级,此外偶尔还会出现由 AI 临时生成的第四层,即 ad hoc note。
第一层实际上是一个面向模型的索引,由两个文件组成,分别是 memory_summary.md 和 MEMORY.md。memory_summary.md 是一份压缩后的概览,记录用户信息、偏好、工作流程以及重要的本地路径。MEMORY.md 则是一个规模更大、可供rg检索的目录。它会按照主题和任务类型分类,同时按照关键词进行标签,也通过文字概括任务的详细信息,并链接到内容更详细的第二层任务执行摘要。
第二层详细记录任务是如何完成的,包括任务要求、遇到的问题以及相应的解决方案。其中的 Markdown 文件包含除工具调用结果之外的几乎全部信息。此外还有一份 JSONL 文档,保存完整的工具调用结果和用户指令,模型可以在需要时查阅。
第三层是记录整个会话过程的原始 JSON 文档。它包含 JSONL 文档,以及一个 SQLite 数据库。数据库中保存时间戳、精确的 token、原始结果、运行环境和文档路径。如果 JSONL 文档提供的信息不足,模型就会通过命令行读取 SQLite 数据库,虽然一般不会这样。那个数据库有个小问题,它会频繁读写磁盘,而且速度非常之高,可能会损伤磁盘。我的磁盘在一周之内被损伤了1/18。
第四层被称为 ad hoc notes,也就是根据具体情况生成的自定义笔记。当用户特别强调某一点,或者要求 AI 记住某件事时,Codex 会创建一个小型 Markdown 文件,并以时间和标题作为文件名。文件中会记录相关背景以及指令的适用范围。当用户提到与主记忆文件中某项任务相似的任务时,AI 会同时读取第二层笔记和对应的 ad hoc note。
还需要注意的是,系统中还有一个名为 raw_memories.md 的文件。它保存更加详细的任务信息,包括用户的每个提示词。
这套机制有一个显而易见的优点,那就是你的偏好不会被遗忘。由于 AI 会追踪记忆文件,并保存过去问题及其解决方法的详细记录,因此它能够避免重复犯错。
然而,在我的体验中,这套机制明显弊大于利。其中最糟糕的问题是过拟合。AI 会对你的请求产生过拟合,并把某些要求过度泛化到其他任务中。在一些情况下,AI 为了迎合一些你实际上并不存在的需求,反而限制了自身的能力,譬如,不喜欢安装新的有必要的库,或者在调用工具时畏手畏脚。
另一个严重问题是无意识记录。AI 有时会把用户的某次操作,比如不允许做某个操作,理解为一种长期偏好,并在用户不知情的情况下将其保存下来。更糟糕的是,当 AI 为了逃避繁重工作而表现得懒惰时,它可能会把这种行为习惯也记录到文件中,导致它之后在执行任务时更加敷衍。这是因为记录行为的AI跟当前做出懒惰行为的AI不是一个AI。
Proof of Publication
This article may have been published earlier, but this proof shows it existed no later than the date below.