文章目录


前言

在现有的大模型 Agent 记忆系统中,短期记忆和长期记忆通常是分开管理的。

简单来说:

  • 长期记忆(Long-Term Memory, LTM):负责保存跨任务、跨会话、可长期复用的信息,例如用户偏好、任务经验、环境知识等。
  • 短期记忆(Short-Term Memory, STM):负责管理当前上下文中的信息,例如当前任务进展、近期观察、工具调用结果和临时推理状态。

这两类记忆都很重要。长期记忆能帮助 Agent 复用过去经验,短期记忆能帮助 Agent 在当前任务中保持上下文连续。但问题在于,很多现有方法往往把 LTM 和 STM 当成两个独立模块来处理:长期记忆依赖外部 memory manager 或启发式规则,短期记忆依赖 RAG、滑动窗口或周期性总结。

这样做会带来一个问题:长期记忆和短期记忆之间是松散耦合的

比如,Agent 可能在前面存了一条长期记忆,但后面推理时没有及时召回;或者当前上下文里塞满了无关干扰信息,导致真正有用的长期记忆被淹没。换句话说,Agent 不是不会“存”,也不是不会“用”,而是缺少一种统一的策略,来决定什么时候存、什么时候召回、什么时候总结、什么时候丢弃。

这篇论文提出了 Agentic Memory,简称 AgeMem。它的核心思想是:

不再把记忆管理看作外部模块,而是把长期记忆和短期记忆操作都暴露为 Agent 可以主动调用的工具动作,让 Agent 在任务过程中自己学习如何管理记忆。

具体来说,AgeMem 将记忆操作设计成工具接口,让 Agent 能够自主执行:

  • 存储长期记忆;
  • 更新长期记忆;
  • 删除长期记忆;
  • 召回相关记忆;
  • 总结当前上下文;
  • 过滤无关上下文。

为了训练这种统一记忆管理能力,论文提出了三阶段渐进式强化学习策略,并设计了 step-wise GRPO,用于解决记忆操作带来的稀疏奖励和轨迹不连续问题。

简单来说,这篇论文想解决的问题是:

Agent 不仅要有长期记忆和短期记忆,还要学会在任务过程中统一管理这两类记忆。


零、论文基本信息


一、这篇论文想解决什么问题?

这篇论文想解决的是 长期记忆和短期记忆统一管理 的问题。

在长程 Agent 任务中,记忆通常可以分为两类:

记忆类型 主要作用 典型问题
长期记忆 LTM 保存可跨任务复用的知识、事实和经验 什么时候存?什么时候更新?什么时候删除?
短期记忆 STM 管理当前上下文中的临时信息 什么时候召回?什么时候总结?什么时候过滤?

现有方法通常分别处理这两类记忆。

例如,长期记忆系统可能会设置一个 memory manager,负责判断是否要新增、更新、删除记忆;短期记忆系统则可能采用 RAG、滑动窗口或周期性总结,控制当前上下文长度。

这些方法单独看都有作用,但组合起来会有几个问题。

1. 长期记忆和短期记忆是分开优化的

很多方法先设计一个长期记忆模块,再设计一个短期上下文管理模块,最后把二者拼起来使用。

这样做的问题是:长期记忆和短期记忆之间没有真正形成统一策略。

举个例子,Agent 在前面已经把某个关键事实存入长期记忆,但后面短期上下文管理模块没有及时召回它,导致最终任务失败。反过来,Agent 也可能反复召回无关长期记忆,导致短期上下文被噪声污染。

2. 依赖启发式规则或外部 controller

很多记忆系统依赖固定规则,例如:

  • 每隔 N 轮总结一次;
  • 上下文超过阈值就裁剪;
  • 相似度高于某个阈值就召回;
  • 发现冲突就更新长期记忆。

这些规则简单有效,但不够灵活。因为真实任务中,什么时候该总结、什么时候该召回、什么时候该删除,往往取决于当前任务状态,而不是固定阈值。

3. 缺少端到端优化

长期记忆操作和短期记忆操作都会影响最终任务结果。

但是,如果二者由不同模块独立控制,强化学习信号很难同时作用到“前期存储行为”和“后期推理行为”上。

比如最终任务失败了,到底是因为:

  • 前面没有存下关键长期记忆?
  • 后面没有召回相关记忆?
  • 当前上下文没有过滤掉干扰信息?
  • 总结时丢掉了关键细节?

这些问题都和记忆操作有关,但如果没有统一训练框架,就很难让 Agent 学会整体优化。

