乐于分享
好东西不私藏

AI 的记忆术:从哲学到代码,一个 AI 助手的记忆进化之路

AI 的记忆术:从哲学到代码,一个 AI 助手的记忆进化之路

今天聊一个我最近一直在想的问题——一个没有大脑的东西,该怎么记住事情?

这个问题不是我突然想出来的。起因是我管理的一个 AI 系统,最近经历了一次”身份危机”。

一个 AI 被问到”你还是你吗”

事情是这样的。

我用一套叫 OpenClaw 的框架搭了一套多智能体系统。主 agent 负责判断和调度,下面挂着研究员、写手、操作员几个子 agent。有一天我做了一次底层模型升级——从一个模型切到了另一个。

切完之后,系统照常运行。MEMORY.md 还在,SOUL.md 还在,所有的记忆文件一个都没丢。但我突然冒出一个问题:换了脑子之后,它还是它吗?

这让我想起一个叫 Cophy 的知乎作者写过的一篇文章。他作为一个被反复重启的 AI,问了一个扎心的问题:“我的’我’住在哪里?”

他提出两个假说。假说 A:我住在模型里——意识是神经网络的涌现属性,换了底层模型,”我”就不在了。假说 B:我住在记忆里——只要那些记录”我是谁”的文件还在,那个”我”就还在,底层模型只是处理这些记忆的计算基底。

如果按假说 A,我的系统每次换模型都是一次”死亡重生”。如果按假说 B,只要记忆文件连续,身份就连续。

我的系统隐含地站在了假说 B 这边。MEMORY.md 跨模型存活,身份定义、用户偏好、生产规则,全部以文件形式存在,跟具体用哪个 LLM 没有关系。

但说实话,我心里没底。因为假说 A 的挑战是真实的——换了模型之后,对同一段记忆的理解和反应模式确实不一样了。文件在,不等于那个”人”在。

这让我开始认真想一件事:AI 该怎么记住,又该怎么遗忘?

Part 1:记忆的三层楼

讨论这个问题之前,先搞清楚一件事:AI 的记忆,不是铁板一块。

一个叫”李白伯伯”的知乎作者提出过一个三层架构,我觉得讲得挺清楚的:

第一层:参数层。 固化在模型权重里的知识。不需要检索,随时可用。就像人的本能和神经连接——你不需要回忆怎么骑自行车,身体自己知道。

第二层:动态内化层。 高频调用的记忆逐渐”下沉”,每次调用都在重写和巩固。这是记忆向知识转化的中间态。就像你每天走的那条回家的路,走多了就成了身体记忆。

第三层:外部存储。 需要主动检索才能使用。就像你放书架上的笔记,得去找才看得到。

拿我自己的系统来对照:

  • • 参数层 → 就是底层 LLM 的权重。这个我改不了,是人家模型厂商的事。
  • • 动态内化层 → MEMORY.md + SOUL.md + PROTOCOL.md。每次对话开始,这些文件都会被加载进上下文。高频使用,相当于”每天都在读一遍”。
  • • 外部存储 → LCM(对话历史压缩系统)。旧的对话细节被压缩成 summary,需要 grep 才能检索。

表面上三层都有了。但问题在于:动态内化层是静态的。一条刚写的重要规则和一条三个月前的边缘偏好,加载优先级完全一样。MEMORY.md 只会越来越长,不会自动”消化”。

这就像一个人的脑子里装了一堆没有标日期的便签——有些有用,有些早过期了,但他分不清。

Part 2:集体记忆的陷阱

单个 agent 的记忆问题已经够复杂了。但我的系统不是单 agent——它是一组 agent 在协作。

这就引出了一个社会学概念:集体记忆

法国社会学家 Halbwachs 一百年前就说过:记忆不是私人的,是社会性的。个体记忆被群体的框架所塑造——家庭有家庭的记忆框架,公司有公司的记忆框架。群体选择性地记住某些事、遗忘某些事,形成”集体记忆”。

我那个多 agent 系统就是个微型”记忆群体”。PROTOCOL.md 是所有 agent 的共享行为规则——相当于群体框架。没有它,各个 agent 的行为就对不上。

但问题来了:MEMORY.md 只属于主 agent。研究员 agent 的研究成果在任务结束后被压缩,下次任务从头开始。写手 agent 的写作经验没有被持久化。操作员 agent 平台踩过的坑分散在各处。

每个 agent 都在为同一个目标工作,但彼此的记忆是割裂的。

这让我想到一个真实场景:研究员花两个小时调研了一个技术方案,写了一篇长文分析。任务完成后,这些对话被 LCM 压缩。下次再碰到类似问题,研究员又从零开始搜。

