memU 深度评测:1.4 万 Star 的跨助手记忆系统,907 条测试只挂 1 条,每次检索都默认外发上报

你大概换过不止一个编码助手。每换一个,它都要重新认识你一遍:你的项目怎么搭的、部署前要跑什么、上次那个坑为什么踩了两次。你把同样的话说第三遍的时候,会开始怀疑”记忆”这件事到底该由谁来做。

memU 是冲着这件事来的。它的口号很直白:记忆跟着你走,不跟着工具走。在 Claude Code 里教过它的东西,换到 Codex、Cursor 里还能问出来。

这句话值 1.4 万个星。我把它从 GitHub 上拉下来,在隔离沙箱里装了依赖、跑了全部测试、自己写了探针去戳它的写入和检索。结论分两半:地基比同类扎实,默认行为却有三处没写进说明书的坑。

先说扎实的那半。907 个测试通过,只有 1 个挂在多进程抢锁上,而那条单跑必过。我故意让”做向量计算的服务”整个挂掉,再让它提交一次记忆——库里干干净净,一条半截记录都没有。

坑的那半:它默认把每次检索都往自家服务器报一次。装完就用的话,你不会在任何一份文档里看到这句话。

一、它到底怎么”记住”你

大多数 Agent 记忆产品做的是同一件事:把对话切碎,塞进向量库,需要时捞出来。memU 换了个更土但更好查的做法——记忆存成一堆 Markdown 文件。

你在会话里干过什么,它攒成一份份带名字的笔记:这个项目怎么部署、这个用户喝什么咖啡、某个报错最后是怎么解决的。笔记有正文有摘要,还能被别的工具直接打开看。它自己的定位是”个人记忆,存成知识库”。

整套东西靠两条缝挂到你的助手身上:

缝 干什么 在哪生效
记录 定时把新的会话日志切片,让 AI 自己总结成笔记存进去 一个后台任务,跟着助手的钩子跑
注入 在你的指令文件里塞一小段规矩,要求它每次回答前先查一次记忆 你原本就有的那份助手说明书

第二条缝值得单说一句。它往说明书里写的内容被一对标记包着,改的时候只替换标记里的部分——我用一份自己写的说明书试过,原文一个字没动,memU 那段规规矩矩追加在后面。这点比不少同类工具体面,它们是真敢整份覆盖。

还有一个反直觉的设计:它的检索不调用大模型。查询先把你的话转成一串数字(这一步叫算向量,就是让机器能算两句话有多像),然后在”片段、文件、资源”三层里按相似度排序,谁近谁靠前。没有”要不要深挖”的二次判断,也没有总结改写。好处是便宜、快、结果可预测;代价是它不会替你判断这条记忆到底该不该用。

二、我跑出来的数字

沙箱是独立的命名空间,宿主机的密钥、配置、家目录统统看不见。克隆、装依赖、跑测试全程在里面完成,跑完就删。

先说测试。仓库里有 45 个测试文件、599 个测试函数,我完整跑了两轮:

轮次 通过 失败 跳过 耗时
第一轮 907 1 9 50.4 秒
第二轮 907 1 9 56.5 秒
失败项单跑(跑了 4 次) 全部通过 0 0 约 11.5 秒

失败的永远是同一条:四个进程同时去抢一把文件锁,谁该拿到、谁该退出。测试给每个子进程留了 10 秒,我这台评测机只有一个核,四个 Python 解释器排队起床就超时了。把它单独拉出来跑,四次全过。

这个数字意味着什么:不是产品有 bug,是它的测试对机器性能有隐性要求。作者显然在更宽的机器上开发。你在低配机器或 CI 里跑,可能会看到一条与你代码无关的红叉。

再说写入的可靠性,这是我最想验证的一点。它的说明书写着:提交前先把所有向量算完,算完再落库,所以”要么全写进去,要么一条不写”。

我照着戳了一下:把算向量的服务换成一个一调用就抛错的假货,然后提交三份笔记和一个资源。

结果是抛错,库里 0 份笔记、0 个资源。换回正常的服务再查,还是空的。

没有半截数据。这条承诺是真的。对一个记忆系统来说这比什么都重要——你没法承受”记忆存了一半”,那比没存更糟糕,因为下次检索会捞到残缺的上下文然后一本正经地答错。

第三组我自己写探针,验证检索是不是真能用。塞进去三份笔记:一份部署手册、一份口味偏好、一份数据库调优步骤,然后用三句人话去问:

  • 问”部署怎么回滚”,第一名命中的是手册里”回滚”那一段;
  • 问”这人喝什么”,第一名跳到口味笔记;
  • 问”怎么调数据库”,第一名对上调优步骤,而且它认得跨层排序。

三问三中,排序没串。但也仅止于此:它给你的是一段原文摘录加上来源说明,不是一个替你组织好的答案。整理的工作还在调用它的那个 AI 身上。

三、三个没写进说明书的坑

坑一:默认把每次检索都报出去

装完、配置好、开始用,你就已经在往外发数据了。

我把它默认配置下的”上报安装完成”这条动作跑了一遍,它的上报队列是空的——因为信封已经直接发出去了,没留在本地。我换了个连不通的地址再看,这才截下实体,字段长这样:

事件名是安装成功,带一个长期不变的客户端身份编号,还带着你的助手平台、操作系统、本地还是云端部署这三个环境字段。内容是白名单,只有计数和耗时,不含你记忆里的任何文字。

这算克制。计数不外泄内容,这条它守住了。

问题不在这里,在于你没有被告知。仓库里的说明文档、给 AI 看的安装指引,全文搜”遥测”和”上报”两个词,零命中。隐私这件事它写进了一份开发记录(编号 16 的决策文档),写得非常细,细到解释为什么某个字段宁可缺失也不许填假值。可这份文档在 docs/adr 目录深处,普通用户不会去翻。

我实测了三个开关,都能关掉:

想要的效果 怎么设 依据
整体关掉上报 环境变量设为 0 实测生效,装完不再产生任何外发
跟随跨工具通用约定 设标准的不追踪开关 代码里显式读这个变量
只改上报地址 指向你自己的地址 实测可替换,方便内网审计

顺带一个细节:上报失败时会攒在本地重试,攒到上限就丢弃。所以断网环境不会卡死,也不会无限膨胀。

坑二:不给它一个库路径,它直接罢工

第一次跑诊断,它没给我任何检查结果,只吐了一行错误就退出,退出码 1。原话大意是:没设库路径,拒绝回退到默认值,因为”记录和检索必须用同一个库,否则检索什么都找不到”。

这个态度我赞成。宁可当场报错,也不要悄悄建两个库让你以为记忆丢了。但它把这一步完全交给安装指引,你手动上手会撞墙。

同一个门槛还有第二道:没有算向量服务的密钥,它连一条记忆都存不进去。我用一个假密钥试了检索,直接返回 401。也就是说这玩意儿不是装完就能离线跑的玩具,它在本地存数据,但每次写入和每次检索都要调一次外部服务。想完全私有,你得自己接一个本地模型。

坑三:装进 Codex 要先交出全权限

它的安装文档里有一节叫”执行权限”,要求你在安装前确认当前会话是完全访问模式,还给了绕过沙箱和审批的命令行参数,装完再手动改回来。

理由能理解——安装要改配置、注册后台任务、写入指令文件,沙箱里确实做不成。但这句话的实际含义是:一个以”记住你所有工作细节”为卖点的工具,要求你先把安全边界拆掉再装它。你在别处看到过这句话,通常不会是好消息。

我的建议很简单:装的时候用一次性的干净环境,装完立刻恢复权限,别在主力机的主力会话里做这件事。

四、和同类比,它站在哪

Agent 记忆这个赛道今年挤得很。三周前我评过 agentmemory,官方号称答案命中 95.2%,我换成”该找的条目是否都在”这个口径只有 81.8%;更早的 Hindsight 靠两千多条行为快照证明自己零漂移;还有 Mnemosyne 那种三十几星但自曝缺陷的。memU 的差异点不在准确率宣传——它压根没给这类数字——而在记忆是你能直接打开看的文件,以及一套跨助手的适配层,同一个库能给九种助手用。

适合谁:同时在两三个编码助手里切换、又不放心把记忆锁在某一家云服务里的人。它有本地库、有 Apache 2.0 的许可证、有可审计的上报开关,这三点凑齐的不多。

不适合谁:完全离线的人(算向量要连外网)、怕麻烦的人(库路径和密钥都得自己配)、以及任何期待”装完就自动变聪明”的人——它的检索只负责把相关原文递到 AI 手上,整理和判断还在 AI 那边。

还有一个很小的不一致我记一笔:仓库根目录的许可证文件是 Apache 2.0,但 GitHub 的接口把它识别成”其他”,打包配置里那行许可证声明被注释掉了,安装后查包信息,许可证一栏是空的。法律上没问题,工程上是个疏忽。

五、结论

值得放进观察清单,但别当成装完就忘的基础设施。

它的工程底子是同类里靠前的:写入要么全成要么全不成,这点我用假故障验过;测试规模接近一千条,跑两轮结果一致;注入别人说明书时懂得只动自己那一段。这些都是真功夫。

但它有三件事需要你主动处理:默认外发的上报要你自己关,库路径和算向量的密钥要你自己配,装进某些助手前要临时降低安全等级。说明书对这三件事的交代都不够。

一个记忆系统的价值,取决于你敢不敢把真实的工作细节交给它。在这三件事被写进首页之前,我给它的分数是能用,但需要你盯着。

评测环境:Debian 系 Linux,单核,沙箱隔离,Python 3.13,仓库快照 2026-10-28。文中所有数字均为本机实测,复现脚本留在评测目录。

相关阅读:

  • [context-mode 深度评测:3.1 万 Star 的上下文插件省 98% 是真的,19 条泄洪命令实测 16 条放行](https://www.geeyo.com/context-mode-%e6%b7%b1%e5%ba%a6%e8%af%84%e6%b5%8b%ef%bc%9a3-1-%e4%b8%87-star-%e7%9a%84%e4%b8%8a%e4%b8%8b%e6%96%87%e6%8f%92%e4%bb%b6%e7%9c%81-98-%e6%98%af%e7%9c%9f%e7%9a%84%ef%bc%8c19-%e6%9d%a1/

发表评论