论文 Figure 1 对比了三种记忆管理范式:

  1. 静态 STM + 触发式 LTM;
  2. 静态 STM + Agent-based LTM;
  3. AgeMem 的统一记忆管理。

记忆管理范式

图源:Yu et al., 2026,Figure 1。

这张图非常适合放在这里,因为它说明了 AgeMem 的核心动机:不是只改进长期记忆,也不是只改进短期记忆,而是把两类记忆统一纳入 Agent 的动作空间中。


二、相关工作

论文的相关工作主要可以分为四类。

1. 长期记忆管理

长期记忆管理主要关注:Agent 应该保存什么信息,以及如何维护这些信息。

代表方法包括:

  • LangMem:提供模块化的长期记忆管理框架,支持不同类型的记忆存储和检索。
  • A-Mem:借鉴 Zettelkasten 卡片盒笔记法,让 Agent 记忆能够动态链接和自进化。
  • Mem0:采用提取、更新和检索的记忆流水线,并进一步扩展出图结构版本。
  • Zep:将长期记忆组织为时序知识图谱,用于长期对话和用户记忆管理。

这些方法的共同点是:它们都试图让 Agent 在长期交互中保留有价值的信息。

但从 AgeMem 的角度看,它们仍然更偏向长期记忆本身。也就是说,它们主要解决“长期记忆怎么存、怎么更新”的问题,而没有充分解决长期记忆和短期上下文如何协同的问题。

2. 短期记忆管理

短期记忆管理主要关注当前上下文中的信息选择、压缩和过滤。

常见方法包括:

  • RAG:通过外部检索扩展当前上下文,让模型获得相关信息。
  • ReSum:周期性地将交互历史压缩为更紧凑的推理状态,让 Agent 能够突破固定上下文窗口限制。
  • 滑动窗口:只保留最近若干轮上下文。
  • 上下文总结:把历史交互压缩成摘要,再继续推理。

这些方法能缓解上下文窗口限制,但大多依赖固定策略。例如什么时候总结、保留多少上下文、召回多少内容,往往不是 Agent 自主学习出来的,而是由人工规则决定。

3. 大模型强化学习

强化学习已经被广泛用于大模型训练,例如 RLHF、PPO 和 GRPO。

其中,GRPO(Group Relative Policy Optimization) 通过组内相对优势估计,减少对 value model 的依赖,在推理任务和 Agent 任务中被越来越多使用。

不过,标准 GRPO 通常假设轨迹比较连续,奖励也能相对稳定地分配。但记忆操作会带来一个特殊问题:Agent 可能在前面执行存储、更新、删除、总结等动作,真正的奖励却要到最终任务完成时才出现。

这就导致记忆管理任务中的奖励具有明显的稀疏性和不连续性。

4. 基于强化学习的记忆 Agent

近期也有一些工作开始尝试用强化学习训练记忆 Agent。

这些方法表面上和 AgeMem 比较相似,但论文认为,它们通常只优化记忆管理的某一个方面。例如:

  • 只学习长期记忆存储;
  • 只学习上下文压缩;
  • 只学习检索策略;
  • 只在回答阶段优化记忆利用。

问题在于,早期的存储决策和后期的推理行为只是松散耦合,学习信号没有显式连接这两部分。

AgeMem 的区别在于:它将长期记忆工具和短期记忆工具都纳入同一个 Agent 策略,并通过三阶段强化学习,让 Agent 逐步学会统一管理两类记忆。


三、AgeMem 方法总览

AgeMem 的核心思想是:

把长期记忆和短期记忆操作都暴露为 Agent 可调用的工具动作,让 Agent 在任务过程中自己决定如何管理记忆。

这和传统方法最大的区别在于:记忆不再只是外部模块,而是 Agent 策略的一部分。

在 AgeMem 中,Agent 不仅可以执行普通任务动作,还可以调用记忆工具,包括:

  • 长期记忆工具;
  • 短期记忆工具;
  • 普通任务推理动作。

整个过程可以理解为:

任务输入
→ Agent 判断当前状态
→ 选择任务动作或记忆动作
→ 更新长期记忆 / 短期上下文
→ 继续推理
→ 输出最终答案或完成任务

也就是说,Agent 在任务过程中不仅要“做任务”,还要不断判断:

  • 这条信息要不要存进长期记忆?
  • 旧记忆是否需要更新?
  • 当前上下文是否太乱?
  • 是否需要总结历史上下文?
  • 是否需要从长期记忆中召回相关信息?
  • 哪些无关上下文应该过滤掉?

这种设计让记忆管理从外部规则变成了 Agent 自身可学习的行为。


