Mem0、Zep 与 Letta:Agent 记忆的三种工程方案

智能体记忆的三种工程方案(手绘信息图)

记忆层的工程化背景:朴素方案的瓶颈

Agent 记忆(本库 Agent 工程第 4 章)的朴素实现是「把历史对话全塞进上下文」或「摘要压缩」——瓶颈很快出现:上下文窗口的经济学(历史越长每轮越贵,本库 token 计费篇)、信息的无差别保留(重要的偏好与无关的闲聊同权重占位)、跨会话的断裂(新会话什么都不记得)。记忆的工程化因此成为一个独立的市场:专门的记忆层服务——从对话中提取该记住的、组织成可检索的结构、更新与冲突仲裁、按需注入——本库记忆学术篇的理论在产品层的落地。三块代表拼图代表了三种不同的记忆哲学。

Mem0:提取式记忆的「标准化记忆层」

Mem0 的机制:一个可插拔的记忆层 API——喂给它对话,它用 LLM 提取「值得记住的事实」(「用户是后端工程师」「偏好简洁回答」「项目用 Python 3.12」),去重、更新(新信息覆盖旧的——「用户换了工作」)、组织成用户/会话/Agent 维度的记忆库;应用在每次对话前检索相关记忆注入上下文。Mem0 的哲学:记忆是「事实的库」而非「对话的存档」——它记住的是提炼后的知识点,不是原始消息。取舍:提炼式让记忆库干净、检索高效(事实短、语义准),代价是提取可能丢上下文(事实脱离语境可能失真——提取质量依赖强模型)。适用:把「用户个性化」做进产品的团队(每个终端用户一个记忆画像)——Mem0 的 API 设计(user_id/agent_id/run_id 的维度)就是为多租户产品的记忆隔离设计的。

Zep:时序知识图谱与「时间感知」的记忆

Zep 的机制:把记忆组织成时序知识图谱(Graphiti 引擎)——实体(人、项目、组织)与关系构成图,每条边带时间有效区间(这个事实从何时到何时为真——「用户在 A 公司」这条边在「用户跳槽 B 公司」后并不删除,而是标记为「已失效」)。时间感知是 Zep 的差异化主张:记忆的查询按「当前有效」过滤(问「用户在哪工作」返回 B 不是 A),而「历史查询」仍可追溯(「用户曾经在哪工作」返回 A——知识与记忆的不同:知识会失效,记忆有历史)。取舍:图结构 expressive(关系推理、多跳查询强——本库 HippoRAG 篇的联想检索在图上的天然优势),代价是图谱构建与维护的成本(实体抽取、关系判定的 LLM 调用、图的一致性管理)。适用:长周期关系的场景(CRM 的客户记忆、需要「历史可追溯」的助手——合规与审计 friendly)。

Letta(MemGPT):操作系统式的记忆管理

Letta 的机制源自 MemGPT 论文的思想:把 LLM 当作操作系统的 CPU,记忆当作分层的内存——核心记忆(上下文窗口内的:当前对话、关键用户信息)+ 外部记忆(归档存储、对话历史)+ 自我编辑的工具——模型自己决定什么进核心、什么移出、什么检索(调用记忆编辑工具像操作系统管理内存页)。Letta 的哲学:记忆管理是「Agent 的内生能力」而非「外挂服务」——Agent 服务器本身(Letta 是一个有状态的 Agent 服务器:Agent 持久存在、有睡眠与唤醒)承担记忆的生命周期。取舍:内生式最灵活(Agent 的记忆策略可以自我演化——「它觉得重要的会自己记」),代价是行为不确定性(记忆决策交给模型——错误记忆的自我固化风险,需要监控)与部署复杂度(有状态 Agent 服务器 vs 无状态 API)。适用:长陪伴型应用(持续演进的个人助理)、以及想深度定制记忆策略的研究者(Letta 的架构开放性最高)。

选型框架与架构位置:外挂记忆层的通用模式

三方案的对照表。Mem0:提取式事实库——接入最简单(API 即用)、多租户友好——个性化产品的默认选项。Zep:时序图谱——时间感知与历史可溯——长周期关系场景。Letta:内生记忆管理——灵活性最高、行为最不确定——深度定制与陪伴型。共通的架构位置:三种方案都是「外挂记忆层」——在 Agent 与 LLM 之间插一层(记忆的读写发生在每次对话的前后),不改模型、不改应用主逻辑——这是记忆工程化的务实共识(等原生记忆成熟再迁移的成本也最低)。选型的三个问题:记忆的主体是谁(终端用户画像 → Mem0 路线;业务实体的长周期关系 → Zep 路线;Agent 自身的持续演进 → Letta 路线);时间性要求(历史可溯吗 → Zep 的强项);接入成本预算(API 即用 vs 部署服务)。以及一个所有方案共通的前置提醒:记忆层解决「存取」,不解决「该不该记」——隐私边界(用户数据的记忆授权,本库记忆隐私篇)、遗忘权(删除的实现)、以及记忆错误的纠正机制,是记忆系统上线前必须设计的产品与合规问题——记忆让 Agent 更像人,也让它的责任更像人。

记忆方案的实战对比:同一个场景的三种实现

