文章目录
- 前言
- 零、论文基本信息
- [一、背景:为什么"检索到相似经验"仍可能让 Agent 变差](#一、背景:为什么“检索到相似经验”仍可能让 Agent 变差)
-
- [1. 原始轨迹保留细节,也保留噪声](#1. 原始轨迹保留细节,也保留噪声)
- [2. 固定摘要会遇到抽象两难](#2. 固定摘要会遇到抽象两难)
- [3. 固定结构也会限制知识表达](#3. 固定结构也会限制知识表达)
- [4. 参数学习不是记忆管理的等价替代](#4. 参数学习不是记忆管理的等价替代)
- [二、相关工作:MCMA 改变的是哪个环节](#二、相关工作:MCMA 改变的是哪个环节)
-
- [1. 轨迹、案例与步骤检索](#1. 轨迹、案例与步骤检索)
- [2. 反思与经验总结](#2. 反思与经验总结)
- [3. 层次化记忆](#3. 层次化记忆)
- [三、MCMA 方法总览](#三、MCMA 方法总览)
- 四、阶段一:轨迹收集与预处理
-
- [1. 为什么不能把原始轨迹直接交给 Copilot](#1. 为什么不能把原始轨迹直接交给 Copilot)
- [2. 成功与失败轨迹分开处理](#2. 成功与失败轨迹分开处理)
- 五、阶段二:多结构记忆生成
-
- [1. 候选记忆集合](#1. 候选记忆集合)
- [2. 结构选择如何与下游效用连接](#2. 结构选择如何与下游效用连接)
- [3. 连续抽象参数](#3. 连续抽象参数)
- [六、阶段三:用下游执行效果训练 Memory Copilot](#六、阶段三:用下游执行效果训练 Memory Copilot)
-
- [1. 记忆效用分数](#1. 记忆效用分数)
- [2. 如何构造偏好对](#2. 如何构造偏好对)
- [3. 为什么这种监督比"好摘要"标签更有意义](#3. 为什么这种监督比“好摘要”标签更有意义)
- 七、阶段四:层次记忆与两种迁移方式
-
- [1. 记忆层次](#1. 记忆层次)
- [2. 相似任务复用具体知识](#2. 相似任务复用具体知识)
- [3. 无相关知识时迁移 Copilot](#3. 无相关知识时迁移 Copilot)
- 八、实验设置
-
- [1. 数据集](#1. 数据集)
- [2. 模型与基线](#2. 模型与基线)
- [九、主实验:MCMA 是否提升长程决策](#九、主实验:MCMA 是否提升长程决策)
-
- [1. Qwen3-8B 结果](#1. Qwen3-8B 结果)
- [2. Qwen3-32B 结果](#2. Qwen3-32B 结果)
- [3. 跨闭源模型复用](#3. 跨闭源模型复用)
- 十、消融:究竟是成功总结、失败反思、结构还是训练起作用
-
- [1. Success Summary 与 Failure Reflection](#1. Success Summary 与 Failure Reflection)
- [2. 固定表面结构是否足够](#2. 固定表面结构是否足够)
- [3. 训练过的 Copilot 是否必要](#3. 训练过的 Copilot 是否必要)
- 十一、结构分析、记忆数量与负迁移
-
- [1. 不是给得越多越好](#1. 不是给得越多越好)
- [2. Copilot 实际偏好什么结构](#2. Copilot 实际偏好什么结构)
- [3. 跨任务知识迁移给出了一个明确反例](#3. 跨任务知识迁移给出了一个明确反例)
- [十二、跨域 Copilot 迁移:不能迁移知识时,迁移记忆能力](#十二、跨域 Copilot 迁移:不能迁移知识时,迁移记忆能力)
- 十三、效率与扩展性
-
- [1. 推理效率](#1. 推理效率)
- [2. 上下文效率](#2. 上下文效率)
- [3. 训练成本](#3. 训练成本)
- [十四、与 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:把成功流程与失败 guardrail 分开](#2. Tool Agent:把成功流程与失败 guardrail 分开)
- [3. Multi-Agent:迁移团队的"知识整理角色"](#3. Multi-Agent:迁移团队的“知识整理角色”)
- 十六、局限性
-
- [1. 抽象层级选择尚未真正学会](#1. 抽象层级选择尚未真正学会)
- [2. 多结构搜索空间仍由人预定义](#2. 多结构搜索空间仍由人预定义)
- [3. 跨任务知识迁移证据较弱](#3. 跨任务知识迁移证据较弱)
- [4. 基线和配置并非完全对称](#4. 基线和配置并非完全对称)
- [5. 缺少统计稳健性与错误分析](#5. 缺少统计稳健性与错误分析)
- [6. 训练成本没有量化](#6. 训练成本没有量化)
- [7. 任务范围仍偏窄](#7. 任务范围仍偏窄)
- 十七、我的理解与启发
-
- [1. MCMA 真正迁移的是"归纳偏好"](#1. MCMA 真正迁移的是“归纳偏好”)
- [2. 记忆不是越抽象越高级](#2. 记忆不是越抽象越高级)
- [3. "记忆效用"应是多目标函数](#3. “记忆效用”应是多目标函数)
- [4. Memory Copilot 可以成为模型之外的长期能力层](#4. Memory Copilot 可以成为模型之外的长期能力层)
- [5. MCMA 与 ReMemR1、Mem²Evolve 可以形成互补](#5. MCMA 与 ReMemR1、Mem²Evolve 可以形成互补)
- 十八、总结
- 参考资料
前言
在 Agent Memory 这条研究线上,我们已经看到很多不同方向:A-MEM 让记忆之间形成动态关联,MAGMA 组织不同功能与粒度的记忆,CoM 关注长程交互中的压缩与延续,ReMemR1 让 Agent 在写入新记忆时回访历史,Mem²Evolve 则进一步研究记忆如何伴随经验持续演化。
这些工作都在让记忆变得更有结构、更容易更新和检索。但当 Agent 真正面对一个新任务时,还有一个更基础的问题:
过去的经验究竟应该保留到什么粒度,才能帮助当前任务,而不是误导当前任务?
假设 Agent 曾经完成过"把冷却后的杯子放进咖啡机"。如果新任务只是在另一个房间里重复同样操作,那么保留具体路径、柜子编号和动作序列会很有帮助;如果新任务变成 BabyAI 网格世界里的"把钥匙送到箱子",原来的柜子、冰箱和咖啡机细节不仅没用,还可能造成负迁移。
抽象得太少,记忆会过拟合旧环境;抽象得太多,记忆又会变成"先规划、再行动"这种无法执行的空话。这就是本文提出的 abstraction reuse dilemma:记忆能否迁移,不只取决于内容是否相似,还取决于抽象层级是否合适。
现有方法通常提前决定记忆形式:保存整条轨迹、抽取自然语言经验、使用固定树结构,或者设置固定的层级。MCMA 不再把"记忆长什么样"视为系统设计者一次性决定的超参数,而是训练一个独立的 Memory Copilot,根据下游执行效果学习如何剪枝、拆分、组合结构、调整抽象粒度。
本文的唯一核心增量可以概括为:
MCMA 将记忆抽象从固定表示方案提升为一种可学习、可迁移的元认知能力:它用独立的 Memory Copilot 根据下游任务效果学习"经验该如何结构化、抽象到哪一层、何时复用知识,何时只迁移记忆管理能力"。
多结构表示、层次化记忆、DPO 和跨任务实验都围绕这一增量展开。论文真正想迁移的不只是某条经验,而是 Agent 的"学习如何记忆"的能力。
零、论文基本信息
- 论文名称:Learning How to Remember: A Meta-Cognitive Management Method for Structured and Transferable Agent Memory
- 发表平台:Findings of the Association for Computational Linguistics: ACL 2026
- 代码仓库 :LiangThree/MCMA
- 作者:Sirui Liang, Pengfei Cao, Jian Zhao, Wenhao Teng, Xiangwen Liao, Jun Zhao, Kang Liu
一、背景:为什么"检索到相似经验"仍可能让 Agent 变差
1. 原始轨迹保留细节,也保留噪声
最直接的 Agent Memory 是保存历史任务的完整 trajectory:目标、每一步 thought、action、observation 和最终结果。新任务到来时,检索一条相似轨迹放进上下文。
这种方法的问题不只是轨迹太长。更关键的是,完整轨迹会把旧环境中的偶然细节当成新任务的指导:某个杯子过去在 cabinet 2,并不意味着新房间里仍在 cabinet 2;某次操作绕了一段路,也不应该成为以后照抄的流程。
原始轨迹回答了"上次具体怎么做",却没有回答"哪些步骤是任务规律,哪些只是环境偶然性"。
2. 固定摘要会遇到抽象两难
把轨迹总结成经验,可以减少噪声,但摘要本身有粒度选择:
- 低抽象:保留对象名称、位置和动作顺序,可执行性强,却难以跨环境;
- 高抽象:保留目标分解和通用规律,迁移性强,却可能缺少下一步动作所需的细节。
例如,"去 cabinet 2 打开柜门并取 bowl 1"对相同房间很有用;"先定位目标物体,再取出,再执行状态变化,最后放入目标容器"可以跨房间迁移,但如果只剩"完成物体处理任务",几乎没有行动价值。
因此不存在适用于所有新任务的单一最佳抽象层级。
3. 固定结构也会限制知识表达
不同经验天然适合不同结构:
- 目标与子目标的分解适合树;
- 严格动作顺序适合链;
- 对象与常见位置适合 Key-Value;
- 难以离散化的策略与警告适合自然语言。
如果所有经验都被强制写成同一种格式,要么会丢失关系,要么需要冗长文本解释本可显式表达的结构。
MCMA 因此同时学习两件事:用什么结构表示 ,以及抽象到什么粒度。
4. 参数学习不是记忆管理的等价替代
另一条路线是让 Agent 通过强化学习或微调把经验内化到 Task Model 参数中。这能提升特定环境表现,却把任务策略与记忆学习紧密耦合:
- 换模型后经验难以复用;
- 换任务后需要重新训练策略;
- 连续训练可能造成灾难性遗忘;
- 很难看出模型究竟"记住了什么"。
MCMA 冻结 Task Model,只训练独立的 4B Memory Copilot。这样,任务执行能力和记忆管理能力可以分别训练、评估和迁移。
二、相关工作:MCMA 改变的是哪个环节
1. 轨迹、案例与步骤检索
Synapse 一类方法检索整条轨迹,case-based 方法复用子任务,TRAD 则根据当前 thought 做 step-wise retrieval,再补回相邻时序上下文。这些方法改善了检索粒度,却通常假设记忆表示已经确定。
MCMA 的关注点更靠前:在经验进入记忆库之前,应该怎样被加工,才能在未来真正有用。
2. 反思与经验总结
Reflexion 从失败中生成文字反思,ExpeL 从多条成功和失败轨迹中提炼自然语言 insight,并检索成功轨迹作为示例。这些方法已经把原始执行记录转化为更高层经验。
MCMA 的区别是:它不预设最终一定是自然语言 insight,而是允许 tree、chain、key-value、natural language 的组合与嵌套;并用下游执行效果形成偏好监督,训练一个可迁移的抽象策略。
3. 层次化记忆
层次记忆通常预定义"细节层---摘要层---策略层",再按相似度选择。MCMA 也使用层级,但论文的重点不是层级本身,而是 Memory Copilot 学习生成各层内容;当具体内容完全不适用时,还可以迁移 Copilot 本身。
三、MCMA 方法总览
先看 Figure 1 的具体例子。它展示了 MCMA 如何从一条关于 mug、cabinet 和 microwave 的具体轨迹中识别出子任务结构,同时保留对象位置这类局部映射。

Figure 1:MCMA 工作示例。 Memory Copilot 将原始操作轨迹拆成结构化子任务,并使用树与链表达流程、使用 Key-Value 保存局部对象信息。
这张图说明,多结构不是为了视觉上更复杂,而是为了把不同性质的信息放进合适容器:整体任务是树,动作顺序是链,对象位置是映射。
完整训练与复用流程如 Figure 2 所示。

Figure 2:MCMA 完整框架。 Task Model 收集轨迹,Memory Copilot 生成结构化候选记忆,Task Model 根据下游表现构造偏好对,DPO 更新 Copilot;推理时按相似度复用具体记忆,分布差异过大时迁移 Copilot 的抽象能力。
MCMA 包含两个功能分离的模型:
- Task Model:冻结参数,负责在环境中选择动作,并评价不同记忆是否真正改善执行;
- Memory Copilot:学习怎样清理轨迹、选择结构、控制抽象粒度、总结成功经验和反思失败。
系统分成四个阶段:
- Collect:Task Model 在环境中执行任务,收集成功与失败轨迹;
- Generate:Copilot 把轨迹转换成多个结构和抽象层级不同的候选记忆;
- Judge & Evolve:把候选记忆提供给 Task Model,在下游任务中实际执行并打分,由得分构造偏好对训练 Copilot;
- Reuse:相似任务复用具体层次记忆,不相似任务复用 Copilot 的记忆管理能力。
这个闭环的关键是:记忆好不好,不由文本流畅度或摘要相似度决定,而由"它是否帮助冻结的 Task Model 更成功、更少步地完成任务"决定。
四、阶段一:轨迹收集与预处理
1. 为什么不能把原始轨迹直接交给 Copilot
长程任务轨迹通常包含重复探索、无关观察、失败尝试和大量环境文本。如果让 Copilot直接从全部 token 中总结,一方面成本高,另一方面很容易把错误路径和局部噪声混入记忆。
MCMA 先把轨迹转换为目标导向的层次表示,包含四步:
- Noise pruning:删除重复或与任务无关的步骤;
- Subtask segmentation:根据目标变化切分子任务;
- Consistency checking:检查子任务之间的逻辑依赖和时间顺序;
- Structured processing:把高层目标放在父节点、可执行技能放在叶节点,组织成树。
例如"把一个冷却后的碗放到餐桌"可以分成:
text
根任务:把冷却后的碗放到餐桌
├── 从柜子取出碗
├── 把碗临时放到餐桌
├── 用冰箱冷却碗
│ ├── 从餐桌取回碗
│ └── 打开冰箱并冷却
└── 把冷却后的碗放回餐桌
论文附录中的 Algorithm 1 采用递归 coarse-to-fine decomposition:包含至少 3 个动作的片段会继续尝试拆分,更短片段作为原子叶节点。
2. 成功与失败轨迹分开处理
MCMA 分别训练两个 Copilot:
- Success summarization Copilot:从成功轨迹学习"应该怎样做";
- Failure reflection Copilot:从失败轨迹提炼"为什么失败、以后应避免什么"。
这种拆分避免把成功流程与失败警告混成同一种记忆。推理时,两类知识可以共同进入 Task Model,上层策略既包含正向步骤,也包含 guardrail。
五、阶段二:多结构记忆生成
1. 候选记忆集合
给定轨迹 τ \tau τ,Memory Copilot 生成 N N N 个候选复合记忆:
M τ = { m τ 1 , m τ 2 , ... , m τ N } M_\tau=\{m_\tau^1,m_\tau^2,\ldots,m_\tau^N\} Mτ={mτ1,mτ2,...,mτN}
每个候选都可以由下面四种基本结构组合或嵌套:
S = { natural text , key-value , chain , tree } \mathcal{S}=\{\text{natural text},\text{key-value},\text{chain},\text{tree}\} S={natural text,key-value,chain,tree}
它们分别适合表达:
| 结构 | 适合保存的知识 | 例子 |
|---|---|---|
| Tree | 目标分解与层次依赖 | 清洁并放置物品 → 获取、清洁、放置 |
| Chain | 严格时序流程 | 找物体 → 拿起 → 移动 → 放下 |
| Key-Value | 属性或稳定映射 | mug → cabinet |
| Natural Language | 复杂经验、警告和解释 | 先确认容器是否打开,避免重复无效操作 |
Copilot 并非在四者中单选。例如,顶层可以是任务树,每个叶节点内部再嵌套动作链,旁边附带对象位置映射。
2. 结构选择如何与下游效用连接
论文用 softmax 形式表示候选记忆的选择概率:
P θ ( m τ i ∣ τ ) = exp ( β s ( m τ i ) ) ∑ j = 1 N exp ( β s ( m τ j ) ) P_\theta(m_\tau^i\mid\tau)= \frac{\exp(\beta s(m_\tau^i))} {\sum_{j=1}^{N}\exp(\beta s(m_\tau^j))} Pθ(mτi∣τ)=∑j=1Nexp(βs(mτj))exp(βs(mτi))
其中:
- θ \theta θ 是 Memory Copilot 参数;
- s ( m τ i ) s(m_\tau^i) s(mτi) 是候选记忆在下游任务中的效用;
- β > 0 \beta>0 β>0 控制分布对得分差异的敏感度。
直觉上,能让 Task Model 更成功、更高效的结构应获得更高概率。这个式子描述的是训练目标的偏好方向;真正更新 Copilot 的机制是后面的 SFT + DPO,而不是直接对不可微环境得分做梯度传播。
3. 连续抽象参数
论文用 α ∈ 0 , 1 \alpha\in0,1 α∈0,1 表示抽象强度:
m τ ( α ) = MemoryCopilot θ a b s ( τ , α ) m_\tau(\alpha)=\operatorname{MemoryCopilot}^{abs}_\theta(\tau,\alpha) mτ(α)=MemoryCopilotθabs(τ,α)
较小的 α \alpha α 保留对象、位置和动作等执行细节;较大的 α \alpha α 抑制任务特定信息,保留通用过程。理想抽象层级定义为:
α ∗ = arg max α ∈ 0 , 1 s ( m τ ( α ) ) \alpha^*=\arg\max_{\alpha\in0,1}s\big(m_\tau(\alpha)\big) α∗=argα∈0,1maxs(mτ(α))
这一定义强调"最佳抽象"必须相对于下游用途判断。不过正式实现并没有证明系统在推理时连续搜索任意 α \alpha α;后续层次记忆实际采用 L = 2 L=2 L=2 的离散抽象层级。因此,连续 α \alpha α 更像方法建模,落地仍是有限候选和层级选择。
六、阶段三:用下游执行效果训练 Memory Copilot
1. 记忆效用分数
每个候选记忆会被注入 Task Model,用真实任务执行结果评分:
s ( m i ) = { 0 , 任务失败 0.1 + 0.9 ⋅ T m a x − T i T m a x − T m i n , 任务成功 s(m_i)= \begin{cases} 0,&\text{任务失败}\\ 0.1+0.9\cdot\dfrac{T_{max}-T_i}{T_{max}-T_{min}},&\text{任务成功} \end{cases} s(mi)=⎩ ⎨ ⎧0,0.1+0.9⋅Tmax−TminTmax−Ti,任务失败任务成功
其中 T i T_i Ti 是使用候选记忆 m i m_i mi 时的执行步数, T m i n T_{min} Tmin 和 T m a x T_{max} Tmax 是比较范围内的最短与最长成功轨迹。
这个设计把成功放在首位:失败记忆一律为 0;成功后,步数越少,得分越接近 1。最低成功分为 0.1,从而确保"完成任务但较慢"仍优于失败。
它也带来一个边界:效用只由成功和长度决定,没有直接衡量 token 成本、风险、动作可逆性或记忆本身的事实正确性。
2. 如何构造偏好对
同一轨迹产生多个候选后,论文选择得分差最大的 Top-K 组合,构成:
( τ , m + , m − ) (\tau,m^+,m^-) (τ,m+,m−)
其中 m + m^+ m+ 比 m − m^- m− 更能帮助下游执行。先通过 SFT 让 Copilot 学会基本输出格式,再用 DPO 强化结构与抽象偏好。
DPO 目标写为:
L = − log σ ( β log p θ ( m + ) − log p θ ( m − ) ) \mathcal{L}=-\log\sigma\left( \beta\left\\log p_\\theta(m\^+)-\\log p_\\theta(m\^-)\\right \right) L=−logσ(βlogpθ(m+)−logpθ(m−))
其中 p θ ( m ) p_\theta(m) pθ(m) 是 Copilot 在轨迹 τ \tau τ 条件下生成某种结构化记忆的概率。最小化该损失,会提高高效记忆 m + m^+ m+ 的相对概率,压低低效记忆 m − m^- m−。
论文给出的式子是简化形式,没有显式写出标准 DPO 常见的 reference model 对数比项。因此应按论文原式理解,不能自行补成另一套训练目标。
3. 为什么这种监督比"好摘要"标签更有意义
一段摘要可能逻辑清晰、语言流畅,却对 Agent 下一步行动毫无帮助。MCMA 的偏好来自实际执行,因此它优化的是 memory utility,而不是 summary quality。
这也是"meta-cognitive"名称的来源:Copilot 学的不是任务动作本身,而是怎样加工经验才能让另一个模型做得更好。
七、阶段四:层次记忆与两种迁移方式
1. 记忆层次
MCMA 把记忆组织为:
H = { H 0 , H 1 , ... , H L } H=\{H_0,H_1,\ldots,H_L\} H={H0,H1,...,HL}
论文设置 L = 2 L=2 L=2:
- H 0 H_0 H0:原始轨迹;
- H 1 H_1 H1:保留较完整任务细节的 episodic memory;
- H 2 H_2 H2:抑制具体对象和环境细节的高层抽象知识。
系统连接知识名称与描述生成 embedding,构造 k k k-NN 稀疏语义图,其中 k = 10 k=10 k=10;随后进行层次聚类,先在簇内合并重复知识,再在簇间提炼更高层概念。
2. 相似任务复用具体知识
对于新任务 τ n e w \tau_{new} τnew,论文写成:
m r e u s e = arg max m ∈ H ℓ , ℓ ∈ 0 , L sim ( τ n e w , m ) m_{reuse}=\arg\max_{m\in H_\ell,\ell\in0,L} \operatorname{sim}(\tau_{new},m) mreuse=argm∈Hℓ,ℓ∈0,Lmaxsim(τnew,m)
高相似任务倾向使用低层、细节丰富的记忆;相似度较低时,使用高层抽象,避免旧环境细节造成干扰。
这里的方向符合直觉,但正式论文也明确承认:选择哪个抽象层级仍依赖人工设计策略,并没有被端到端学会。这是 MCMA 与其"自适应选择"愿景之间最重要的实现缺口。
3. 无相关知识时迁移 Copilot
当新任务与记忆库完全不相关时,继续检索旧知识没有意义。MCMA 改为迁移抽象策略本身:
θ ∗ = arg max θ E τ ∼ T t r a i n s ( Abstraction θ ( τ , α ) ) \theta^*=\arg\max_\theta \mathbb{E}{\tau\sim\mathcal{T}{train}} \lefts\\big(\\operatorname{Abstraction}_\\theta(\\tau,\\alpha)\\big)\\right θ∗=argθmaxEτ∼Ttrains(Abstractionθ(τ,α))
训练得到的 θ ∗ \theta^* θ∗ 被用于新分布 T n e w \mathcal{T}_{new} Tnew,在那里重新整理新任务自己的轨迹。
这形成两种完全不同的迁移:
- Knowledge transfer:旧任务与新任务有语义共性时,迁移已有抽象知识;
- Ability transfer:任务不相关时,不迁移内容,只迁移"怎样形成好记忆"的 Copilot。
后一种是论文最有辨识度的设计。
八、实验设置
1. 数据集
ALFWorld
ALFWorld 是文本化具身环境,包含 Pick & Place、Clean & Place、Heat & Place 等 6 类家庭任务和 120 个交互场景。测试集包含:
- Seen:140 个任务实例,房间类别与训练阶段相同,但对象配置变化;
- Unseen:134 个任务实例,房间布局与物体位置在训练中未出现。
指标是任务成功率 Acc 和平均执行步数 Step。
ScienceWorld
ScienceWorld 模拟热力学、电路、化学和生物生命周期等科学环境,共有 30 类任务、10 个主题。Dev 有 1,796 个实例,Test 有 1,819 个实例。指标是子目标累计 Reward。
论文发现成功摘要在 ScienceWorld 这种变化更大的环境中经常产生负作用,因此只使用 failure reflection Copilot。这一配置差异需要注意:主表中的 MCMA 并不是两个数据集上完全相同的系统。
BabyAI
BabyAI 是部分可观察的二维网格世界,观察是 7 × 7 7\times7 7×7 符号局部视野。论文用确定性转换器把物体相对坐标转成自然语言,例如"红球在前方 3 步、左侧 1 步",用于检验 ALFWorld 知识的跨任务迁移。
2. 模型与基线
Task Model 使用冻结的 Qwen3-8B 或 Qwen3-32B,Memory Copilot 统一为 Qwen3-4B。
主要基线包括:
- No Memory;
- ReAct;
- Raw Trajectory;
- TRAD;
- ExpeL。
此外,作者把为 Qwen3-32B 训练的 Copilot 接到 GPT-4o-mini、Gemini-2.5-Flash、Qwen3-4B 和 Qwen2.5-72B 上,检验跨模型复用。
九、主实验:MCMA 是否提升长程决策
1. Qwen3-8B 结果
| 方法 | ALFWorld Seen Acc | Seen Step | ALFWorld Unseen Acc | Unseen Step | ScienceWorld Dev | ScienceWorld Test |
|---|---|---|---|---|---|---|
| No Memory | 55.00 | 33.15 | 56.33 | 33.06 | 21.26 | 19.18 |
| ReAct | 59.29 | 31.04 | 64.93 | 30.58 | 21.00 | 18.41 |
| Raw Trajectory | 67.14 | 24.75 | 72.39 | 25.01 | 20.17 | 17.61 |
| TRAD | 64.29 | 28.48 | 63.43 | 29.76 | 30.16 | 27.42 |
| ExpeL | 69.28 | 24.73 | 72.39 | 24.16 | 26.43 | 23.12 |
| MCMA | 79.29 | 21.24 | 80.60 | 20.57 | 31.17 | 29.17 |
Table 1(Qwen3-8B):ALFWorld 与 ScienceWorld 主结果。 MCMA 同时提高成功率或奖励,并缩短 ALFWorld 的平均执行轨迹。
相对 No Memory,MCMA 在 ALFWorld Seen/Unseen 上分别提升 24.29 和 24.27 个百分点,同时平均少走 11.91 和 12.49 步。ScienceWorld Dev/Test 分别提升 9.91 和 9.99。
更值得注意的是,Raw Trajectory 在 ScienceWorld 上反而低于 No Memory:Test 从 19.18 降到 17.61。这直接证明"拥有历史"不等于"历史有帮助",未抽象的经验会造成负迁移。
2. Qwen3-32B 结果
| 方法 | ALFWorld Seen Acc | Seen Step | ALFWorld Unseen Acc | Unseen Step | ScienceWorld Dev | ScienceWorld Test |
|---|---|---|---|---|---|---|
| No Memory | 62.86 | 29.85 | 66.42 | 30.36 | 45.10 | 43.69 |
| ReAct | 63.57 | 31.15 | 72.39 | 28.75 | 45.44 | 44.05 |
| Raw Trajectory | 74.29 | 21.92 | 78.36 | 21.39 | 44.82 | 41.70 |
| TRAD | 74.29 | 24.77 | 79.10 | 24.73 | 42.77 | 42.00 |
| ExpeL | 78.57 | 20.40 | 77.61 | 21.23 | 44.97 | 43.78 |
| MCMA | 90.71 | 17.78 | 90.30 | 18.00 | 51.95 | 48.60 |
Table 1(Qwen3-32B):不同记忆方法的主结果。 在更强 Task Model 上,MCMA 仍保持最高成功率和最短执行步数。
MCMA 在 ALFWorld Seen 上比 ExpeL 高 12.14 个百分点,在 Unseen 上比最佳基线 TRAD 高 11.20;ScienceWorld Test 比 No Memory 高 4.91。
提升在 8B 上更大,说明结构化抽象尤其能补偿小模型有限的长程规划能力;但 32B 结果表明这种帮助并未随着模型变强而消失。
3. 跨闭源模型复用
| Task Model | 原始 Acc Seen | 原始 Acc Unseen | 接入 MCMA 后 Seen | 接入 MCMA 后 Unseen |
|---|---|---|---|---|
| GPT-4o-mini | 42.86 | 48.51 | 63.57 | 63.43 |
| Gemini-2.5-Flash | 61.43 | 67.91 | 84.29 | 88.06 |
Table 2:Qwen3-32B Copilot 跨模型复用结果。 同一个 Memory Copilot 能够提升 GPT-4o-mini 与 Gemini-2.5-Flash 在 ALFWorld 上的成功率。
GPT-4o-mini 的 Seen/Unseen 分别提升 20.71 和 14.92,Gemini 分别提升 22.86 和 20.15。由于闭源 Task Model 参数未更新,这些提升支持了"记忆管理能力与任务模型解耦"的主张。
不过实验没有报告不同模型的提示适配细节和多次运行方差,因此"模型无关"仍应理解为对这几个模型有效,而不是已经覆盖任意 LLM。
十、消融:究竟是成功总结、失败反思、结构还是训练起作用
1. Success Summary 与 Failure Reflection
| 模型 | 配置 | Seen Acc | Seen Step | Unseen Acc | Unseen Step |
|---|---|---|---|---|---|
| Qwen3-8B | Sum | 68.57 | 23.69 | 72.39 | 23.85 |
| Qwen3-8B | Ref | 72.86 | 25.15 | 71.64 | 25.82 |
| Qwen3-8B | Sum + Ref | 79.29 | 21.24 | 80.60 | 20.57 |
| Qwen3-32B | Sum | 76.43 | 21.84 | 83.25 | 23.97 |
| Qwen3-32B | Ref | 82.14 | 22.46 | 84.33 | 21.95 |
| Qwen3-32B | Sum + Ref | 90.71 | 17.78 | 90.30 | 18.00 |
Table 3:成功总结与失败反思消融。 两种 Copilot 单独使用都有帮助,组合后才能同时获得最高成功率和最短轨迹。
成功记忆告诉 Agent 哪条流程有效,失败记忆则帮助它避免重复搜索、无效动作或错误前提。两者的收益不是简单重复:完整版本在 Qwen3-32B Seen 上比 Ref 高 8.57,比 Sum 高 14.28。
但 ScienceWorld 主实验只使用 Ref,这说明成功经验的可迁移性高度依赖环境稳定性。论文没有给出一套自动门控机制来判断何时启用 Sum,仍需要人工按数据集选择。
2. 固定表面结构是否足够
| 模型 | 表示方式 | Seen Acc | Seen Step | Unseen Acc | Unseen Step |
|---|---|---|---|---|---|
| Qwen3-8B | Natural Language | 74.63 | 23.37 | 72.39 | 24.88 |
| Qwen3-8B | Chain | 77.14 | 22.57 | 75.27 | 23.55 |
| Qwen3-8B | MCMA 多结构 | 79.29 | 21.24 | 80.60 | 20.57 |
| Qwen3-32B | Natural Language | 77.86 | 20.50 | 82.09 | 21.75 |
| Qwen3-32B | Chain | 86.14 | 19.10 | 84.33 | 20.24 |
| Qwen3-32B | MCMA 多结构 | 90.71 | 17.78 | 90.30 | 18.00 |
Table 3(续):记忆表示消融。 自然语言与固定链结构都能带来收益,但学习组合结构仍然最好。
Chain 普遍优于纯自然语言,说明显式顺序对长程任务很重要;完整 MCMA 又优于 Chain,说明层次分解、属性映射和自然语言警告确实需要互补结构。
3. 训练过的 Copilot 是否必要
| 变体 | Unseen Acc | Step |
|---|---|---|
| 未训练 Qwen3-4B Copilot | 83.58 | 22.53 |
| 未训练 Gemini-2.5-Flash Copilot | 86.56 | 19.75 |
| DPO 训练的 MCMA Copilot | 90.71 | 17.78 |
Table 4:Memory Copilot 训练消融。 更强但未经任务效用训练的 Gemini Copilot 仍落后于经过 DPO 的 4B Copilot。
未训练 Qwen3-4B 低 7.13 个百分点,Gemini-2.5-Flash 低 4.15。模型能力本身能生成看似合理的结构,但 DPO 才让结构偏好与下游执行效用对齐。
十一、结构分析、记忆数量与负迁移
1. 不是给得越多越好

Figure 3:知识数量对 ALFWorld 表现的影响。 Seen 在 5 条知识时达到 90.71%,Unseen 在 4 条时达到 90.30%;继续增加会降低准确率。
从 1 条增加到 4-5 条时,知识覆盖度提高;超过最优点后,额外内容开始增加上下文负担和干扰。8 条知识时,Seen 降到 85.71,Unseen 降到 81.34。
这与传统"top-k 越大召回越充分"的直觉相反。对行动 Agent 而言,多余经验不仅占 token,还会引入互相竞争的流程。检索系统应该优化的是足够且一致的指导,而不是最大召回。
2. Copilot 实际偏好什么结构

Figure 4:MCMA 的结构分布与替换实验。 全部嵌套节点中 Chain 占 47.7%;对以 Tree 或 Chain 为顶层的任务,强制替换为单一结构都会降低表现。
论文正文还指出,顶层结构约 70% 是 Tree、约 20% 是 Chain;Figure 4a 统计的是把所有嵌套子结构一并展开后的分布,因此 Chain 占 47.7%,Tree 为 17.2%,Natural Language 为 17.8%,Key-Value 为 17.4%。两组比例统计口径不同,并不矛盾。
对 Tree 顶层任务,MCMA 原结构得分 91.7,强制换为 Tree、Chain、Natural Language 后分别为 86.0、约 85 和 82.6;Chain 顶层任务也呈相同趋势。这里最值得注意的是:即使替换成"同名"的纯 Tree,也会下降,因为原始 MCMA 顶层 Tree 内部还嵌套了 Chain、Key-Value 或自然语言。
3. 跨任务知识迁移给出了一个明确反例
| BabyAI 配置 | Acc | Reward |
|---|---|---|
| Base | 16.67 | 14.24 |
| ALFWorld Abstract Level 1 | 13.54 | 12.32 |
| ALFWorld Abstract Level 2 | 17.71 | 15.33 |
Table 5:ALFWorld 知识迁移到 BabyAI。 细粒度 Level 1 造成负迁移,高层 Level 2 才产生小幅正收益。
Level 1 让准确率下降 3.13、Reward 下降 1.92;Level 2 则分别提升 1.04 和 1.09。这是全文最关键的证据之一:相似的高层任务语义并不保证低层执行细节可复用。
同时,Level 2 的正向提升很小。它证明"高层抽象比低层细节更适合跨域",却不足以证明已有知识能够大规模迁移到完全不同环境。
十二、跨域 Copilot 迁移:不能迁移知识时,迁移记忆能力
| Copilot | ScienceWorld | ALFWorld |
|---|---|---|
| Base | 19.18 | 56.33 |
| ScienceWorld Copilot | 29.17 | 61.19 |
| ALFWorld Copilot | 27.43 | 71.64 |
| Mixed Copilot | 29.85 | 69.40 |
Table 6:Memory Copilot 跨域迁移。 即使不复用旧任务的具体知识,迁移学习到的抽象与组织能力仍能提升新环境表现。
ScienceWorld Copilot 回到本域提升 9.99,在 ALFWorld 也提升 4.86;ALFWorld Copilot 用在 ScienceWorld 提升 8.25,用在 ALFWorld 提升 15.31。混合 Copilot 对两个域都有效,并在训练资源较少的 ScienceWorld 上最好。
这组实验比 BabyAI 的知识迁移更能支撑论文标题中的 transferable:不是说一条家务流程可以直接指导科学实验,而是说"怎样从轨迹提炼有用经验"的策略具有跨域价值。
不过作者推测 ALFWorld Copilot 更强是因为收集了更多训练数据,但正文没有报告各 Copilot 的候选数量、偏好对规模和训练 token,无法定量验证这个解释。
十三、效率与扩展性
1. 推理效率
在 ALFWorld 上,MCMA 不仅成功率最高,平均动作步数也最少。Qwen3-32B 的 Seen 从 No Memory 的 29.85 步降到 17.78,Unseen 从 30.36 降到 18.00。
这说明结构化记忆让 Agent 少走弯路,而不是通过更长探索换取成功。
2. 上下文效率
Figure 3 表明 4-5 条结构知识达到最优。相比注入完整轨迹,MCMA 可以在相同上下文中放入更多独立经验;但论文没有报告平均 token 数、压缩率或实际输入长度,因此"显著更简洁"主要是定性结论。
3. 训练成本
Copilot 训练需要为同一轨迹生成多个结构和抽象层级的候选,并逐个让 Task Model 在下游环境中执行、评分,再构造偏好对。这一过程发生在线下,可以跨任务复用,但成本明显高于单次摘要或非参数检索。
论文没有报告:
- 候选 N N N 和 Top-K 的具体默认值;
- SFT/DPO 数据规模与训练 GPU 时长;
- 每条记忆需要多少次环境 rollout;
- 构建不同抽象层级的 token 成本;
- 相似度检索和层次聚类的实际延迟。
因此,实验充分展示了任务效率,却没有完整量化训练与系统效率。
十四、与 Agent Memory 系列方法的横向比较
| 方法 | 主要问题 | 记忆单位/结构 | 记忆如何变化 | 与 MCMA 的关键差异 |
|---|---|---|---|---|
| A-MEM | 新经验如何形成关联 | 动态关联的文本记忆 | 写入时生成属性与链接 | A-MEM 学习关联内容,MCMA 学习结构和抽象策略 |
| MAGMA | 不同功能与粒度记忆如何协同 | 多类、多粒度记忆组织 | 按功能组织与检索 | MAGMA 强调 memory architecture,MCMA 强调谁来学习抽象方式 |
| CoM | 长上下文如何压缩与延续 | 压缩后的上下文记忆 | 随交互递进压缩 | CoM 主要降低上下文负担,MCMA 用下游效用选择抽象层级 |
| ReMemR1 | 写入时怎样避免不可逆遗忘 | 可回访的历史记忆 | Callback retrieval 后更新 | ReMemR1 让模型回看旧记忆,MCMA 让 Copilot学习怎样重构新经验 |
| Mem²Evolve | 记忆如何随经验持续进化 | 可更新的经验记忆 | 依据反馈选择与演化 | Mem²Evolve 更关注记忆内容演化,MCMA 进一步迁移记忆管理策略本身 |
| ReasoningBank | 成败轨迹如何变成推理经验 | 可迁移 reasoning memory | 反思成败并持续积累 | 两者都用下游经验形成高层知识;MCMA 更强调多结构、抽象层级与独立 Copilot |
| MCMA | 怎样学习"该如何记忆" | Tree/Chain/KV/文本的嵌套结构与三级抽象 | SFT+DPO 优化 Copilot,层次聚类组织记忆 | 把抽象策略本身变成可跨模型、跨任务迁移的对象 |
MCMA 在系列中的位置可以概括为:过去的工作常把记忆内容、结构或更新规则作为系统设计;MCMA 则开始学习这个设计过程本身。
但它还没有完全实现"自主记忆管理"。抽象层级选择仍是人工规则,ScienceWorld 是否启用成功记忆也由人工决定。它更像从手工记忆工程迈向 learned memory management 的中间一步。
十五、对 Coding Agent、Tool Agent 与 Multi-Agent 的工程启发
以下内容是基于论文机制的工程推演,不是论文直接验证的实验结论。
1. Coding Agent:不同代码经验需要不同结构
一次修复轨迹可以同时提取:
- Tree:问题定位 → 根因分析 → 修改 → 测试;
- Chain:必须按顺序执行的迁移或发布步骤;
- Key-Value:模块与测试命令、错误码与常见原因的映射;
- Natural Language:代码库约定、风险和失败教训。
相似仓库可使用细粒度命令与文件路径;跨语言或跨框架时,只迁移"先复现、再缩小范围、修改后跑针对性测试与回归测试"这种高层流程。
Memory Copilot 的奖励也可以从"任务成功 + 步数少"扩展为:测试通过、改动范围小、回归风险低、token 成本低。
2. Tool Agent:把成功流程与失败 guardrail 分开
工具调用失败通常比成功日志更有价值。例如:
- API 返回 401 时先检查凭证作用域;
- 搜索结果过多时先加时间和对象过滤;
- 删除前必须做只读目标解析。
可以分别训练 success summarizer 与 failure reflector,避免失败轨迹原样进入上下文。对相同 SaaS 产品复用具体参数,对不同产品只迁移认证、分页、幂等和验证等高层策略。
3. Multi-Agent:迁移团队的"知识整理角色"
多 Agent 系统中,可以让一个 Memory Copilot 专门观察各 Agent 的执行轨迹,生成共享结构化知识,而不修改执行 Agent 本身。
新团队或新项目没有可复用历史时,可以迁移 Copilot 的整理能力;随着本域经验增加,再形成该项目自己的层次记忆。这比直接复制另一个团队的全部经验更不容易引入领域偏差。
十六、局限性
1. 抽象层级选择尚未真正学会
论文把"自适应复用不同抽象层级"作为核心能力,但 Limitations 明确说明,当前层级选择依赖人工设计策略。系统学会了怎样生成结构化记忆,却没有端到端学会"此刻该用 H 1 H_1 H1 还是 H 2 H_2 H2"。
这意味着核心增量已完成一半:抽象生成可学习,抽象路由仍是规则。
2. 多结构搜索空间仍由人预定义
Tree、Chain、Key-Value 和 Natural Language 是人为给定的 primitives。Copilot 可以组合它们,却不能发明新的记忆类型,也没有图结构、时间约束、概率事实或因果关系等专门表示。
因此,所谓"不使用固定记忆结构"更准确地说是"不固定为单一结构",而不是完全开放的结构发现。
3. 跨任务知识迁移证据较弱
BabyAI 上 Level 2 只提升 1.04 个准确率点,而且没有报告方差或显著性检验;Level 1 反而明显下降。真正强的证据来自 Copilot 迁移,而不是具体知识迁移。
所以论文标题中的 transferable memory 应拆开看:Memory Copilot 的 transfer 证据较强,hierarchical knowledge 的跨域 transfer 仍有限。
4. 基线和配置并非完全对称
ScienceWorld 只使用失败反思,而 ALFWorld 使用成功总结与失败反思。不同数据集经过人工选择最佳组件,可能放大完整系统优势。
此外,论文没有展示对更近邻的近期分层记忆与自进化方法的完整统一复现;主要基线集中在 ReAct、Raw Trajectory、TRAD 和 ExpeL。
5. 缺少统计稳健性与错误分析
结果表没有报告多次运行均值、标准差或显著性检验,也没有像部分 Agent 论文那样对失败案例分类。我们能看到组件移除后的性能变化,却较难判断剩余失败究竟来自记忆抽象错误、检索错误还是 Task Model 执行错误。
6. 训练成本没有量化
偏好数据需要大量候选生成和环境执行,这是 MCMA 最明显的现实成本。论文承认这一点,但没有提供 GPU 小时、API 成本或 rollout 数,使复现和成本收益评估不够完整。
7. 任务范围仍偏窄
主要任务都是文本化交互环境。BabyAI 的视觉网格也先被确定性转写成文字,论文没有验证真实网页、代码仓库、多模态感知或长时间用户交互中的记忆抽象。
十七、我的理解与启发
1. MCMA 真正迁移的是"归纳偏好"
Memory Copilot 学到的不是 cabinet 在哪里,也不只是某条动作链,而是一种偏好:什么细节通常值得保留,什么结构更利于执行,成功和失败应分别怎样转写。
这类似把"会做题"与"会整理错题本"分开。Task Model 负责做题,Copilot 负责决定错题本怎样写。换一个做题模型,错题本方法仍可能有用;换一个学科,具体答案不能搬,但整理经验的方法仍能迁移。
2. 记忆不是越抽象越高级
BabyAI 实验容易被概括为"高层知识更好",但更准确的结论是:抽象层级必须匹配任务距离。
- 环境几乎相同时,低层细节能直接减少搜索;
- 对象和布局变化时,中层流程更可靠;
- 动作空间也变化时,只剩高层任务语义可能有用;
- 完全不相关时,具体知识应停止迁移,只迁移 Copilot。
未来的记忆系统需要估计的不只是 semantic similarity,还应估计 transfer risk:旧细节在新环境中造成错误的概率。
3. "记忆效用"应是多目标函数
MCMA 用成功率和步数定义效用,是一个清晰起点。但真实 Agent 还关心:
- 记忆 token 长度;
- 执行动作的风险与可逆性;
- 是否引用了可靠证据;
- 是否会泄露隐私;
- 是否与最新规则冲突;
- 是否只在特定环境有效。
因此,未来 Copilot 可以学习 Pareto 式多目标偏好,而不是单一标量分数。
4. Memory Copilot 可以成为模型之外的长期能力层
大模型更新很快,企业不可能每换一个 Task Model 就重新积累所有经验。如果记忆管理被封装成独立 Copilot,它可以在底层模型迁移时继续使用。
论文在 GPT-4o-mini、Gemini-2.5-Flash、Qwen3-4B 和 Qwen2.5-72B 上的结果初步支持这一点。对生产系统而言,这可能比单个 benchmark 上多几个点更重要:记忆资产与基础模型解耦后,系统更容易升级。
5. MCMA 与 ReMemR1、Mem²Evolve 可以形成互补
MCMA 擅长从轨迹生成结构化抽象,但没有充分处理新旧记忆冲突与持续修订。ReMemR1 的 callback 思路可以让 Copilot 在生成新知识前回访相近旧记忆;Mem²Evolve 式反馈机制可以决定合并、替换、降权或淘汰。
一个更完整的未来系统可能包含:
- MCMA 式 learned abstraction,决定新经验怎样写;
- ReMemR1 式 historical callback,检查与旧知识的关系;
- Mem²Evolve 式持续演化,依据长期使用效果更新记忆;
- learned router,根据任务距离和风险选择抽象层级。
这样,"学习如何记忆"才能扩展为"学习如何长期维护记忆"。
十八、总结
MCMA 研究的不是记忆应该固定写成树、链还是摘要,而是怎样让 Agent 自己学会选择和组合这些表示。它冻结 Task Model,把成功与失败轨迹交给独立的 Memory Copilot;Copilot 生成多结构、多抽象层级的候选记忆,再依据真实下游成功率与执行步数构造偏好对,通过 SFT 和 DPO 学习。
实验中,MCMA 在 Qwen3-32B 的 ALFWorld Seen/Unseen 上达到 90.71% 和 90.30%,并把平均执行步数降到 17.78 和 18.00;在 ScienceWorld 和较小的 Qwen3-8B 上也保持提升。消融表明,成功总结与失败反思互补,多结构优于固定自然语言或动作链,经过 DPO 的 4B Copilot 也优于未经训练的更强模型。
论文最有价值的证据不是所有迁移都成功,而是它明确展示了边界:ALFWorld 的细粒度记忆迁往 BabyAI 会产生负迁移,高层知识只能带来小幅改善;当具体知识不再适用时,迁移 Memory Copilot 本身反而更可靠。
它仍有明显缺口:抽象层级选择是人工规则,多结构原语仍被预定义,训练成本未量化,跨任务知识迁移增益有限,也缺少多次运行和系统性失败分析。
一句话总结:
MCMA 的核心贡献,是把"保存什么、怎样组织、抽象到哪一层"从手工设计的记忆规则,转化为一个能够被下游执行反馈训练、并可跨模型与跨任务迁移的 Memory Copilot。