
AI 智能体的长期记忆系统架构设计与落地实现 原创 精华
无论是 DeepSeek 还是 GPT,随着大模型性能的提升,其能够处理的上下文长度也不断增加。然而,一旦超出上下文窗口的限制,大模型就需要重新开启一个对话,就像“失忆”一样,忘记之前交流的内容。
但从用户的角度来看,AI 智能体应该能够记住之前的全部对话。因此,如何高效地管理和利用对话历史,成为了提升 AI 智能体用户体验的关键所在。拥有长期记忆后,Ai 智能体能够回忆过去的对话,从而减少幻觉、延迟和成本。
将聊天记录作为文本导入,然后使用 RAG 来“恢复长期记忆”,是让大模型具备长期记忆的一种常见方法。但这种方法通常需要额外的工程支持,而且构建 RAG 也存在不容忽视的时间差。
传统 RAG 系统本质上是一个"文档图书馆",它假设知识是固定不变的,这在处理动态业务场景时就显得力不从心了。
其次,当新信息与旧信息发生冲突时,RAG 系统无法智能地判断哪个更可信,往往会把矛盾的信息一股脑儿返回给用户。
最后,RAG 缺乏时间维度的理解让系统无法区分"用户去年的偏好"和"用户现在的需求",导致推荐结果偏离实际情况。
在企业级应用中,RAG 作为长期记忆的这种局限性会被无限放大。
比如:在开发一个客户服务 AI 智能体,客户 A 在过去一年中经历了从创业公司到中型企业的转变,其需求从成本控制转向了效率提升,但传统 RAG 系统仍然会基于历史文档推荐成本优化方案。
这种脱节不仅影响用户体验,更可能造成企业业务损失。
为了解决 AI 智能体长期记忆的这些痛点,最近,一家名为 Zep AI 的初创公司推出了为 AI 智能体打造的记忆层,通过回忆聊天历史,可以自动生成摘要和其他相关信息,使 AI 智能体能够在不影响用户聊天体验的情况下,异步地从过去的对话中提取相关上下文。
下文详细剖析之:Zep 长期记忆系统的架构设计、Zep 长期记忆系统的关键技术设计、基于 Zep 构建 AI 智能体的代码级落地实现。
一、Zep 长期记忆系统的架构设计
Zep 能自动从 AI 智能体的用户互动以及不断变化的业务数据中构建一个时间知识图谱。这个图谱包含了与用户和业务背景相关的实体、关系以及事实。Zep 借鉴了 GraphRAG,但与 GraphRAG 不同的是,Zep 能够很好地理解信息随时间的变化。当事实发生改变或者被新的事实取代时,图谱就会更新,以反映新的状态(如下动图展示)。
Graphiti 是 Zep 记忆层背后的技术。它是一个开源的库,能够构建动态的、具有时间意识的知识图谱,用以表示实体之间复杂且不断变化的关系。它可以处理非结构化和结构化的数据,生成的图谱可以通过时间、全文、语义以及图算法等多种方式进行查询。
Zep 架构设计系统的核心是 Graphiti 引擎,它采用了一个巧妙的三层知识图谱架构来解决传统 RAG 的痛点,如下图所示:
第一层:Episode 子图
- 功能:完整地存储原始对话、文本或 JSON 数据,不丢失任何信息。
- 特点:类似于人类的情景记忆,能够保留完整的上下文信息。
第二层:Semantic Entity 子图
- 功能:从原始数据中提取实体和关系。
- 特点:利用实体解析技术,将新旧信息有机地整合在一起。
第三层:Community 子图
- 功能:通过标签传播算法对相关实体进行聚类。
- 特点:形成高层次的概念理解。
这种架构设计使得 Zep 系统既能保留细节信息,又能进行抽象推理。
二、Zep 长期记忆系统的关键技术设计
1、关键技术一:双时间轴建模:从根本上解决信息更新问题
Zep 最具创新性的技术设计在于其独特的双时间轴建模机制,具体如下:
这种设计使 Zep 系统能够精准处理诸如“用户两周前提到的那个项目其实是三个月前开始的”这类复杂的时间关系。
2、关键技术二:智能的边失效机制
传统系统在面对信息冲突时常常无计可施,而 Zep 凭借 LLM 驱动的边失效机制,以一种优雅的方式解决了这一难题,具体流程如下:
- 冲突检测:当 Zep 系统发现新事实与现有知识图谱中的信息存在语义冲突时。
- 自动标记:将存在冲突的旧信息自动标记为失效状态。
- 时间记录:精准记录下信息失效的具体时间点。
凭借这一机制,AI 智能体能够精准回答诸如“用户什么时候改变了偏好”这类涉及时间推理的复杂问题。
3、关键技术三:三步走的内存检索
第一步:混合搜索策略
Zep 的检索系统融合了三种互补的搜索方法,以实现最大化的召回率:
- 余弦相似度搜索:精准捕捉语义相关性,理解用户问题的深层含义。
- BM25 全文搜索:高效处理关键词匹配,快速定位关键信息。
- 广度优先搜索:深入发现图结构中的隐含关联,挖掘潜在联系。 这种设计尤其适用于处理用户询问“那个项目的进展如何”时的指代消解问题,能够准确理解并回应用户的意图。
第二步:智能重排序
在检索到候选结果后,Zep 运用多种重排序策略来提升精确度:
- RRF 和 MMR 算法:传统的重排序方法,经过验证的有效手段。
- 基于图距离的重排序:考虑实体间的关联程度,优化信息的相关性。
- 频次权重调整:让经常被用户提及的信息获得更高优先级,确保重要信息不被遗漏。 通过这些策略,Zep 能够更精准地呈现用户所需的信息,提高检索结果的质量。
第三步:上下文 Prompt 构造
最后一步是将检索和重排序后的节点和边转换为 LLM 友好的文本格式:
- 为每个事实标注有效时间范围:明确信息的时效性,确保 AI 智能体能够准确理解信息的时效性。
- 为每个实体提供简洁的摘要描述:让 AI 智能体快速把握关键信息,提高生成回复的效率。
- 确保 AI 智能体在生成回复时能够准确理解信息的重要程度:让 AI 智能体能够根据信息的重要性进行合理的回应。 通过这种上下文构造模板,Zep 能够清晰标注事实的时间范围和实体信息,为 AI 智能体生成准确、及时的回复提供有力支持。
4、关键技术四:AI 智能体长期记忆领域新标杆
在更具挑战性的 LongMemEval 测试中,加入了更长、更连贯的对话内容以及更多样化的评估问题,从而更好地反映真实场景的需求,Zep 的优势得到了充分体现,实验结果如下表所示:
可以看到,相比基线方法,Zep 不仅提升了结果的精度,而且将响应时间减少了约 90%,相比其他 LLM 供应商也有约 80% 的提升。
三、基于 Zep 构建 AI 智能体的代码级落地实现
接下来,让我们来构建一个具有类似人类记忆的 AI 智能体。
第一、使用的技术栈
- 开源的 Zep 作为我们 AI 智能体的记忆层。
- AutoGen 用于 AI 智能体编排。
- Ollama 用于本地提供 Qwen 3服务。
第二、基于 Zep 的 AI 智能体系统架构设计
- 用户提交查询。
- AI 智能体保存对话并将事实提取到记忆中。
- AI 智能体检索事实并进行总结。
- 使用事实和历史记录做出准确的回应。
第三、基于 Zep 的 AI 智能体代码级落地实现
1、设置 LLM(大语言模型)
我们通过 Ollama 使用本地提供的 Qwen 3。
2、初始化 Zep 客户端
利用 Zep 的基础记忆层,为我们的 Autogen AI 智能体赋予真正的任务完成能力。
3、创建用户会话
为用户创建一个 Zep 客户端会话,AI 智能体将使用该会话来管理记忆。一个用户可以有多个会话!
4、定义 Zep 对话 AI 智能体
我们的 Zep 记忆 AI 智能体基于 Autogen 的对话 AI 智能体,每次用户查询时,从 Zep Cloud 获取实时记忆上下文。它通过利用我们刚刚建立的会话来保持高效。
5、设置 AI 智能体
初始化对话 AI 智能体和一个代理人类 AI 智能体,以管理聊天互动。
6、处理 AI 智能体聊天
Zep 对话 AI 智能体介入,创建一个连贯、个性化的回应。它无缝整合了记忆和对话。
7、Streamlit 用户界面
创建了一个简化的 Streamlit 用户界面,以确保与 AI 智能体的互动顺畅且简单。
8、可视化知识图谱
通过 Zep Cloud 的用户界面,交互式地映射用户在多个会话中的对话。这个强大的工具使我们能够通过图谱可视化知识的演变。
第四、基于 Zep 的 AI 智能体完整代码
完整代码获取地址:
https://github.com/patchy631/ai-engineering-hub/tree/main/zep-memory-assistant
总之,本文介绍了如何构建一个具有类似人类记忆的 AI 智能体,使用的技术栈包括开源的 Zep 记忆层、AutoGen 用于 AI 智能体编排以及 Ollama 用于本地提供 Qwen 3服务。AI 智能体系统通过保存对话、提取事实到记忆中、检索事实并总结,最终生成基于事实和历史记录的明智回应。此外,通过 Zep Cloud 的用户界面,可以交互式地映射用户在多个会话中的对话,可视化知识的演变。整个过程通过 Streamlit 用户界面实现顺畅且简单的交互。
本文转载自玄姐聊AGI 作者:玄姐