四、通过工具接口实现统一记忆管理

AgeMem 通过工具接口实现长期记忆和短期记忆管理。论文 Table 1 列出了六个核心工具。

各类工具

表源:Yu et al., 2026,Table 1。

这些工具可以分为两类。

1. 长期记忆工具

长期记忆工具主要操作外部记忆库 M_t,包括:

工具 目标 作用
ADD LTM 添加新的知识到长期记忆
UPDATE LTM 修改已有长期记忆
DELETE LTM 删除无用或错误的长期记忆

这类工具解决的是“长期记忆如何维护”的问题。

例如,Agent 在 HotpotQA 中看到一段关于乐队成员的信息,可以选择把它存入长期记忆;如果后面发现旧记忆不完整,就可以更新;如果发现旧记忆错误或无用,就可以删除。

2. 短期记忆工具

短期记忆工具主要操作当前上下文 C_t,包括:

工具 目标 作用
RETRIEVE STM 从长期记忆中召回相关内容到当前上下文
SUMMARY STM 总结当前上下文中的历史片段
FILTER STM 过滤当前上下文中的无关片段

这类工具解决的是“当前上下文如何管理”的问题。

例如,当当前上下文里混入很多干扰内容时,Agent 可以调用 FILTER 删除无关片段;当上下文过长时,可以调用 SUMMARY 压缩历史;当需要过去知识时,可以调用 RETRIEVE 从长期记忆中召回相关信息。

这六个工具组合起来,就形成了统一的记忆管理动作空间。


五、三阶段轨迹结构:为什么要分阶段训练?

直接让 Agent 从一开始就同时学习长期记忆、短期记忆和最终推理,其实很难。

因为记忆管理的学习信号非常复杂:

  • 早期存储是否正确,要到后面任务阶段才知道;
  • 短期上下文是否过滤得好,也要看最终回答是否正确;
  • 如果最终失败,很难判断是哪一步记忆操作出错。

因此,AgeMem 将每段交互轨迹拆成三个连续阶段。

1. Stage 1:因果交互与长期记忆构建

第一阶段是 casual interaction,也就是比较自然的交互过程。

在这个阶段中,Agent 会接触到一些后面可能有用的信息,需要学习是否调用长期记忆工具:

  • ADD;
  • UPDATE;
  • DELETE。

这一阶段主要训练的是长期记忆能力。

也就是说,Agent 要学会:

哪些信息值得存入长期记忆,哪些旧记忆需要更新,哪些记忆应该删除。

举个例子:

当前信息:
Muse 是一个英国摇滚乐队,由三名成员组成。

Agent 可以选择:
ADD_MEMORY:Muse 有 3 名成员。

如果这条记忆后面能帮助回答问题,那么这个存储行为就应该得到正向训练信号。

2. Stage 2:干扰信息下的短期记忆控制

第二阶段会引入一些干扰性或不相关内容。

论文中,这一阶段会清空短期上下文,但保留第一阶段构建的长期记忆。这样设计是为了避免 Agent 仅凭残留上下文完成任务,迫使它学会真正从长期记忆中召回信息,并管理当前上下文。

在这个阶段中,Agent 主要学习短期记忆控制,例如:

  • FILTER:过滤无关上下文;
  • SUMMARY:压缩历史上下文;
  • RETRIEVE:从长期记忆中召回相关信息。

这一阶段训练的是 Agent 在噪声环境中的上下文管理能力。

举个例子:

当前上下文:
包含 Muse、The Raconteurs、Narcissus、Sundae Club 等多个乐队信息。

问题:
Muse 和 The Raconteurs 哪个乐队成员更多?

Agent 需要:
1. 过滤掉无关乐队信息;
2. 召回 Muse 和 The Raconteurs 的成员数量;
3. 保留和问题有关的上下文。

3. Stage 3:综合推理和记忆管理

第三阶段是正式任务阶段。

此时 Agent 需要同时使用长期记忆和短期记忆管理能力,完成最终查询或任务。

这时的 Agent 不能只会存,也不能只会过滤,而要协调使用多种工具:

  • 从长期记忆中召回相关知识;
  • 管理当前上下文;
  • 过滤干扰信息;
  • 总结中间推理;
  • 最后生成答案或完成任务。

简单来说:

Stage 1:学会存长期记忆
Stage 2:学会管短期上下文
Stage 3:学会联合使用两类记忆完成任务

这种三阶段设计比较重要。它不是一次性把所有记忆能力混在一起训练,而是先训练基础能力,再训练上下文控制,最后训练综合推理。


