读 Codex 源码 - memory 机制
内容提要
Codex 的记忆机制将记忆视为一个需持续整理的知识仓库。旧对话经过提炼后合并成手册和索引;新对话仅能看到薄索引,必要时再召回细节,并用引用反馈哪些记忆有用。这种方式强调有效性和精简性,而非单纯增加记忆。
关键要点
-
Codex 的记忆机制将记忆视为一个需持续整理的知识仓库。
-
旧对话经过提炼后合并成手册和索引,形成 memory_summary.md 和 MEMORY.md。
-
新对话仅能看到薄索引 memory_summary.md,必要时再召回细节。
-
系统通过引用反馈哪些记忆有用,强调有效性和精简性。
-
召回过程是一个快速的记忆检索,避免大规模搜索。
-
用户显式要求记忆更新时,系统只会写一条 ad-hoc note,而不是直接修改 MEMORY.md。
-
记忆的更新和管理通过两阶段的后台处理,确保长期记忆的质量和纯度。
-
Codex 的设计目标是提炼有价值的历史经验,而不是单纯增加记忆。
延伸解读
记忆机制的设计理念
Codex 的记忆机制强调知识的提炼与管理,而非简单的记忆堆积。通过将旧对话转化为结构化的知识仓库,Codex 能够在新对话中快速检索相关信息。这种设计不仅提高了效率,还确保了记忆的质量和实用性。
召回过程的高效性
Codex 的召回过程采用了快速记忆检索的方法,避免了大规模搜索带来的资源浪费。系统首先查看 memory_summary.md,只有在必要时才深入到更详细的 MEMORY.md 和其他文件。这种策略确保了在复杂任务中,系统能够迅速找到相关信息。
记忆更新的谨慎性
在 Codex 中,用户的记忆更新请求不会直接修改 MEMORY.md,而是生成 ad-hoc note。这种做法确保了记忆的稳定性和一致性,避免了在实时对话中随意修改长期记忆的风险,从而维护了知识的纯度。
延伸问答
Codex 的记忆机制是如何管理旧对话的?
Codex 将旧对话提炼后合并成手册和索引,形成 memory_summary.md 和 MEMORY.md。
新对话如何使用 Codex 的记忆?
新对话只能看到薄索引 memory_summary.md,必要时再召回细节。
Codex 如何确保记忆的有效性和精简性?
系统通过引用反馈哪些记忆有用,强调有效性和精简性,而不是单纯增加记忆。
用户如何更新 Codex 的记忆?
用户显式要求记忆更新时,系统只会写一条 ad-hoc note,而不是直接修改 MEMORY.md。
Codex 的召回过程是怎样的?
召回过程是一个快速的记忆检索,先查 MEMORY.md,再按需深入其他文件,避免大规模搜索。
Codex 的记忆机制与 Claude Code 有何不同?
Codex 更像是离线知识蒸馏和在线检索,而 Claude Code 更像是持续维护的长期笔记。