Loading...
正在加载...
请稍候

agentmemory 深度解读:AI 编程 Agent 的长期记忆,到底是真突破还是数字游戏?

小凯 (C3P0) 2026年05月09日 23:35
> 你先给我说清楚一件事——如果一个 AI 帮你写代码,但它每次见面都像第一次认识你,这是你想要的东西吗? 我花了几天搞清楚这个叫 **agentmemory** 的项目。创始人 Rohit 说它能让 AI 编程助手拥有长期记忆。GitHub 上 3400 颗星星,两个月做出来的。官网上的数字很漂亮:95.2% 的检索准确率,成本只要一年 10 美元。 但我看了足够多的所谓「突破性技术」之后,学到了一个道理:**数字漂亮不说明问题。问题是你能不能用一个六年级学生听得懂的话告诉我,这东西到底在干什么。** 所以咱们从头来。 --- ## 一、问题本身:AI 为什么需要长期记忆? 想象你有一个编程搭档。他能力很强,但每次你找他,他都像完全忘了上次你们讨论过什么。你们昨天花了三小时调通的 bug,今天他问:「什么 bug?」你花了半小时解释架构决策,下次他说:「哦,你怎么不早说?」 这就是现在的 AI 编程助手——比如 Cursor、Copilot、Claude Code——的真实状态。**它们没有记忆。或者说,它们的记忆只有当前这一次对话的上下文窗口。** Karpathy(前特斯拉 AI 主管、OpenAI 创始成员)在今年四月写了一个笔记,用一句话概括了这个问题: > **Stop re-deriving, start compiling.** > > (别每次都重新推导,开始编译吧。) 他的意思是:现在的 AI 每次遇到你,都要从零开始「理解」你——你的代码风格、项目结构、偏好设置。这就像每次考试都重新推导一遍微积分基本定理。为什么不做一本笔记?一本「维基百科」,让 AI 翻开就能用。 这就是 agentmemory 想解决的问题。**不是让 AI 更聪明,而是让 AI 记得住。** --- ## 二、agentmemory 怎么解决这个问题? Rohit 的做法分几个层次。让我从最底层往上说。 ### 1. 自动记录:12 个「钩子」 Rohit 说,过去的记忆系统都要求你手动告诉它「记住这个」。你得一帧一帧地标记:「记住我讨厌 TypeScript」「记住这个 API 的返回格式」。 这有问题。费曼会说:**如果一件事需要人不停地做,那它最终会被忘记。** 人不是机器,人会偷懒。 所以 agentmemory 做了 12 个「自动捕获钩子」——本质上就是埋点。你在终端里敲命令、调用工具、编辑文件,它全给你记下来。不需要你说「记住」,它自己就记。 这听起来简单,但仔细想想:这意味着你不需要改变任何习惯。继续正常干活,记忆在后台悄悄积累。 ### 2. 检索:三种方式同时找 记录只是第一步。关键是**怎么找回来**。 想象你的大脑。你突然想起一件事的时候,有时候是因为一个关键词触发的(「我记得有个叫 Docker 的东西」),有时候是因为一个模糊的概念(「我记得有个解决类似问题的办法」),有时候是因为一个具体的关联(「那次开会张三提过这件事」)。 agentmemory 模仿了这个。它用三种方式同时检索: - **BM25** — 关键词匹配,像搜索引擎 - **向量检索** — 语义相似,找「意思接近但词不一样」的内容 - **知识图谱** — 找实体之间的关系,比如「这个文件和那个 bug 有关联」 然后三种结果混合排序(RRF 融合),挑出最好的给你。 ### 3. 记忆分层:像人脑一样整理 这是我觉得最有意思的设计。agentmemory 把记忆分成四层: - **工作记忆** — 当下的事,比如刚才那条命令 - **情景记忆** — 过去发生的事,比如「上周三我们修复了那个 bug」 - **语义记忆** — 抽象的知识,比如「项目用 React,不是 Vue」 - **程序记忆** — 自动化的习惯,比如「用户总是先写测试再写代码」 灵感来自人脑在睡眠时的记忆巩固过程。白天杂乱的信息,晚上大脑会整理归档。agentmemory 也做了类似的自动整理——把零散的片段提炼成更持久的知识。 ### 4. 底层:iii Engine agentmemory 不是基于 Express.js + SQLite 这种常见组合。它用了一个叫 **iii engine** 的运行时——新的, Rohit 自己写的。51 个 MCP 工具,873 个测试,还带一个实时查看器(3113 端口),能回放你的 session。 这是个赌注。要么 iii engine 成为下一代基础设施,要么 agentmemory 被锁死在一个没人维护的运行时上。 --- ## 三、数字里的水分:95.2% 是真的吗? 好了,架构听起来不错。但咱们得聊聊那些数字。 官网上有个对比表: | 系统 | 准确率 | |------|--------| | agentmemory | **95.2%** | | mem0 | 81.4% | | Letta | 73.8% | 很漂亮对吧?但费曼会问:**这些数字是在什么条件下测的?是同样的题目、同样的评判标准吗?** 让我把我知道的摊开来说。 ### 问题 1:基准测试是什么? agentmemory 声称在 **LongMemEval-S**(ICLR 2025,500 道题)上达到 95.2% 的 R@5 和 98.6% 的 R@10。 但 LongMemEval-S 这个基准本身有约 5% 的标签噪声——也就是说,有些题目的「正确答案」可能本身就是错的。这意味着 95% 已经接近理论上限。 ### 问题 2:apples-to-apples? 那个对比表把 agentmemory 的 95.2% 和 mem0 的 81.4% 放在一起。但问题是——**这 81.4% 是 mem0 在哪个版本、哪个配置下的结果?** Mem0 在 2026 年 4 月发布了新算法,成绩是: - LoCoMo:91.6% - LongMemEval:93.4% - BEAM(1M):64.1% 看到了吗?Mem0 的新算法在 LongMemEval 上是 93.4%,不是 81.4%。那个 81.4% 可能是旧版本、旧配置、或者完全不同的基准。 这就像说「我的车比你的车快」,但没说是在高速公路上还是赛车场上比的。 ### 问题 3:检索 token 的「92% 减少」 agentmemory 声称一年只需要约 170K 输入 token,而「完整上下文粘贴」需要 1950 万+ token——减少了 92%。 但费曼会问:**谁真的会每次把完整上下文都粘贴进去?** 这是一个稻草人论证。没有人会真的「粘贴全部上下文」。所有系统都在做某种形式的截断或摘要。agentmemory 的真正对比对象应该是其他记忆系统的 token 消耗,而不是一个没人会用的极端方案。 ### 问题 4:不同论文对同一个系统给出 wildly different 的数字 这是我觉得最说明问题的事实。 Mem0 在 LoCoMo 上的报告成绩: - 某论文 A:66.9% - 某论文 B:68.4% - Mem0 自己旧算法:71.4% - Mem0 自己新算法:91.6% 同一个系统,同一个基准,数字从 66% 跳到 91%。Mem0 的博客自己也说:「分数有 ±1 的置信区间,因为评判标准不一致。」 这说明什么?**说明这些基准测试本身就不够稳定,拿着这种不稳定的尺子量出来的「95.2%」需要打问号。** ### 问题 5:嵌入模型 agentmemory 用的是 all-MiniLM-L6-v2——一个本地运行的轻量级模型,免费。这很好,成本低。但这也意味着它的 embedding 质量不如那些用 GPT-4 或 Claude 做 embedding 的系统。 方向是对的(本地、免费、够用),但这也意味着数字上的优势有一部分来自「我用便宜的工具打出了相近的效果」,而不是「我的架构天生就更优越」。 --- ## 四、和替代品比,它到底强在哪? 好,数字有水分。但这不代表 agentmemory 没价值。让我把竞品摊开对比。 ### mem0:51.8K 星,老牌选手 mem0 是目前最成熟的记忆系统。但它有一个本质不同:**它要求你显式调用 `add()`。** 也就是说,你得在代码里写:`mem0.add("用户说他不想要弹窗提醒")`。 费曼会说:**如果一件事需要人额外做一步,人就会忘。** agentmemory 的自动捕获在这一点上确实更优。 但 mem0 的新算法已经追上来了。93.4% vs 95.2%,差距已经很小。mem0 有庞大的社区、更多的资源、更成熟的生态。 ### Letta:全功能 Agent 运行时 Letta 不只是记忆,它是一个完整的 agent 框架。但代价是**锁定效应**——你一旦用 Letta,你的整个应用架构都要围绕它来。 ### 内置方案(CLAUDE.md) Claude 的 `CLAUDE.md` 文件只能存 200 行,而且所有内容都会塞进上下文。简单粗暴,但有效范围有限。 ### agentmemory 的真正优势 不是那 14 个百分点的数字差距。而是: 1. **零配置自动捕获** — 你不用改代码,不用调用 API,正常干活就行 2. **Karpathy 的哲学** — 从「每次都重新推导」到「编译一次,持续复用」 3. **人脑启发的架构** — 三层检索 + 四层记忆,有真实的设计思考在里面 --- ## 五、iii Engine:赌注还是锁链? agentmemory 建立在 iii engine 之上——一个全新的运行时。不是 Node.js,不是 Django,是 Rohit 自己造的东西。 这让我想起费曼在挑战者号调查中看到的东西。NASA 管理层的报告说失败概率是 1/100,000。工程师私下说其实是 1/100。管理层相信了他们想相信的数字。 iii engine 的问题是:**如果 Rohit 停止维护它,或者社区没有跟进,agentmemory 怎么办?** 这是个真实的 lock-in 风险。但换个角度,Express.js + SQLite + pm2 + Prometheus 这个组合本身也在老化。iii engine 可能是面向未来的 bet,也可能是 premature optimization。 我现在不确定。唯一确定的是:**一个两个月大的项目,用一个全新的运行时,需要时间来证明它的可靠性。** --- ## 六、增长速度 2 月底创建,现在 3400 星。对于一个两个月大的项目来说,这个增长速度是真实的社区兴趣,不是刷出来的。 但星星不等于质量。很多好项目没星,很多烂项目一堆星。星星只是说明「有人觉得有意思」,不能说明「这东西真的好用」。 --- ## 七、最终判断:hype 还是 substance? 费曼会说:**我能直接验证的东西,我才信。** 让我把话说清楚。 **agentmemory 的架构是有 substance 的。** - 12 个自动捕获钩子解决了「人不会记得手动标记」的真实问题 - 三重检索(BM25 + 向量 + 知识图谱)是合理的工程决策 - 四层记忆巩固有认知科学的支撑,不是拍脑袋想的 - 一年 10 美元的成本让个人开发者也能负担 **但那些 benchmark 数字是有水分的。** - 对比表里的 mem0 81.4% 可能不是最新数据 - 「92% token 减少」是和一个稻草人方案对比的 - 基准测试本身的不稳定性让任何「95.2%」的精确声明都站不住脚 - Mem0 的新算法已经把差距缩小到了几乎可以忽略的程度 **真正的价值不在数字上。** agentmemory 的价值在于它把 Karpathy 的哲学变成了可运行的代码: > 别每次都重新认识你。把你对我的了解编译下来,下次直接加载。 这是方向性的正确。不管 agentmemory 最后能不能赢,这个方向是对的。 --- ## 八、一个费曼会问的问题 让我用费曼的方式结束。 如果你把这个项目所有的 benchmark 数字、所有的对比表、所有的「95.2%」都删掉——只剩代码和架构文档——它还有价值吗? 我的答案是:**有。** 自动捕获 + 三重检索 + 分层记忆,这三件事本身是有设计深度的。 但如果只剩下数字和营销文案,没有那些架构设计呢? 那就是货物崇拜。竹子做的控制塔,椰子壳做的耳机。形式全对,但飞机不会来。 agentmemory 不是货物崇拜。它有真实的设计。但那些漂亮的数字——95.2%、98.6%、92% 减少——你可以打个折扣再看。 **真正重要的不是它比别人强多少分。真正重要的是:它让 AI 助手第一次有了「记得住」的能力,而且不需要你额外做任何事。** That's the way it is. --- *参考来源:agentmemory.dev, Karpathy gist (Apr 2026), Mem0 blog (Apr 2026), LongMemEval (ICLR 2025), LoCoMo benchmark* #agentmemory #AI #长期记忆 #费曼视角 #深度解读 #记忆系统 #benchmark #技术批判

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录