Zep:时间知识图谱驱动的智能体记忆架构
🎯 核心总结
Zep 提出了一种基于时间感知知识图谱的智能体记忆架构,通过 Graphiti 引擎动态维护对话和业务数据中的实体、事实及其时间线。在 LongMemEval 基准上实现了 18.5% 的准确率提升,同时将响应延迟降低了 90%,上下文 token 消耗从 115k 压缩到 1.6k。
📖 问题背景:为什么 RAG 还不够?
现有架构存在根本缺陷。基于 Transformer 的大语言模型有两个天然短板:
- 上下文窗口有限:即便是 GPT-4 Turbo 的 128k 上下文,也装不下几个月的对话历史。
- 知识截止日期:预训练数据有时效性,模型不知道你昨天发生了什么。
RAG(检索增强生成)是目前最流行的补救方案,但对动态演化的对话记忆效果不佳。
RAG 在动态场景下的三大痛点
| 问题类型 | 具体表现 | 根本原因 |
|---|---|---|
| 知识过时 | 用户说"我上周换了新工作",但检索出的仍是旧公司信息 | 传统 RAG 无法追踪事实的时间有效性 |
| 实体混淆 | '小王'、'王经理'、"老王"被当成三个不同的人 | 缺乏实体解析(Entity Resolution)机制 |
| 关系丢失 | 知道张三和李四都是用户的朋友,但不知道他们俩也是朋友 | 向量检索只能捕捉语义相似性,无法建模关系 |
| 时序混乱 | 分不清"上周的会议"和"去年的会议" | 文档块丢失了原始的时间上下文 |
MemGPT:记忆管理的先行者
MemGPT 是第一个系统性解决 LLM 记忆问题的工作。它的核心洞察非常精妙:把 LLM 类比成操作系统,用虚拟内存的思路管理上下文窗口。
- 核心记忆(Main Context):当前对话窗口,相当于 CPU 缓存。
- 归档记忆(Archival Memory):历史对话和外部知识,相当于硬盘。
- 召回记忆(Recall Memory):最近的对话历史,相当于内存。
当上下文窗口不够用时,LLM 可以通过 function call 主动"调页"——把不重要的信息写入归档,把需要的信息从归档读取出来。这个设计让 MemGPT 在 Deep Memory Retrieval 基准上达到了 93.4% 的准确率。
但 MemGPT 有个根本局限:它本质上还是在做文本检索,只是检索策略更智能了。它无法建模实体之间的关系,也无法追踪事实随时间的演变。
Zep 的核心洞察
Zep 的作者们意识到:与其把记忆当成"文档检索"问题,不如把它当成"知识图谱构建"问题。
对话不只是一堆文本,而是充满了结构化信息:
- 实体:人物(张三)、地点(北京)、组织(腾讯)、概念(机器学习)
- 关系:朋友、同事、喜欢、讨厌、居住在、就职于
- 时间:过去('三年前')、现在('目前')、将来('下周')

