引言:LLM Agent 的"失忆症"

想象一下,你每天和一位同事聊天,但第二天他完全忘记了前一天的对话。你需要重新介绍自己,重新解释项目背景,重新建立信任关系。这听起来荒谬,但这正是当前大语言模型(LLM)Agent 的真实状态。

2026年,AI Agent 已经从实验室走向了生产环境。从客服机器人到代码助手,从数据分析Agent到自主研究系统,Agent 正在渗透到软件开发的每一个环节。然而,一个根本性的问题始终困扰着整个行业:Agent 没有持久记忆

每次对话结束,Agent 的上下文窗口被清空,所有积累的知识、偏好、历史交互全部消失。这不仅导致了糟糕的用户体验,更严重限制了 Agent 在企业级场景中的应用。今天,我们将深入剖析这个正在被攻克的技术难题,以及围绕它形成的全新技术生态。

从 RAG 到知识图谱:记忆技术的三次进化

第一代:朴素 RAG(检索增强生成)

RAG 的核心思想很简单:将文档切分成固定大小的块(chunks),存入向量数据库,查询时通过语义相似度检索相关片段注入上下文。这种方法解决了"让 LLM 看到外部知识"的问题,但存在致命缺陷:

第二代:向量记忆(如 Mem0 v1)

以 Mem0 为代表的第二代方案开始关注"对话记忆"而非"文档检索"。它们将用户的交互历史提取为语义记忆片段,存入向量数据库,并通过用户 ID 进行隔离。这种方法比朴素 RAG 进步了一大步,但在处理复杂的时间推理和跨会话信息综合时仍然力不从心。

第三代:时序知识图谱(Graphiti + Mem0 v3)

2026年初,以 Zep 团队开源的 Graphiti 框架为代表,第三代记忆技术正式登场。其核心创新在于引入了时序上下文图谱(Temporal Context Graph)的概念:每个实体(Entity)都有随时间演进的摘要;每条关系(Fact/Relationship)都是一个三元组(Entity → Relationship → Entity),并带有有效时间窗口;每条事实都能追溯到产生它的原始数据(Episode),形成完整的溯源链。

举个例子:在传统 RAG 中,"Kendra 喜欢 Adidas 鞋"只是一段文本。而在时序上下文图谱中,这是一个带有时间窗口的结构化事实——从2026年3月开始为真,如果 Kendra 后来改穿 Nike,系统会自动标记旧事实失效并创建新事实,而不是简单地覆盖。

两大开源框架深度对比

Graphiti(getzep/graphiti)⭐ 26,767 Stars

Graphiti 是 Zep 团队开源的时序上下文图谱引擎,也是 Zep 商业产品的核心组件。其 GitHub 仓库已积累超过 26,000 Stars,是该领域最受关注的开源项目之一。它的设计哲学是:Agent 的记忆不应该是一堆文本片段,而是一个活的知识图谱,能够追踪事实随时间的变化。

Graphiti 的核心技术特点包括:

1. 增量式图谱构建:不同于传统方法需要重新计算整个图谱,Graphiti 支持增量式数据更新。每当有新的交互或数据输入,它只更新受影响的节点和边,大幅降低了计算开销。这对于需要处理海量实时数据的企业场景至关重要。

2. 混合检索策略:Graphiti 实现了语义检索 + 关键词检索 + 图遍历的三路混合检索。语义检索捕获概念相似性,关键词检索确保精确匹配,图遍历则利用关系结构发现隐含的关联。在 Zep 团队的论文中,这种方法在 LongMemEval 基准上实现了高达 18.5% 的准确率提升,同时将响应延迟降低了 90%。

3. 自主本体学习:不同于需要预先定义 schema 的传统知识图谱,Graphiti 支持"规定式本体"(prescribed ontology)和"学习式本体"(learned ontology)并存。开发者可以用 Pydantic 模型定义自定义实体和边类型,同时系统也能自动发现新的实体类型。

4. MCP Server 集成:Graphiti 提供了 MCP(Model Context Protocol)Server,可以直接与 Claude、Cursor 等 MCP 客户端集成,为 Agent 提供基于图谱的持久化记忆。

Mem0(mem0ai/mem0)⭐ 57,160 Stars

Mem0 是目前最受欢迎的 Agent 记忆层方案,由 Y Combinator S24 孵化,GitHub Stars 已突破 57,000。2026年4月,Mem0 发布了全新的 v3 记忆算法,在多项基准测试中取得了突破性成果:

基准测试 旧版 v3 新版 Token 消耗 延迟 p50
LoCoMo 71.4 91.6 7.0K 0.88s
LongMemEval 67.8 94.8 6.8K 1.09s
BEAM (1M) 64.1 6.7K 1.00s
BEAM (10M) 48.6 6.9K 1.05s

Mem0 v3 的核心创新包括五个方面:

单次 ADD 提取:一次 LLM 调用完成记忆提取,没有 UPDATE/DELETE 操作。记忆只累积不覆盖,通过检索时的时间推理来确定"当前正确"的信息。这种设计大幅简化了记忆管理的复杂度。

