
Dreaming: 你以为在给 Agent 加记忆,其实是在教它学会忘记
你用 Sublime Text 用了三年,它记得你的配置、你的快捷键、你的代码折叠习惯。你用 Chrome 浏览器,书签、历史记录、密码全都在——打开一个新标签页,它甚至知道你接下来最可能去哪里。 我们对工具有一个朴素的期待:越用越好用。 不是因为工具本身变聪明了,而是因为它记住了你。 AI Agent 应该更强才对。它能理解语言,能执行复杂任务,比任何一个传统软件都聪明。可是你有没有注意到——你用了三个月的 AI Agent,和第一天用它,感觉差不多。它不记得你上周跟它说过的话,不记得你修正过它三次的同一个错误,不记得你的偏好和习惯。 每一次对话,都像是重新认识。 更糟的是,时间长了,情况有时反而会更差。Agent 在长期运行过程中会积累记忆——但没有人整理这些记忆。重复的条目、矛盾的信息、早已过时的经验,全部堆在一起。Agent 读到它们,反而被干扰。越用越乱。 这不是模型的问题,也不是 prompt 的问题。这是记忆架构的问题。 一、Agent 的记忆是怎么工作的 要理解这个问题,先要搞清楚 Agent 的记忆是怎么运转的。 现在主流的 Agent 记忆方案,大概是这样的:每次 Session 结束,Agent 把这次学到的东西写进一个 Memory Store——可以理解成一个外置的笔记本。下次启动,Agent 读一读这个笔记本,带着这些上下文继续工作。 这个设计逻辑上没问题。但有一个致命的缺陷:只有写入,没有遗忘。 注意,我说的不是"没有整理"。整理是技术问题,加一个清理脚本就能解决。真正的问题更根本:系统从来没有被要求去判断什么值得留下。 但你可能会问:为什么不加这个判断?删掉旧的、留下新的,不就解决了吗? 问题在于:遗忘,比你想象的要难得多。 机器学习领域有一个经典难题,叫做"灾难性遗忘"(Catastrophic Forgetting)。当你试图让一个神经网络遗忘某些东西、同时保留其他东西时,结果往往是灾难性的——新内容学进去了,旧的能力大幅崩溃。这不是工程偷懒,是系统架构的深层矛盾:神经网络的知识不是一条一条独立存放的,它以分布式的方式散布在整个权重矩阵里。你拉动一处,整个网络都在颤抖。 人类大脑之所以能精准遗忘,是因为神经可塑性与记忆固化之间有一套极其复杂的协调机制——几亿年进化磨出来的,我们到现在还没完全搞清楚它是怎么工作的。 所以,Agent 不是没意识到应该"遗忘",是这件事真的很难做到。Memory Store 的只写入设计,某种程度上是现阶段一种无奈的正确选择——既然做不到精准遗忘,不如先老实只写入,至少不会弄出灾难性的结果。 但代价是:随着使用时间拉长,Memory Store 里的条目越来越多,信噪比越来越低,Agent 每次启动读到的信息质量越来越差。不是没有记忆,是不会遗忘的系统,注定会被记忆淹没。 二、人类为什么越用越好用:REM 睡眠 人类其实面对过同样的问题。 每一天,我们接收的信息量是海量的。如果大脑把所有感知到的东西都以同等权重存下来,用不了多久就会崩溃。但我们没有崩溃——因为大脑有一套自动的整理机制。 这套机制的核心,发生在睡眠中,尤其是 REM(快速眼动)睡眠阶段。 REM 睡眠在做什么?神经科学的研究告诉我们,这个阶段大脑并不是在休息,而是在忙碌地工作:回放白天的经历,把短期记忆巩固成长期记忆,过滤掉无关的噪音,提炼出有价值的规律和模式。 注意这个关键点:REM 不是在存储更多,而是在把已有的整理得更好。更准确地说,REM 在做一件听起来很反直觉的事——主动丢弃。白天你记住了 100 件事,经过一夜 REM,可能只有 20 件留下来。但这 20 件是真正重要的,而且以一种更结构化、更易检索的形式存在。 关键是这个"丢弃"有多精准。你不记得昨天等位时刷的那个视频了,但你记得那天下午的那个决策带来了什么结果。大脑不是随机丢,它在按照某套你完全无法有意识地感知到的标准进行筛选——大致是:情绪强度、重复频率、与已有认知的关联度。 ...