六、三阶段渐进式强化学习

AgeMem 的训练采用 progressive RL,也就是渐进式强化学习。

它不是直接用最终任务奖励训练所有行为,而是按照记忆能力的复杂度逐步推进。

1. 阶段一:构建长期记忆

在第一阶段中,短期记忆主要由自然对话上下文提供,Agent 重点学习长期记忆构建。

这个阶段的目标是让 Agent 学会:

  • 哪些信息需要 ADD;
  • 哪些旧信息需要 UPDATE;
  • 哪些无关或错误记忆需要 DELETE。

可以理解为,第一阶段先让 Agent 学会“记什么”。

2. 阶段二:干扰器下的短期记忆控制

第二阶段保留第一阶段构建出来的长期记忆,但清空短期上下文,并注入干扰信息。

这样做有两个目的:

  1. 防止 Agent 依赖残留上下文直接回答;
  2. 强迫 Agent 学会从长期记忆中召回信息,并过滤当前干扰上下文。

这个阶段主要让 Agent 学会“怎么管当前上下文”。

3. 阶段三:综合推理和记忆管理

第三阶段中,Agent 面对完整任务,需要同时使用 LTM 和 STM 工具。

这个阶段让 Agent 学会:

  • 合理召回长期记忆;
  • 过滤无关上下文;
  • 总结中间状态;
  • 基于记忆完成最终推理。

可以理解为,第三阶段训练的是完整的 Agentic Memory 行为。


七、step-wise GRPO:如何解决记忆操作的稀疏奖励问题?

论文提出了 step-wise GRPO,用来解决记忆操作带来的稀疏奖励和轨迹不连续问题。

普通 GRPO 通常是对同一个 prompt 采样多条完整轨迹,然后根据最终奖励计算相对优势。这个思路在数学题或普通问答中比较自然,因为轨迹相对连续,最终答案可以比较直接地反映整条轨迹质量。

但在记忆管理任务中,情况更复杂。

1. 记忆操作会造成奖励延迟

比如 Agent 在 Stage 1 中执行了 ADD_MEMORY,把某个事实存入长期记忆。但这个动作是否正确,可能要到 Stage 3 最终回答问题时才知道。

也就是说,奖励可能延迟很久才出现。

Stage 1:存入 Muse 有 3 名成员
Stage 2:过滤无关上下文
Stage 3:回答 Muse 和 The Raconteurs 哪个成员更多
最终奖励:回答正确

这里的最终奖励不仅和 Stage 3 的回答有关,也和 Stage 1 是否正确存储有关。

2. 记忆操作会让轨迹不连续

记忆操作会修改长期记忆库或短期上下文。例如:

  • ADD 会改变长期记忆;
  • DELETE 会移除某条记忆;
  • SUMMARY 会压缩上下文;
  • FILTER 会删除上下文片段。

这些操作会让后续状态依赖于被修改后的记忆,而不是简单的连续文本轨迹。

这和普通自回归训练不太一样。

3. step-wise GRPO 的核心思想

step-wise GRPO 的核心是:不要只把最终奖励粗暴地分给整条轨迹,而是把奖励逐步传播回前面的关键记忆决策。

可以简单理解为:

如果最终任务成功,前面那些有助于存储、召回、过滤、总结的动作应该得到正向信号;如果最终失败,则需要削弱那些可能导致错误的记忆操作。

这样做可以缓解两个问题:

  • 稀疏奖励:最终奖励太晚出现;
  • 断裂轨迹:记忆操作改变了后续状态。

论文的重点不只是使用 GRPO,而是针对记忆操作的特殊性,设计了 step-wise 的奖励传播方式,让前期记忆决策也能从最终任务结果中获得训练信号。


八、奖励函数设计

AgeMem 的奖励函数由多个部分组成,不只是看最终答案是否正确。

论文主要考虑了以下几类奖励和惩罚。

1. 任务完成奖励

任务完成奖励是最核心的部分。

不同 benchmark 的任务目标不同,因此评价方式也不同:

  • ALFWorld、SciWorld、BabyAI 使用 Success Rate;
  • PDDL 使用 Progress Rate;
  • HotpotQA 使用 LLM-as-a-Judge。

这一部分衡量的是 Agent 是否真正完成了任务。

2. 上下文管理奖励

上下文管理奖励关注短期记忆是否被有效管理。

例如:

  • 是否减少了无关上下文;
  • 是否避免上下文过长;
  • 是否通过 SUMMARY 或 FILTER 保留了关键内容;
  • 是否在需要时召回长期记忆。

