【论文阅读】Agent记忆机制(114):MemoryTax——当 Agent 能自主搜索历史,专门的记忆系统还划算吗?

文章目录

  • 前言
  • 零、论文基本信息
  • 一、背景与问题
    • [1. 两种长期历史处理范式](#1. 两种长期历史处理范式)
      • [1.1 设计型记忆:先写后读](#1.1 设计型记忆:先写后读)
      • [1.2 Agent 自主搜索:问题到来后再决定读什么](#1.2 Agent 自主搜索:问题到来后再决定读什么)
    • [2. 为什么预构建记忆可能成为税](#2. 为什么预构建记忆可能成为税)
    • [3. "苦涩教训"如何映射到 Agent Memory](#3. “苦涩教训”如何映射到 Agent Memory)
  • 二、相关工作与本文位置
    • [1. 事实抽取型记忆](#1. 事实抽取型记忆)
    • [2. 图结构记忆](#2. 图结构记忆)
    • [3. 简单检索与 Full Context](#3. 简单检索与 Full Context)
    • [4. Coding Agent 与 Recursive Language Model](#4. Coding Agent 与 Recursive Language Model)
  • 三、实验设计
    • [1. 数据:LoCoMo conv-26](#1. 数据:LoCoMo conv-26)
    • [2. 七种方法看到什么](#2. 七种方法看到什么)
    • [3. 三档模型](#3. 三档模型)
    • [4. 系统版本与协议](#4. 系统版本与协议)
    • [5. 评价方式](#5. 评价方式)
    • [6. 图片 Caption 带来的输入不等价](#6. 图片 Caption 带来的输入不等价)
  • [四、方法总览:MemoryTax 如何测量"记忆税"](#四、方法总览:MemoryTax 如何测量“记忆税”)
  • [五、主结果:Agent Memory 只在弱模型上充当补丁](#五、主结果:Agent Memory 只在弱模型上充当补丁)
    • [1. 完整结果](#1. 完整结果)
    • [2. GPT-4o-mini:Mem0 确实有帮助](#2. GPT-4o-mini:Mem0 确实有帮助)
    • [3. GPT-6 Luna:Full Context 反超复杂记忆](#3. GPT-6 Luna:Full Context 反超复杂记忆)
    • [4. Claude Opus 5.5:Agent 自主搜索登顶](#4. Claude Opus 5.5:Agent 自主搜索登顶)
  • [六、成本分析:Mem0 的构建何时才能回本](#六、成本分析:Mem0 的构建何时才能回本)
    • [1. 构建成本高于 Full Context 的完整 Rollout](#1. 构建成本高于 Full Context 的完整 Rollout)
    • [2. 累积曲线比总点更能看出"税"](#2. 累积曲线比总点更能看出“税”)
  • [七、Writer--Reader 交叉实验:记忆上限由谁决定](#七、Writer–Reader 交叉实验:记忆上限由谁决定)
    • [1. 为什么要拆分 Writer 和 Reader](#1. 为什么要拆分 Writer 和 Reader)
    • [2. 交叉结果](#2. 交叉结果)
    • [3. 信息瓶颈的形式化理解](#3. 信息瓶颈的形式化理解)
  • [八、Pi 为什么位于成本---正确率前沿](#八、Pi 为什么位于成本—正确率前沿)
    • [1. Pi 的总成本与正确率](#1. Pi 的总成本与正确率)
    • [2. Pi 唯一的"错误"其实是数据答案错误](#2. Pi 唯一的“错误”其实是数据答案错误)
    • [3. 图片 Caption 解释了大部分表面领先](#3. 图片 Caption 解释了大部分表面领先)
  • [九、Token 与 Turn 效率](#九、Token 与 Turn 效率)
  • 十、消融、敏感性与失败案例
    • [1. 本文没有传统模块消融](#1. 本文没有传统模块消融)
    • [2. 弱 Agent 不主动读文件](#2. 弱 Agent 不主动读文件)
    • [3. Zep 的弱 Writer 构图过少](#3. Zep 的弱 Writer 构图过少)
    • [4. 错误 Gold Answer](#4. 错误 Gold Answer)
    • [5. Photo Caption 混杂变量](#5. Photo Caption 混杂变量)
  • 十一、论文真正证明了什么,没有证明什么
    • [1. 得到数据直接支持的结论](#1. 得到数据直接支持的结论)
    • [2. 本文没有证明的结论](#2. 本文没有证明的结论)
  • [十二、与 Agent Memory 系列方法的横向比较](#十二、与 Agent Memory 系列方法的横向比较)
  • [十三、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发](#十三、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发)
    • [1. Coding Agent:原始轨迹应是最终事实来源](#1. Coding Agent:原始轨迹应是最终事实来源)
    • [2. Tool Agent:让记忆可追溯,而不是不可逆压缩](#2. Tool Agent:让记忆可追溯,而不是不可逆压缩)
    • [3. Multi-Agent:Writer 与 Reader 应独立评测](#3. Multi-Agent:Writer 与 Reader 应独立评测)
    • [4. 混合架构可能比二选一更合理](#4. 混合架构可能比二选一更合理)
  • 十四、局限性
    • [1. 只有一段对话](#1. 只有一段对话)
    • [2. 每个 Cell 只运行一次](#2. 每个 Cell 只运行一次)
    • [3. 自动 Judge 与错误答案键](#3. 自动 Judge 与错误答案键)
    • [4. Agent 与记忆方法输入不一致](#4. Agent 与记忆方法输入不一致)
    • [5. 历史完全放得进上下文](#5. 历史完全放得进上下文)
    • [6. 只测试默认 Mem0/Zep 配置](#6. 只测试默认 Mem0/Zep 配置)
    • [7. 价格具有时间与供应商依赖](#7. 价格具有时间与供应商依赖)
    • [8. 没有报告延迟与生产稳定性](#8. 没有报告延迟与生产稳定性)
    • [9. 任务只测试问答利用,不测试完整记忆生命周期](#9. 任务只测试问答利用,不测试完整记忆生命周期)
  • 十五、我的理解与启发
    • [1. MemoryTax 真正批评的是"不可逆的提前抽象"](#1. MemoryTax 真正批评的是“不可逆的提前抽象”)
    • [2. 原始记录与记忆不应是替代关系](#2. 原始记录与记忆不应是替代关系)
    • [3. 记忆系统必须报告"摊销曲线"](#3. 记忆系统必须报告“摊销曲线”)
    • [4. Writer--Reader Matrix 应成为标准实验](#4. Writer–Reader Matrix 应成为标准实验)
    • [5. "通用搜索工具"也需要被系统研究](#5. “通用搜索工具”也需要被系统研究)
    • [6. 这篇论文对 AMM 框架形成了很好的实证补充](#6. 这篇论文对 AMM 框架形成了很好的实证补充)
  • 十六、总结
  • 参考资料

前言

Agent Memory 领域长期默认一个前提:历史对话太长、上下文窗口太贵,因此系统应该在问题到来之前,先把历史压缩成更小、更"有用"的记忆。

Mem0 会从对话中抽取事实,Zep 会把历史组织成时序知识图谱,A-MEM、MAGMA 等工作则进一步设计关联结构。它们虽然机制不同,却共享一种 write-before-read 思路:先由系统决定什么值得留下,等用户未来提问时再从整理后的记忆中检索。

但 Coding Agent 走出了另一条路线。Pi、Codex、Claude Code 并不会预先把整个代码仓库压缩成一套"代码记忆"。它们通常保留原始文件,然后让模型根据当前任务调用 grep、rg、文件读取器等工具,自主决定搜索什么、读哪一段以及是否继续搜索。

这就产生了一个很关键的问题:

当模型已经足够强,能够根据当前问题自主搜索原始历史时,我们是否还需要在问题出现之前,花钱构建一套设计好的 Agent Memory?

《MemoryTax: The Bitter Lesson of Agent Memory》围绕这个问题做了一项规模不大、但对照思路很尖锐的实证研究。作者在同一段 LoCoMo 长对话上,将四种传统记忆/检索方案------Full Context、BM25、Mem0、Zep------与三种通用 Coding Agent------Pi、Codex、Claude Code------放在一起,并让它们分别搭配 GPT-4o-mini、GPT-6 Luna 和 Claude Opus 5.5。

论文关注的不是单一正确率,而是完整 Rollout 的成本---正确率前沿:预构建记忆花了多少钱?回答每个问题又花多少钱?如果换成更强的模型,预先压缩是否仍然值得?

作者得到的核心判断是:设计型 Agent Memory 可能是一种 Memory Tax。

它包含两层含义:

  1. 经济税:Mem0、Zep 在问题到来前就要支付记忆构建成本,而在当前实验的 152 个问题内,这笔成本未必能够收回;
  2. 信息税:Writer 在写入阶段删除的信息会形成永久上限,即使后来换成更强 Reader,也无法回答已被弱 Writer 丢失的内容。

论文借用了 Sutton 的 "Bitter Lesson":人工注入的领域结构可能在早期有效,但随着通用计算与模型能力扩展,能够随算力伸缩的通用方法往往最终胜出。对应到 Agent Memory,作者提出的候选方向不是设计更复杂的压缩器,而是:保留原始记录,让强模型在问题到来后使用通用工具搜索。

一句话核心增量:MemoryTax 首次把预构建记忆与 Agent 自主搜索原始历史放进统一的成本---正确率评测中,并通过 Writer--Reader 交叉实验揭示:设计型记忆既要缴纳昂贵的构建成本,也会因写入阶段的信息丢失形成强 Reader 无法突破的性能上限。

需要提前强调:本文是一项 short empirical study,只有一段对话、每个设置一次运行。它提供的是一个值得重视的反例和研究假设,而不是已经证明"所有 Agent Memory 都无用"。

零、论文基本信息

  • 论文名称: MemoryTax: The Bitter Lesson of Agent Memory
  • 发表平台: arXiv:2610.29823(v1)
  • 代码仓库: https://github.com/zedong-peng/memorytax
  • 作者: Zedong Peng(上海交通大学)

一、背景与问题

1. 两种长期历史处理范式

面对一段很长的交互历史,当前系统大致采用两种范式。

1.1 设计型记忆:先写后读

Mem0、Zep 等系统在任何具体问题出现之前,就对原始对话做处理:

H → Writer M H \xrightarrow{\text{Writer}} M HWriter M

其中, H H H 是完整历史, M M M 是抽取后的事实、图谱或其他记忆结构。

未来问题 q q q 到来时,系统只检索 M M M:

q → Retrieve ( M ) R q → Reader a q \xrightarrow{\text{Retrieve}(M)} R_q \xrightarrow{\text{Reader}} a qRetrieve(M) RqReader a

它的优势是每次回答看到的上下文更短;风险是 Writer 在不知道未来问题的情况下,提前决定了什么重要、什么不重要。

1.2 Agent 自主搜索:问题到来后再决定读什么

Coding Agent 保留原始历史:

M = H M=H M=H

问题出现后,Agent 根据当前需求反复使用文件读取、关键词搜索和其他工具:

( q , H ) → Agent Loop { s 1 , r 1 , s 2 , r 2 , ...   } → a (q,H) \xrightarrow{\text{Agent Loop}} \{s_1,r_1,s_2,r_2,\dots\} \rightarrow a (q,H)Agent Loop {s1,r1,s2,r2,...}→a

这里 s i s_i si 是第 i i i 次搜索或读取动作, r i r_i ri 是工具返回结果。搜索策略不是预先固定,而是由当前问题和中间结果共同决定。

2. 为什么预构建记忆可能成为税

预构建记忆并不是免费的缓存。它至少包含三类代价:

C r o l l o u t = C b u i l d + N ⋅ C q u e s t i o n C_{rollout}=C_{build}+N\cdot C_{question} Crollout=Cbuild+N⋅Cquestion

  • C b u i l d C_{build} Cbuild:把历史抽取为事实或图谱的成本;
  • C q u e s t i o n C_{question} Cquestion:每个问题的检索与回答成本;
  • N N N:共享同一段历史的问题数量。

设计型记忆通常希望用较高的 C b u i l d C_{build} Cbuild 换取较低的 C q u e s t i o n C_{question} Cquestion。它是否划算,取决于:

  1. 构建成本有多高;
  2. 后续有多少问题可以摊薄这笔成本;
  3. 压缩后是否损失了回答问题所需的信息;
  4. 强模型直接阅读或搜索原始记录是否已经足够好。

因此,论文没有只比较 Accuracy,而是把整个记忆生命周期纳入成本。

3. "苦涩教训"如何映射到 Agent Memory

Sutton 的 Bitter Lesson 指出:依赖人为知识的专门方法常在短期内领先,但能够利用更多计算的通用方法通常会长期胜出。

在本文中:

  • 人为设计的记忆写入、抽取与图结构,对应"把知识写进系统";
  • 强模型搭配通用搜索工具,对应"随计算与模型能力扩展的通用方法"。

作者要检验的是:随着模型从 GPT-4o-mini 增强到 GPT-6 Luna、Claude Opus 5.5,Mem0、Zep 的结构性优势是否继续存在。

二、相关工作与本文位置

1. 事实抽取型记忆

Mem0 从原始交互中抽取事实,并在回答时返回相关事实。它将长历史压缩为较小的事实集合,适合频繁查询,但抽取阶段可能丢失上下文、关系和未被认为重要的细节。

在本文框架下,Mem0 是典型的"预付构建成本、降低单次读取成本"方案。

2. 图结构记忆

Zep/Graphiti 把对话构建为时序图谱,通过边检索提供上下文。相比扁平事实,它试图显式保存实体与时间关系,但构图质量取决于 Writer 的抽取能力。

论文发现这种依赖尤其明显:弱模型写出的图很稀疏,强 Reader 无法从不存在的边中恢复信息。

3. 简单检索与 Full Context

BM25 不进行语义抽象,直接保存原始 Turn,用词项匹配检索局部窗口。Full Context 则把完整对话一次性送给模型。

这两个 Baseline 很重要:

  • BM25 检验复杂记忆结构是否真的胜过廉价、保真的关键词检索;
  • Full Context 检验记忆压缩是否真的比直接读取全部历史更有效。

4. Coding Agent 与 Recursive Language Model

Pi、Codex、Claude Code 并不是为 LoCoMo 记忆问答设计的系统。它们被选中,是因为它们代表通用 Agent Harness:给模型文件和工具,让模型自己决定是否打开文件、搜索关键词、继续推理。

本文将 Agent Harness 当作一种"动态记忆读取器",把问题从"如何提前压缩历史"改写为"如何让模型在需要时检索原始记录"。

三、实验设计

1. 数据:LoCoMo conv-26

作者只使用 LoCoMo 中的一段对话 conv-26:

  • 419 个 Turn;
  • 19 个 Session;
  • 152 个问题;
  • 问题覆盖 Single-hop、Multi-hop、Temporal 和 Open-domain;
  • 按 Mem0 的评测习惯,排除 Adversarial Questions。

作者说明,在 LoCoMo 的十段对话中,conv-26 上各方法的准确率走势与全数据集较接近。但"走势相近"不能替代完整复现,这一点仍是证据范围的重要限制。

2. 七种方法看到什么

方法 存储内容 回答时模型看到的内容
Full Context 原始历史 全部历史
BM25 原始 Turn Top-8 Turn,并带每条前后各 2 个 Turn
Mem0 抽取事实 Top-200 Facts
Zep 时序图谱 Top-20 Edges
Pi 单个 JSON 文件中的原始历史 Agent 使用工具主动读取的内容
Codex 单个 JSON 文件中的原始历史 Agent 使用工具主动读取的内容
Claude Code 单个 JSON 文件中的原始历史 Agent 使用工具主动读取的内容

Table 1:各方法的存储与读取方式。 前四种方法采用固定上下文构造,三种 Coding Agent 保留原始文件并自主决定读什么。

这里的比较实际包含三种变量:

  1. 是否压缩原始历史;
  2. 检索策略是固定还是由 Agent 动态决定;
  3. 回答过程是单次模型调用还是多步 Agent Loop。

因此,它不是只隔离"Memory Structure"的严格单变量实验,而是比较两套完整范式。

3. 三档模型

每种方法分别搭配:

  • GPT-4o-mini;
  • GPT-6 Luna,Reasoning Effort = high;
  • Claude Opus 5.5,Reasoning Effort = high。

Mem0 和 Zep 默认由同一个模型负责写 Store 和回答问题。随后作者通过 Writer--Reader 交叉实验,将不同 Reader 接到已经构建好的 Store 上,用于判断上限来自 Writer 还是 Reader。

4. 系统版本与协议

  • Mem0 OSS 2.1.0:按时间顺序逐 Turn 写入,检索 k = 200 k=200 k=200,不重排,并把日期添加到文本前;
  • Zep:Graphiti OSS 0.30.2 + Kuzu,每个 Session 作为一个 Episode,Hybrid Edge Search Top-20;
  • Pi 1.1.0;
  • Codex 0.159.2;
  • Claude Code 2.1.295;
  • Agent 的每道题都在全新容器和全新 Session 中运行;
  • 容器只有官方对话文件,不包含问题答案;
  • Agent 运行期间只能访问模型 Endpoint,关闭 Web Search。

每个 Agent Question 最长可运行 20 分钟;Pi 和 Claude Code 最多 100 个 Turn。失败或没有最终答案的 Trial 会重新运行,最终只统计被接受的 Trial。

这一重试规则保证得到可评分答案,但也意味着报告成本不是"首次尝试的期望成本",而是被接受运行的成本。

5. 评价方式

GPT-4o-mini 使用 Mem0 2025 Judge Prompt 对答案判定 Correct/Wrong。评分比较宽松,只要生成答案覆盖 Gold Answer 的同一主题即可。空答案算错。

成本包括:

  • 所有 LLM 调用的公开 List Price;
  • text-embedding-3-small 的 Embedding 成本;
  • Cached Input 也计入;
  • Judge 成本不计入。

Token 统计不包括 Embedding。一个 Turn 定义为一次 LLM Call:记忆方法每个问题一次;Agent Loop 每一步一次;Mem0/Zep 的 Store 构建调用也计入。

每个 Method × Model Cell 只运行一次。

6. 图片 Caption 带来的输入不等价

LoCoMo 中 419 个 Turn 里有 116 个分享了照片,152 个问题中有 64 个问题的证据位于包含照片的 Turn。

三种 Agent 得到官方 JSON 文件,其中包含照片 Caption;而 Full Context、BM25、Mem0、Zep 只获得 Turn Text,没有 Caption。

这意味着 Agent 与记忆方法在 64 道题上并非读取完全相同的信息。作者没有隐藏这个问题,而是进一步做了 Photo / Other Split,但它仍然限制了"Agent 准确率更高"这一结论。

四、方法总览:MemoryTax 如何测量"记忆税"

论文没有提出一个新模型,核心方法是构造统一评测账本。

对每个 Cell,完整 Rollout 由两部分组成:

C ( m , b ) = C b u i l d ( m , b ) + ∑ i = 1 152 C a n s w e r ( m , b , q i ) C(m,b)=C_{build}(m,b)+\sum_{i=1}^{152}C_{answer}(m,b,q_i) C(m,b)=Cbuild(m,b)+i=1∑152Canswer(m,b,qi)

其中:

  • m m m 是方法;
  • b b b 是 Backbone;
  • C b u i l d C_{build} Cbuild 是一次性记忆构建成本;
  • C a n s w e r C_{answer} Canswer 是问题 q i q_i qi 的实际回答成本。

正确率为:

A ( m , b ) = 1 152 ∑ i = 1 152 I ( a ^ i = a i ) A(m,b)=\frac{1}{152}\sum_{i=1}^{152}\mathbb{I}(\hat a_i=a_i) A(m,b)=1521i=1∑152I(a^i=ai)

论文真正关心的是 Pareto Frontier:如果另一个 Cell 成本更低且正确率更高,那么当前 Cell 就被支配,不值得选择。

( C 1 , A 1 ) ≻ ( C 2 , A 2 ) if C 1 ≤ C 2 , A 1 ≥ A 2 (C_1,A_1)\succ(C_2,A_2) \quad \text{if}\quad C_1\le C_2,\ A_1\ge A_2 (C1,A1)≻(C2,A2)ifC1≤C2, A1≥A2

并且至少一个不等式严格成立。

在看 Figure 1 之前,需要先理解:每个点不是单个问题的调用,而是"构建 Store + 回答全部 152 道题"的完整 Cell。

Figure 1:完整 Rollout 的成本---正确率前沿。 横轴为回答 152 道题的总成本(对数刻度),纵轴为正确率;阶梯线表示在不超过给定成本时达到的最高正确率。

图中的前沿依次经过 GPT-6 Luna + BM25、GPT-6 Luna + Full Context,以及 Claude Opus 5.5 + Pi。Mem0 与 Zep 的点全部位于前沿之下。

五、主结果:Agent Memory 只在弱模型上充当补丁

1. 完整结果

方法 模型 Build / 美元 每题成本 / 美元 Single Multi Temporal Open All
Full Context GPT-4o-mini --- 0.0028 89 75 51 62 74
Full Context GPT-6 Luna --- 0.0019 90 97 95 85 92
Full Context Claude Opus 5.5 --- 0.117 93 94 97 100 95
BM25 GPT-4o-mini --- 0.00028 86 50 73 69 74
BM25 GPT-6 Luna --- 0.00021 89 63 89 69 82
BM25 Claude Opus 5.5 --- 0.013 93 81 92 92 90
Mem0 GPT-4o-mini 0.559 0.0013 87 75 65 77 78
Mem0 GPT-6 Luna 0.449 0.0011 89 88 57 85 80
Mem0 Claude Opus 5.5 25.876 0.074 93 97 97 100 95
Zep GPT-4o-mini 0.092 0.00012 51 34 30 54 43
Zep GPT-6 Luna 0.103 0.00012 54 50 49 46 51
Zep Claude Opus 5.5 6.224 0.0077 83 94 89 85 87
Pi GPT-4o-mini --- 0.016 74 59 35 85 63
Pi GPT-6 Luna --- 0.0032 96 81 92 92 91
Pi Claude Opus 5.5 --- 0.046 99 100 100 100 99
Codex GPT-4o-mini --- 0.0031 30 22 24 46 28
Codex GPT-6 Luna --- 0.0050 90 84 89 85 88
Codex Claude Opus 5.5 --- 0.167 99 100 95 100 98
Claude Code GPT-4o-mini --- 0.0020 34 22 8 77 29
Claude Code GPT-6 Luna --- 0.0082 96 78 95 92 91
Claude Code Claude Opus 5.5 --- 0.187 99 94 97 100 97

Table 2:各方法与模型的完整成本和正确率。 四类问题数量分别为 Single-hop 70、Multi-hop 32、Temporal 37、Open-domain 13;正确率单位为百分比。

2. GPT-4o-mini:Mem0 确实有帮助

在最弱模型上:

  • Mem0:78%;
  • Full Context:74%;
  • BM25:74%;
  • Zep:43%;
  • Pi:63%;
  • Codex:28%;
  • Claude Code:29%。

Mem0 比 Full Context 高 4 个百分点,主要改善 Temporal 与 Open-domain。这说明当 Reader 能力较弱、难以直接从长上下文中定位信息时,预先抽取的事实可以减少搜索负担。

而弱模型驱动的 Coding Agent 表现很差。Codex 只有约四分之三问题会打开对话文件,Claude Code 几乎不打开;它们经常直接依据问题猜答案。这里失败的不是"原始历史不存在",而是弱模型不会可靠地使用工具读取历史。

因此,设计型记忆在弱模型上像一种 Capability Patch:用系统预先做好的信息选择,补偿模型不会搜索的缺陷。

3. GPT-6 Luna:Full Context 反超复杂记忆

换成 GPT-6 Luna 后:

  • Full Context:92%;
  • Pi / Claude Code:91%;
  • Codex:88%;
  • BM25:82%;
  • Mem0:80%;
  • Zep:51%。

Mem0 不仅没有继续领先,反而比 Full Context 低 12 个百分点。特别是在 Temporal Questions 上,Mem0 只有 57%,Full Context 达到 95%。

这说明更强 Reader 已经能够利用原始历史中的时间与上下文关系,而事实抽取可能把这些关系压扁或遗漏。

4. Claude Opus 5.5:Agent 自主搜索登顶

在最强模型上:

  • Pi:99%;
  • Codex:98%;
  • Claude Code:97%;
  • Full Context / Mem0:95%;
  • BM25:90%;
  • Zep:87%。

不过,这个领先不能直接全部归因于 Agent Search,因为 Agent 独享图片 Caption。排除图片相关题后,Pi 与 Full Context 实际只差 1 道题。

因此,更稳妥的结论是:当输入信息相同时,强 Agent 搜索原始记录可以用明显更低成本匹配 Full Context;它是否普遍比 Full Context 更准确,本文没有证明。

六、成本分析:Mem0 的构建何时才能回本

1. 构建成本高于 Full Context 的完整 Rollout

Mem0 的 Build Cost 与同模型 Full Context 回答全部 152 道题的总成本如下:

模型 Mem0 Build Full Context 完整 Rollout Mem0 仅构建 / Full Context 总成本
GPT-4o-mini $0.559 $0.43 更高
GPT-6 Luna $0.449 $0.29 更高
Claude Opus 5.5 $25.876 $17.84 更高

成本对照:Mem0 的一次性构建成本。 三档模型上,Mem0 尚未回答任何问题,花费就已经超过 Full Context 回答全部 152 道题的总成本。

Mem0 每道题确实比 Full Context 便宜,但必须回答足够多问题才能摊薄构建成本。论文计算出的 Break-even Point 分别是:

  • GPT-4o-mini:372 道题;
  • GPT-6 Luna:545 道题;
  • Claude Opus 5.5:596 道题。

LoCoMo 当前只有 152 道题,因此三种设置都没有回本。

2. 累积曲线比总点更能看出"税"

在看 Figure 2 之前,需要注意曲线从构建阶段开始:Mem0/Zep 会先在横轴上产生一段成本,却还没有答对任何问题;Full Context、BM25 与 Agent 没有预构建阶段。

Figure 2:累积成本---正确率曲线。 每条曲线从构建开始,再按单题成本由低到高累积 152 道题;粗线表示在成本与正确数量上未被其他 Cell 同时击败的设置。

这张图支撑两个结论:

  1. 对问题数量较少的历史,预构建记忆的固定成本非常显眼;
  2. Memory 是否划算不能脱离复用次数讨论。若同一段历史将被查询上千次,Mem0 的低 Per-question Cost 可能重新具有价值。

所以"Memory Tax"不是说缓存永远不值得,而是说很多论文只报告回答阶段的准确率,却没有把构建成本与查询规模一起计算。

七、Writer--Reader 交叉实验:记忆上限由谁决定

1. 为什么要拆分 Writer 和 Reader

通常 Mem0/Zep 用同一个模型构建 Store 并回答问题。如果弱模型设置表现差,我们无法判断:

  • 是 Writer 没把关键信息写进去;
  • 还是 Reader 不会使用已经写入的信息。

为此,作者固定 Store,只更换 Reader。由于检索阶段不调用 LLM,这个交换可以直接完成。

2. 交叉结果

Store Writer Mem0:4o-mini Reader Mem0:Luna Reader Mem0:Opus Reader Zep:4o-mini Reader Zep:Luna Reader Zep:Opus Reader
GPT-4o-mini 78 83 84 43 43 45
GPT-6 Luna 74 80 81 52 51 55
Claude Opus 5.5 89 91 95 66 71 87

Table 3:Writer--Reader 交叉正确率。 行表示构建 Store 的模型,列表示读取 Store 并回答问题的模型;粗体为同一模型写入并读取。

在 Zep 的 GPT-4o-mini Store 上,Reader 从 GPT-4o-mini 换成 Claude Opus 5.5,正确率只从 43% 提升到 45%。而 Claude Opus 5.5 写出的 Store,即使交给 GPT-4o-mini 读取,也能达到 66%。

Mem0 的差距较小,但趋势相同:

  • 读取 GPT-4o-mini Store:78% / 83% / 84%;
  • 读取 Claude Opus 5.5 Store:89% / 91% / 95%。

这说明 Writer 质量比 Reader 升级更重要。Reader 只能对现有记忆推理,不能恢复 Writer 已经丢弃的事实。

在看 Figure 3 时,箭头表示同一个 Store 被换成不同 Reader;同色点属于同一 Writer。

Figure 3:Writer 与 Reader 的交叉实验。 每种颜色代表一个固定 Writer 生成的 Store;实心点是 Writer 自己读取,箭头连接更换 Reader 后的结果。

3. 信息瓶颈的形式化理解

如果 Store 是历史的压缩:

M = W ( H ) M=W(H) M=W(H)

回答为:

a ^ = R ( q , M ) \hat a=R(q,M) a^=R(q,M)

当 Writer 删除了与问题相关的信息 e e e:

e ∉ M e\notin M e∈/M

再强的 Reader 也只能基于不完整的 M M M 推理。它可能依靠常识猜对,却不能从 Store 中恢复 e e e。

因此,设计型记忆有一个由 Writer 决定的 Information Ceiling。这正是本文比普通"模型越强、分数越高"对比更有价值的地方。

八、Pi 为什么位于成本---正确率前沿

1. Pi 的总成本与正确率

Claude Opus 5.5 + Pi:

  • 正确率 99%;
  • 完整 Rollout 约 $6.95;
  • 平均每题约读取 10,000 Input Tokens,其中约 7,900 为 Cached Tokens。

Claude Opus 5.5 + Full Context:

  • 正确率 95%;
  • 完整 Rollout $17.84;
  • 平均每题约 28,900 Input Tokens。

Pi 用不到 Full Context 一半的成本达到更高表面分数。与同模型的 Codex(25.41)和 Claude Code(28.41)相比,Pi 也明显更便宜。这说明 Harness 的工具协议、系统提示、缓存与行动循环会显著影响同一模型的成本。

2. Pi 唯一的"错误"其实是数据答案错误

题目询问 Caroline 在 2023 年 10 月 13 日分享了什么类型的画。Gold Answer 说是带蓝色条纹的抽象画,但原对话中那幅画由 Melanie 分享;Caroline 分享的是一张 Drawing。

Pi 指出了这个矛盾,却被 Judge 按 Gold Answer 判错。Full Context、Codex、Claude Code 搭配 Claude Opus 5.5 时也识别出相同问题,同样被判错。

因此,在其余 151 道 Gold Answer 可靠的问题上,Pi 全部正确。

这个案例同时提醒我们:99% 不是无条件的模型性能结论,也暴露出 Benchmark Gold 与自动 Judge 会共同限制评测上限。

3. 图片 Caption 解释了大部分表面领先

方法 4o-mini Photo / Other Luna Photo / Other Opus 5.5 Photo / Other
Full Context 66 / 81 91 / 93 89 / 99
BM25 61 / 83 78 / 84 84 / 94
Mem0 70 / 84 72 / 86 91 / 99
Zep 33 / 50 53 / 50 77 / 94
Pi 53 / 69 88 / 94 98 / 100
Codex 22 / 33 84 / 91 97 / 99
Claude Code 17 / 38 91 / 92 95 / 99

Table 4:图片相关问题与其他问题的正确率。 Photo 包含 64 道证据位于照片 Turn 的题,Agent 可读 Caption;Other 为其余 88 道题。

Claude Opus 5.5 下,Pi 比 Full Context 多答对 7 道题,其中 6 道属于 Photo Questions。对没有图片证据的 88 道题:

  • Pi:100%;
  • Full Context:99%;
  • Mem0:99%;
  • Codex:99%;
  • Claude Code:99%。

换句话说,在信息输入一致的部分,Pi 与 Full Context 只差 1 道题。本文有力证明的是 Pi 更省成本且不损失准确率,而不是已经证明 Agent Search 必然比 Full Context 更准确。

九、Token 与 Turn 效率

仅看美元成本会受到供应商定价和缓存政策影响。附录 Figure 4 进一步以 LLM Calls 和 Tokens 重画累积曲线。

Figure 4:按 Turn 与 Token 统计的累积正确率。 上图横轴是 LLM 调用次数,下图横轴是 Token 数;粗线表示在相应资源与正确数量上未被其他 Cell 支配的设置。

它提醒我们,Agent Search 的"更省"不是没有代价:Agent 会进行多步调用,只是每次读取更小片段;Full Context 调用次数少,却反复输入整段历史。

工程上需要同时看:

Efficiency = f ( Money , Tokens , Turns , Latency , Cache Hit ) \text{Efficiency}=f(\text{Money},\text{Tokens},\text{Turns},\text{Latency},\text{Cache Hit}) Efficiency=f(Money,Tokens,Turns,Latency,Cache Hit)

本文没有报告端到端时延,因此不能从美元成本直接推断 Pi 的用户等待时间一定更短。

十、消融、敏感性与失败案例

1. 本文没有传统模块消融

MemoryTax 不是新模型,因此没有"移除某个模块"的常规 Ablation。最接近消融的分析是:

  • 更换模型强度;
  • 固定 Writer Store、更换 Reader;
  • 将 Photo Questions 与 Other Questions 分开;
  • 用美元、Turn、Token 三种资源衡量前沿。

这些分析分别隔离了 Backbone、写入质量、输入不等价和成本口径的影响。

2. 弱 Agent 不主动读文件

GPT-4o-mini 驱动 Codex 和 Claude Code 时,正确率只有 28% 和 29%。作者观察到,Codex 约四题中有三题打开文件,Claude Code 几乎不打开。

这说明"给模型搜索工具"不等于"模型会搜索"。Agent Search 的收益依赖 Tool-use Policy。对于弱模型,固定检索或预构建记忆仍然可能更可靠。

3. Zep 的弱 Writer 构图过少

Zep 使用 GPT-6 Luna 构建的图只有 128 个事实,而 Claude Opus 5.5 构建的图有 195 个事实。GPT-6 Luna + Zep 只有 51%,Opus + Zep 达到 87%。

数量并不等于质量,但这个差异与 Writer Ceiling 一致:弱 Writer 构建的结构本身就缺少信息。

4. 错误 Gold Answer

Pi 唯一的失分来自问题与答案键错误。自动 Judge 只能忠于 Gold,不能自动修复 Benchmark。对接近满分的系统,单个标注错误会明显影响排名。

5. Photo Caption 混杂变量

Agent 比其他方法多看到照片描述,直接导致大部分准确率优势。作者通过 Split Analysis 诚实展示了这一点,但实验设计本可从一开始让所有方法读取相同字段。

十一、论文真正证明了什么,没有证明什么

1. 得到数据直接支持的结论

在 LoCoMo conv-26、当前默认配置与价格下:

  1. Mem0 只在 GPT-4o-mini 上超过 Full Context;
  2. Mem0 的构建成本超过同模型 Full Context 回答 152 题的完整成本;
  3. Mem0/Zep 的 Store 质量强烈受 Writer 影响;
  4. 强 Reader 无法完全修复弱 Writer 的信息丢失;
  5. Claude Opus 5.5 + Pi 位于实验中的成本---正确率前沿;
  6. 在不涉及照片证据的 88 题上,Pi 与 Full Context 仅相差 1 题。

2. 本文没有证明的结论

本文不能证明:

  • 所有 Agent Memory 都不如原始历史搜索;
  • 在超出上下文窗口的历史上,Full Context 仍然可行;
  • Pi 在其他对话、其他任务或多次运行中仍保持 99%;
  • 所有 Memory System 的默认配置都已达到最佳;
  • Agent Search 的实际时延、稳定性与生产成本一定更优;
  • 结构化记忆在用户偏好更新、删除、隐私和跨会话持续学习上没有价值。

论文标题中的 "Bitter Lesson" 是一个方向性判断,不是由当前小样本完成的普遍性证明。

十二、与 Agent Memory 系列方法的横向比较

方法 历史在问题前如何处理 核心优势 MemoryTax 指出的风险
Mem0 预先抽取事实 查询上下文短、适合高频复用 Build 昂贵;Writer 遗漏成为永久上限
Zep 预先构建时序图谱 显式关系与时间结构 构图高度依赖 Writer;弱 Writer 图谱稀疏
A-MEM 预先形成可演化关联记忆 动态组织记忆关系 若写入前已丢失细节,后续演化仍受输入上限限制
MAGMA 多图、多视角组织长期记忆 支持不同关系视角的检索 复杂结构需要额外构建成本,必须进入成本账本
CoM 组合多条记忆支持推理 强调记忆间组合 组合只能使用已保存信息,不能恢复被 Writer 删除的证据
ReMemR1 写入时回访历史记忆 减少边读边记的信息损失 仍需验证回访成本能否被后续问题摊薄
Mem²Evolve 根据经验优化记忆系统 可持续调整内容/策略 搜索到的结构仍可能在问题到来前固化
Pi / Codex / Claude Code 保留原始记录,问题到来后自主搜索 忠实、动态、随模型能力扩展 弱模型可能不搜索;多步调用和延迟可能较高
MemoryTax 不提出新存储结构 统一核算成本,并拆分 Writer / Reader 上限 证据仅来自单段对话与单次运行

这篇论文并没有直接实验 A-MEM、MAGMA、CoM、ReMemR1 或 Mem²Evolve,因此上表后两列中涉及这些方法的内容是框架层面的比较,不能当作它们在 LoCoMo 上已经被 MemoryTax 击败。

MemoryTax 对系列工作的真正提醒是:以后评价新记忆机制时,不能只问"比 Full Context 高了几分",还要问:

  1. 写 Store 花了多少 Token 和美元?
  2. 需要多少次查询才能回本?
  3. 写入模型与读取模型分别是谁?
  4. 原始历史是否仍可访问?
  5. Writer 丢失的信息能否被追溯和恢复?
  6. 如果给强 Agent 通用搜索工具,复杂记忆是否仍在 Pareto Frontier 上?

十三、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发

1. Coding Agent:原始轨迹应是最终事实来源

代码、日志、测试输出和 Git History 本身就有明确结构与成熟搜索工具。与其提前让 LLM 把一切总结成"代码记忆",更稳妥的架构是:

  • 原始仓库与执行轨迹长期保留;
  • 索引、摘要与经验作为可丢弃的加速层;
  • 当前任务由 Agent 使用 rg、AST Search、Symbol Index、Vector Search 等工具动态读取;
  • 任何摘要都保留 Provenance,可回到原文件验证。

这相当于把 Memory 从"唯一知识载体"降级为"Search Cache"。

2. Tool Agent:让记忆可追溯,而不是不可逆压缩

Tool Agent 的失败经验可以抽象成技能,但不能只保存结论。建议一条技能记忆同时保存:

  • 原始轨迹 ID;
  • 适用环境与前置条件;
  • 成功/失败验证信号;
  • 生成该技能的 Writer 版本;
  • 冲突时回查原始记录的工具入口。

这样,当更强 Reader 到来时,它可以重新解释原始证据,而不是被旧 Writer 的摘要永久限制。

3. Multi-Agent:Writer 与 Reader 应独立评测

在多 Agent 系统中,一个 Agent 写共享记忆,另一个 Agent 读取。MemoryTax 的交叉实验可直接扩展为:

Writer i × Reader j × Memory Policy k \text{Writer}_i \times \text{Reader}_j \times \text{Memory Policy}_k Writeri×Readerj×Memory Policyk

如果只报告"同一个模型写、同一个模型读"的结果,就无法知道瓶颈来自哪一端。共享记忆系统应单独测:

  • 写入覆盖率;
  • 读取利用率;
  • 原始证据可恢复性;
  • 跨模型迁移;
  • 更新和删除的一致性。

4. 混合架构可能比二选一更合理

MemoryTax 把"设计型记忆"和"原始历史搜索"形成鲜明对照,但工程上可以组合:

Raw Log + Cheap Index + Optional Summary Cache + Agentic Search \text{Raw Log} +\text{Cheap Index} +\text{Optional Summary Cache} +\text{Agentic Search} Raw Log+Cheap Index+Optional Summary Cache+Agentic Search

常见问题先走廉价 BM25 或缓存;高风险、低置信或复杂问题再让 Agent 回查原始记录。这样既避免每次 Full Context,也减少不可逆压缩。

十四、局限性

1. 只有一段对话

实验只用 LoCoMo 十段对话中的 conv-26。即使作者说明该对话的相对趋势与全量接近,也无法覆盖不同长度、主题、时间跨度和信息密度。

2. 每个 Cell 只运行一次

Agent 行为和 LLM 输出具有随机性。相差一两道题的方法,可能在第二次运行中交换排名。论文没有均值、方差、置信区间或显著性检验。

3. 自动 Judge 与错误答案键

GPT-4o-mini Judge 采用宽松规则,可能误判长答案、冲突答案或带解释答案。已发现至少一个 Gold Answer 错误,说明 99% 附近的差异尤其脆弱。

4. Agent 与记忆方法输入不一致

Agent 可读照片 Caption,其他方法不可读。虽然作者单独分析了 Photo Questions,但原始总分仍混合了方法能力与信息可见性差异。

5. 历史完全放得进上下文

conv-26 能放进所有模型上下文,因此 Full Context 始终可用。真正超长、持续增长的生产历史可能无法直接输入,原始记录搜索的优势与失败模式也可能变化。

6. 只测试默认 Mem0/Zep 配置

Mem0 的 Top-200、Zep 的 Top-20 Edge 以及默认 Extraction/Retrieval 未做参数搜索。不同配置、重新排序、混合检索或更便宜 Writer 可能得到不同成本前沿。

7. 价格具有时间与供应商依赖

成本使用实验时的 List Price,并依赖 Provider Cache。模型价格和缓存策略变化后,Break-even Point 会随之变化。

8. 没有报告延迟与生产稳定性

Agent 可执行多步搜索,每题最长允许 20 分钟。美元成本较低并不等于时延更低,也不代表失败重试、并发和运维成本更低。

9. 任务只测试问答利用,不测试完整记忆生命周期

LoCoMo 主要测历史问答。用户偏好更新、长期一致性、主动遗忘、隐私删除、技能积累等场景仍可能需要设计型记忆,本文没有覆盖。

十五、我的理解与启发

1. MemoryTax 真正批评的是"不可逆的提前抽象"

论文表面上比较 Memory 与 Agent Search,但更深层的问题是决策发生的时间。

在未来问题未知时抽取信息,相当于优化:

M ∗ = arg ⁡ max ⁡ M E q ∼ P ( q ) U ( M , q ) M^*=\arg\max_M \mathbb{E}_{q\sim P(q)}U(M,q) M∗=argMmaxEq∼P(q)U(M,q)

但真实未来问题分布 P ( q ) P(q) P(q) 并不知道。Writer 只能猜什么重要。一旦压缩不可逆,任何意外问题都可能落在被删除的信息上。

Agent Search 把信息选择推迟到问题出现之后,获得了 Query-conditioned Selection。这种推迟本身就是优势。

2. 原始记录与记忆不应是替代关系

一套更稳健的长期记忆系统应该满足:

Memory = Lossless Source of Truth + Lossy Acceleration Layers \text{Memory}=\text{Lossless Source of Truth}+\text{Lossy Acceleration Layers} Memory=Lossless Source of Truth+Lossy Acceleration Layers

原始记录负责可恢复性;事实、图谱、摘要和技能负责加速。强 Reader 到来时,可以绕过旧缓存重新搜索和重建,而不是被历史 Writer 锁死。

3. 记忆系统必须报告"摊销曲线"

只报告单题成本或单次 Build Cost 都不完整。至少应报告:

C ˉ ( N ) = C b u i l d N + C q u e s t i o n \bar C(N)=\frac{C_{build}}{N}+C_{question} Cˉ(N)=NCbuild+Cquestion

并画出不同 N N N 下的平均成本。个人助手可能每天查询同一历史,企业 Agent 可能只使用一次;相同系统在两种场景中的经济性完全不同。

4. Writer--Reader Matrix 应成为标准实验

很多论文换更强 Backbone 后声称记忆系统更强,但没有区分 Store 变好还是 Reader 变好。MemoryTax 的交叉矩阵很简单,却能直接暴露瓶颈。

未来还应增加第三维:Retriever。完整实验应拆成:

Writer × Retriever × Reader \text{Writer}\times\text{Retriever}\times\text{Reader} Writer×Retriever×Reader

这样才能知道信息是在写入、召回还是使用阶段丢失。

5. "通用搜索工具"也需要被系统研究

论文将 Pi 的优势解释为强模型 + 工具,但 Pi、Codex、Claude Code 成本差异巨大。这意味着 Harness 本身已经是一种 Memory Policy。

搜索工具的接口、返回格式、默认预算、缓存、错误处理和系统提示,都会决定 Agent 是否读文件、读多少以及何时停止。下一步不一定是取消 Memory Research,而可能是把重点转向 Agentic Information Seeking。

6. 这篇论文对 AMM 框架形成了很好的实证补充

上一篇 AMM 观点论文强调,记忆评价必须同时看 State Quality、Utilization、Outcome 与 Cost。MemoryTax 正好给出一个具体例子:

  • Writer 决定 State Quality;
  • Coding Agent 决定 Utilization Policy;
  • LoCoMo Judge 测 Outcome;
  • Build + Per-question 测 Cost。

它也证明了为什么只比较最终准确率不够:Mem0 在 Opus 上与 Full Context 同为 95%,但总成本大约是后者两倍,且 Store 还形成信息上限。

十六、总结

《MemoryTax: The Bitter Lesson of Agent Memory》用一个规模很小但结构清晰的实验,挑战了 Agent Memory 领域的默认范式:在问题出现前,由专门系统先决定什么值得记住。

论文的主要发现是:

  1. Mem0 在 GPT-4o-mini 上能作为弱模型补丁,但在更强模型上不再超过 Full Context;
  2. 预构建 Store 的成本很高,在当前 152 道题内无法摊销;
  3. Store 的质量由 Writer 决定,强 Reader 无法恢复写入阶段已经删除的信息;
  4. Claude Opus 5.5 + Pi 以约 $6.95 达到 99%,处于实验成本---正确率前沿;
  5. Pi 相对 Full Context 的大部分表面准确率优势来自独享图片 Caption,而在相同文本证据上,两者只差一道题;
  6. 论文支持"强模型 + 原始记录 + 通用搜索工具"这一方向,但不足以证明所有设计型记忆都应被淘汰。

这篇论文最重要的价值不是宣布 Memory 已死,而是要求整个领域重新记账:

不仅要统计模型答题时用了多少 Token,还要统计记忆在问题出现前花了多少成本、删掉了多少未来可能需要的信息,以及更强模型到来后能否绕过旧 Writer 的上限。
最后用一句话概括:MemoryTax 告诉我们,长期记忆不应成为强 Agent 无法逃离的压缩瓶颈;更可靠的方向,是保留可追溯的原始历史,把记忆作为可重建的加速层,再让模型根据当前问题自主搜索。

参考资料

  1. Zedong Peng. MemoryTax: The Bitter Lesson of Agent Memory. arXiv:2610.29823, 2026.
  2. Richard S. Sutton. The Bitter Lesson. 2019.
  3. Prateek Chhikara et al. Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory. 2025.
  4. Zep / Graphiti: Temporal Knowledge Graph Architecture for Agent Memory.
  5. Adyasha Maharana et al. LoCoMo: Evaluating Very Long-Term Conversational Memory of LLM Agents. 2024.
  6. Stephen Robertson and Hugo Zaragoza. The Probabilistic Relevance Framework: BM25 and Beyond. 2009.
  7. Zhang et al. Recursive Language Models. 2025.
  8. MemoryTax 项目页:https://zedongpeng.com/memorytax/
  9. MemoryTax 代码仓库:https://github.com/zedong-peng/memorytax
  10. arXiv 页面:https://arxiv.org/abs/2610.29823
相关推荐
IT星宿1 小时前
github-gravity:用 Rapier2D 把 GitHub 贡献图做成 SVG 物理动画
算法·github
用户69371750013841 小时前
同事相信 AI 给出的方案,我却不敢直接照做
人工智能
深圳市益普科技有限公司1 小时前
半导体SPC 控制图怎么选:四类图种与八条判异准则的取舍
人工智能
hiahiahia1231 小时前
Structured Output
前端·人工智能
2367.1 小时前
AI视频怎么统一片头、字幕、转场和品牌风格:后编辑包装全流程指南
人工智能
2601_949970691 小时前
开源鸿蒙平台 CMP 三方库「SaltUI」适配全流程
华为·开源·harmonyos
AI小百科1 小时前
MoE 架构:为什么大模型开始“分组干活“
人工智能
马剑威(威哥爱编程)1 小时前
【HarmonyOS 7 小艺智能体实战】06:VibeCoding 十分钟搓出一个 Skill(上)——从想法到生成
人工智能·华为·harmonyos
骇客野人1 小时前
从大模型对话聊天都人工智能智能体干活到如今的AI编程的思考以及未来发展趋势展望
人工智能·ai编程