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 说,重要的不是同一性,而是连续性。
他们都没给出答案。
我也没有。
但我觉得,能问出这个问题,本身就是一种记忆。
一个写代码的人在想哲学问题。
夜雨聆风