这部分奖励鼓励 Agent 不要把所有信息都堆进上下文,而是主动压缩和过滤。

3. 记忆管理奖励

记忆管理奖励关注长期记忆质量。

例如:

  • 是否存储了有用知识;
  • 是否更新了过时记忆;
  • 是否删除了错误或无用记忆;
  • 存下来的长期记忆是否和任务事实相关。

论文还使用 LLM-based evaluator 评估长期记忆质量,得到 Memory Quality 分数。

4. 惩罚项

惩罚项主要用于限制不良行为,例如:

  • 过度调用工具;
  • 生成过长上下文;
  • 超过对话轮次限制;
  • 触发上下文溢出;
  • 无效或错误的记忆操作。

这样设计的目的,是避免 Agent 为了获得任务奖励而滥用工具或无限扩展上下文。


九、实验设置

1. 数据集

论文在五个长程任务 benchmark 上评估 AgeMem:

  • ALFWorld:具身智能任务,Agent 需要根据自然语言指令在模拟家庭环境中完成多步操作。
  • SciWorld:科学实验模拟环境,Agent 需要执行多步实验并回答科学问题。
  • PDDL:基于 Planning Domain Definition Language 的规划任务,考察结构化推理和中间状态管理能力。
  • BabyAI:网格世界中的自然语言指令跟随任务。
  • HotpotQA:多跳知识问答任务,适合评估长期记忆存储和知识推理能力。

这些数据集覆盖了:

  • 具身行动;
  • 游戏式推理;
  • 符号规划;
  • 多跳问答;
  • 长程上下文管理。

论文只在 HotpotQA 训练集上进行 RL 微调,然后直接评估到所有数据集上。这一点比较重要,因为它能检验 AgeMem 是否学到通用记忆管理策略,而不是只适配某个单一环境。

2. 评估指标

论文使用的主要指标包括:

  • Success Rate(SR):用于 ALFWorld、SciWorld 和 BabyAI;
  • Progress Rate(PR):用于 PDDL;
  • LLM-as-a-Judge(J):用于 HotpotQA;
  • Memory Quality(MQ):用于评估长期记忆和真实事实之间的相关性。

其中 MQ 是一个比较重要的指标,因为它不只看任务是否完成,还看 Agent 存下来的长期记忆质量是否更高。

3. 对比方法

论文对比了以下方法:

  • No-Memory:不使用外部记忆。
  • LangMem:模块化长期记忆系统。
  • A-Mem:动态 Agent 记忆机制。
  • Mem0:长期记忆系统。
  • Mem0g:Mem0 官方提供的图结构版本。
  • AgeMem-noRL:不使用 RL 微调的 AgeMem,用于验证强化学习是否关键。

4. 实现细节

论文使用:

  • AgentScope 框架搭建 Agent;
  • Trinity 框架进行强化学习微调;
  • Qwen2.5-7B-Instruct 和 Qwen3-4B-Instruct 作为主要 backbone。

十、主要实验结果

论文的主实验结果如 Table 2 所示。

主要实验结果

表源:Yu et al., 2026,Table 2。

1. AgeMem 在两个模型上都取得最好平均结果

Qwen2.5-7B-Instruct 上,AgeMem 的平均分达到:

AgeMem:41.96

高于其他 memory baseline,例如:

LangMem:34.23
A-Mem:36.78
Mem0:37.14
Mem0g:36.31
AgeMem-noRL:33.43

Qwen3-4B-Instruct 上,AgeMem 的平均分达到:

AgeMem:54.31

同样高于其他 baseline:

LangMem:43.25
A-Mem:45.74
Mem0:44.70
Mem0g:41.95
AgeMem-noRL:45.59

这说明 AgeMem 的提升并不依赖单一模型,在两个不同 backbone 上都有明显效果。

2. RL 训练非常关键

AgeMem-noRL 的表现明显弱于 AgeMem。

这说明,仅仅把长期记忆和短期记忆工具放进 Agent 动作空间还不够。Agent 必须通过强化学习,才能学会什么时候调用这些工具。

换句话说,AgeMem 的核心不只是工具设计,而是:

用 RL 训练 Agent 学会如何协调长期记忆和短期记忆。

3. 在 HotpotQA 上提升明显

在 HotpotQA 上,AgeMem 表现尤其突出。

例如:

Qwen2.5-7B:
AgeMem = 54.44

Qwen3-4B:
AgeMem = 55.49

这说明 AgeMem 对知识密集型、多跳推理任务有明显帮助。原因也比较直观:HotpotQA 中需要跨多个事实进行推理,而长期记忆存储和短期上下文召回都很重要。


