# 论文 · Zep: A Temporal Knowledge Graph Architecture for Agent Memory


## 基础信息
* 作者：Preston Rasmussen, Pavlo Paliychuk, Travis Beauvais, Jack Ryan, Daniel Chalef
* 期刊/日期：arXiv preprint, 2025-01-20
* 核心贡献：Zep/Graphiti 将 agent memory 构建为动态双时间知识图谱，融合 episodic raw data、semantic entities/facts 和 community summaries，在 LongMemEval 上用约 1.6k context tokens 达到更高准确率和约 90% 延迟降低。

## Q1. 研究动机

传统 RAG 多面向静态文档，而真实 enterprise agent 需要持续吸收对话、业务数据和世界状态更新。

完整历史无法放入上下文窗口，且静态检索难以表示事实随时间变化。作者希望用动态 temporal KG 支持长期 agent memory。

## Q2. 核心问题

论文要解决的是：如何从持续对话中构建可更新、可追溯、能表达历史关系的 memory layer，并在长上下文问答中比 full-context 更高效。

关键问题是同时保留 raw episodes、抽取语义事实、处理时间有效期和矛盾失效。

## Q3. 现有不足 &amp; 本文改进

现有 RAG 面向静态 corpus；普通摘要压缩丢失细节；MemGPT 证明了 agent memory 需求，但 DMR benchmark 较短且以单事实检索为主。

Zep 的改进是 Graphiti：用 episode subgraph 保存 raw messages/text/JSON，semantic entity subgraph 保存实体和事实边，community subgraph 保存实体社区摘要；每条 fact edge 存 valid time 与 system time；新事实与旧事实矛盾且时间重叠时，系统用 LLM 判断并使旧边失效，同时保留历史。

## Q4. 方法流程

输入是消息 episode 及 reference timestamp。系统先从当前消息和前 n=4 条消息中抽取实体，做 embedding/full-text 混合候选检索，再由 LLM 做实体解析和 summary 更新。接着抽取实体间事实，生成 fact embedding，并只在同一实体对之间做 edge deduplication。时间模块根据 reference timestamp 解析绝对/相对时间，给边写入 valid/invalid 与 created/expired 时间。检索时先用 cosine、BM25、BFS 找候选，再用 RRF/MMR/episode mentions/node distance/cross-encoder reranker 排序，最后构造 facts/entities context。

## Q5. 实验设计与结论

| 实验 | 目的 | 关键结果与结论 |
| --- | --- | --- |
| DMR（Table 1） | 与 MemGPT 主评测对比 | gpt-4-turbo 下 Zep 94.8%，MemGPT 93.4%，full-conversation 94.4%；gpt-4o-mini 下 Zep 98.2%，full-conversation 98.0%。提升很小，作者也指出 DMR 太短。 |
| DMR benchmark 分析 | 判断该 benchmark 是否足够评估长期记忆 | 每段对话最多约 60 messages，能放进现代上下文；问题多为单轮事实检索且存在模糊措辞，因此不足以代表 enterprise memory。 |
| LongMemEval（Table 2） | 在平均 115k tokens 的长会话上比较准确率、延迟和上下文长度 | gpt-4o-mini full-context 55.4%、31.3s、115k tokens；Zep 63.8%、3.20s、1.6k tokens。gpt-4o full-context 60.2%、28.9s；Zep 71.2%、2.58s。 |
| Question type breakdown（Table 3） | 分析哪些题型受益 | gpt-4o 上 single-session-preference 20.0%→56.7%，temporal-reasoning 45.1%→62.4%，multi-session 44.3%→57.9%，knowledge-update 78.2%→83.3%。 |
| 异常题型分析 | 找出 Zep 的退化场景 | single-session-assistant 下降：gpt-4o-mini 81.8%→75.0%，gpt-4o 94.6%→80.4%，作者认为需要进一步研究和工程改进。 |

## Q6. 局限性

作者明确指出：DMR 小而简单，不能充分评估 memory；LongMemEval 中无法成功评估 MemGPT，因为其框架不支持直接 ingestion existing message histories；当前实验只覆盖 Graphiti search 功能的一部分；缺少能同时测试 conversation history 与 structured business data 的 benchmark；生产系统的成本、延迟、可扩展性仍需更多研究。

以下为分析归纳，非原文明确说明：Zep 依赖 LLM 做实体/事实抽取、时间解析和矛盾判断，抽取错误会进入图结构；社区增量更新是启发式，会逐渐偏离完整 label propagation；实验中 Zep 服务在 AWS us-west-2，而 baseline 本地，延迟比较虽对 Zep 不利但环境并不完全同构。

## Q7. 学术价值

理论价值：把 agent memory 明确为 episodic &#43; semantic &#43; community 三层 temporal KG，并强调 valid time 与 system time 对动态事实的重要性。

方法价值：提供了可落地的 Graphiti pipeline：实体解析、事实抽取、双时间边失效、混合搜索、图 BFS、reranking 和 context construction。

应用价值：面向企业长期助手、客户会话记忆、业务状态问答，以及需要跨会话综合和 temporal reasoning 的 production agent。

## Q8. 延伸研究方向

1. 用 fine-tuned extraction/resolution 模型替代通用 LLM，降低成本与延迟。
2. 引入 domain ontology，让实体和事实类型更稳定，减少开放式 KG 漂移。
3. 设计 benchmark 同时覆盖对话历史、结构化业务数据和实时更新。
4. 研究 community refresh 策略，平衡增量 label propagation 的低延迟与全量更新的准确性。
5. 系统评估 Graphiti 的不同 search/reranker 组合，区分 cosine、BM25、BFS、cross-encoder 各自贡献。

## Q9. 反直觉发现与方法失效分析

* Table 1 中 Zep 在 DMR 上 94.8% 只比 full-conversation 94.4% 高 0.4 点；gpt-4o-mini 下 98.2% 也只比 98.0% 高 0.2 点。作者据此反过来批评 DMR 已接近 full-context 饱和，不能证明长期 memory 能力。
* Table 2 显示 LongMemEval 上 Zep 用 1.6k tokens 反而比 115k full-context 更准、更快，说明“给模型更多上下文”不一定优于结构化压缩和检索。
* Table 3 的 single-session-assistant 明显退化：gpt-4o 从 94.6% 降到 80.4%，gpt-4o-mini 从 81.8% 降到 75.0%。作者承认这是例外，可能是这类问题依赖 assistant 原话细节，而 Zep 的事实/实体抽取和摘要更偏关系信息。
* 整体可信度：LongMemEval 结果有实际意义，尤其是 latency/token 证据；但与 MemGPT 的长评测缺失、系统为生产服务且作者来自 Zep AI，仍需要第三方复现和更细粒度消融。


---

> Author: [Ting](Tin10g.github.io)  
> URL: http://localhost:1313/posts/%E8%AE%BA%E6%96%87%E9%98%85%E8%AF%BB-zep-a-temporal-knowledge-graph-architecture-for-agent-memory/  

