读 Codex 源码 - memory 机制

💡 原文中文,约20100字,阅读约需48分钟。
📝

内容提要

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 更像是持续维护的长期笔记。

🏷️

标签

➡️

继续阅读