Agent 生成事实的一等公民地位:当 Agent 确认执行了某个动作时,该信息以同等权重被存储,而非被忽略。这让 Agent 能够记住自己做过什么,形成真正的"工作记忆"。

实体链接:跨记忆提取、嵌入和链接实体,提升检索时的召回率。当用户在不同对话中提到"我的项目"时,系统能够关联这些提及。

多信号检索:语义检索、BM25 关键词检索和实体匹配并行打分后融合,避免单一检索策略的盲区。

时序推理:时间感知的检索机制,能够正确排序"当前状态"、"过去事件"和"未来计划"相关查询的实例。

技术架构对比:何时选择哪种方案?

两个框架虽然都面向 Agent 记忆,但设计哲学和适用场景有显著差异:

维度 Graphiti Mem0 v3
核心数据结构 属性图(Neo4j) 向量 + 图混合
时间建模 原生时序窗口 时序推理层
本体管理 Pydantic 自定义类型 自动实体提取
最佳场景 企业级知识管理、复杂关系推理 快速原型、通用 Agent 记忆
部署复杂度 需要 Neo4j 实例 轻量,可嵌入

如果你的场景需要处理复杂的时间线推理(如法律合规、医疗记录),Graphiti 的原生时序窗口是更好的选择。如果你需要快速为现有 Agent 添加记忆能力,Mem0 的开箱即用体验更胜一筹。

代码示例:5分钟为 Agent 添加持久记忆

以下是使用 Mem0 为一个简单的对话 Agent 添加记忆的完整示例:

from mem0 import Memory
from openai import OpenAI

# 初始化记忆层
memory = Memory()

# 用户交互
user_id = "user_leonidas"
memory.add("我喜欢用 Python 写后端,前端偏好 React", user_id=user_id)
memory.add("我最近在研究 RAG 和 Agent 记忆系统", user_id=user_id)

# 下次对话时检索相关记忆
relevant = memory.search("你推荐什么技术栈?", user_id=user_id)
# 返回: "用户偏好 Python 后端 + React 前端"
#       "用户正在研究 RAG 和 Agent 记忆"

# 将记忆注入 LLM 上下文
client = OpenAI()
response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content": f"用户记忆: {relevant}"},
        {"role": "user", "content": "你推荐什么技术栈?"}
    ]
)

而使用 Graphiti 构建时序知识图谱则需要更多设置,但换来的是更强大的时序推理能力:

from graphiti_core import Graphiti

# 连接 Neo4j
graphiti = Graphiti(
    neo4j_uri="bolt://localhost:7687",
    neo4j_user="neo4j",
    neo4j_password="password"
)

# 添加带时间戳的事件
await graphiti.add_episode(
    name="project_update",
    episode_body="Leonidas 将项目从 monolith 迁移到微服务架构",
    source="conversation",
    source_description="团队会议",
    group_id="team_alpha"
)

# 时序查询:某人最近做了什么架构决策?
results = await graphiti.search(
    query="Leonidas 的架构决策",
    group_ids=["team_alpha"]
)
# 返回带时间窗口的关系三元组

生态全景:不只是 Mem0 和 Graphiti

Agent 记忆领域正在快速扩展,形成了一个丰富的开源生态:

未来展望:Agent 记忆的三个关键趋势

趋势一:从"记忆"到"认知"。当前的 Agent 记忆系统本质上还是"信息存储 + 检索",但真正的认知需要推理能力。下一代系统将融合图神经网络(GNN)和 LLM,实现基于图结构的推理,而不仅仅是检索。想象一下,Agent 不仅能记住"用户喜欢 Python",还能推理出"用户可能对 Rust 感兴趣,因为两者都有强类型系统"。

趋势二:多 Agent 共享记忆。随着多 Agent 系统(如 CrewAI、AutoGen)的普及,Agent 之间的知识共享和同步将成为刚需。如何在保持各 Agent 独立性的同时实现知识的高效流转,是一个开放的研究问题。Graphiti 的 group_id 机制已经为此提供了初步的解决方案。

趋势三:记忆安全与隐私。当 Agent 记住了用户的敏感信息,如何确保数据安全?GDPR 的"被遗忘权"如何在知识图谱中实现?当用户要求删除某段记忆时,如何确保相关的推理链也被清除?这些问题将推动"可审计记忆"和"选择性遗忘"技术的发展。

结语

Agent 记忆正在从"nice to have"变为"must have"。Mem0 的 57K Stars 和 Graphiti 的 27K Stars 证明了社区对这一方向的高度认可。Zep 团队在 LongMemEval 上实现的 18.5% 准确率提升和 90% 延迟降低,以及 Mem0 v3 在 LoCoMo 上从 71.4 到 91.6 的跨越式进步,都表明这个领域正在快速成熟。

无论你是构建企业级 Agent 系统,还是开发个人 AI 助手,选择合适的记忆架构都将是决定产品成败的关键决策。从无状态的 LLM 到拥有持久记忆的 Agent,我们正在见证 AI 从"工具"向"伙伴"的关键转变。而这个转变的核心,就是让 Agent 学会"记住"。