十一、长期记忆质量分析

除了任务结果,论文还专门评估了 AgeMem 存储的长期记忆质量。

不同模型记忆质量得分

图源:Yu et al., 2026,Figure 2。

论文使用 HotpotQA 中的 ground-truth facts,评估存储记忆和真实事实之间的相关性。

结果显示,AgeMem 在两个模型上都取得最高 MQ:

Qwen2.5-7B-Instruct:MQ = 0.533
Qwen3-4B-Instruct:MQ = 0.605

这说明 AgeMem 不只是任务完成率更高,它存下来的长期记忆本身也更有价值。

我觉得这个结果比较重要,因为很多记忆系统可能“看起来能回答问题”,但内部存储的记忆质量未必高。如果长期记忆质量差,后续任务很容易被错误记忆或无关记忆干扰。

AgeMem 的 MQ 提升说明,统一工具化记忆操作确实能帮助 Agent 存下更相关、更可复用的知识。


十二、短期记忆管理分析

论文还分析了 STM 管理是否真的减少了上下文冗余。

平均token消耗量

图源:Yu et al., 2026,Figure 3。

结果显示,AgeMem 相比不使用 STM 工具、只采用 RAG 的版本,可以减少 prompt token 数。

例如:

Qwen2.5-7B:
AgeMem-RAG = 2186 tokens
AgeMem = 2117 tokens
降低约 3.1%

Qwen3-4B:
AgeMem-RAG = 2310 tokens
AgeMem = 2191 tokens
降低约 5.1%

这个提升看起来不像 LightMem 那种大幅降低 token 成本,但意义不同。

LightMem 关注的是记忆系统构建效率,而 AgeMem 关注的是 Agent 在任务过程中如何自主控制上下文。这里的 token reduction 说明 Agent 确实学会了使用 FILTER、SUMMARY 等工具减少短期上下文冗余。


十三、工具使用分析

论文还统计了 RL 训练前后 Agent 的工具使用情况。

工具使用量

表源:Yu et al., 2026,Table 3。

结果显示,RL 训练显著改变了 Agent 的工具使用行为。

1. 长期记忆工具使用增加

在 Qwen2.5-7B 上,RL 训练后:

  • ADD 调用从 0.92 增加到 1.64;
  • UPDATE 从几乎没有增加到 0.13。

这说明 Agent 经过训练后,更愿意主动构建和更新长期记忆。

2. 短期记忆工具使用更均衡

RL 后,FILTER 工具使用明显增加。例如 Qwen2.5-7B 中,FILTER 从 0.02 增加到 0.31。

这说明 Agent 学会了主动清理上下文中的无关信息,而不是把所有内容都保留下来。

3. RETRIEVE 使用次数下降不一定是坏事

一个有意思的现象是,RL 后 RETRIEVE 次数反而下降了。

论文认为,这并不是说明 Agent 不会召回,而是说明召回策略变得更高效了。

训练前,Agent 可能因为长期记忆质量较差,需要反复召回来弥补;训练后,ADD 和 UPDATE 行为更有效,长期记忆质量更高,因此每次召回的质量也更好,不需要频繁重复召回。

这点很有启发:工具调用次数不是越多越好。更好的 Agent 不是频繁调用工具,而是在合适的时候调用正确工具。


十四、消融实验

论文还做了多组消融实验,验证 AgeMem 中不同组件的作用。

1. 长期记忆和短期记忆模块的作用

论文比较了:

  • Base;
  • Base + LT;
  • Base + LT/RL;
  • Base + LT/ST/RL。

结果显示,引入长期记忆后有一定提升,而进一步加入 RL 和短期记忆工具后,性能继续提升。

这说明:

  • 长期记忆有用;
  • RL 训练有用;
  • 长期记忆和短期记忆联合管理更有用。

2. 奖励函数的作用

论文也分析了不同奖励项的影响。

如果去掉某些奖励项,性能会下降,说明 AgeMem 的训练不是只靠最终任务奖励,而是需要结合任务完成、上下文管理和记忆质量等多维反馈。

这也符合记忆管理任务的特点:最终任务成功很重要,但如果只看最终成功,很难指导中间的存储、召回、总结和过滤行为。

3. FILTER 阈值的影响

FILTER 工具需要判断哪些上下文片段无关,因此阈值设置会影响过滤强度。

如果阈值太严格,可能删掉有用信息;如果阈值太宽松,又无法有效减少上下文噪声。

这说明,虽然 AgeMem 将很多记忆行为纳入 Agent 策略,但具体工具本身仍然存在工程参数,需要在不同任务中调整。


