给 Agent 加记忆前 先想清楚这四个问题 研究了一圈 Agent Memory 框架后的心得:选框架之前先搞清楚记给谁、记什么、记多久、怎么取。大部分场景其实不需要重型方案。 #Agent记忆 #AI开发 #LLM #Mem0 #知识图谱

拆解《给 Agent 加记忆前 先想清楚这四个问题》

一句话判断:这条视频的真正价值不在"框架横评",而在它给出的选型前置提问框架——记给谁、记什么、记多久、怎么取(约前 5 分钟)。后半段对 Mem0 / Zep / Letta / Claude Code 的介绍是二手速览,几分钟就能在官方文档里看到更准确版本,且其中两处数字表述不严谨;如果你已经读过这些框架的文档,可以直接跳到结尾的"从最轻方案起步"结论。


0. 先修一份术语对照表(转写稿里项目名几乎全错)

字幕是机器转写,专有名词几乎全军覆没。为免读者被误导,先对齐:

转写稿 实际指
Mm0 / m零G Mem0(论文里发音为 "mem-zero")[1]
ZEB / Zep Zep,其开源引擎是 Graphiti [5]
let a / lanm Letta(原 MemGPT,"MGP" 即 MemGPT)[2][6]
newo4G Neo4j [5]
kuZu Kùzu(嵌入式图数据库)[4]
机器图谱 知识图谱(knowledge graph)
大叔看看借口 / 记器图谱 / 向意向 "文档、接口" / "知识图谱" / "语义向量"(均属转写噪声)

另外,稿中"manlyZB let aline man论文"大概率是"Mem0、Zep、Letta 等论文",无法确证,不做推断性补全。


1. 这条视频面向谁、想解决什么问题

视频事实:作者的出发点是"大部分开发者一上来就选框架",他认为这个顺序反了——类比"还没想清楚要存什么数据就先比 MySQL 和 MongoDB,评估三天后发现 JSON 文件就够"。他给出的替代路径是先把四个问题想清楚,再从最轻的方案起步,遇到瓶颈再升级。

受众推断:正在做 LLM 应用、刚开始考虑长期记忆的独立开发者/小团队;不是已经在跑多租户记忆系统的人。7 分 21 秒的体量 + 全程口语复述,属于"观点+扫盲"型内容,不是工程教程。

作者的立场(应视为判断,不是行业事实):


2. 主线:四个问题,以及我给每条补的背景

2.1 记给谁

视频事实:分三种——① 单用户私有记忆(一个用户一个空间,不存在冲突);② 多用户共享(团队知识库、产品 FAQ),立刻引出"谁能写、谁能读、两人同时改一条怎么办";③ agent 自己的经验(上次遇到类似问题用了什么策略、效果如何),其特殊性在于"生产者和使用者是同一个 agent"。

补全(参考+推断):②③ 其实各自对应成熟工程领域的旧问题。多用户共享记忆 = 多租户数据隔离 + 并发写冲突(这套问题在数据库与协作编辑领域有几十年积累,典型解法是命名空间/租户分区、乐观并发与版本号)。agent 自身经验记忆则最接近强化学习里的"策略/经验复用"与反思类方法(reflection)。推断:作者把 ③ 单列是这条视频里最有洞察的一点,但他没展开——因为 ③ 会带来一个 ①② 都没有的风险:错误的自我经验会被反复强化,且没有人类审核环节。

2.2 记什么

视频事实:四类——① 信息(姓名、住址、注册时间,"结构清楚,存取都容易");② 偏好("喜欢简洁回复""不爱表情包""习惯晚上 10 点后提问",比信息模糊,但文本能表达);③ 行为模式("上次这么处理效果好""该客户用某模板能搞定",强调"这不是信息,是实际经验");④ 关系("江三和李四同系,李四在某公司",文本很难表达,必须结构化存实体间的连接)。

补全(参考):这个四分法与学术/工业界常见的记忆分类基本可对齐——语义事实(semantic)、偏好/用户画像(preference/profile)、情景经验(episodic,即 ③)、以及关系型结构(relational/graph)。我这里没有找到把"信息/偏好/行为/关系"作为标准四分类的权威文档,故视为作者自创的分类框架,它好用,但不是行业术语,搜索时别按这四个词找。

2.3 记多久

视频事实:这是他强调"很多人会忽略"的一点——信息会过期(搬家、口味变、技术栈迁移),不处理不会自动消失,只会越堆越多,"记忆库变成垃圾堆,检索时旧信息混进来,精度反而下降"。他点名 Zep 的做法"挺聪明":每条记忆带一个时间窗口(例如"江三住在北京"标注截至某年某月),过期不是删除而是标记失效,新信息进来自动覆盖,查询拿到的永远是最新版本。

