技术分享2026年9月4日

从OpenAI的Dreaming V3来聊聊Agent的记忆

人睡觉时会做梦,Agent"睡觉"时也在整理记忆。这背后藏着同样的逻辑。 一、人的记忆,由两部分决定 判断一个人的记忆好不好,通常看两个维度。 第一,能不能存下来。 别人跟你说过的话、你经历的事、学到的知识,能不能在脑子里留下痕迹。这是记忆的"写入"能力。 第二,能不能想起来。 需要的时候,能不能...

#agent#记忆

人睡觉时会做梦,Agent"睡觉"时也在整理记忆。这背后藏着同样的逻辑。


一、人的记忆,由两部分决定

判断一个人的记忆好不好,通常看两个维度。

第一,能不能存下来。 别人跟你说过的话、你经历的事、学到的知识,能不能在脑子里留下痕迹。这是记忆的"写入"能力。

第二,能不能想起来。 需要的时候,能不能从脑子里把对应的信息调出来。考试的时候明明背过却想不起来,就是提取出了问题。

存储和提取,缺一不可。存了提不出来,等于没存;提得出来但没存过,那是幻觉。

Agent的记忆,面临的其实是完全一样的两个问题。


二、Agent的"断片"和"瞎联想"

如果你用过一些早期的Agent产品,大概率遇到过两种让人抓狂的情况。

第一种是"断片"。

你跟Agent聊了二十轮,前面交代过的重要背景、关键偏好、核心约束,到第二十一轮它全忘了。你不得不重复一遍,它才"哦,对,您之前说过"。这种感觉就像跟一个记忆力极差的人对话,每次都要从头介绍自己。

第二种是"瞎联想"。

你问Agent一个完全无关的新问题,它硬是把之前某次对话里的信息扯进来,给出一个风马牛不相及的回答。就像一个人把梦境和现实混在了一起,把不相关的事情强行关联。

这两种问题的根源,都在记忆机制上。

"断片"是存储出了问题——该记住的没记住,或者记住了但找不到。"瞎联想"是提取出了问题——检索逻辑混乱,把无关信息当成了相关线索。

Agent的记忆系统,比人更脆弱。人脑有860亿个神经元,Agent的记忆依赖的是向量数据库、检索算法和上下文窗口。每一个环节设计不好,都会出现上面这两种症状。


三、人睡觉时,大脑在整理记忆

有趣的是,人类解决记忆问题的方法,Agent也在借鉴。

人每天要花三分之一的时间睡觉。睡觉不只是休息,大脑在睡眠期间非常忙碌,尤其是记忆整理

睡眠分为几个阶段,其中两个对记忆至关重要:

深睡阶段(慢波睡眠):大脑把白天学到的新信息从海马体转移到大脑皮层,完成"长期存储"。这个过程像是把临时文件从内存写入硬盘,确保信息不会丢失。

REM阶段(快速眼动睡眠,也就是做梦):大脑在这个阶段异常活跃,会把不同的记忆片段重新组合、关联、筛选。有些记忆被强化,有些被弱化甚至清除。做梦时那些荒诞离奇的情节,其实就是大脑在尝试建立新的记忆关联,同时清理掉不重要的信息。

换句话说,人睡觉时,大脑在做两件事:归档重要记忆,清理垃圾信息。

这两件事对Agent同样重要。Agent每天处理大量信息,如果不定期整理,记忆库就会变成一个杂乱无章的仓库——该留的没留,该扔的没扔,提取的时候自然出问题。


四、为什么叫"Dreaming"

人类科学发展中,很多技术灵感都来自对人类自身的模仿。

神经网络这个名字,来源于对生物神经元结构的模拟。"记忆"这个词被用到计算机和Agent领域,本身也是借用了人类的概念。

所以当一个团队要给Agent的记忆整理功能起名时,"Dreaming"成了一个很自然的选择。

Agent的"Dreaming",本质上就是模仿人类睡眠时的记忆整理过程。 在Agent"休息"或低负载的时段,系统会对积累的记忆进行归档、关联、去重、清理——就像人脑在深睡和REM阶段做的事情。

OpenAI的Dreaming项目就是这个思路的产物。它不是简单的数据备份或索引重建,而是一套完整的记忆整理机制,让Agent的记忆从"临时堆叠"进化到"结构化存储"。


五、OpenAI的Dreaming V3

最近OpenAI发布了Dreaming V3,这是该项目的最新版本。

相比之前的版本,V3有几个明显的改进:

记忆分层更精细。 Dreaming V3把Agent的记忆明确划分为短期记忆和长期记忆,并且引入了"工作记忆"的概念——类似于人脑当前正在处理的信息缓冲区。不同层级的记忆有不同的保留策略和检索优先级。

