EvoMemBench 增益审查图:左侧为论文口径(作者自报),Finding 3 报告 16K 档最佳记忆增益 +14.5 分;中间是预注册探针,只把上下文预算从 16K 放大到 128K,并把 token 按用途拆开;右侧为我方在 Gorilla File System、每格 50 题上的复测,BM25 增益 +4.0 蒸发到 0.0,ACE 增益 +18.0 收窄到 +6.0,ACE 记忆模块占其自身输入的 36.5%,输出约为无记忆基线的 7.4 倍。复合判读 PARTIAL,仅适用于单环境、网关标注端点与单次运行,Finding 5 未测。
在 Gorilla File System 子集上检查记忆增益对上下文预算的依赖,以及记忆模块自身的成本。数值来自一手复测;不裁定论文在其 DeepSeek-V3.2 原口径下的结果。

给 Agent 加记忆的系统越来越多,每个都说自己会越用越聪明。但有一个问题很少被正面回答:上下文窗口也在变大。如果模型一次能读下的东西越来越多,提前存好的记忆还值多少钱?

EvoMemBench 恰好给了这条曲线一个数字。它把 15 种记忆方法放进同一套评测协议,报告说:上下文预算从 16K 放大到 128K,记忆方法相对无记忆基线的最佳增益从 +14.5 分缩到 +8.5 分,而且在 128K 档,已经有记忆方法掉到无记忆基线以下。

我关心的是,这条曲线换一个骨干还成不成立——尤其是换成最便宜的那一档。理由很实际:这种实验的量级(128K 档要一遍遍回放长上下文)用旗舰价根本跑不起,选骨干时先被价格筛掉一轮;而我关心的部署场景里,跑量的主要也是便宜档位。所以我没有复刻论文的全套设置,而是预先注册了一个缩减版问题:在网关能拿到的最便宜的 GPT 档位上、单个执行环境里,增益随预算收窄的方向还在不在?

结论先放这里:方向在。 我跑出的最佳增益从 16K 的 +18.0 分缩到 128K 的 +6.0 分,两种记忆方法同向收窄。但论文里最尖锐的那一幕——记忆在 128K 跌破基线——没有出现:检索记忆的增益只是归零,程序型记忆还留在基线之上。复合判读是 PARTIAL,证据边界见文末。

先把证据等级分清

这篇论文(arXiv:2605.18421,香港科技大学广州等机构)2026 年 5 月发 v1,10 月 30 日更新到 v3,不是一篇新论文。它做的事,是给”Agent 的记性到底帮不帮忙”这个问题立坐标系:一条轴是记忆的作用范围(单个任务之内 / 跨任务),另一条轴是内容类型(知识 / 执行),构成四象限;六个数据集按 Table 2 共 2,954 条评测样本,分别落进四个象限;15 种记忆方法归为六个家族,在统一协议下与长上下文基线对比。有一个条件必须随时带上:论文里所有记忆方法共用同一个骨干 DeepSeek-V3.2,它的排名是这个骨干下的排名,脱离骨干谈排名没有意义。

论文的八条结论里,与本文直接相关的有三条半。长上下文基线依然很强,在知识保持与修订上居首(Finding 1);记忆的瓶颈在修订而非检索,方法们擅长把信息存下来,不擅长在证据变化时改掉旧知识(Finding 2);再深一层,瓶颈是把存下的信息形成可复用的知识,而不只是存得更多(Finding 6);程序型记忆最适配执行类任务(Finding 4);还有难度翻转:易题上记忆是负增益,难题上只有记忆能得分(Finding 5)——这半条我没能测,原因在文末交代。

以上全部是作者自报。我的复测只碰了其中一条:Finding 3 的增益—预算曲线,而且只在一个象限的一个环境里。

我的复测设计:最便宜的骨干,只测一条曲线

这次实验预注册过,设置在开跑前就全部定死,如下。子集取四象限中的 InEp-Exec(同一回合内的执行任务),只跑其中的 Gorilla File System 一个环境——它是一组多轮工具调用任务,任务成功与否由官方 runner 自带的检查器判定,不需要额外裁判。三臂:A0 无记忆基线;A1 是 BM25 检索记忆;A2 是程序型记忆 ACE。两档上下文预算:16K 与 128K。每格 50 条,共 300 个 episode,官方协议参数(函数调用模式、长上下文噪声、记忆作用域)照官方脚本原样。

