AI agent 越来越聪明,但有个共同的毛病:金鱼记忆。你跟它聊了半小时需求,第二天再问,它一脸无辜地说"我没有之前的对话记录"。2026 年,"给 agent 装个脑子"不再是可选项——市面上一口气冒出七八个专做记忆的开源项目,名字还像在抢注:Mem0、Zep、Letta、LangMem、Graphiti、Cognee、Supermemory……新手根本分不清谁是谁。这篇挑六款最有代表性的横着比一比,按场景给结论,不列虚头巴脑的榜单。
先说清楚一件事:下面所有对比,都是基于各项目官方文档、GitHub 仓库与公开描述做的代表性对比,非亲自压测。记忆架构、定位和功能随时可能变动,以各家官方最新文档为准,别拿它当合同。
一、为什么 2026 年人人都在给 agent 装记忆
LLM 本身是无状态的——每次调用都是一张白纸,所谓的"记忆"全靠把历史对话塞回上下文窗口。窗口一满,旧内容就被截断,agent 就失忆了。这在小任务里无所谓,放到长程场景里就是灾难:客服 agent 记不住用户上周报的故障;写作 agent 忘了你定的人设和风格;个人助理 agent 不记得你提过的偏好。
2026 年记忆赛道爆发,根本原因是 agent 从"单轮问答"进化到了"长程自主任务"。一旦 agent 要跨会话、跨天、甚至跨用户协作,记忆就成了基础设施。于是项目们各自押了不同的宝:有人把记忆做成可叠加的"层",有人做成图结构,有人干脆把记忆塞进 agent 的 runtime 让它自己管。理解了这些押注,选型就不用看榜单,看你的活是什么就够了。
选购前真正该问自己的是四个问题:你的 agent 是长程对话还是机构知识管理?要 agent 自己决定记什么,还是你统一管?已经用了某个框架(如 LangChain)还是从零搭?数据能出境吗(选托管云还是自部署)?四个答案一出来,该选谁基本就锁定。
二、六位选手入场
先把六位的家底亮出来。定位和架构来自各家官方文档与 GitHub 仓库描述,非亲自压测。
| 工具 | 记忆架构 | Provenance 溯源 | 个性化 | 机构知识 | 开源 |
|---|---|---|---|---|---|
| Mem0 | 记忆层(可叠加) | 四层 provenance | 有(按 user/agent 分域) | 弱(偏对话记忆) | 是 |
| Zep | 图结构记忆 | episode 级 | 有 | 中 | 是 |
| Letta | runtime 记忆(agent 自管) | 有(记忆操作可追溯) | 强(agent 自主裁剪) | 弱 | 是 |
| LangMem | 记忆层(可叠加) | 基础 | 有 | 弱 | 是 |
| Graphiti | 图结构记忆(时序图谱) | 有(时序边) | 中 | 中 | 是 |
| Cognee | 知识图谱(ECL 管道) | 有 | 强(个性化层) | 强 | 是 |
先点出几个关键差异。第一,记忆架构分三派:Mem0 和 LangMem 是"可叠加的层"——你把它插在 agent 和 LLM 之间,它负责提取、存储、检索记忆,agent 本身不需要改;Zep 和 Graphiti 是"图结构"——把记忆组织成知识图谱,实体和关系是第一公民,不只是扁平的事实列表;Letta 是"runtime 记忆"——记忆是 agent 运行时的一部分,agent 自己通过函数调用决定记什么、忘什么,思路来自 MemGPT 的操作系统式内存管理。
第二,Provenance(可追溯)是 2026 年记忆赛道的新焦点。Mem0 强调四层 provenance 体系,Zep 做 episode 级溯源——每条记忆都能追到它来自哪段对话。这不是锦上添花,对合规和调试是刚需:agent 说错了一句话,你得能查到是哪条记忆导致的。
第三,六款全开源,但程度不同。Mem0、Zep、Letta 都有自部署版加托管云双轨;LangMem 和 Graphiti 是纯库,嵌进你的应用;Cognee 是框架级,偏向自建管道。这意味着选型时"开源"不是分水岭,"怎么集成"才是。
三、逐个拆:六款各自的最佳射程
Mem0:可叠加的记忆层,接入最轻
Mem0 把自己定位成"给 AI 应用加的记忆层"——你已经有 agent 了,不想重写,就把 Mem0 插在中间,它自动从对话里提取记忆、按 user/agent 维度存储、下次对话时检索相关记忆塞回上下文。官方文档强调四层 provenance 体系,核心解决的是"这条记忆从哪来、谁产生的、什么时候、还能不能用"的溯源问题。
它押的宝是"轻量叠加"。所谓轻量,是你不用改 agent 架构,几行代码接进去就用;所谓叠加,是它不绑死你的框架,LangChain、CrewAI、自己写的 agent 都能接。提供 Python 和 JS SDK,既有开源自部署,也有托管云 Mem0 Cloud。
适合谁:已经有 agent 在跑、想快速补上记忆能力、不想动架构的团队。它的甜区是"对话记忆"——记住用户偏好、历史交互、上下文。不擅长的是机构级知识管理——它不是为"把公司文档变成结构化知识图谱"设计的。
Zep:图结构记忆,长期对话和实体关系的王者
Zep 的核心是图结构记忆。它不把记忆存成扁平的事实列表,而是组织成知识图谱——用户提到的实体、实体间的关系、事件的时间线,都是图里的节点和边。官方强调 episode 级 provenance:每条记忆都绑定到产生它的那段对话(episode),你可以从任何一条事实回溯到原始对话。
它押的宝是"图加时序"。图的好处是能做多跳推理——"用户提到的公司和他上周说的项目什么关系",扁平记忆答不了,图谱能。时序的好处是能处理"过期"——用户改了地址,Zep 能标记旧地址失效而不是直接覆盖,保留历史。Zep 有开源自部署版和托管云。
适合谁:长期对话场景、客服 agent 需要记住用户和实体的关系、需要对记忆做时序管理(哪些还有效、哪些过期了)。如果你的 agent 核心价值在于"记住人和组织的关系",Zep 的图结构比扁平记忆层强一档。
Letta:runtime 记忆,agent 自己管自己的脑子
Letta 是 MemGPT 的产品化版本(MemGPT 是 UC Berkeley 的研究项目,把操作系统的内存管理思路搬到了 LLM 上)。它的核心区别是:记忆不是外挂的层或服务,而是 agent runtime 的一部分。agent 自己通过函数调用管理记忆——把不急的塞进"归档记忆",把需要的"调页"回主上下文,主动决定记什么、忘什么。
它押的宝是"runtime 记忆加自主管理"。别的设计是你在代码里写死记忆逻辑,Letta 是把记忆管理权交给 agent 自己——它调用 memory 工具来读写记忆,就像人主动决定"这个要记下来"。好处是 agent 能根据任务动态裁剪记忆,个性化程度最高;代价是 agent 的记忆质量取决于它自己的判断,可控性不如你在代码里写死的规则。
适合谁:长程自主 agent、需要 agent 深度个性化记忆的场景、研究型项目。如果你要的是"对话历史都给我存下来别丢",Mem0 或 Zep 更直接;如果你要的是"让 agent 自己决定该记什么",Letta 是唯一选。
LangMem:LangChain 生态的轻量记忆库
LangMem 是 LangChain 团队出的记忆库,定位是"给 LangChain/LangGraph agent 用的可叠加记忆层"。它不是一个独立服务,而是嵌在你应用里的库——提供记忆的提取、存储、检索原语,你自己在 LangGraph 的 state 里编排。
它押的宝是"生态原生"。如果你已经用 LangGraph 搭 agent,加 LangMem 几乎零摩擦——它和你已有的 state、checkpoint、工具定义天然对齐,不用再接一个外部记忆服务。代价是:它是库不是平台,没有开箱即用的托管云,记忆存储要你自己配(接 PostgreSQL、向量库等)。能力上偏基础,没有 Zep 那种图结构和时序推理。
适合谁:LangChain/LangGraph 用户、记忆需求不复杂、愿意自己组装存储后端的团队。不在 LangChain 生态的话,选它的意义不大。
Graphiti:时序知识图谱引擎,Zep 的图引擎独立成库
Graphiti 来自 Zep 同一个团队(getzep),是 Zep 图结构记忆背后的引擎独立成了开源库。它不是一个记忆服务,而是一个"构建时序知识图谱"的引擎——你往里灌数据,它帮你构建带时间线的知识图谱,实体、关系、事件都带时序标记。
它押的宝是"图引擎加时序"。和 Zep 的关系是:Zep 是成品服务(开箱即用),Graphiti 是引擎(你自己造车)。适合想自建图记忆系统、要深度控制图谱构建逻辑、或者要把时序知识图谱嵌进自己产品的团队。代价是要自己写集成和记忆管理逻辑,门槛比直接用 Zep 高。
适合谁:要自建图记忆系统的开发团队、对图谱构建有定制需求、不想被 Zep 托管云绑定的项目。如果你只是要"能用"的图记忆,直接上 Zep 更省事。
Cognee:机构知识加个性化,企业知识管理路线
Cognee 走的是另一条路:不只是对话记忆,而是把机构的文档、Wiki、知识库灌进去,构建知识图谱,同时支持个性化——不同用户看到的知识视图不同。它的管道叫 ECL(Extract-Cognify-Load),从非结构化数据里抽取实体和关系、构建图谱、加载到存储。
它押的宝是"机构知识加个性化"。前面五款偏"对话记忆"——记住和用户聊过什么;Cognee 偏"知识管理"——把组织的知识变成结构化图谱,再按用户做个性化。这个定位让它在企业知识管理场景里没有直接对手,但也意味着它不适合"给聊天 agent 加个记忆"这种轻量需求。
适合谁:企业团队要把内部知识结构化、要按角色做知识个性化、有文档/Wiki 知识库要变成可推理图谱。如果你的需求是"agent 记住用户偏好",Cognee 太重了。
四、集成方式与适用场景
把集成维度单独拉一张表,这往往是选型的实际决定因素。
| 工具 | 集成方式 | 生态/语言 | 部署形态 | 最佳场景 |
|---|---|---|---|---|
| Mem0 | SDK/库 + 托管云 | Python/JS,框架无关 | 自部署/云 | 给已有 agent 加记忆层 |
| Zep | 独立服务(API) | Python/JS SDK | 自部署/云 | 长期对话、实体关系记忆 |
| Letta | runtime/框架 | Python SDK | 自部署/云 | 自主管理记忆的长程 agent |
| LangMem | 库(LangChain 生态) | Python,LangChain/LangGraph | 嵌入应用 | LangChain 生态内的轻量记忆 |
| Graphiti | 库(时序图谱引擎) | Python | 嵌入应用 | 自建图谱记忆系统 |
| Cognee | 框架/库 | Python | 自部署 | 机构知识管理 + 个性化 |
还有两款值得留意:Supermemory 是一个更轻量的开源记忆层,定位和 Mem0 类似但更偏"开箱即用",适合想极简接入的个人开发者;Cloudflare 把记忆做进了它的 AI 平台(Workers AI 等),记忆和计算耦合在一起,适合已经在 Cloudflare 生态里的项目,但会绑定平台。这两款的定位决定了它们更窄,主力对比还是看上面六款。
五、选型决策树:四个场景对号入座
别看热度选,看你的活是什么。
场景一:给已有 agent 加记忆,不想动架构。 选 Mem0。它就是为"叠加"设计的,几行代码插进去,框架无关,开源自部署加托管云都行。你的需求是"记住用户偏好和历史交互",Mem0 的甜区。
场景二:长期对话,要记住人和实体的关系。 选 Zep。图结构记忆在多跳推理和关系记忆上碾压扁平记忆层。客服、CRM、个人助理这类"关系是核心"的场景,Zep 的图加时序是最强组合。想自建图谱引擎则看 Graphiti。
场景三:让 agent 自己决定记什么。 选 Letta。它是唯一把记忆管理权交给 agent 的——runtime 记忆、agent 自主调页。长程自主 agent、需要深度个性化记忆、研究型项目,Letta 的 MemGPT 血统是独家优势。
场景四:企业知识管理加个性化。 选 Cognee。它不是对话记忆工具,是知识图谱构建器,把机构知识结构化再按用户个性化。前五款都不擅长这个。
还有几个常见组合。一是 Mem0 做对话记忆加 Cognee 做机构知识,两个维度分开管。二是 LangMem 嵌在 LangGraph 里管轻量记忆加 Zep 做独立的关系图谱服务,按复杂度分工。记忆工具不是单选题,按场景配组合更现实。
六、三个避坑:过期信息、记忆噪声、平台绑定
第一,过期信息是记忆工具的头号坑。用户改了地址、换了工作、之前说的偏好过时了——如果记忆层只会追加不会失效,agent 就会用错误信息回答。Zep 的时序图谱和 Letta 的 agent 自主管理都能处理"标记失效"而非"直接覆盖",Mem0 的 provenance 体系也支持记忆更新。选之前确认工具能不能处理"过期",不能的话你自己得在外层加淘汰逻辑。
第二,记忆噪声会拖垮检索。什么都记等于什么都不记——如果记忆层把每句闲聊都存下来,检索时就会被无关记忆淹没。Letta 让 agent 自己裁剪是一种解法,Mem0 和 Zep 靠提取策略过滤。关注工具的记忆提取策略,别让它无脑全存。
第三,平台绑定要算清账。托管云(Mem0 Cloud、Zep Cloud、Letta Cloud)省事但你的记忆数据在别人手里,迁出成本不低。Cloudflare 的平台耦合更极端——记忆和它的 AI 运行时绑死,离开 Cloudflare 就带不走。生产部署前想清楚:数据能不能出境、要不要自部署、迁出成本能不能接受。
FAQ
Q:记忆层和 runtime 记忆有什么区别? A:记忆层(Mem0、LangMem)是把记忆做成外挂模块——agent 该怎么跑还怎么跑,记忆层在旁边帮你提取和检索,agent 不参与记忆管理决策。Runtime 记忆(Letta)是把记忆塞进 agent 的运行时——agent 自己通过函数调用读写记忆,主动决定记什么、忘什么,就像人主动记笔记。前者你可控、好集成;后者更灵活、个性化更强,但记忆质量取决于 agent 自己的判断。
Q:我该怎么选? A:四个问题定方向。已有 agent 想加记忆选 Mem0;长期对话记关系选 Zep;要 agent 自管记忆选 Letta;LangChain 用户轻量需求选 LangMem;企业知识管理选 Cognee;要自建图引擎选 Graphiti。先确定你的核心场景,别按 star 数选。
Q:记忆工具和 RAG 什么关系? A:高度互补但不是一回事。RAG 是"从外部知识库检索相关文档"喂给模型,解决的是"模型不知道的知识"——比如你的产品手册、公司规章。记忆工具是"记住和用户的历史交互",解决的是"模型忘了的上下文"——比如用户上周说过的偏好。很多 agent 两样都要:用记忆工具记住用户上下文,用 RAG 检索外部知识。Mem0 和 Zep 也能接外部数据,但它们的强项还是交互记忆。
Q:生产部署用哪个? A:Mem0 和 Zep 都有成熟的自部署加托管云双轨,生产可用性最高。Mem0 适合"记忆层"场景,Zep 适合"图记忆"场景。Letta 的 runtime 记忆更适合研究型或高度定制化的长程 agent,生产成熟度在追赶但定位独特。LangMem 和 Graphiti 是库,生产化要你自己搭存储和运维。数据不能出境就选自部署版。
Q:agent 会记住过期信息怎么办? A:这是记忆工具的核心设计问题,选型时要重点看。Zep 用时序图谱标记记忆的有效期,旧信息会被标记失效而非删除;Letta 让 agent 自己判断哪些记忆该更新;Mem0 的 provenance 体系支持记忆的更新和淘汰。不管选哪个,都要在业务层加一道"记忆过期检查"——比如定期审查、关键信息变更时触发记忆刷新,别完全依赖工具自动处理。
参考来源
- Mem0 官方文档与仓库:https://github.com/mem0ai/mem0
- Zep 官方文档与仓库:https://github.com/getzep/zep
- Letta(前身 MemGPT)官方文档与仓库:https://github.com/letta-ai/letta
- LangMem 仓库:https://github.com/langchain-ai/langmem
- Graphiti 仓库:https://github.com/getzep/graphiti
- Cognee 仓库:https://github.com/topoterms/cognee
- Supermemory 仓库:https://github.com/supermemory-ai/supermemory