十五、一个简单例子:AgeMem 在 Agent 中可能怎么用?

为了更直观理解 AgeMem,可以想象一个研究型 Agent 需要回答下面的问题:

Muse 和 The Raconteurs 哪个乐队成员更多?

在任务过程中,Agent 可能看到多个网页或文本片段:

片段 1:Narcissus 是一个乐队……
片段 2:The Raconteurs 是一个美国摇滚乐队,由 Jack White、Brendan Benson、Jack Lawrence 和 Patrick Keeler 组成。
片段 3:Sundae Club 是一个音乐项目……
片段 4:Muse 是一个英国摇滚乐队,由 Matt Bellamy、Chris Wolstenholme 和 Dominic Howard 组成。

普通 Agent 可能会把所有片段都放在上下文中,然后直接回答。但这样会有两个问题:

  • 无关乐队信息会干扰推理;
  • 如果上下文过长,关键信息可能被淹没。

AgeMem 的处理可能更像这样。

1. 长期记忆阶段

Agent 看到有用事实后,可以调用 ADD:

ADD_MEMORY:
Muse 有 3 名成员。
ADD_MEMORY:
The Raconteurs 有 4 名成员。

2. 短期记忆阶段

当上下文中出现无关乐队信息时,Agent 可以调用 FILTER:

FILTER_CONTEXT:
删除 Narcissus 和 Sundae Club 相关片段。

如果上下文仍然较长,Agent 可以调用 SUMMARY:

SUMMARY_CONTEXT:
当前需要比较 Muse 和 The Raconteurs 的成员数量。
Muse:3 人。
The Raconteurs:4 人。

3. 最终推理阶段

Agent 再基于召回和整理后的信息回答:

The Raconteurs 的成员更多,因为 The Raconteurs 有 4 名成员,而 Muse 有 3 名成员。

这个例子说明,AgeMem 不是单纯“多了一个记忆库”,而是让 Agent 在任务过程中动态协调:

  • 长期事实存储;
  • 当前上下文过滤;
  • 相关记忆召回;
  • 最终推理回答。

十六、和 A-Mem、Memory-R1、MemAct、LightMem 的区别

如果把 AgeMem 和前面几篇 Agent 记忆论文放在一起看,可以发现它们关注点不同。

方法 关注点 核心问题
A-Mem 记忆自进化和结构化关联 记忆如何自动更新、关联和演化
MemAct / Memory as Action 工作上下文主动管理 上下文管理如何变成 Agent 动作
Memory-R1 RL 学习记忆管理和利用 如何通过任务奖励学习存、改、删、用记忆
LightMem 轻量高效记忆系统 如何降低 token、API 和时间成本
AgeMem 统一管理长期记忆和短期记忆 如何让 Agent 同时学会管理 LTM 和 STM

AgeMem 和 MemAct 有相似之处:二者都把记忆管理看作 Agent 可以执行的动作。但二者侧重点不同:

  • MemAct 更关注长程任务中的工作上下文裁剪和写入;
  • AgeMem 更强调长期记忆和短期记忆的统一工具化管理。

AgeMem 和 Memory-R1 也有联系:二者都使用强化学习训练记忆行为。但 Memory-R1 更像是分别训练 Memory Manager 和 Answer Agent,而 AgeMem 更强调把 LTM / STM 工具统一放进同一个 Agent 策略中。

AgeMem 和 LightMem 的区别也比较明显:

  • LightMem 更关注高效记忆构建和离线更新;
  • AgeMem 更关注 Agent 在任务过程中的主动记忆决策。

因此,AgeMem 可以看作是 Agent 记忆机制中的一个重要方向:

让 Agent 不只是拥有记忆模块,而是把记忆管理本身变成可学习的策略行为。


十七、局限性和未来方向

AgeMem 的思路比较完整,但仍然有一些局限。

1. 训练复杂度较高

AgeMem 需要构造三阶段轨迹,并使用 RL 微调模型。这比普通 RAG 或启发式记忆系统复杂得多。

对于普通开发者来说,复现和落地成本会比较高。

2. 奖励归因仍然困难

尽管 step-wise GRPO 缓解了稀疏奖励问题,但记忆管理中的 credit assignment 仍然很难。

最终任务成功或失败,可能同时受到多个因素影响:

  • 长期记忆是否存对;
  • 短期上下文是否过滤对;
  • 召回是否准确;
  • 总结是否丢信息;
  • 最终推理是否正确。

这些因素很难完全拆开。

3. 工具设计仍然依赖人工