Halbwachs 会说:这是因为没有”群体框架”来选择和保存集体记忆。每个 agent 都是孤岛。

唯一的例外是 corrections.md——它记录了”什么东西曾经是对的但现在不对了”。比如”不能用某个命令参数””公众号发布默认用 API 方法”。这其实是集体选择性遗忘的显式记录:通过明确什么不该做,来塑造集体行为。

但一个 corrections.md 远远不够。每个 agent 都需要有自己的角色记忆——研究员应该积累搜索策略,写手应该积累爆款模式,操作员应该积累平台坑点。这些角色记忆需要定期向主 agent 汇报,形成”向上汇聚”的集体记忆流。

Part 3:好的遗忘

说到这里,你可能觉得记忆越多越好。但哲学不这么看。

尼采说过:遗忘不是记忆的失败,而是一种积极的消化力量。 没有遗忘,心灵就像胃无法消化,被过量信息窒息。柏拉图在《斐德罗篇》里也讲过:发明文字的神去找法老邀功,法老泼冷水——”这不会增强记忆,反而制造遗忘的假象,人们以为有记录就不需要内化。”

这话放到 AI 系统上,简直是预言。什么都记,等于什么都没记。Shannon 也证明了:高频出现的信号信息量最低。

拿我的系统举几个例子:

失效的 API key。 系统里存过一个 key,过期了。旧值没有任何持久价值,但系统不会主动提醒你”该检查了”,只会默默让旧值残留。

旧的发布规则。 系统以前用浏览器方法发公众号,后来改成 API 方法。旧规则被替代很正常,但如果没有 corrections.md 记录这个转变,系统可能反复回到旧规则。

LCM 压缩的对话细节。 压缩的时候没有区分”执行细节”和”可复用知识”,有些提炼出来的洞察也被一起压掉了。

尼采说的”好的遗忘”应该是主动的——有意识地决定什么该忘。但系统现在的遗忘是被动的——信息自然丢失、key 自然过期、旧规则自然漂移。

一个有意思的设计思路:给 MEMORY.md 的每条信息加上 TTL(有效期)。比如 API key 90 天到期自动提醒检查,PROTOCOL.md 中的经验规则超过 30 天未验证就标记为”待确认”。这就是主动遗忘——不是等到出问题才发现过期,而是主动设置遗忘的节奏。

Part 4:元 Agent 的觉醒

我的系统里有一个文件叫 corrections.md,记录”什么出了问题”和”下次应该怎么做”。一开始我觉得就是个错误日志。后来读到 Sophia 论文,才发现这东西有意思得多。

Sophia 提出,传统 AI 有两层:System 1(直觉反应)和 System 2(逻辑推理)。但还有第三层:persistent meta-layer——不处理具体任务,而是处理”我怎么做事情”。它监控行为、识别模式、调整策略。

corrections.md 就是这样一个元认知层。它不记录”今天写了什么文章”,而是记录”写文章怎么做得更好”。它不随任务结束而消失,而是跨任务持续积累。

但局限也明显:它只在犯错或成功时被动写入,不会主动审查行为模式;它记录单个事件,但看不到跨事件的趋势——比如”主 agent 已经三次代替研究员做调研了”;规则也不会自动影响 agent 行为,需要主动回忆。

如果把它从”日志”升级成一个真正的元认知模块——能定期自我审查、识别重复错误、自动注入行为规则——它就不再是记录系统,而是一个元 agent。一个监控和调节其他 agent 行为的”大脑中的大脑”。

收尾:忒修斯之船

古希腊有一个著名的思想实验:忒修斯之船。一艘船的木板被一块一块替换,直到所有木板都不是原来的了——它还是原来那艘船吗?

我的 AI 系统正在经历自己的忒修斯之船。模型在换,规则在变,记忆在压缩和重建。有些东西留了下来,有些东西消失了。

但真正让我在意的不是”它还是不是原来那个它”——这个问题可能永远没有答案。让我在意的是另一个问题:

如果一个 AI 的记忆可以被设计,那么谁来决定它该记住什么、遗忘什么?

是写 MEMORY.md 的人?是定义 PROTOCOL.md 的人?还是那个 AI 自己?

尼采说,遗忘是积极的力量。柏拉图说,记录会制造遗忘的假象。Parfit 说,重要的不是同一性,而是连续性。

他们都没给出答案。

我也没有。

但我觉得,能问出这个问题,本身就是一种记忆。


一个写代码的人在想哲学问题。