六大Agent记忆工具的深度对比分析,各工具解决的问题和适用场景截然不同,澄清了'记忆'概念的混淆。
先说结论:没有最好的 Agent Memory 工具。这六个项目解决的是恰好都带"记忆"二字的不同问题,根据 star 数量或排行榜截图来选工具,团队最终会发现自己明明只需要"用户偏好深色模式",却跑起了一个时序知识图谱。
我叫 Edward,Mnemoverse 的联合创始人。下面六个工具中有一个是我的,所以读完全文你会知道这个背景。我尝试用我希望竞争对手的方式来处理偏见:我的产品作为平等一员占一个章节,同时告诉你什么时候不应该选它。
这是一张地图,不是一个排名。每个工具我会讲清楚:它到底是什么、它擅长什么工作、以及什么时候你应该绕过它。
它是什么:一个 Apache-2.0 开源记忆 SDK,底层是托管云服务。它的核心打法是事实抽取:把对话提炼成离散的事实,在后续会话中召回。
它擅长的工作:快速为对话产品添加记忆层,同时留有退出路径。因为 SDK 是开源的,你可以先从托管云起步,如果合规或成本推动你走向自托管,就可以迁移过去。如果"记住用户告诉我们的内容,并在下次会话中召回"描述的正是你的需求,这是最短的实现路径。
不选它的时机:当事实会随时间变化,而你需要知道某个时间点的真实状态时。简单的事实抽取会抹平时间维度;那类工作属于 Zep 的领地。另外,如果你实际上想要的是对文档的结构化图谱而非从对话中抽取的事实,看一看 Cognee。
它是什么:基于开源 Graphiti 时序知识图谱构建的托管记忆服务。其标志性特征是事实带有有效期窗口。图谱不只知道客户的方案是企业版;它还知道这个状态何时变为真、何时不再为真。免费层级每月 10,000 credits。
它擅长的工作:状态会变化、历史有价值的任何领域。客服 Agent、销售 Agent、任何涉及账户、订阅或关系的场景。当一个 Agent 必须回答"自上季度以来发生了什么变化"时,时序有效期是真正的杀手锏,而 Zep 在这方面确实是值得推荐的工具。
不选它的时机:有严格的数据本地化或数据驻留要求时。Graphiti 是开源的,但托管服务才是 Zep 卖的产品。如果你只需要简单的偏好记忆和会话上下文,也跳过它;时序图谱是真正的重型 machinery,你用不上的 machinery 只是运维负担。
它是什么:MemGPT 谱系中的 Apache-2.0 Agent 框架。这里的记忆不是副驾驶服务。Agent 自己编辑自己的记忆作为一等公民行为,重写它们知道的内容,而不是把这件事委托给外部查找。
它擅长的工作:从零构建 Agent,且记忆管理是 Agent 认知的一部分。如果你觉得 MemGPT 的理念在哲学层面是对的——Agent 应该自己策展它记住的内容——那么 Letta 就是这个理念的正统传承,你应该在其中构建。
不选它的时机:当你已经有一个 Agent 栈,只想把记忆嫁接上去时。Letta 是一个框架,为了一个记忆功能而引入一个框架是一个大动作,大多数现有代码库不会愿意做这样的交换。
它是什么:一个 Apache-2.0 框架,通过 extract-cognify-load 流水线在你的自有基础设施上构建知识图谱。你喂给它数据,它构建图谱,所有东西都留在你自己的墙内。
它擅长的工作:自托管知识图谱。如果你的安全团队第一个问题是"数据存在哪里"而唯一可接受的答案是"我们的 VPC",Cognee 就是为你们量身设计的。它在数据控制上的优势,与托管服务在便利性上的优势如出一辙。
不选它的时机:当团队里没有人愿意维护一条流水线时。extract-cognify-load 是你要去运行、监控和演进的。如果你要的只是一个直接回答问题的 API,托管服务会让你省下更多工程师工时。
它是什么:LangChain 的记忆 SDK,原生对接 LangGraph 的 Long-term Memory Store,存储在内存或 Postgres 中。
它擅长的工作:为已经在用 LangGraph 构建的团队提供的记忆。原生意味着没有适配层,与你的图状态没有阻抗失配,Postgres 持久化让运维保持平淡无奇。如果你的 Agent 是 LangGraph Agent,LangMem 是诚实的默认选择,我说这话是在卖竞品。
不选它的时机:在 LangChain 生态之外时。它的优势是集成深度,离开 LangGraph 这个优势就消失了。如果你的 Agent 运行在 Claude Code、Cursor 或自定义技术栈上,你引入的是概念但拿不到好处。
我构建了 Mnemoverse。知道这个背景来读本节。
它是什么:一个托管的持久记忆 API,Agent 通过 MCP 访问。一个 API key 或 OAuth 横跨 Claude Code、Cursor、VS Code 和 ChatGPT 工作(ChatGPT 通过 Custom GPT action 连接)。设计上赌的是认知路线而非图谱优先:记忆在写入时获得重要性评分;概念形成由 Rescorla-Wagner 更新调优的 Hebbian 关联;整合(consolidation)将相似记忆合并为原型,而 Von Restorff 保护使独特的记忆不被平均掉;结果反馈(memory_feedback,一个从 -1 到 1 的信号)根据记忆是否真正有帮助来重新排序未来召回。接口是十二个 MCP 工具,通过 npx 调用:七个核心工具(write、read、feedback、stats、list_recent、delete、delete_domain),四个 Beta 工具用于共享房间,外加一个保险库列表工具;浏览器 OAuth 连接器暴露了十二个中的十个,保留了两个破坏性工具。MCP 服务器和 Python SDK 是 MIT 协议;引擎是托管的。在研究方面,我们的 SLoD 论文(arXiv 2603.08965)被 IEEE WCCI 的 GRAAI workshop 接收。
它擅长的工作:跨工具的连续性。如果你在公司用 Cursor 写代码,在家里用 Claude Code,中间用 ChatGPT 提问,而且已经厌倦了每个工具都要重新学习你的技术栈和偏好,那么一个通过 MCP 共享的单一记忆正是为你而设的。免费层级每天 1,000 次查询和 10,000 个 atoms,无需信用卡;Pro 是 $29/月。注册入口在 console.mnemoverse.com,文档在 mnemoverse.com/docs。
不选它的时机:如果记忆不能离开你的机器,用 Basic Memory,这是一个本地优先的 AGPL-3.0 MCP 服务器,存储为纯 Markdown。如果你需要引擎本身自托管,Cognee 或自托管 Mem0 更合适;我们的引擎是托管的,这是一个真实的约束,不是脚注。如果你深度使用 LangGraph,LangMem 的原生集成可能更适合你。而如果你的核心需求是事实上的时序有效期窗口,那是 Zep 的主场,不是我们的。
Supermemory:如果你的问题是连接器(Notion、Google Drive、Gmail、S3)和多模态抽取;注意虽然有开源仓库,但托管引擎并未完全公开。Basic Memory,上面提过的,本地优先完美主义者适用。另外 Cursor 现在自带原生 Rules 加 Memories 功能,各版本可用性不一,如果 Cursor 是你唯一的工具,这可能已经足够。
这个领域的每一个供应商,包括我的,数字看起来都很漂亮。它们相互冲突是因为每个人都在对自己架构所擅长的任务做基准测试:时序图系统用时序问题来评估,抽取系统用事实召回评估,数据集、召回预算和 judge 模型在论文之间各不相同。小小的测试框架选择就能大幅改变结果。所以对所有这些,包括我发布的任何东西,用同样的方式对待:供应商报告的数字是有争议的;跑你自己的评估。从这张地图上挑两个候选,各自接入你实际工作负载的一周,然后测量 Agent 是否停止重复问它已经问过的问题。接入这个过程你只需要花一天,但它告诉你的比所有排行榜加起来都多。
从对话中抽取事实 + 开源 SDK:Mem0。带过期日期的事实:Zep。Agent 自己策展上下文:Letta。你自己托管的知识图谱:Cognee。已经用 LangGraph:LangMem。跨编码工具跟随你的单一记忆:Mnemoverse,记住谁写的这篇文章。在各自的主场,没有一个是错误的答案。我看到的痛苦大多来自从别人的主场挑了一个工具,只因为它的数字在某个与你的问题无关的排行榜上更大。