关联提取更智能。 V3在记忆整理过程中,不只是简单地把信息存进向量库,而是会主动识别记忆之间的关联关系。比如用户多次提到喜欢某种风格的回复,系统会把这些散落的信号聚合成一个稳定的偏好记忆,而不是每次单独存储。

清理机制更主动。 之前的版本偏重于"存",V3加强了"删"的能力。系统会评估每条记忆的使用频率、时效性、重要性,主动把过期或低价值的记忆降级或清除,避免记忆库膨胀导致的检索噪音。

整理时机更灵活。 Dreaming V3不再依赖固定的"睡眠时间",而是根据Agent的负载情况和记忆积累量,动态触发整理过程。高负载时优先保证响应速度,低负载时启动深度整理。

这些改进的指向很明确:让Agent的记忆更像人脑——不是简单地堆数据,而是有选择地记、有结构地存、有策略地取。


六、Agent记忆的三个核心挑战

Dreaming V3解决了一部分问题,但Agent记忆这个领域,还有几个根本性的挑战值得深入讨论。

1. 记忆分层:不是所有记忆都值得同等对待

大模型的上下文窗口是有限的,Agent的记忆显然也不能无限膨胀。所以记忆必须分层,就像人脑有短期记忆和长期记忆一样。

短期记忆对应的是当前会话或近期交互的信息,要求读取速度快,通常放在内存或高速缓存里。它的容量有限,但响应极快。

长期记忆对应的是跨会话、跨任务的持久信息,比如用户偏好、历史决策、重要事实。它的容量大得多,但读取需要检索过程,速度相对慢。

外部记忆则是更进一步的扩展。人遇到记不清楚的事情,会去查书、搜资料、问别人。Agent也一样——当内部记忆不足以回答问题时,可以调用搜索引擎、查询数据库、读取文档,把外部信息临时加载到上下文中。

不同层级的记忆,对速度、容量、成本的要求完全不同,实现方式自然也不同。短期记忆靠缓存,长期记忆靠向量库或图数据库,外部记忆靠API调用。设计Agent记忆系统时,首先要回答的问题是:什么信息放在哪一层?

2. 该记什么:选择性记忆是门学问

Agent处理的信息量远超人类。如果什么都记,记忆库很快就会被噪音淹没。

但让Agent自己判断"什么值得记",是个难题。

用户随口一提的偏好,和一次正式的产品需求讨论,重要性显然不同。Agent需要有一种机制,能识别信息的显著性——哪些是对后续交互有长期价值的,哪些是临时性的、可以忽略的。

这涉及到几个判断维度:

  • 用户明确性:用户是否明确说"请记住这个"?
  • 重复频率:某个信息是否被多次提及或引用?
  • 决策关联:这个信息是否影响了Agent的某个重要决策?
  • 时效性:这个信息是长期有效的,还是只在特定时间段有用?

Dreaming V3在这方面做了尝试,但离"完美筛选"还有距离。选择性记忆,可能是Agent记忆系统中最难的一环。

3. 记忆关联:向量数据库不够

现在提到Agent长期记忆,很多人第一反应是"向量数据库"。把记忆片段 embedding 成向量,存进去,用的时候做相似度检索。这个方案能跑通基础场景,但有个明显的天花板:

向量数据库擅长"相似",不擅长"关联"。

人的记忆不是孤立存在的。你记得某家餐厅,同时会关联到"上次和谁去的""那天下雨了""点的菜偏咸"——这些记忆之间是复杂的网状关系,不是简单的"像不像"。

Agent的记忆也需要这种关联能力。用户提到"那个项目",Agent需要知道指的是三个月前讨论过的A项目,而不是上周提到的B项目,尽管两个项目的名字可能并不相似。这种关联依赖的是关系图谱,而不是向量相似度。

所以Agent的长期记忆存储,很可能需要向量数据库+图数据库的混合架构。向量负责"快速召回相关内容",图负责"梳理内容之间的关系"。两者结合,才能支撑真正智能的记忆提取。


七、结语:记忆是Agent的"灵魂"

记忆力好坏是我们判断一个聪明与否的重要标准之一,一个Agent聪明不聪明,很大程度上也取决于它的记忆系统好不好。

没有记忆的Agent,每次交互都是第一次见,永远"断片"。记忆混乱的Agent,会"瞎联想",给出离谱的回答。只有记忆清晰、结构合理、提取准确的Agent,才能真正建立长期用户关系,完成复杂的长程任务。

OpenAI的Dreaming V3,是在这个方向上迈出的重要一步。它借鉴了人类睡眠整理记忆的机制,试图让Agent的记忆从"粗放存储"走向"精细管理"。

但Agent记忆这个领域,还远未到终局。分层策略怎么设计、选择性记忆的算法怎么优化、向量+图的混合架构怎么落地,都是开放的问题。

也许未来的某一天,我们会给Agent设计专门的"睡眠时间"——不是因为它累了,而是因为它的记忆需要整理。就像人一样。