Mem0/Zep/Letta(正文三方案)的实战对比:用同一个场景(客服助手记住客户)走三种实现。Mem0 的实现:对话后调 add(提取事实)→ 下次对话前 search(检索相关记忆)→ 注入上下文——几天后客户再来,助手记得「上次报过物流问题、偏好电话联系」——提取式记忆的干净利落。Zep 的实现:对话进 Graphiti 构建图谱(客户-订单-问题的实体与关系)→ 查询按时间过滤 → 「客户三个月前报过同样问题、当时处理方案是 X」的历史可溯——时序图谱的长周期优势。Letta 的实现:Agent 自主管理(对话中 Agent 判断「这个信息重要」→ 调记忆工具写入核心记忆 → 长期相处中自我组织)——内生式的自适应(助手对客户的记忆组织方式自己演化)。实测维度的差异。接入成本:Mem0(API 即用最低)< Zep(图谱构建的配置)< Letta(有状态服务的部署)。时间性:Zep(历史可溯最强)> Letta > Mem0(事实覆盖式更新——历史会被覆盖)。行为确定性:Mem0(提取规则明确)> Zep > Letta(模型自主决策)。场景匹配的结论:个性化客服 → Mem0(快速上线)、长期客户关系管理 → Zep(历史价值)、陪伴型助手 → Letta(自适应成长)——记忆方案的选择,是「记忆在你的场景里值多少钱、错记忆的代价是多少」的定价问题。

记忆系统的产品化细节:隐私、遗忘与记忆质量

Agent 记忆的产品化细节(正文前置提醒的展开)值得单独一节。隐私与授权。记忆的授权设计(哪些对话内容可以记住——默认不记敏感类(健康、财务细节)或显式确认)、记忆的可见性(用户能看到 Agent 记了什么——记忆面板的产品设计)、删除与遗忘权(用户要求忘记——记忆的删除要贯穿提取库/图谱/向量索引的所有层)。记忆质量的管理。错误记忆的纠正(Agent 记错了——用户纠正后记忆的更新机制(旧记忆的失效与替换——本库记忆学术篇的仲裁问题在产品层))、记忆的漂移(多次提取的累积误差——定期的记忆审计与清理)、以及记忆的「新鲜度偏好」(新信息默认覆盖旧信息的风险——有些旧记忆比新声明更可靠——冲突仲裁的策略设计)。记忆的滥用边界:Agent 用记忆「过度热情」(「我知道你上周失恋了」——记忆的使用要分场景与亲密度——记得多不等于用得对);以及记忆的安全(记忆库是高价值目标——本库安全篇的凭证级防护)。产品化的元原则:记忆是 Agent 与用户关系的载体——它的每一次「记得」与「忘记」都是关系的表达;记忆工程的产品高度,决定了 Agent 是工具还是伙伴。

记忆方案的选型决策树:从需求到方案的完整路径

记忆方案(正文三方案对照)的选型决策树,完整路径值得画出。第一问:需要跨会话记忆吗——不需要(单会话产品)→ 上下文管理即可,别过度工程。第二问:记忆的主体是谁。终端用户(每个 C 端用户一个画像)→ Mem0 路线(多租户设计友好);业务实体(客户、项目的长周期关系)→ Zep 路线(图谱的时序);Agent 自身(助手持续成长)→ Letta 路线(内生管理)。第三问:时间性要求。需要「历史可溯」(合规、审计、回溯分析)→ Zep 的时间感知;只要「当前有效」→ Mem0 的覆盖式够用。第四问:接入与运维的预算。轻预算 → Mem0 的 API;有工程团队 → Zep/Letta 的自托管。决策树走完的提醒。先试朴素方案(长上下文 + 摘要的朴素记忆在早期够用——记忆层的引入时机由「朴素方案的痛」触发,本库正文瓶颈的观察);隐私的前置(本库正文的产品化细节——记忆的授权与遗忘权在选型时就要设计,不是上线后补);以及一个「记忆层」的通用兜底:所有方案都要配「记忆的开关与重置」(用户关记忆、一键清空——记忆的控制权永远在用户手里)。

记忆方案的进阶话题:记忆与 RAG 的边界与协作

记忆方案(正文三方案)与 RAG(本库 RAG 手册)的边界与协作——两者都是「给 Agent 补上下文」,边界常被混淆。边界的划分。RAG 管「知识」:文档、规范、事实——「世界是什么样的」(组织的显性知识,来源明确、可更新、可审计)。记忆管「关系与历史」:用户的偏好、交互的历史、Agent 的经验——「我们之间发生过什么」(交互的隐性产物,随关系生长、不可预先写档)。一个判断式:这个信息「写在文档里合理吗」——合理 → RAG(知识);「只在交往中产生」→ 记忆(关系)。协作的模式。模式一:记忆检索触发的 RAG(用户的记忆里提到「关心成本」→ Agent 检索成本相关的知识库条目——记忆作为 RAG 的查询上下文)。模式二:RAG 结果的记忆化(高频检索的知识点沉淀为记忆——检索的缓存与预置)。模式三:分层注入(记忆(个性化)+ RAG(知识)+ 工具(实时)的三层上下文注入——本库上下文工程篇的分层)。边界与协作的收束:记忆与 RAG 的混淆,会导致「把用户偏好写进知识库」(隐私与治理的问题)或「把知识记成记忆」(一致性与更新的问题)——划清「知识」与「关系」的边界,是 Agent 上下文架构的第一道设计题。

← 返回资讯列表

读者留言

COMMENTS 暂无
仅本站原创文章开放留言 · 请勿留下手机号、邮箱等个人信息

还没有留言,来说第一句?