AI 应用一旦从一次性问答走向长期使用,就会遇到同一个问题:它怎么记住人、项目、偏好、历史和状态变化?
现在的记忆方案已经分成几条路线。有的像“外置记忆条”,夹在应用和数据库之间;有的把 Agent 本身改造成带记忆管理能力的系统;有的强调时间和失效状态;也有的专门服务用户画像、跨文档推理或编程助手。
如果只看项目名,很容易混在一起。更实用的判断方式是:你到底要让 AI 记住什么,以及你愿意为这份记忆付出多少架构复杂度。
先看结论
| 方案 | 更像什么 | 适合场景 | 主要代价 |
|---|---|---|---|
| Mem0 | 外置记忆中间件 | 给现有 AI 应用快速加长期记忆 | 需要处理成本、存储和命中质量 |
| Letta | 自带记忆的 Agent 运行时 | 从零做一个越用越懂你的 Agent | 要接受它的 Agent 架构 |
| Zep / Graphiti | 带时间轴的记忆层 | 客户档案、合同状态、偏好变化 | 架构较重,通常要图数据库 |
| Cognee | 文档到知识网的加工层 | 多文档知识库、跨文档推理 | 数据处理链路更复杂 |
| Memobase | 用户画像记忆 | AI 陪伴、教育、推荐、C 端产品 | 记的是“人”,不是通用事件流 |
| AgentMemory | 编程助手跨会话记忆 | AI 编程助手、项目上下文复用 | 更垂直,适用面较窄 |
| Text2Mem | 记忆操作规范 | 给记忆系统定义可验证操作协议 | 更偏抽象层,不是完整产品替代 |
| ReMe | 文件即记忆 | 希望用户可直接查看和编辑记忆 | 需要接受透明文件化管理方式 |
| memU | 后台主动记忆 Agent | 希望记忆系统自己持续整理上下文 | 范式更激进,工程不确定性更高 |
Mem0:最百搭的外置记忆层
Mem0 适合当作第一选择来理解 AI 记忆系统。它的定位不是重写你的 Agent 架构,而是夹在应用、模型和数据库之间,帮你把对话、用户偏好、项目事实等内容抽取成可复用记忆。
它的优势是通用、生态广、接入门槛相对低。你已经有一个聊天应用、助手应用或工作流系统,想加一句“它记得我”,通常会先想到这类中间件。
Mem0 的另一个方向是本地版 OpenMemory。这个方向的吸引力在于:记忆可以保存在自己的电脑里,并在多个工具之间共享。对隐私敏感、又不想每个工具都重新积累上下文的用户,这一点很重要。
不过 Mem0 不是魔法开关。真正落地时要关心三件事:
- 记忆抽取会不会过度,导致无关信息越积越多。
- 检索出来的记忆是否稳定命中当前任务。
- 长期调用模型和存储带来的成本是否可控。
一句话:想给现有项目快速加记忆,先看 Mem0;想让记忆系统自己定义 Agent 的运行方式,它还不是最重的那类方案。
Letta:把记忆放进 Agent 本体
Letta 的前身是 MemGPT,它和 Mem0 不是同一种东西。
Mem0 更像外置记忆条,Letta 更像一个带记忆管理能力的 Agent 运行时。它把大模型放进一套类似操作系统的框架里,让 Agent 自己判断哪些信息要留在工作上下文,哪些要归档,哪些以后再取回来。
这条路线的好处是记忆和 Agent 行为结合得更深。你不是在一个普通应用外面挂一层记忆,而是在设计一个“本来就会管理自己记忆”的 Agent。
代价也很直接:它更重。你需要把项目放进 Letta 的世界里,接受它的运行模型、状态管理方式和开发习惯。
适合 Letta 的场景是:你从零开始做一个长期运行的个人 Agent、研究助手、业务助手,希望它越用越懂用户,并且愿意围绕它的框架搭系统。
Zep / Graphiti:把时间当成一等公民
很多记忆系统的问题不是“记不住”,而是“记住了旧答案,却不知道它已经过期”。
Zep / Graphiti 这类方案的关键点是时间。它不只是保存一条偏好或事实,还会记录它在什么时候成立、什么时候失效。用户改口时,旧记忆不一定被硬删除,而是变成历史状态。
这让它适合处理会变化的关系和事实,例如:
- 客户资料和跟进阶段。
- 合同条款与状态更新。
- 用户偏好随时间变化。
- “现在喜欢什么”和“三月时喜欢什么”都需要查询的场景。
这条路线通常会走向图结构,因为状态变化、人物关系、事件链和时间线天然适合连成网络。好处是证据链更清楚,坏处是架构更重,部署和维护成本也更高。
如果你的记忆主要是“当前偏好”,不一定需要这么重;如果你的记忆经常有版本、时间、失效和追溯需求,Zep / Graphiti 这类方案就很有价值。
Cognee:把文档熬成可推理的知识网
传统 RAG 更像“按相似度捞片段”。它能找到相似文本,但不一定理解文档之间的关系。
Cognee 的方向是把一堆资料加工成图谱和向量混合的记忆系统。它不只存片段,还尝试抽取实体、关系和结构,让系统能顺着关系网继续推。
这适合大量文档场景,例如:
- 公司内部知识库。
- 技术文档和项目资料。
- 法务、合同、产品规格等跨文件材料。
- 需要从多个文件里拼出结论的研究任务。
它的代价也明显:数据加工链路更长,系统组件更多,更新、清洗、去重、关系抽取都需要设计。它不是“给聊天机器人加一点记忆”的轻量路线,更像“把资料库变成可推理知识网络”。
Memobase:专门记“你是个什么样的人”
Memobase 的重点不是记每件事,而是整理用户画像。
别人更关注“发生过什么”,它更关注“这个用户是什么样的人”:兴趣、习惯、属性、偏好、长期特征。它把这些信息整理成更清楚的字段,方便读取、修改和产品化使用。
这对 C 端产品很有用:
- AI 陪伴需要理解用户性格和关系边界。
- 教育产品需要记住学习阶段、薄弱点和目标。
- 推荐系统需要稳定、可编辑的偏好画像。
- 健康、效率、生活类助手需要长期跟随用户习惯。
Memobase 的边界也在这里。它不是最适合做通用事件追踪,也不是复杂文档推理系统。它更像“人物卡记忆层”:把用户是谁、喜欢什么、习惯怎样这类信息整理出来。
AgentMemory:编程助手的跨会话记忆
AgentMemory 更垂直,主要解决 AI 编程助手的老问题:每开一个新会话,就要重新解释项目背景。
开发者真正希望保存的不是闲聊记忆,而是:
- 项目的技术栈和目录结构。
- 约定俗成的代码风格。
- 哪些文件不能乱动。
- 常用命令和测试方式。
- 上一次排查到哪里。
如果这些信息能跨会话共享给多个编程助手,就能减少大量重复提示。AgentMemory 适合纯开发场景,尤其是团队或个人长期维护同一批项目时。
但它不是通用记忆平台。做客服、陪伴、推荐、知识库时,通常会先看前面几类方案。
Text2Mem:给记忆系统定义操作指令集
Text2Mem 更像一套记忆操作协议。它关心的是:记忆系统应该怎样新增、更新、合并、删除、验证和输出结构化结果。
它提出的思路可以概括为三点:
- 用一组原子操作描述记忆变更,而不是让模型随意写。
- 用固定 JSON 契约承载记忆操作,减少不可控输出。
- 用验证层检查结果,避免把错误记忆直接写入系统。
这类方案适合做记忆系统的“控制面”。如果你已经有 Mem0、Zep、Graphiti 或自研记忆层,Text2Mem 的价值可能不在替代它们,而在约束记忆写入动作。
ReMe:文件即记忆,用户可以直接看
ReMe 来自阿里 AgentScope 生态,它的关键词是“文件即记忆”。
很多记忆系统的问题是黑盒:用户不知道系统记住了什么,也很难直接修改。ReMe 的方向更透明,把记忆变成用户能看、能改、能管理的文件。
这对可信度很重要。尤其是在个人助手、企业助手和长期 Agent 里,用户不一定希望记忆全由系统暗中维护。能直接编辑,意味着用户可以纠偏,也可以主动整理上下文。
它适合重视可解释、可控、可迁移的场景。代价是产品设计要跟上:文件结构、权限、同步、冲突处理,都需要认真设计。
memU:让记忆本身变成后台 Agent
memU 的范式更激进:记忆不只是被动存储,而是一个持续运行的后台 Agent。
普通记忆系统大多是在对话发生时抽取、查询、更新。memU 的设想更像是让记忆层 24/7 工作:主动整理、归档、压缩、更新和准备上下文。
这个方向很有想象力,因为真正长期运行的 Agent 不应该只在用户说话时才思考记忆。但它也意味着更多工程问题:
- 后台整理会不会误改重要记忆。
- 主动更新的触发条件怎么定义。
- 成本如何控制。
- 用户如何审计它做过什么。
如果你在做实验性 Agent 或个人长期助手,可以关注这个方向;如果是生产系统,仍要先确认可控性和可观测性。
选型建议
如果你只是想给现有应用加长期记忆,优先看 Mem0。它足够通用,接入成本也更容易接受。
如果你要从零做一个长期 Agent,而且愿意围绕 Agent 运行时重构项目,可以看 Letta。它更像“带记忆的 AI 本体”,不是普通插件。
如果你的业务强依赖时间、状态变化和历史追溯,优先看 Zep / Graphiti。客户、合同、偏好、关系网络,这些都需要知道“什么时候成立、什么时候失效”。
如果你要处理大量资料并做跨文档推理,看 Cognee。它更适合把文档变成知识网,而不是只做相似度检索。
如果你的产品重点是理解用户本人,看 Memobase。AI 陪伴、教育、推荐、生活助手,都需要一个可读可改的用户画像层。
如果你关心的是 AI 编程助手跨会话记忆,看 AgentMemory。它的场景窄,但问题很真实。
如果你在自研记忆系统,Text2Mem、ReMe、memU 更像三个补充方向:一个管操作规范,一个管透明可编辑,一个把记忆变成主动后台过程。
一个简单判断框架
可以按四个问题筛选:
-
记忆对象是什么?
是用户画像、项目背景、对话事实、文档知识,还是会随时间变化的业务状态?
-
记忆是否需要时间线?
如果旧状态也有价值,就不要只做覆盖式更新。
-
你愿意改多少架构?
Mem0 更适合外挂,Letta 更适合重建 Agent 运行方式,Cognee 和 Zep/Graphiti 往往会带来更重的数据层。
-
用户需不需要直接编辑记忆?
如果需要透明和可控,ReMe、Memobase 这类思路会更有参考价值。
小结
AI 记忆系统没有一个统一答案。轻量接入看 Mem0,自带记忆 Agent 看 Letta,时间状态看 Zep / Graphiti,跨文档推理看 Cognee,用户画像看 Memobase,编程助手看 AgentMemory。
更关键的是不要先问“哪个最强”,而是先问“我要记住什么”。记忆对象一变,最合适的技术路线也会变。