骨干用第三方 OpenAI 兼容网关上标注为 gpt-6-luna 的端点,全程固定不换。这里有一条身份边界必须先说:标注是网关给的,它实际服务的模型无法从我这一侧独立核验。所以下文所有我方数字,都只对”这个标注端点”成立,是论文 DeepSeek 口径的一个变体口径,不是同一张表。

与论文设置的出入与版本细节,开跑前就写进了实验计划,先交代三件:

  • 样本数:v3 与仓库一致,每环境 50 条。 这篇论文 v1 的 Table 2 曾写每环境 200 条,v3 已改成 50 条,官方仓库实发的也是 50 条,我跑的就是这 50 条。这同时意味着:每环境 50 条就是论文自己的评测规模,后文 ±14 点的统计区间,论文的单环境数字同样背着。
  • 程序型记忆换了实现。 计划里原定 ReasoningBank,但它随仓库发布的实现硬依赖另一家供应商的嵌入密钥,我只有网关这一条接入,于是换成同为程序型家族、且是论文另一头条方法的 ACE。这不是同一个方法,判读时只能按家族方向看,不能按方法对位看。
  • 记忆臂换了一层传输。 作者给记忆方法准备的调用通道是另一家云厂商的批量接口,其 OpenAI 兼容后端又拒绝记忆类型;我在本地工作副本里只替换了传输层,协议、提示、记忆逻辑、截断与评分全部用固定提交的官方代码。顺带交代一处上游自带的不对称:作者的 OpenAI 后端给 A0 臂的调用带了 temperature 1,记忆臂走的路径不传这个参数——我原样保留了它,没有为了对齐去改代码,所以三臂之间除了记忆,还隔着这一层生成参数差异。

结果:收窄复现,跌破没有出现

六格成功率如下(每格 n=50,官方成功判定):

臂16K128K增益(对同档 A0)
A0 无记忆38%(19/50)44%(22/50)—
A1 BM25 检索42%(21/50)44%(22/50)+4.0 → 0.0
A2 ACE 程序型56%(28/50)50%(25/50)+18.0 → +6.0

两种记忆的增益都在预算放大时收窄,最佳增益从 +18.0 缩到 +6.0。论文在 DeepSeek 口径、四个环境上报告的是 +14.5 → +8.5(中间并不单调:64K 档曾低到 +7.8,128K 档又回升到 +8.5)。量级同阶,方向一致——但这两组数字不是同一张表的格子,不能并排比大小。

128K 档的细节值得单独说。论文说这一档已有方法跌破基线;我这里没有。BM25 的增益恰好蒸发到零(44% 对 44%),停在”跌破”的门槛上,没有迈过去;ACE 还在基线之上 6 分。这个结果既不证实也不反驳论文的子句:我只测了 15 种方法里的 2 种、4 个环境里的 1 个,而且选的恰是谱系两端——最简单的检索记忆,与论文执行象限里最强的那一类程序型记忆;论文点名在 128K 跌破的 MemAgent、MemoBrain 都不在其中,所以“没有跌破”有一部分是选择本身决定的。能说的是,在这个子集和这个骨干上,“记忆在 128K 变成负资产”没有发生,发生的只是”便宜的记忆先失效”——检索记忆的增益对预算最敏感,程序型记忆的增益更耐久。把 ACE 那 12 个点的收窄拆开看:一半来自基线自己变强(A0 多对了 3 条任务),另一半来自 ACE 回落(少对了 3 条)——两个变动都只有 3 条的量级,合起来是图形,拆开讲不成故事。这一格也与论文 Finding 4 同向:三臂里唯一的程序型方法 ACE,两档都是最强的那一个。

统计上要泼一盆冷水:每格只有 50 条,一格 95% 区间大约 ±14 个点,4 分的差距不过两条任务。好在六格跑的是同一批 50 条任务,可以配对着看成败翻转:16K 档,ACE 比基线多对 9 条、少对 0 条;但把收窄幅度本身拿去做配对 bootstrap,ACE 那 12 个点的 95% 区间下限正好压在 0 上,BM25 的收窄与零无法区分。所以本文的方向判读是描述性的:图形与论文同向,ACE 一臂有配对证据垫底;单看某一格去争输赢,是在噪声里找结论。

记忆要交的租金:成本解剖

论文报告了分数,也报告了各方法的总 token——但那是任务执行与记忆模块合并的总数(见其附录效率表)。它没有把记忆模块自身的调用单独拆出来。这次我按用途拆开,得到一组论文里没有的数字。