补全并核验(参考):Zep 的引擎 Graphiti 确实是"时间优先"的设计,每条边带 valid_from / valid_to / invalid_at 有效性窗口,能回答"客户搬家前的地址是什么""Q2 调整前的预算是多少"这类问题;同源的对比材料也明确指出 Mem0 没有原生时序模型(记忆只在创建时打时间戳,没有事实有效期/被取代的概念)。以上均来自 [5],而 [5] 是 Vectorize 公司(卖自家记忆产品 Hindsight)的对比页,属厂商侧二手材料,可信度低于官方文档,我未在 Mem0 官方文档中逐条核实这一负面断言,故标注:UNVERIFIED("Mem0 无原生时序模型"这一负面结论未在官方来源确认)。

推断:作者说"标记失效而非删除"是聪明做法,这一步在工程上等于把"记忆"从可覆盖的键值升级成带版本的事实;代价是查询侧要处理时间过滤与多版本合并,复杂度并不会凭空消失。

2.4 怎么取

视频事实:分三层——① 精确查找("这个用户叫什么",key-value 甚至一个字典就够);② 模糊联想("跟这个话题相关的都讲出来",向量检索的强项:文本转向量、按相似度排序取前几条);③ 多跳推理(存了 A 在某公司、B 与 A 相关,问"A 跟哪家公司有关"——A 和公司名的语义一点都不像,向量检索大概率找不到;知识图谱沿关系链走两步,A→B→公司,答案直接出来)。

补全(参考):③ 的现象在检索研究里确实存在——向量相似度不建模"关系",多跳需要沿边遍历,这是图结构存在的理由。但作者的二分法漏了第三条路:让 agent 自己迭代检索、重写查询。Letta 团队那篇博客的核心论点正是这个——agent 可以把原始问题改写成更适合检索的查询、反复搜索直到找到,因此"专门的(单跳)记忆工具反而不如让 agent 自主迭代查询有效"[2]。推断:这是对视频"向量 or 图谱"框架最实质的补充:多跳可以由更强的 agent 循环 + 简单工具部分弥补,而不只是靠引入图数据库。


3. 视频点名的四个方案:它们实际是什么

Mem0 视频说"这个品类用得最多,核心是向量存储,接口简单,P95 延迟 1.4 秒"。论文层面的准确说法:Mem0 是"以记忆为中心的架构",动态抽取、整合、检索对话中的显著信息;另有图记忆变体 Mem0g,把记忆存成有向标记图(实体为节点、关系为边),用于需要跨多条记忆导航关系路径的查询[1]。视频的"核心就是向量存储"对基础配置成立;但注意 [5] 称 Mem0 的图谱能力被锁在 Pro 档($249/月),免费与标准档只有向量语义检索——这条来自厂商对比页,二手,建议以 Mem0 官方定价页为准(我未核实)。

Zep / Graphiti 时序知识图谱:事物流被拆成实体、关系与时间属性,底层图数据库可以是 Neo4j、FalkorDB 或 Kùzu,自托管需要自己运维图数据库;[5] 还称 Zep Community Edition 已弃用,自托管路径变成"直接用 Graphiti + 自己管 Neo4j"(二手来源,UNVERIFIED)。

Letta(原 MemGPT) 视频的核心比喻成立:Letta 的 MemGPT 引入受操作系统启发的记忆层级,agent 主动管理"哪些留在上下文(core memory)、哪些下沉到外部层(对话记忆、档案记忆、外部文件)",从而在固定上下文窗口里获得近乎无限的记忆容量[2]。具体三层([6],第三方教程,我未打开 Letta 官方文档核对):

关于视频提到的 "procedural memory"(程序性记忆,agent 重写自己的系统提示词):我在本轮打开的来源里没有核到该定义(Letta 相关 GitHub 文档抓取被限流失败)。可核实的相邻事实是:core memory 的 persona 块就是描述 agent 身份与行为准则、且 agent 可自行修改它[6]。因此对这一点标注:UNVERIFIED —— 视频所述"Letta 提出 procedural memory 让 agent 重写系统提示词"未能用官方来源确认,但其描述的现象(agent 改写自身行为准则)在 Letta 架构里有对应机制。

Claude Code 的记忆系统 视频说"markdown 文件加一个 front matter 做索引,没有向量数据库,没有知识图谱"。官方文档核对后:方向对,细节不精确。 实际机制是两套[3]:

这句"文件系统就够了"的原始出处:Letta 团队博客,标题是 《Benchmarking AI Agent Memory: Is a Filesystem All You Need?》(2025-08-12)[2]。但它的实际结论比视频转述更谨慎,值得原文一读:


4. 可核验结论与数据(含一条"视频没说清"的勘误)

