
AI 智能体长期记忆系统架构设计 原创
大语言模型(LLM)在理解和生成连贯对话方面取得了显著成就。但是,它们存在一个内在的“记忆缺陷”,即它们拥有的上下文窗口是有限的,这严重限制了它们在多轮次、多会话的长期交互中维持一致性的能力。当对话内容超出了上下文长度时,LLM 可能会像一个“健忘”的伙伴一样,忘记用户的喜好、重复提问,甚至与之前确认的事实相冲突。
设想这样一个场景:你告诉一个 AI 助手你是一个素食者,不食用乳制品。然而,几天后当你向它询问晚餐建议时,它却推荐了烤肉。这种体验无疑会减少用户对 AI 的信任和依赖。
缺少记忆能力的 AI(图左)会忘记用户的关键信息,而拥有有效记忆能力的 AI (图右)则能够在不同会话间保持上下文连贯性,提供精确、定制化的服务。
为了解决这一根本性问题,业界开发和开源了 Mem0 长期记忆系统(Github 地址:https://github.com/mem0ai/mem0),这是一个以记忆为核心的可扩展架构。它通过动态地提取、整合和检索对话中的关键信息,赋予了 AI 智能体可靠的长期记忆能力。
本文将详细探讨 Mem0(基于向量数据库)和 Mem0-g(基于知识图谱)的架构设计、技术原理、性能表现及其实际应用价值。
下文详细剖析之。
1、为什么扩大上下文窗口无法根本解决记忆问题?
最近,各个大模型开发商不断发布具有更大上下文窗口的模型,上下文长度从128K 扩展到甚至达到千万级别的 Token。但是,这些做法仅仅是“延迟”了问题的发生,并没有真正解决问题。在企业业务场景实际使用中,增加上下文窗口的大小会面临两大障碍:
- 信息丢失和噪声干扰:在跨越数周或数月的交流中,对话历史最终会超出任何大小的上下文窗口。更关键的是,对话内容通常天马行空。比如:用户可能在讨论饮食偏好后,又进行了数小时关于编程的对话。当话题再次回到食物时,重要的“素食”信息可能已经被大量无关的编程讨论所淹没,这即是所谓的“大海捞针”难题。
- 性能和成本的挑战:处理极长的上下文不仅显著增加了打模型的推理延迟,还带来了高昂的 Token 成本。此外,研究显示,LLM 的注意力机制在处理极长序列时会出现性能退化,大模型难以有效利用那些距离当前上下文很远的信息。
因此,我们需要一种更智能的记忆机制,它应该能够模拟人类的认知过程:有选择性地保存关键信息,整合相关概念,并在需要时精确地检索信息。
2、Mem0 长期记忆系统架构设计
Mem0 架构设计采用“增量处理”范式,在持续对话中无缝运行。其核心架构设计由两个主要阶段构成:提取(Extraction) 和 更新(Update)。
第一、提取阶段:动态捕捉关键信息
当 Mem0 系统接收到新的对话内容(比如:用户的提问和 AI 的回答)时,提取阶段开始工作。为了准确理解当前对话的上下文,Mem0 系统结合以下两种信息:
- 全局上下文:从数据库中检索整个对话的摘要,提供对话的宏观主题。
- 局部上下文:最近的几条消息,提供细粒度的即时背景。
这两种上下文与新消息共同构成一个完整的提示词(Prompt),输入到一个大语言模型(比如:DeepSeek R1)中,以执行提取功能。该大模型从最新的交流中提炼出关键事实(比如:“用户是素食主义者”),形成一组候选记忆。
第二、更新阶段:智能管理记忆库
提取出的候选记忆并不会直接存入数据库,而是进入更新阶段,以确保记忆库的一致性和无冗余。这个过程通过一个智能的“工具调用(Tool Call)”机制实现,具体流程如下:
- 对于每一个候选记忆,系统会在向量数据库中检索出语义最相似的已有记忆。
- 将候选记忆与这些相似记忆一同提交给大语言模型。
- 大模型会自主决策执行以下四种操作之一:
- ADD:如果候选记忆是全新的信息,则添加。
- UPDATE:如果候选记忆是对现有信息的补充或更新,则进行修改。
- DELETE:如果候选记忆与现有信息相矛盾,则删除旧信息。
- NOOP:如果候选记忆是重复或无关的,则不执行任何操作。
通过这种方式,Mem0 能够动态维护一个精炼、准确且与时俱进的长期记忆库。
3、Mem0-g 长期记忆系统架构设计
为了更好地理解信息之间的复杂关系,推出了 Mem0 的升级版:Mem0-g(g代表 Graph,也就是图)。它把记忆信息保存成知识图谱的样子,图谱里的点代表不同的实体(比如:人、地方),点与点之间的连线代表它们之间的关系(比如“住在”、“喜欢”)。
和 Mem0 向量数据库相比,知识图谱能够记录更复杂的关系和高级概念。当它和主要存储事实片段的 Mem0 向量数据库一起使用时,两者可以互相补充,让整个记忆系统更加全面。
Mem0-g 的架构设计也分为两个阶段:提取和更新:
- 图提取:通过一个两阶段的大语言模型(LLM)流程,首先从文本中找出关键的实体和它们的类型(比如:“Alice - 人”),然后创建连接这些实体的关系三元组(比如: (Alice, 住在, 旧金山))。
- 图更新与冲突解决:在加入新信息时,Mem0-g 会检查新关系是否和图里已有的关系有冲突。如果有冲突,一个基于 LLM 的“更新解析器”会决定是否将旧关系标记为“过时”,而不是直接删除。这样的设计保留了信息的时间顺序,为进行更复杂的时间推理提供了可能。
通过结合结构化的图表示和语义的灵活性,Mem0-g 能够支持更高级的推理,特别是在需要跨越多个相关事实进行推断的情况下。
4、Mem0 与主流方案对比
通过在长对话评测基准 LOCOMO 上,对 Mem0 和 Mem0-g 进行了全面的比较测试,对比的对象包括六种不同类型的基线方法,比如:现有的记忆增强系统、不同设置的 RAG、处理整个对话历史的全上下文方法、开源的记忆解决方案以及商业平台。
核心发现一:Mem0 实现了效率与效果的最佳平衡
测试结果(如下表和图展示的)清楚地显示,与那些简单直接的 RAG 和全上下文方法相比,Mem0 的性能优势非常明显。
第一、Mem0 vs. RAG
- 质量评分(J score):Mem0 的质量评分比最佳配置的 RAG 高出近10%。
- 效率:这证明了提取精炼事实远比检索包含大量噪声的原始文本块更有效。
第二、Mem0 vs. 全上下文方法
- 质量评分:虽然全上下文方法凭借完整信息获得了最高的质量评分。
- 延迟:但其延迟是 Mem0 的近12倍。
- Token 成本:Token 成本也极高,完全不适用于生产环境。
- 性能与成本:Mem0 以极小的性能牺牲换来了91%的延迟降低和超过90%的 Token 成本节省,展现了卓越的实用性。
第三、图表分析
上图展示了不同方案的端到端延迟(线图,越低越好)和响应质量(柱状图,越高越好):
- Mem0 和 Mem0-g:在保持高质量的同时,延迟远低于全上下文方法。
核心发现二:Mem0 与 Mem0-g 各有所长
第一、Mem0:简单高效的自然语言记忆
- 表现最佳:在处理单跳问题(只需一个事实)和多跳问题(需要整合多个分散的事实)时表现出色。
- 快速响应:搜索延迟极低,非常适合需要快速反应的互动应用。
第二、Mem0-g:图结构记忆的威力
- 时间推理和开放域问题:在处理需要理解事件顺序和关系的问题时表现出色。
- 提升判断力:结构化的关系表示显著提高了大模型在这些复杂任务上的表现力。
第三、图表分析:搜索/检索延迟对比
上图展示了各方案的搜索/检索延迟。Mem0 的搜索延迟(0.148秒)是所有方法中最低的,显示了其高效的检索能力。
核心发现三:Mem0 在系统开销上的优势
第一、系统开销对比
- Mem0 vs. 商业记忆平台 Zep:
Token 消耗:Zep 构建记忆图谱每段对话平均消耗超过 600k Token,而 Mem0 仅需约 7k Token。
异步处理:Zep 的记忆构建过程涉及大量异步处理,新添加的记忆需要数小时才能被有效检索,这对实时应用来说是不可接受的。
快速构建:相比之下,Mem0 的记忆构建在几分钟内即可完成。
5、总结:迈向拥有持久记忆的 AI 智能体未来
Mem0 和 Mem0-g 通过动态提取信息、智能更新和高效检索,为解决大语言模型(LLM)的长期记忆问题提供了一个强大且实用的解决方案。它们成功地在推理精度、响应速度和部署成本之间取得了理想的平衡。
Mem0:快速、直接的事实检索
Mem0 以其极致的效率和简洁性,为需要快速、直接事实检索的应用场景提供了理想选择。
Mem0-g:深度关系理解和复杂时序推理
Mem0-g 则通过结构化的图记忆,为需要深度关系理解和复杂时序推理的任务解锁了新的可能性。
这项工作为构建更可靠、更高效、更具“人性”的 AI 智能体铺平了道路,使它们能够像人类一样,在长时间的互动中建立连贯、有深度的关系。未来将继续优化图操作的效率,并探索更复杂的 AI 智能体混合记忆架构,推动 AI 智能体向着能够进行真正长期合作的智能伙伴不断迈进!
本文转载自玄姐聊AGI 作者:玄姐