300 个 episode 共消耗约 1517 万输入 token、54 万输出 token。ACE 在自己的 100 个 episode 里,记忆模块——每轮之后的反思与经验策展调用——吃掉 266 万 token:只算 ACE 自己的输入,记忆模块占约 36.5%;摊到全程 300 个 episode 的总输入,则是 17.6%。它的输出 token 约为无记忆臂的 7.4 倍,因为反思和策展都是生成型调用;而输出单价是输入的 6 倍,按金额算,这 7.4 倍比输入端的占比更伤账单。换句话说,ACE 每花 100 个输入 token,约 36.5 个花在了维护记忆上,而不是推进任务本身。BM25 不产生记忆维护调用:索引与检索都在本地做,不调用模型;但检索出的文本仍要进上下文,那部分输入 token 记在它自己的任务账上——它省的是维护调用,不是上下文。

量级感可以和论文自己的效率表对一下:DeepSeek 口径、128K 档,ACE 的总 token 约为无记忆基线的 1.8 倍,多出的部分约占 ACE 总量的 43.5%——与我这里拆出的 36.5% 是同一个量级(口径不同:论文是总 token 对基线之比,我的是 ACE 输入内部的用途拆分)。

这组数字改变了”记忆值不值”的算法。+18 分的增益不是免费的,光 ACE 一家的租金就是自身输入的三分之一还多,外加七倍多的输出量;而且这笔租金与预算档无关地存在——128K 档增益缩到 +6 分时,ACE 的记忆模块仍然吃掉了几乎同样多的 token(16K 档 134 万、128K 档 132 万)。评估一个记忆方法时,记忆自身的调用应该计入方法成本,不能藏在基础设施里一笔带过。按 Luna 档的公开标价(输入 0.20 美元、输出 1.20 美元,均按每百万 token)折算,这次 300 条任务的总价约 3.7 美元(网关账户的实际计价以其自身为准,我看不到)——便宜的是骨干,贵的是结构。

没测的部分

  • Finding 5(难度翻转)未测。 预注册里留了一个次级探针,用作者自带的难度分档在 CrossEp-Know 象限上测”易题记忆为负、难题记忆为正”。探针跑到试点阶段,网关账户额度耗尽,我把它叫停了,没有取得可判读的数据。所以本文对 Finding 5 不下任何结论,它在上文出现时只是作者自报。
  • 论文的长上下文对照(Gemini-3-Flash、GPT-5-mini 等专有模型)我无法复跑,其分数按作者自报引用。
  • 其余三个象限、另外十三种方法、论文的 DeepSeek-V3.2 原口径,都不在本文证据范围内。

这与本博客此前的 Beacon 跨工具记忆实测正好接上。那次的结论是:记忆只对”仓库本身推导不出的知识”有增量,自动捕获与蒸馏层脆弱。两次证据形态不同——那次是单系统深挖,这次是横评协议下的子集复测——但指向同一件事:记忆的增益从来不是默认存在的,它是一组条件的函数。这次补上的条件是预算:上下文越便宜、越大,预先存好的记忆就越不值钱;先失效的,是只做检索的那一类。

结论

如果你在给 Agent 选记忆方案,这次复测能支持的用法只有三条。第一,先报预算再谈增益:任何记忆方法宣称的提升,都要问一句是在多大上下文预算下测的,预算放大一档,增益可能就蒸发过半。第二,把记忆模块自己的 token 写进成本表:生成型记忆(反思、策展、总结)的租金可以达到其自身输入的三分之一还多(本例 36.5%),它不随增益收窄而减少。第三,在这类工具调用任务上,程序型记忆(本例的 ACE)两档都更强,但要为它的调用成本付费;纯检索记忆在预算充足时增益最先归零,只适合预算真正受限的场景。出了这个环境先别急着搬:论文 Finding 7 显示,网页搜索、具身等其他执行领域最适配的记忆形式并不相同。

至于这篇基准本身,我的判读是:Finding 3 的收窄模式,换了一个端点、缩到一个子集,方向仍然对得上,这是它最有用的部分;只是端点身份无法独立核验,这算跨端点的探索性复测,不构成跨骨干的证明。128K 跌破基线的更尖锐说法,在我的子集里没有出现,要判断它对更多方法是否成立,需要有人在原口径上跑完剩下的十三种方法。那不是本文的结论,是本文留下的作业。


证据边界:论文数字均为 arXiv:2605.18421 v3 作者自报;我方数字只对上述子集、三臂两档与网关标注端点成立,单次运行。完整回执(含六格原始计数、token 拆分、偏差登记与统计限制)、逐题数据与配对分析脚本已随本文公开(见文首 publicRepository),可逐文件校验 SHA256SUMS。