视频说法 核查结果 来源
Mem0 "P95 延迟 1.4 秒" 绝对值未核实。Mem0 论文摘要只给出相对值:p95 延迟比全上下文方案低 91%,token 成本省 90%+。1.44s / 17.12s 这类具体数字我在论文摘要里没看到,故不采用 [1]
"多跳推理测试里 Zep 63.8%,Mem0 49%,差 15 个百分点" 数字能对上,但场景表述有误:出处把 49.0% / 63.8% 标为 LongMemEval 整体得分(GPT-4o),不是"多跳推理子项"。且该页是竞品对比页,引用一篇 arXiv 论文(我未打开原文),属二手引用 [5]
Letta 团队做过测试,博客标题大意是"文件系统就够了" 标题实为 Benchmarking AI Agent Memory: Is a Filesystem All You Need?;结论是"agent 能力比检索机制更重要",限定在 LoCoMo 检索基准上,不是通用结论 [2]
Letta 三层记忆:核心/回忆/档案 与架构描述一致(core / recall / archival),且 core 常驻上下文、archival 靠向量检索、recall 是历史消息 [2][6]
Letta "procedural memory" 让 agent 重写系统提示词 UNVERIFIED(见 2.3/3 节说明) —
Claude Code 用 markdown + front matter 索引,无向量库、无图谱 大体成立,细节需修正:CLAUDE.md + @ 导入 + .claude/rules/ 的 paths frontmatter;auto memory 用 MEMORY.md 做索引 + 每条记忆一个文件 [3]
用图数据库 Neo4j 或 Kùzu Kùzu 仓库已于 2025-10-10 被作者归档为只读,官方扩展服务器下线,老用户需升级到 0.11.3(预装 algo/fts/json/vector 四个扩展)或自建扩展服务器 [4]
Zep 每条记忆带时间窗口、过期标记不删除 与 Graphiti 边级有效性窗口(valid_from / valid_to / invalid_at)一致(二手来源) [5]

关于生态现状的两条重要补全(视频没讲):

  1. Kùzu 已不再演进。视频把 Kùzu 当作"跑图数据库"的轻量选项推荐,但该仓库页面明确写着"Kuzu is working on something new",旧版本代码仍可用,扩展生态则要自行接管[4]。推断:如果按视频建议"先上图谱、就用 Kùzu",今天会踩到一个"选了一个进入只读状态的依赖"的坑——这恰好是视频自己反对的"没查清生态就选型"。搜索结果显示多家媒体(BetaKit、滑铁卢大学官网、heise、MacRumors)报道 Apple 收购 Kùzu,但我未打开这些页面正文,故不断言收购细节,仅记为待核线索[7]。
  2. 基准数字本身有争议,选型时不应作为唯一依据。Letta 博客记录了一段公开分歧:Mem0 发表过在 LoCoMo 上"运行 MemGPT"的结果,而 MemGPT/Letta 团队表示无法找到把 LoCoMo 数据灌进 MemGPT 的可行方式,且 Mem0 未回应澄清请求、也未提供修改版实现[2]。此外我打开的一篇对比页自报其自家产品在 LongMemEval 上 94.6%,同时给出 Mem0 49.0%、Zep 63.8%[5]——同一基准上出现 49 分与 94 分的自报数字,本身就说明"这些分数不可跨页比较"。任何厂商页面上的记忆基准分数,都应视为营销材料而非评测结论。

5. 适用场景与局限

这个四问框架适合:为单个 LLM 应用做记忆选型的早期决策;给团队做技术评审时的提问清单;判断"要不要引入向量库/图数据库"的取舍讨论。它的最大优点是把"选框架"的问题倒转成"定义数据与访问模式",这一步确实能省掉大量无谓的框架对比。

它没覆盖的前提(读者需要自己补):


6. 值不值得看:分段指南

段落(按视频推进顺序) 建议
开头"先别选框架"的类比(数据库 vs JSON 文件) 可看,1 分钟,类比恰当
四个问题的逐个展开 最值得看的部分。尤其"记给谁"里的第三种(agent 自身经验)和"记什么"的四分类,是视频的原创增量
"记多久" 值得看,但只记住"过期信息要标记失效而非堆积"这个原则即可;Zep 的实现细节看第 3 节更准
"怎么取"三层(精确/向量/多跳) 看,多跳那个例子讲得很清楚,是全场最直观的一段
逐个介绍 Mem0 / Zep / Letta / Claude Code 可快进。是对官方文档的二手概括,且 Letta/Claude Code 两处描述不精确(见第 4 节表格)。想了解直接读官方文档更快
数字部分(1.4 秒、63.8% vs 49%) 不建议当结论。前者核不到绝对值,后者场景被说错、且来源是厂商对比页
结尾"从最轻方案起步、遇瓶颈再升级" 可看,这是它最实用的建议,且与 Letta 的实验结论方向一致

一句话总结:把这条视频当成"选型前的提问清单"来看,7 分钟不亏;当成"框架横评"来看,会拿到几处不准确的二手信息——尤其别把它的数字和 Claude Code 的机制描述直接引用给同事。


参考来源

抓取失败记录:https://github.com/letta-ai/skills/blob/HEAD/letta/letta-api-client/memory-architecture.md (HTTP 429,未能核验 Letta 对 procedural memory 的官方定义,故该项标注 UNVERIFIED)。

本文标注约定:无标注者为视频中明确陈述(视频事实);"[n] + 已打开来源"为外部参考;标"推断"为由已核事实推出的个人判断;标 UNVERIFIED 者为未能用权威来源证实、且不应作为结论使用的说法。