一句话总结:给 LLM 加「永久记忆」不是玄学,是开源代码能干的事——这是我装完 Mem0 后最想说的一句话。
一、我被自己的 Cursor 忘了 100 次
前天晚上我在 Cursor 里花了 3 小时帮同事改一个 Postgres 连接池的 bug,跟 AI 聊了 200轮,把它从「connection refused」一路陪到「slow query 优化」,中间反复调参、回滚、看慢日志、再调。
第二天晚上我再开 Cursor,新会话。
它上来第一句:「嗨!很高兴见到你。请问你需要什么帮助?」
完蛋了。
3 小时的心血,它一个字不记得。这就是今天每一个 LLM 用户的真实处境——ChatGPT、Claude、Cursor、文心、豆包、清言、星火、通义千问……你跟它建立的所有「关系」,只要你关掉那个 Tab,它就把你当陌生人。
我跟同事吐槽:「这 AI 是不是有'鱼记忆'?」同事一句话给我顶上:「不是它记忆差,是它根本没装记忆。」
顺着这条线索,我挖到了今天的项目——mem0ai/mem0,GitHub 6.2万颗 星,Apache-2.0 协议,Y Combinator S24 批次项目。它给自己起的定位是 「Universal memory layer for AI Agents」——AI Agent 的「永久记忆层」。
为什么会这样?其实不是 LLM 「不行」,是「上下文窗口」有硬上限。GPT-4o 最长 128K token,Claude Sonnet 4.5 给到 200K,听上去多,换算成中文字也就几十万字。你跟 AI 聊三天,消息数轻松破千,把所有对话塞进 prompt 已经不可能——就算塞得下,回答速度也会肉眼可见地变慢,token 账单肉眼可见地变厚。所以 LLM 的「失忆」,本质是工程师的「算账」。
这就引出了 Mem0 的设计前提:与其让 LLM 自己承担「记住一切」的成本,不如把这部分负担外置成一个独立服务——一个为大模型分担「记忆」的中间件,跟数据库一样是无状态的、不属于任何一家模型厂商。这也是它能跑出来 6.2 万颗星的最朴素理由:所有团队都需要,所有模型都不会自动给你。
你以为 AI 在陪你,其实它每次都在重新认识你。
二、3 行代码,让 LLM 不再失忆
Mem0 的核心机制一句话就能讲清楚:把所有 LLM 调用都过一道「记忆层」,自动从对话里提取「值得记住的事实」,存到向量数据库,下次调用前自动把「相关记忆」塞回 prompt。
你不需要改 LLM 调用方,不需要重写 prompt 工程,只要在每次对话前后插 3 行代码:
from mem0 import Memory
m = Memory()
m.add("用户阿风是 OPPO 的 AIGC 算法负责人,常住北京,喜欢山西刀削面", user_id="afeng")
results = m.search("阿风是谁", user_id="afeng")
# 下一轮 LLM 调用时,把 results 拼到 system prompt 里就行
第一行 import。第二行建实例。第三行存记忆——没了。
我下了班以后的凌晨 4 点在我的 Cursor 项目里装了一套,把 200 轮 bug 调试摘要喂进去。第二天再开,AI 第一句直接说「你那个 Postgres connection pool 我看了一下,要不要继续昨天的索引优化?」——我靠,它真的记得了。
Mem0 在 2026 年 4 月份发了 v3 算法,单次 LLM 调用就完成「提取 + 嵌入 + 实体链接」,不再用「update / delete / merge」这种笨重操作。记忆只会累积,不会被覆盖——这跟人类记忆的逻辑更像:你能想起「大学老师说过一句很屌的话」,但你不会去覆盖它。
Mem0 不是 RAG 吗? 不一样。RAG 是「喂一份文档,让 LLM 找答案」,它对「用户偏好、上下文习惯、跨会话状态」这种结构化的人性化记忆几乎无能为力。Mem0 解决的是 RAG 没解决的那一块——「这个用户是谁、喜欢什么、上次说到哪儿了」。
真正的好工具,是让复杂的事变简单,然后悄悄消失在你工作流里。
三、装上去之后做了什么
装好 Mem0 之后我接着折腾了两件事。
Case 1:跨会话的「用户身份」。Mem0 默认有三个记忆层——User(长期跨会话)、Session(一次会话内)、Agent(特定 Agent 自己的上下文)。我用 user_id 区分我自己和同事,把「常住北京、忌高辣、Cursor 党」这些事实存进 User 层,同事用他自己的 user_id 进来,Mem0 不会把我的口味推送给他。最绝的是,我在客户端里问「我那个 Postgres 项目跑哪个版本」,它直接调出「PostgreSQL 14.13 + pgbouncer 1.22」的快照——这是3 个月前我提过的,被它一直存着。我都没意识到我当初提过这茬。
Case 2:Time-aware 检索。Mem0 v3 加了一个反常识的能力——时间感知检索。你说「我现在用什么 LLM」,它返回的是「最近一次是 Claude Sonnet 4.5」;你说「我去年用什么模型做项目」,它返回的是「2025 年主要用 GPT-4o」。传统 RAG 不分日期,所有 chunk 一起打,问到当前状态经常给你一个旧的答案。Mem0 这一手,相当于给向量数据库加了一个「时间戳字段」——很多老牌向量库其实没这字段,靠元数据勉强补。
至于怎么把 Mem0 挂到 OpenAI / Claude / Ollama / vLLM 调用链上,README 里有 5 个 Quick Start 集成示例,复制粘贴 5 分钟搞定。
四、它背后那 27 分是怎么涨上来的
进阶一点的信息值得多聊 3 句——Mem0 v3 不只是工程活,它把「LLM 记忆」这件事做成了一个评测体系。
四个公开 benchmark 跑下来:LoCoMo 从 71.4 涨到 92.5,LongMemEval 从 67.8 涨到 94.4(其中 assistant memory recall 涨到 98.2),新增 BEAM 1M token 规模拿 64.1。关键改进只有五条:单次 ADD-only 提取、Agent 自身结论一等公民、实体跨记忆链接、语义+关键词+实体多路召回融合、时间感知检索。
这五条背后的判断很反直觉——绝大多数记忆系统的瓶颈不在「存得多」,而在「别乱覆盖」。Mem0 干脆不让你删,记忆只能加。这让我想起一句话:人类记忆也是不可改写的——你记得初恋,不是因为它最新,是因为它在你大脑里被反复重放过,从来没被覆盖掉。
至于他们那条「开源 + 全托管双轨」的策略——托管平台有自己的专有优化比开源 SDK 数字更好,这是 SaaS 项目的标准操作——一句话带过:够用就行,别细究。真正想研究的,去读他们开源在 GitHub 上的 evaluation framework,所有 benchmark 数字都能复现。
五、总结
如果你每天被自己的 AI 助手「失忆」轮番气到,或者你正在做一个需要长期上下文的客服 Agent / 编程 Agent / 个人助理——
那我劝你花 5 分钟装一下 Mem0,真的能解决你问题。
它不性感,但能让你下次再开 Cursor 时,它还记得你昨晚熬到几点。
这就是开源的意义。一群素不相识的人,因为一个共同的痛点——「AI 不该失忆」——造出一个 6.2万颗 星的项目。YC 的 S24 批次里,有一半项目都是给现有 SaaS 加一层 AI 能力,Mem0 是这批里把「基础设施」三个字啃得最透的一个。
如果你看完觉得有收获,点赞、在看、转发三连走一波——这是我这种「工具横评文」作者最大的动力。
GitHub: https://github.com/mem0ai/mem0
Star 数: 6.2万颗 星
License: Apache-2.0
最近更新: 2026-04(新 v3 算法,LoCoMo/LongMemEval 双 benchmark 大涨)
一句话定位: 给所有 AI Agent 加一层「永久记忆」的中间件,3 行代码接入,单次 LLM 调用完成提取。
夜雨聆风