Agent长期记忆六大方案对比,彻底解决AI失忆问题

文章目录

    • 前言
    • [一、先搞清楚:Agent 为什么会"失忆"](#一、先搞清楚:Agent 为什么会"失忆")
      • [1. 不是智商问题,是没地方记](#1. 不是智商问题,是没地方记)
      • [2. 上下文窗口再大,也是临时工](#2. 上下文窗口再大,也是临时工)
      • [3. 所以真正要解决的是四个问题](#3. 所以真正要解决的是四个问题)
    • 二、四条路线,四个门派
    • 三、Mem0:给老应用装个外挂硬盘
      • [1. 它到底是啥](#1. 它到底是啥)
      • [2. 它怎么工作的](#2. 它怎么工作的)
      • [3. 举个例子](#3. 举个例子)
      • [4. 主要特点](#4. 主要特点)
      • [5. 适合谁](#5. 适合谁)
    • 四、Zep:别人记"你爱啥",它记"你为啥爱、啥时候不爱了"
      • [1. 思路差异](#1. 思路差异)
      • [2. 经典例子](#2. 经典例子)
      • [3. 定位](#3. 定位)
    • [五、Graphiti:Zep 的开源亲儿子](#五、Graphiti:Zep 的开源亲儿子)
      • [1. 关系先搞清楚](#1. 关系先搞清楚)
      • [2. 三类核心信息](#2. 三类核心信息)
      • [3. 时间语义才是灵魂](#3. 时间语义才是灵魂)
      • [4. 适合谁](#4. 适合谁)
    • 六、OpenViking:把记忆做成文件夹
      • [1. 思路](#1. 思路)
      • [2. 和普通向量库的区别](#2. 和普通向量库的区别)
      • [3. L0/L1/L2 控制读取深度](#3. L0/L1/L2 控制读取深度)
      • [4. 适合谁](#4. 适合谁)
    • [七、MemGPT:让 AI 自己当记忆管理员](#七、MemGPT:让 AI 自己当记忆管理员)
      • [1. 灵感来源](#1. 灵感来源)
      • [2. 记忆分层](#2. 记忆分层)
      • [3. 关键区别](#3. 关键区别)
    • [八、Letta:MemGPT 的正式出道版](#八、Letta:MemGPT 的正式出道版)
      • [1. 别搞混了](#1. 别搞混了)
      • [2. Letta 管什么](#2. Letta 管什么)
    • 九、同一个例子,四个门派各显神通
      • [1. Mem0 的玩法](#1. Mem0 的玩法)
      • [2. Graphiti 和 Zep 的玩法](#2. Graphiti 和 Zep 的玩法)
      • [3. OpenViking 的玩法](#3. OpenViking 的玩法)
      • [4. MemGPT 和 Letta 的玩法](#4. MemGPT 和 Letta 的玩法)
    • 十、怎么选:对号入座

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看, 传送门https://blog.csdn.net/HHX_01

前言

跟同一个 AI 聊了三天旅行计划。第一天我说不坐红眼航班,第二天补了一句要靠过道,第三天它眨巴着眼睛问我:"请问您对座位有要求吗?"

那一刻我悟了。AI 不是笨,是记性差。差到什么程度呢?金鱼看了都摇头,我甚至想给它办一张"健忘症关爱证"。

说白了,绝大多数模型调用都是无状态的。请求一结束,它转头就把你忘了。上下文窗口再大,也只是它一次能"看"多少,不代表它真记住了。

那 Agent 要跨会话干活怎么办?总不能每次见面都重新自我介绍一遍吧。于是江湖上冒出来六个狠角色:Mem0、Zep、Graphiti、OpenViking、Letta、MemGPT。

这六位各有各的绝活,今天咱就掰开揉碎,一个一个聊。

一、先搞清楚:Agent 为什么会"失忆"

1. 不是智商问题,是没地方记

你让一个没带纸笔的人背圆周率,他背不下来,不是因为他傻,是因为他手里没有纸。

模型也一样。一次请求结束,状态就清空了。它连你叫什么都记不住,更别说你前天说过的话了。这不是态度问题,是硬件问题。

2. 上下文窗口再大,也是临时工

有人要抬杠了:现在上下文窗口不是越来越大吗?几百万 token 都有。

大是大了,但那是"临时工",不是"正式工"。窗口一关,什么都留不下。它只是让你一次看得多,不是让你一直记得住。两码事。

3. 所以真正要解决的是四个问题

什么信息值得记?用什么结构存?需要的时候怎么找回来?由谁来负责写入和更新?

这四个问题,就是今天六个项目的分水岭。

二、四条路线,四个门派

先把六个项目摆一起,看个全景:

路线 代表项目 核心思路 更像什么
提取式记忆 Mem0 从对话里提取值得记住的事实,需要时检索回来 Agent 的外接记忆库
时间知识图谱 Zep、Graphiti 把人物、事件、关系及其变化组织成带时间的图 Agent 的动态世界模型
层级上下文数据库 OpenViking 用目录树组织 Memory、Resource 和 Skill,按需检索不同详细度 Agent 的上下文文件系统
Agent Runtime Letta、MemGPT 让 Agent 自己管理上下文、记忆和执行循环 运行 Agent 的操作系统

四条路线的区别,一句话总结:

Mem0 关心"记哪些事实、怎么找回";Zep 和 Graphiti 关心"事实之间啥关系、啥时候有效";OpenViking 关心"怎么分层组织、按需读多少";MemGPT 和 Letta 关心"谁在 Agent 整个生命周期里管记忆"。

三、Mem0:给老应用装个外挂硬盘

1. 它到底是啥

Mem0 就是一层独立的长期记忆层,放在应用和大模型中间。你手上已经有一套 Agent 或聊天应用,只想让它记住用户偏好和历史决策?好办,加个 Mem0。

这操作,像不像给你家那台老电脑加了一块固态硬盘?不用换机,插上就能用,开机速度立竿见影。

2. 它怎么工作的

复制代码
用户对话
  ↓
LLM 提取值得长期保留的信息
  ↓
去重、更新并存入向量数据库
  ↓
下次对话前,根据问题搜索相关记忆
  ↓
把少量相关记忆加入模型上下文

3. 举个例子

用户说:

复制代码
我以后出差尽量订靠过道的位置。

Mem0 不存整段原话,而是提炼成类似这样的记忆:

复制代码
用户偏好靠过道的座位

下次用户让 Agent 订机票,应用调用 Mem0 搜索相关记忆,再把这条偏好塞进 Prompt。

你看,AI 终于记住你是个"过道爱好者"了。这体验,比它第三次问你座位要求舒服一百倍。

4. 主要特点

  • 接入相对简单:对话后调用 add,模型调用前执行 search。
  • 默认保存经过 LLM 提炼、去重的事实,而不是完整聊天记录。
  • 可以按 user_id、agent_id、run_id 等维度隔离记忆。
  • 擅长保存用户偏好、项目决策、个人资料和跨会话信息。
  • Agent Runtime 仍由 LangGraph、CrewAI 或应用自己的代码负责。

所以,把 Mem0 归为"轻量提取式记忆"比较合适。注意,这并不代表它只能用向量检索------它也提供 Graph Memory 来表达人物、事件和关系,但从整体产品形态看,它更像一个可以嵌入现有 Agent 的记忆组件。

5. 适合谁

客服记住用户偏好、教育助手记住学生掌握情况、个人助手记住日程习惯......场景简单,够用。

但一旦信息开始牵扯复杂关系、连续变化或历史状态,光靠一条条事实加语义搜索,就不一定精确了。这时候,得看下一位。

四、Zep:别人记"你爱啥",它记"你为啥爱、啥时候不爱了"

1. 思路差异

Mem0 擅长记一条条事实,Zep 更关心事实之间的关系,以及这些关系如何随时间变化。Zep 早期常被介绍为"给聊天机器人用的长期记忆服务",现在更强调 Context Engineering 和 Context Graph。

它不仅保存"用户喜欢什么",还会把对话、业务数据和文档转换成一张图,里面包含:

  • 实体:用户、公司、产品、项目
  • 关系:就职于、购买过、负责、依赖
  • 事件或原始数据片段
  • 事实成立与失效的时间
  • 事实来自哪段原始数据

2. 经典例子

系统先后收到两条信息:

复制代码
2025 年:小王负责支付系统
2026 年:小王转去负责搜索系统,支付系统改由小李负责

普通向量记忆会把两条都搜出来,但说不清哪条现在有效。Zep 的时间图会保留历史,同时标记关系的有效时间,于是它能回答:

复制代码
小王现在负责什么?
2025 年小王负责什么?
支付系统的负责人什么时候发生了变化?

这就跟查户口一样:不仅知道你现在住哪,还知道你啥时候搬的家、以前住哪儿。哪个派出所看了不说一声专业。

3. 定位

可以把 Zep 理解为一个围绕时间上下文图构建的生产级平台。除了保存和查询图数据,它还负责托管、扩展、低延迟检索、上下文组装和治理。

五、Graphiti:Zep 的开源亲儿子

1. 关系先搞清楚

Graphiti 不是 Zep 的竞品,而是由 Zep 团队开发、构成 Zep 技术基础的开源框架。一句话理清:

复制代码
Graphiti:开源的时间图构建与查询框架
  ↓
Zep:基于这套思路构建的生产级托管平台

2. 三类核心信息

Graphiti 会把持续进入的数据组织成三类信息:

  • Entity:人、产品、组织、概念等实体
  • Fact/Edge:实体之间的事实和关系
  • Episode:产生这些事实的原始对话、文档或事件

3. 时间语义才是灵魂

普通知识图谱:知道 A 认识 B。

Graphiti:知道 A 从哪天开始认识 B、哪天绝交了、系统是啥时候知道这事儿的。

它会区分:事实什么时候开始成立、什么时候不再成立、系统什么时候得知这条事实、系统什么时候得知它失效。每条推导出的事实,还能追溯到原始 Episode。检索时可以向量搜索、全文搜索、图遍历三管齐下。

4. 适合谁

  • 客户关系、组织关系经常变化
  • 需要理解人物、项目、文件之间的多跳关系
  • 需要回答"当时是什么状态"
  • 需要追踪事实来源
  • 企业数据持续更新,不能每次整体重建知识图谱

不过话说回来,结构越强,成本越高。部署、数据建模、日常维护,全是活儿。这就是"结构自由的价格"。你要是没那个精力伺候它,它分分钟教你做人。

六、OpenViking:把记忆做成文件夹

1. 思路

前面几位都在搞"记忆",OpenViking 干脆把记忆、外部知识和可复用能力全塞进同一个上下文空间,做成一个面向 AI Agent 的上下文数据库。

它的核心结构长这样:

复制代码
viking://
├── resources/          外部知识
├── user/{user_id}/
│   ├── memories/       用户与任务记忆
│   ├── resources/      用户私有资源
│   ├── skills/         用户技能
│   └── sessions/       会话
└── agent/
    └── skills/         共享技能

2. 和普通向量库的区别

普通向量库:全部平铺,一锅烩,检索全靠相似度硬捞。

OpenViking:每个 Context 有稳定的 viking:// URI,保留目录、范围和上下级关系。向量检索负责找到相关区域,目录树负责限定搜索范围,Agent 再沿目录读取真正需要的内容。

这操作像什么?像你家 AI 终于从"在垃圾桶里翻文件"升级成"会用电脑了"。进步,实打实的进步。

3. L0/L1/L2 控制读取深度

层级 内容 主要用途
L0 Abstract 一句话摘要 快速召回和初筛
L1 Overview 目录概览 判断相关性和继续导航
L2 Detail 原始文件和完整内容 获取事实、细节与证据

所以它的典型检索过程,不是直接挑出几个相似片段塞进 Prompt,而是先定位区域,再逐层深入:

复制代码
问题
  ↓
向量检索定位候选目录
  ↓
读取 L0 或 L1 判断相关性
  ↓
沿目录进入相关分支
  ↓
按需读取 L2 原文

4. 适合谁

知识和记忆天然有目录结构、需要按作用域隔离、或者想让 Agent 像逛文件系统一样逐步探索上下文的场景。

它不像 Graphiti 那样重点表达实体关系和时间变化,也不像 Letta 那样接管整个 Agent Runtime。它更接近 Agent 下方的一层统一上下文基础设施------位置摆得很清楚,不抢戏。

七、MemGPT:让 AI 自己当记忆管理员

1. 灵感来源

MemGPT 是 UC Berkeley 团队 2023 年提出的研究项目。灵感来自操作系统的虚拟内存。

操作系统能在内存和磁盘之间调度数据,让程序感觉自己拥有很大的内存。那 Agent 能不能在有限上下文窗口和外部存储之间搬运信息?

能。这就是 MemGPT 干的事。理论上讲,这就是给 AI 装了套"虚拟内存",只不过它搬的不是数据页,是记忆。

2. 记忆分层

复制代码
模型当前上下文
├── 系统指令
├── Agent 身份和重要事实
├── 最近对话
└── 当前任务信息
外部存储
├── 历史消息
├── 长期档案
├── 文档
└── 可搜索的其他信息

3. 关键区别

重点不是"应用在调用模型前检索一次",而是 Agent 本身拥有记忆工具,自己决定:

  • 哪些信息该写入长期记忆
  • 哪些核心记忆需要更新
  • 什么时候检索旧信息
  • 上下文空间不够时移出什么
  • 是否需要继续执行下一轮操作

想象你雇了个助理,这助理不光会干活,还自己记笔记、自己整理工位、自己决定旧文件扔哪。MemGPT 就是这个助理。

也就是说,MemGPT 把记忆管理变成了 Agent 推理循环的一部分,而不只是外围的 RAG 插件。这套方法在论文里被称为"虚拟上下文管理"。

八、Letta:MemGPT 的正式出道版

1. 别搞混了

MemGPT 和 Letta 关系很近,但指向的对象并不完全一样:MemGPT 更偏向原始研究和 Agent 设计模式,Letta 则是从这套思想发展出来的框架与平台。

复制代码
MemGPT:原始论文、记忆架构和 Agent 设计模式
  ↓ 演进
Letta:用于构建、运行、持久化和调试有状态 Agent 的框架与平台

2024 年,原团队把开源框架改名为 Letta,把"MemGPT"这个名字留给论文中的原始设计模式。

这就好比:论文是原稿,Letta 是出版版。同一个作者,同一个灵魂,只是 title 更响了。

2. Letta 管什么

  • Agent 的持久化状态
  • 上下文窗口的组装方式
  • 可编辑的记忆块
  • 工具调用和执行循环
  • 文件、数据源和技能
  • 多次运行之间的身份延续
  • 本地或云端部署
  • Agent 的调试与观察

所以用 Letta,通常不只是"给现有 Agent 接个记忆组件",而是在 Letta Runtime 中创建并运行一个 Agent。当前的 Letta 已经超出原始 MemGPT 架构,提供多种 Agent 类型和更现代的执行循环,但"有状态 Agent"和"记忆属于 Runtime 核心能力"的思想一直没变。

九、同一个例子,四个门派各显神通

概念说再多,不如落到数据上。假设用户说:

复制代码
我原来在北京工作,下个月搬去上海;以后推荐活动时优先考虑上海。

1. Mem0 的玩法

复制代码
用户下个月搬到上海
用户偏好上海的活动

调用方负责在推荐活动前搜出这些记忆。简单直接,任务完成。

2. Graphiti 和 Zep 的玩法

复制代码
用户 --居住或工作于--> 北京   有效至:某日
用户 --居住或工作于--> 上海   有效自:某日
用户 --偏好活动城市--> 上海

系统既能回答现在的位置,也能回答过去的位置,还知道关系啥时候变的。妥妥的"搬家档案管理员"。

3. OpenViking 的玩法

复制代码
viking://user/{user_id}/memories/
├── profile/
│   └── location.md
└── preferences/
    └── activity-city.md

目录摘要负责说明这儿存了位置变化和活动城市偏好,向量检索负责找到目录,Agent 再按需读具体记忆。原始会话留在 Session 里当详细上下文,不必每次请求都背着全部历史。轻装上阵,舒服。

4. MemGPT 和 Letta 的玩法

复制代码
Agent 判断这是不是重要信息
  → 调用记忆工具更新用户档案
  → 调整自己的核心上下文
  → 在未来推荐任务中主动使用
  → 必要时检索更详细的历史信息

重点不再是某一种存储结构,而是"谁负责管理记忆":由 Agent Runtime 和 Agent 自己共同完成。

十、怎么选:对号入座

这四条路线没有绝对的优劣,关键看你缺的是记忆组件、数据结构、上下文基础设施,还是完整的 Agent Runtime。

你的需求 更值得先看
给现有聊天应用快速增加用户记忆 Mem0
数据有大量实体关系和时间变化 Graphiti
不想自己维护图基础设施,想用生产级服务 Zep
想用目录统一组织记忆、知识和技能,分层读取上下文 OpenViking
从头构建具有长期身份和自管理记忆的 Agent Letta
研究 Agent 如何像操作系统一样管理上下文 MemGPT 论文

最后说两句实在的。实际系统不一定只能选一个:你可以用 Letta 管理 Agent 的执行与状态,再挂一个知识图谱或上下文数据库。

真正要理清楚的是职责边界:谁决定写入什么?谁处理更新和冲突?谁负责检索?最终哪些内容进入模型上下文?

Agent 记忆不是"加个向量数据库"就完事。它更像一组逐层展开的工程问题:先决定记什么,再决定怎么组织和找回,最后决定谁来管理整个记忆生命周期。

把这几个层次想明白,这六个项目之间的差异,你心里基本就有数了。

毕竟,你总不希望自己养了个比金鱼还健忘的 AI 吧?

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/HHX_01

相关推荐
小小测试开发1 小时前
Prompt评估:加一句「请一步步思考」,结构化输出的解析失败率从 2% 涨到 17%
人工智能·prompt
xiaohaiAIgeo1 小时前
【2026年】实验室应急预案中通风系统的关键作用
大数据·人工智能·科普知识
想用offer打牌1 小时前
Personal Agent爆火 - 它到底是个什么
人工智能·后端·ai编程
IT_陈寒1 小时前
Vue的v-if和v-for混用居然是个天坑
前端·人工智能·后端
会议咨询1 小时前
2026年智能计算、机械工程与人工智能国际会议(IMAI 2026)
人工智能·机械工程·智能计算
可视化运维管理爱好者1 小时前
nVisual-FiberMap光缆网设计、竣工文档交付工具
人工智能
一木 之林2 小时前
Stable Diffusion 详解:潜空间扩散原理、三件套分工与 diffusers 文生图实战
人工智能·计算机视觉·stable diffusion
W***25922 小时前
2026 企业 AI 办公工具选型指南:可完成端到端任务的平台怎么评估
大数据·人工智能
LEO的MATRIX3 小时前
本体实施指南
人工智能·软件工程