记忆系统论文有个标配动作:把记忆层关掉,跑一遍基准,报一个准确率下降。读者点头,厂商截图,产品页加一行「记忆让准确率提升若干点」。10 月 6 日挂上 arXiv 的一篇论文想给这个动作踩一脚刹车:在独立题目型基准上,这个消融大概率是错的——不是记忆没用,是这个考场根本考不了记忆。

论文题目就很直白:《多智能体 LLM 推理中的持久记忆:花什么钱、买什么、什么时候能看出来》。六位作者,领头和通讯在加州大学洛杉矶分校,另有威斯康星大学与 HCLTech America 的署名,已被 NeurIPS 2026 机器学习 for 系统研讨会收为海报。他们的做法是先把一套真系统跑起来,再亲手拆自己的台。

测试床:一台小盒子加一台大盒子

被测系统叫 CoA-PKV,三层结构。L1 是每次调用用完即弃的 KV 缓存;L2 是 Redis 撑着的键值库,智能体之间传的是类型化通信单元——下游拿到的是上游蒸馏过的状态,不是原始上下文;L3 是向量数据库,兼两职,赛前过滤证据,赛后持久化推理轨迹。控制器六个节点:分解、检索、推理、批判、综合,外加一个独立的答案批判。跑它的硬件很寒酸也很有意味:一台 8GB 的 Jetson Orin Nano Super 跑 llama.cpp 加 2B 小模型,一台 DGX Spark 跑 vLLM 加 35B-A3B——全是边缘设备,没有云端 API。作者说,峰值显存这套论证本来就是为边缘场景立的。

一台 Jetson 加一台 DGX Spark 上的边缘部署实测被测系统 CoA-PKV 三层L1 易失的每次调用 KVL2 Redis 存类型化通信单元L3 向量库:证据过滤 + 轨迹召回消融只动 L3 的读写两个操作,其余逐字节相同峰值 KV 工作集(每查询,MiB)单次直答35.5检索增强35.3分解智能体14.3约降六成;代价是累计流量约 1.6 倍同一篇论文里的两笔账分解这笔:真省了峰值降约 60%,延迟同步下降记忆这笔:没省下准确率多花 0.368 MiB,收益测不出来
图|左边是被测系统的三层结构与消融口径,右边是峰值 KV 的横向对比。底部两笔账分开记:分解的收益与记忆层的零结果,不是一回事。

分解这笔账:真的省了

把长上下文拆给一串智能体分摊,每次调用的活跃工作集就 bounded 住了——总证据可以随便涨,单次调用的峰值 KV 不涨。实测:峰值 KV 每查询 14.3 MiB,对单次直答的 35.5 和检索增强的 35.3,降了约六成;单查询延迟 29 秒,对 67 秒和 52 秒。准确率与检索增强基线打平。代价也摆出来了:累计 KV 流量约 1.6 倍——省的是峰值,费的是总量,这笔交换只在 KV 显存吃紧时才划算。

记忆这笔账:没省下准确率

然后是那记重锤。开启持久召回,峰值缓存多花 0.368 MiB(95% 区间 +0.167 到 +0.590,不含零——成本是真金白银的);准确率变化 +0.015,95% 区间从 -0.011 到 +0.046,跨过零线。论文的说法很讲究:我们不宣称效应为零,我们宣称大于约 0.046 的效应被排除了,点估计和噪声分不开。作者还补了一刀:召回实际能触达的只有 24% 的题目(剥掉模板 boilerplate 后剩 20%);只在能触达的子集里看,效应是 -0.012,区间比总体还宽;触达不到的题目自带对照属性,读数 +0.009,与零相符。

