本文提出了Mem0及其图增强变体Mem0*g*,这是一种可扩展的记忆架构,通过动态提取、整合和检索对话中的关键信息来赋予AI Agent长期记忆能力,并在LOCOMO基准测试中显著优于现有方法,同时大幅降低了计算开销。
Long-Term Memory, Conversational Coherence, Graph Data, Retrieval-Augmented Generation, Efficiency, Multi-Agent
Prateek Chhikara, Dev Khant, Saket Aryan, Taranjeet Singh, Deshraj Yadav
Mem0
Generated by gemini-2.5-flash-preview-04-17
Background Problem
大型语言模型(LLMs)在生成连贯响应方面表现出色,但其固定的上下文窗口限制了它们在长时间、多轮对话中保持一致性和连贯性的能力。一旦信息超出上下文窗口,LLM就会“遗忘”先前的细节、用户偏好或对话历史,导致重复、矛盾或不相关的回复。这在需要长期互动的应用场景(如个性化助手、医疗、教育)中严重损害用户体验和信任。虽然增加上下文窗口长度可以缓解问题,但无法从根本上解决,因为真实世界的对话最终会超出任何固定长度,且长上下文中的信息检索和利用效率会下降。因此,AI Agent需要一种超越静态上下文扩展的记忆系统,能够选择性地存储、整合和检索重要信息,以实现跨会话的长期连贯性。
Method
- 核心思想: 通过动态提取、整合和检索对话中的关键信息,构建可扩展的长期记忆系统,克服LLM固定上下文窗口的限制。
- Mem0 (基础架构):
- 增量处理: 在对话进行中实时处理新的消息对 (用户消息 + 助手回复)。
- 提取阶段: 使用LLM () 结合对话摘要和近期消息作为上下文,从新的消息对中提取一组重要的候选记忆 ()。
- 更新阶段: 对每个候选记忆,检索数据库中语义相似的现有记忆。使用LLM通过“工具调用”机制判断并执行四种操作之一:ADD(添加新记忆)、UPDATE(更新现有记忆)、DELETE(删除矛盾记忆)或 NOOP(无需操作)。
- 数据库: 使用向量数据库存储记忆的密集嵌入,用于相似性搜索。
- Mem0g (图增强架构):**
- 图表示: 将记忆存储为有向带标签图 ,节点 表示实体,边 表示实体间的关系,标签 表示节点类型。
- 提取阶段: 使用LLM进行两阶段提取:首先是实体提取器识别实体及其类型,然后是关系生成器识别实体间的关系,形成关系三元组 (源实体, 关系, 目标实体)。
- 更新阶段: 集成新的关系三元组时,计算实体嵌入,搜索相似节点。根据节点存在情况创建新节点或使用现有节点,并建立关系。引入冲突检测和LLM驱动的更新解析器来处理矛盾信息,将过时关系标记为无效。
- 检索: 采用双重方法:实体中心法(识别查询实体,探索相关子图)和语义三元组法(编码整个查询,匹配关系三元组的文本编码)。
- 数据库: 使用 Neo4j 作为底层图数据库。
Experiment
- 数据集: 使用 LOCOMO 基准测试数据集,包含 10 个扩展对话(平均约 600 轮对话,26000 tokens),跨多个会话,以及平均 200 个问题,分为单跳、多跳、时间性和开放域四类。
- 评估指标:
- 性能: F1 Score (F1)、BLEU-1 (B1) 和 LLM-as-a-Judge (J)。J 指标使用一个更强大的LLM(GPT-4o-mini)评估回复的准确性、相关性、完整性和上下文适当性,更贴近人类判断。
- 部署: Token Consumption(检索作为上下文的Token数量)和 Latency(搜索延迟和总延迟)。
- 基线: 包括 LoCoMo、ReadAgent、MemoryBank、MemGPT、A-Mem 等现有记忆增强系统;不同配置的 RAG (varying chunk sizes and k);Full-Context(将整个对话历史放入上下文);LangMem (开源记忆方案);OpenAI Memory (专有模型);Zep (记忆管理平台)。
- 实验结果:
- 性能: Mem0 和 Mem0*g* 在大多数问题类型上显著优于所有基线。Mem0 在单跳和多跳问题上表现最佳,Mem0*g* 在时间性和开放域问题上表现最佳(开放域略低于 Zep)。LLM-as-a-Judge 指标显示,Mem0 相较于 OpenAI 提升了 26%,Mem0*g* 总体得分比 Mem0 高约 2%。
- 计算开销: 相较于 Full-Context 方法,Mem0 的 p95 总延迟降低了 91% (1.44s vs 17.117s),Token 消耗节省了 90% 以上。Mem0*g* 延迟略高于 Mem0 但仍远低于 Full-Context 和大多数基线。Token 消耗方面,Mem0 (7k tokens/对话) 和 Mem0*g* (14k tokens/对话) 远低于 Zep (600k tokens/对话),甚至低于原始对话长度 (26k tokens/对话)。
- 合理性: 实验设置全面,涵盖了多种基线和评估维度(性能、效率)。结果清晰地展示了 Mem0/Mem0*g* 在准确性和实用性之间的权衡优势。特别是 LLM-as-a-Judge 指标的使用,弥补了传统词汇相似度指标的不足,提供了更可靠的评估。
Further Thoughts
本文提出的基于动态提取、整合和检索的记忆架构,以及在此基础上引入图结构来捕捉复杂关系的思想,为构建具备长期记忆能力的AI Agent提供了新的思路。特别值得注意的是,Mem0在保持较高性能的同时,显著降低了计算开销(Token消耗和延迟),这对于实际生产环境中的部署至关重要。未来的研究可以进一步探索如何更高效地构建和维护大规模的图记忆,以及如何将这种记忆机制扩展到多模态和更复杂的推理任务中。此外,如何让记忆系统具备更强的自主学习和遗忘能力,使其更接近人类记忆的动态特性,也是一个重要的研究方向。