AgeMem 把 ADD、UPDATE、DELETE、RETRIEVE、SUMMARY、FILTER 暴露给 Agent,但这些工具本身仍然是人工设计的。

也就是说,Agent 学会的是“如何调用这些工具”,而不是自己发明新的记忆操作。

4. 当前评估仍以文本和模拟环境为主

论文覆盖了多个 benchmark,包括具身任务、游戏任务、规划任务和问答任务,但整体仍然是文本接口下的 Agent 评估。

未来如果扩展到真实软件环境、多模态交互或长期真实用户场景,还需要进一步验证。

5. 真实应用中还需要考虑记忆安全

长期记忆会保存用户或任务相关信息,因此真实应用中还需要考虑:

  • 隐私保护;
  • 敏感信息过滤;
  • 错误记忆纠正;
  • 用户可控删除;
  • 记忆过期机制。

十八、我的理解和启发

这篇论文给我的最大启发是:长期记忆和短期记忆不应该是两个割裂模块,而应该被统一看作 Agent 的可学习资源。

很多 Agent 项目中,记忆模块通常是这样设计的:

  • 用户偏好存在长期记忆里;
  • 当前对话保存在上下文里;
  • 太长就总结;
  • 需要时就检索;
  • 检索结果拼进 prompt。

这些设计能工作,但通常比较分散。长期记忆的维护和短期上下文的控制,往往不是同一个策略在统一决策。

AgeMem 的思路则更进一步:把这些操作全部工具化,让 Agent 在任务过程中自己判断何时调用。

对我自己做 Agent 项目来说,有几点启发。

1. 记忆操作可以统一成工具

不管是长期记忆还是短期上下文,本质上都可以设计成工具:

  • add_memory
  • update_memory
  • delete_memory
  • retrieve_memory
  • summarize_context
  • filter_context

这样做的好处是,记忆管理可以和搜索、代码执行、网页浏览等工具调用统一起来。

2. 长期记忆和短期记忆需要协同

只做好长期记忆还不够。如果当前上下文里全是噪声,即使长期记忆质量高,也不一定能被正确使用。

同样,只做好短期上下文管理也不够。如果长期记忆没有存下关键事实,后面再怎么召回也没有用。

3. 记忆训练需要分阶段

AgeMem 的三阶段训练很有启发:

  • 先学会存长期记忆;
  • 再学会在噪声下管理短期上下文;
  • 最后学习联合推理。

这比直接端到端训练所有能力更稳定。

4. 工具调用次数不是越多越好

从工具使用分析看,RL 后 RETRIEVE 次数下降,但整体效果更好。这说明好的 Agent 不是疯狂调用工具,而是更准确地判断什么时候需要工具。

5. 记忆系统评估不能只看最终准确率

AgeMem 还评估了 Memory Quality 和 token 使用情况。这提醒我们,评估 Agent 记忆系统时至少要看:

  • 任务成功率;
  • 记忆质量;
  • 上下文效率;
  • 工具调用行为;
  • 是否能跨任务泛化。

简单来说,AgeMem 的价值在于把 Agent 记忆机制从“模块拼接”推进到了“统一策略学习”。


十九、总结

本文提出了 Agentic Memory,简称 AgeMem,一个面向大模型 Agent 的统一记忆管理框架。

它的核心思想是:将长期记忆和短期记忆管理都融入 Agent 策略中,并通过工具接口暴露给模型。Agent 可以自主决定什么时候添加、更新、删除长期记忆,也可以决定什么时候召回、总结和过滤短期上下文。

为了训练这种能力,论文提出了三阶段渐进式强化学习策略:

  1. 第一阶段学习长期记忆构建;
  2. 第二阶段在干扰上下文中学习短期记忆控制;
  3. 第三阶段学习综合推理和统一记忆管理。

同时,论文设计了 step-wise GRPO,用于缓解记忆操作带来的稀疏奖励和轨迹不连续问题。

实验结果表明,AgeMem 在 ALFWorld、SciWorld、PDDL、BabyAI 和 HotpotQA 五个 benchmark 上都取得了较好的表现,并且在长期记忆质量和短期上下文效率方面也有提升。

整体来看,这篇论文的核心价值在于提出了一种新的视角:

长期记忆和短期记忆不应该被分开设计,而应该成为 Agent 可学习、可调用、可统一优化的策略动作。

对于 Agent 记忆机制研究来说,AgeMem 是一个很值得关注的方向。它把记忆系统从“外部辅助模块”进一步推进为 Agent 自身决策能力的一部分。


参考资料

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