开启持久记忆的准确率变化:+0.015,区间跨零八个受控数据集对、每臂 n=100,按题配对零+0.015-0.011+0.046区间跨零 = 与噪声分不开;论文据此排除大于约 0.046 的效应,而非宣称效应为零走到这个读数之前,作者修掉了四个坑C1 部件没跑记忆层只写不读两臂等于都没开记忆C2 跑次间污染固定种子重跑会检索到自己的旧答案C3 只变了一个量原开关顺带换了执行环境与证据来源C4 效应小于地板复现带正负 0.09,想报的差都比它小
图|上方数轴是核心读数:点估计 +0.015、95% 区间跨过零线。下方四张卡是作者自述的四个测量修正——三个曾夸大收益,一个让效应看似可分辨。

为什么这个零是结构性的

两个属性合力造成这个零。其一,独立题目基准给每道题配好自己的证据,独立评分——第 i 题上学到的东西,对第 j 题没用。其二,正确性强制重置:召回按题目 embedding 检索,固定种子重跑会检索到自己上一轮的结论,要防污染就必须清空痕迹——可清零之后,同条件下的召回只能碰到本次运行里其他不相关题目的轨迹。合起来:这个考场里,记忆层想帮忙也无米下锅。论文的逆命题说得很不客气:在独立题目基准上报出非零记忆效应,是赝品的概率比是真发现大。

四个坑,个个都踩过

这篇论文最值钱的部分,是作者自述走到读数之前修掉的四个坑,每一个都曾让记忆收益虚胖。C1,部件没跑:他们的持久层曾经只写不读——之前每一次记忆消融的两个臂,其实都没开记忆;顺带还抓出 reranker 的 404 被当成「保持原顺序」、一个成本累加器把 38 个公开格子的数字清零。正确的代码,实现了彻底的失效,而且看起来和成功一模一样。C2,跑次间污染:固定种子重跑会捡回自己的旧答案,实测一轮里 100 道题全部已带存储痕迹(2856 道题攒下 48915 条轨迹);在最稠的一份数据集上,六个复跑组的分数随运行顺序严格单调上升,修正后某数据集从 0.2949 掉到 0.2282——往下走的方向,恰恰是从来没人 sanity check 的方向。C3,只变了一个量:他们最初的消融开关,关记忆的同时还换了执行环境、换了证据来源、换了一整套依赖;MMLU-Pro 那一对因此读出 +0.370 的「记忆大胜」,根子不过是一个臂修了解析器另一个没修,统一解析器后只剩 +0.010。C4,效应小于测量地板:组内复现带就有正负 0.09 到 0.10,他们准备报的所有架构对比差,都比这个小。

还有一段警示录值得所有做实验的人读一遍:LongBench 合并集那格曾读出 +0.071 的「显著」记忆收益——拆开看,是一轮服务中断让记忆关闭臂白挂了 17 题。失败题记零分,一场故障就伪造出一份显著。作者没把它混进汇总,还写进了论文。为什么信一份自曝四个 confound 的论文?因为修正把格子往两个方向都推过——两个上调、一个下调、两个改回去。这是测量的签名,不是调参的签名。

放进台谱里看

这篇论文和站内几条线正好咬合。1909 的 Bemula 基准测的是「该忘的时候忘不忘得掉」;1918 的 XferAgent 报的经验转移增益是个位数百分点——当时有人嫌少,现在回看,能在独立题目基准上稳定测出个位数 pp,本身就值得怀疑是否触到了测量地板。商品侧,1860 的 Active Memory 把记忆当卖点,产品叙事与这篇论文的测量结论并不冲突:记忆可能在多会话、重复查询、实体复访的场景里真有用,只是单问题基准给不了它舞台。往前再追一步,1060 给多智能体拆解算过一笔收益数学账,这篇补的是记忆侧的测量账——两笔账合起来,才是「拆解加记忆」这套架构的完整价签。

给从业者留一份即刻可用的清单:消融前先查部件是否真在跑(要计数器,不要日志);跑之前拿评测题问一遍存储,有命中就是污染;两个臂的序列化请求必须只差一个字段;效应大小先和复现带比大小;报数之前先问考场能不能考这门课。代码作者说会随论文开源——到时候,这套检查清单可以直接搬进自家流水线。