Paper

Mem++ 论文速读:组织级 Agent 记忆为什么应该停止在写入时压缩

DOC
N°762
DATE
Oct 5, 2026
READ
4 min read
TAGS
Mem++, Agent记忆, RAG, 长上下文, arXiv

10 月 1 日挂上 arXiv 的这篇 Mem++(编号 2610.02002),来自一个横跨高校与工业界的七人团队。它瞄准的场景叫「组织级 Agent」:一个在企业里干了几个月的助手,需要处理大量被反复修订的决策文档。论文的核心论点只有一句话,但这句话足以动摇当前几乎所有 Agent 记忆系统的设计假设——在写入时压缩记忆,是一个根本性的错误。

问题:决策会变,而你的记忆库把旧版本扔了

先看一个具体场景。公司 3 月发文规定「供应商付款审批限额 5000 美元」,7 月又发文调整为「10000 美元」。现在你问 Agent:「6 月 15 日那天,超过 8000 美元的付款走什么流程?」

正确答案需要两步:先确定 6 月 15 日生效的是哪个版本的规则(3 月版),再基于那个版本回答。这在人类的文档管理里叫「按时间点查询」,数据库领域叫时态查询。

而当前主流的记忆系统是怎么处理的?论文把它们的通病归纳为「写入时蒸馏」:文档进来时,先用 LLM 抽取事实、生成笔记摘要,或者转成知识图谱的边。这些方法有个致命的共同点——它们在任何问题被提出之前,就预先决定了这个记忆库将来能回答什么。7 月的新文档一进来,3 月版的「5000 美元」要么被覆盖,要么被摘要稀释成一个没有时间维度的模糊条目。时间维度被压缩过程系统性抹掉了。

方案:把压缩从写入端挪到读取端

Mem++ 的框架由三个设计决策构成,每一个都针锋相对。

第一,整篇存,不蒸馏。 每份文档带着日期和作者原样入库,不做摘要、不抽事实、不建图谱。写入路径上没有任何生成模型调用,这意味着零幻觉、零蒸馏成本、写入延迟趋近于零。

第二,读取时按时间点选档。 收到问题后,系统先解析问题所指的时间点,只检索日期不晚于该时间点的文档。「6 月的问题」只看 6 月之前的版本,「现在的问题」才看全部。这一步是 Mem++ 与普通 RAG 的本质区别:普通 RAG 会把 7 月的新规则一起捞出来污染答案。对组织场景来说,这个时间点过滤还有一个隐含收益——合规审计要求你能够证明「当时依据的是什么」,只有保留版本的架构才答得出这个问题。

第三,词法与语义双路融合。 因为库里存的是原始文档而非精炼摘要,单靠向量相似度容易漏掉术语精确匹配,单靠关键词又抓不住同义改写。Mem++ 在读取时融合词法排序与语义排序,把「选哪个版本、取哪几段」的判断交给最终作答的模型。

一句话总结这个哲学:不确定未来会被问什么,那就什么都别删。压缩的成本不应该花在写入时(那时你不知道要保留什么),而应该花在读取时(那时你已经知道问题是什么)。

实验:三个基准,三张成绩单

论文的评测覆盖组织决策专用基准 OrgMemBench,以及两个公开长记忆基准 LoCoMo 和 LongMemEval-S。三个关键数字:

  • OrgMemBench:跨两个作答模型,Mem++ 超过最强的记忆系统基线 8.0 到 13.1 分。这个幅度在记忆系统对比里是罕见的大差距,因为基线们面对的正是它们设计上最不利的场景——版本随时间演化。
  • 对 RAG 的胜利:用 gpt-4.1-mini 作答时,Mem++ 总分高于朴素 RAG 2.6 分。值得注意的是这恰好说明「原样存」并不天然赢——朴素 RAG 也存原文,但它缺时间点过滤和融合排序,在版本冲突场景下会把新旧规则一起喂给模型。
  • 公开基准不偏科:LoCoMo 上拿下最佳平均 LLM 判官分;LongMemEval-S 上排名第二,输给的正是它自己的实体图谱变体——团队诚实地展示了一个混合路线(原文为主、图谱为辅)可能更优。

工程视角:什么时候该用它

Mem++ 的适用边界其实很清晰。它的三个前提是:文档有可靠的时间戳;修订以「新文档」而非「改旧文档」的形式发生;查询带有时间维度或版本敏感性。会议纪要、政策文档、合同修订、工单记录、合规审计——这些场景全部命中。

反过来说,如果你的记忆内容是用户偏好、闲聊摘要这类没有严格版本语义的数据,Mem++ 的收益会退化为普通 RAG。另外,原始文档全量存储对检索层要求更高:语料规模上去之后,双路融合加上时间过滤的查询延迟需要专门优化,论文没有给出大规模语料下的性能曲线,这是它留给工程界的一道 open question。

一个值得玩味的行业回声

有意思的是,就在这篇论文发布前后,HN 上一篇 342 分的热帖主张「Agent 需要的不是记忆,而是文档」。两者从相反的出发点走向了同一个结论:长期记忆的最好载体是那份未被压缩的原始记录。Mem++ 的贡献在于把这个直觉变成了可复现的基准数字——保留全部版本加上时间点查询,比任何聪明的蒸馏管线都多拿 8 分以上。

对正在给企业 Agent 选型记忆方案的人来说,这篇论文的实用建议浓缩成一句:先问你的记忆系统能不能回答「这个政策上个月是什么」,不能的话,重新考虑那层写入时压缩。

Frequently asked questions

Mem++ 解决的核心问题是什么?
组织里的决策会随时间被修订,而修订总是以新文档的形式出现而不是改旧文档。回答「X 政策在某年某月是什么」需要知道当时生效的是哪个版本。现有记忆系统在写入时把文档蒸馏成事实或图谱,旧版本被覆盖,时间维度被抹掉了。Mem++ 保留全部版本,把「哪个版本在哪个时间有效」的判断留给回答模型。
「写入时不调用生成模型」有什么好处?
三重好处:其一,写入成本极低,不再需要为每篇文档付一次 LLM 调用费;其二,不引入幻觉,蒸馏过程本身就是信息丢失和扭曲的来源;其三,写入延迟趋近于零,文档产生即可检索。代价是读取时要处理更多原始文本,但这正是 Mem++ 用排序融合来解决的。
Mem++ 在实验中表现如何?
在 OrgMemBench 上,Mem++ 跨两个作答模型超过最强记忆系统基线 8.0 到 13.1 分;使用 gpt-4.1-mini 作答时取得最佳总分,比 RAG 高 2.6 分。在 LoCoMo 长对话基准上拿下最佳平均 LLM 判官分,在 LongMemEval-S 上排名第二,仅次于它自己的实体图谱变体。评测代码已在 GitHub 开源。
这和上周很火的「Agent 不需要记忆,需要文档」论点矛盾吗?
表面上相反,底层一致。那篇 HN 热帖主张与其让 Agent 记住东西,不如维护好可检索的文档。Mem++ 的立场更精确:文档本身就是最好的记忆介质,问题只出在「往里加了一层有损压缩」。两者共同反对的都是写入时蒸馏,分歧只在压缩是提前删掉还是根本不做。
工程上落地 Mem++ 需要改造什么?
最小改造是把记忆库从「抽取后的事实库」换回「带元数据的原始文档库」:每条记录带上日期和作者字段。检索层做两件事:按问题中的时间点过滤出当时有效的文档集合,再做词法加语义的双路排序融合。如果你的场景有明确的文档时间戳(会议纪要、政策文档、工单),改造成本相当低。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.