Mem0 本地 FAISS 适配器缺陷:拒绝更新后旧记忆已丢失
izgorodin · reddit · 2026-11-04
作者分析 Mem0 本地 FAISS 适配器的一个工程缺陷:拒绝一次错误的记忆更新,并不等于旧记忆还在。
- 问题:SDK 以 512 维 embedder 重新打开一个 1024 维 collection。更新记忆时确实报错了,但之后读取原记录却返回空——因为适配器的更新顺序是「先 delete 并保存,再 insert 替换」,删除发生在校验替换向量之前,异常抛出时旧记录已被删掉。
- 补丁一(10月31日报告后):在删除前先校验数值转换和维度,能挡住非法输入,但插入/保存仍可能在之后失败。
- 补丁二(11月3日跟进):在克隆索引上准备好替换、保存后再发布新内存状态,并为 FAISS 索引与 JSON 元数据对添加回滚日志,中断后重开可恢复。两个补丁均在等 issue 接受,未合并。
- 作者建议的回归测试:保存已知记录→尝试非法替换→立即检查并在重开后再次检查旧内容是否完好,另加一个合法更新对照组——只断言「非法调用抛异常」会漏掉它留下的状态。
- 边界说明:SQLite history 保留了原始 ADD 事件,并非所有副本都不可恢复;问题仅限本地 FAISS 适配器,不涉及 Mem0 Cloud。作者注明这是基于公开报告与源码的静态分析(非实测),补丁由 AI agent 实现并通过 58 项自动化测试。
「编程与Agent」频道最新
- 液态玻璃 UI 拆成 7 层复合效果,作者公开全套参数与 Prompt — floguo · 2026-11-04
- three.js 作者 mrdoob 用 Codex 造出 Codevember 交互作品 Tangle — AI_Andrew · 2026-11-04
- 开发者免费开放 Lovable 设计 Skill,含交互展示站 — damienghader · 2026-11-04
- Cyware CTO:Agentic AI 威胁响应需配确定性护栏防误伤业务系统 — TechNadu · 2026-11-04
- CrowdStrike 推出 AI Agent「杀死开关」,可一键切断失控智能体 — pswider · 2026-11-04
- Claude Code 听会议实时转写,通话未结束就把客户 App 改好了 — curious_vii · 2026-11-04