将让Agent越来越智能、高效和人性化。随着人工智能技术的不断发展,Agent(智能代理)将具备以下特点:1. **智能水平提升**:Agent将具备更强的学习能力,能够通过大数据分析和机器学习不断优化自身算法,提高决策准确性和预测能力。2. **效率提高
摘要:引言 从本质上来说,AI Agent 仍然是一种工具。但与软件工程领域中的其他工具不同,我们对 AI Agent 怀有更高、也更复杂的期待。这种期待源于 AI 能力的加持——我们希望它不仅仅提升效率,而是真正解放生产力。 在这一愿景下,&a
引言
从本质上来说,AI Agent 仍然是一种工具。但与软件工程领域中的其他工具不同,我们对 AI Agent 怀有更高、也更复杂的期待。这种期待源于 AI 能力的加持——我们希望它不仅仅提升效率,而是真正解放生产力。
在这一愿景下,"长期记忆"成为关键能力之一。它的意义在于,让 Agent 不再只是被动执行指令,而是能够在持续交互中逐渐变得更智能、更贴近使用者,甚至越来越"懂我"。
在《AI Agent 的记忆系统:从必要性到工程实践》一文中,我们已经系统阐述了 Agent 记忆的分类及其作用。本文则进一步聚焦其中的长期记忆能力,尝试从工程实践的角度展开具体落地方案。
在正式展开之前,先简单回顾一下长期记忆与短期记忆的区别。
短期记忆:存储会话中产生的各类消息,包括用户输入、模型回复、工具调用及其结果等。这些消息直接参与模型推理,实时更新。当消息累积导致上下文窗口超出限制时,需要通过压缩、卸载、摘要等上下文工程策略进行处理。
长期记忆:Agent 在多次交互与会话之间持久化存储信息的系统。它相当于智能体的"个人档案"或"知识库",用于保留需要跨会话记忆的关键信息,如用户偏好、重要事实、从历史会话中积累的经验与知识等。其核心目标是实现个性化和持续学习。
Agent 长期记忆的工程实现,核心可以归结为两个基本问题:
如何维护长期记忆 —— 包括长期记忆的新增、更新与删除;
如何使用长期记忆 —— 即在实际推理与决策过程中,如何高效、准确地检索与注入相关记忆。
围绕这两个问题,我们需要首先明确长期记忆的存储载体。在当前主流的工程实践中,长期记忆通常依赖两类基础设施:VectorStore(向量数据库) 与 GraphStore(图数据库)。接下来,我们将从这两种载体的特性与适用场景出发,逐步展开长期记忆的工程化实现方式。
以下内容我们将结合mem0进行说明,github地址:https://github.com/mem0ai/mem0
一、长期记忆的载体
1.1 VectorStore:语义检索的基石
向量数据库是当前长期记忆最主流的存储载体。其核心思路是:将文本信息通过 Embedding 模型转换为高维向量,存储在专门的向量索引结构中。检索时,将查询语句同样转换为向量,通过余弦相似度或内积等度量方法,找出语义最相近的记忆条目。
这种方式的优势非常直接——语义相似即可命中。即便用户的表述与存储时的措辞完全不同,只要语义接近,向量检索就能找到对应的记忆。例如,Agent 存储了"用户不喜欢辣食",当下次对话中用户问到餐厅推荐时,即便没有提及"辣",Agent 也能从向量空间中召回这条偏好。
常见的 VectorStore 选型包括:
方案
特点
适用场景
Chroma
轻量级,易集成,支持本地持久化
本地开发、小规模部署
Qdrant
高性能,支持丰富的过滤条件
生产环境,记忆量较大
Pinecone
全托管,开箱即用
快速原型、云端部署
pgvector
PostgreSQL 扩展,与关系数据融合
已有 PG 栈的团队
Faiss
极致性能,适合批量检索
离线分析、大规模召回
向量数据库的局限同样明显:它擅长处理孤立事实,但对于实体间关系的表达能力较弱。"张三是李四的上司"和"李四喜欢咖啡"对向量数据库而言没有本质差异,它无法自然地表达和利用实体之间的关联结构。这正是图数据库要解决的问题。
1.2 GraphStore:关系知识的天然载体
图数据库将知识以节点(Node)和边(Edge) 的形式组织,节点代表实体(人、地点、事件等),边代表实体间的关系。这种结构天然适合表达复杂的关联信息。
以 mem0 的 Graph Memory 实现为例,当 Agent 处理"Alice 在 GraphConf 2025 上认识了 Bob"这条信息时:
向量数据库:将这句话嵌入为一个向量,语义检索时可以找到它;
图数据库:提取出 Alice、Bob、GraphConf 2025 三个节点,以及 MET_AT 关系边,形成结构化的知识图谱。
后续当用户问"Alice 认识哪些人?"时,图数据库可以直接沿着边遍历,精确返回所有相关节点,而不依赖语义相似度的模糊召回。
