【论文阅读】Agent 记忆机制(45):ReMemR1——让长期上下文 Agent 可以回溯历史记忆进行非线性推理

文章目录

  • 前言
  • 零、论文基本信息
  • 一、背景与问题
    • [1. 长上下文并没有解决 Memory 问题](#1. 长上下文并没有解决 Memory 问题)
    • [2. Memorize while Reading 范式](#2. Memorize while Reading 范式)
    • 不可回溯
  • [二、ReMemR1 的核心思想](#二、ReMemR1 的核心思想)
  • [三、Memory Callback Mechanism](#三、Memory Callback Mechanism)
    • [1. 状态重新定义](#1. 状态重新定义)
    • [2. Callback Query](#2. Callback Query)
  • [四、Memory Retrieval](#四、Memory Retrieval)
  • [五、强化学习优化 Memory 使用](#五、强化学习优化 Memory 使用)
    • [1. Final Answer Reward](#1. Final Answer Reward)
    • [2. Callback Reward](#2. Callback Reward)
    • [3. Memory Update Reward](#3. Memory Update Reward)
    • [4. Format Reward](#4. Format Reward)
  • 六、实验设置
  • 七、实验结果分析
  • [八、与已有 Agent Memory 方法比较](#八、与已有 Agent Memory 方法比较)
    • [1. A-MEM](#1. A-MEM)
    • [2. MAGMA](#2. MAGMA)
    • [3. Chain-of-Memory](#3. Chain-of-Memory)
  • [九、对 Coding Agent 的启发](#九、对 Coding Agent 的启发)
  • 十、局限性
    • [1. Callback 依赖 Agent 判断](#1. Callback 依赖 Agent 判断)
    • [2. Retrieval 仍然依赖表示质量](#2. Retrieval 仍然依赖表示质量)
    • [3. 强化学习成本较高](#3. 强化学习成本较高)
    • [4. 应用范围有限](#4. 应用范围有限)
  • 十一、我的理解和启发
  • 十二、总结
  • 参考资料

前言

前面已经阅读了 A-MEM、MemoryOS、MAGMA、Chain-of-Memory 等不同类型的

Agent 记忆方法。

这些方法分别从不同角度探索:

  • 如何建立长期记忆;
  • 如何组织记忆关系;
  • 如何根据问题检索记忆;
  • 如何让 Memory 更适合 Agent 推理。

但是,对于长上下文 Agent,还存在一个更底层的问题:

Agent 读取过的信息,未来是否还能主动回去重新访问?

很多 Memorize while Reading 方法采用:

text 复制代码
输入文档
   ↓
顺序阅读
   ↓
更新 Memory
   ↓
丢弃历史上下文
   ↓
继续阅读

这种方式计算成本低,但它默认:

当前 Memory 已经包含未来推理所需的信息。

然而真实任务并非如此。

例如:

text 复制代码
前文:
Alice 曾经研究量子计算。

后文:
Alice 的实验项目失败。

问题:
为什么实验失败?

如果早期信息已经被摘要压缩,后续 Agent 很难恢复完整推理链。

ReMemR1 提出的核心观点是:

Memory 不应该只是一个不断覆盖的缓存,而应该成为 Agent

可以主动回访的历史空间。

因此,ReMemR1 引入 Memory Callback,让 Agent

在推理过程中主动生成查询,重新访问历史

Memory,并通过强化学习学习什么时候、如何调用过去的信息。


零、论文基本信息


一、背景与问题

1. 长上下文并没有解决 Memory 问题

随着模型上下文窗口扩大,LLM 可以直接输入百万级 Token。

但是:

text 复制代码
Context Window 增大
≠
长期记忆能力增强

原因是:

  • 推理成本随上下文增加;
  • 重要信息可能被大量无关内容淹没;
  • 长距离依赖仍然难以捕获。

因此 Agent Memory 仍然需要独立机制。

2. Memorize while Reading 范式

近年来出现一种 Memory Agent:

text 复制代码
Document Stream
       ↓
Memory Update
       ↓
Compressed State
       ↓
继续阅读

其优势:

  • 不需要保存完整上下文;
  • 计算复杂度低;
  • 可以处理超长文档。

但是缺陷是:

不可回溯

一旦 Memory 被更新:

m t → m t + 1 m_t \rightarrow m_{t+1} mt→mt+1

旧状态可能无法恢复。


二、ReMemR1 的核心思想

ReMemR1 将 Memory Agent 从:

text 复制代码
Forward-only Reading

变成:

text 复制代码
Forward Reading
+
Backward Callback

整体流程:

text 复制代码
读取新信息
    ↓
更新 Memory
    ↓
判断是否需要历史信息
    ↓
生成 Callback Query
    ↓
检索历史 Memory
    ↓
融合当前与历史证据
    ↓
继续推理

核心贡献:

  1. Memory Callback Mechanism;
  2. History-Augmented State;
  3. Multi-Level Reward Reinforcement Learning。

三、Memory Callback Mechanism

1. 状态重新定义

传统 Memory Agent:

s t = m t s_t=m_t st=mt

其中:

  • m t m_t mt 是当前 Memory。

ReMemR1:

s t = ( m t , q t ) s_t=(m_t,q_t) st=(mt,qt)

其中:

  • m t m_t mt:当前 Memory;
  • q t q_t qt:Callback Query。

也就是说:

Agent 当前状态不仅包含:

我现在知道什么。

还包含:

我想回忆什么。


2. Callback Query

当 Agent 发现当前 Memory 不足:

生成:

text 复制代码
Callback Query:

"之前是否出现过导致当前问题的信息?"

然后:

text 复制代码
Callback Query
       ↓
Memory Retrieval
       ↓
Historical Evidence

重新加入推理过程。


四、Memory Retrieval

ReMemR1 不要求提前建立复杂 Graph。

它保留:

text 复制代码
Memory Node
|
|-- Text
|-- Timestamp
|-- Embedding

查询时:

m ∗ = arg ⁡ max ⁡ s i m i l a r i t y ( q , m i ) m^*=\arg\max similarity(q,m_i) m∗=argmaxsimilarity(q,mi)

获得历史相关 Memory。

这种设计与 MAGMA、A-MEM 不同:

text 复制代码
MAGMA:
提前构建多关系结构

ReMemR1:
推理时动态寻找历史证据

五、强化学习优化 Memory 使用

仅训练最终答案:

text 复制代码
Answer Correct?
        ↓
Reward

存在稀疏问题。

Agent 不知道:

  • 哪一次 Callback 有帮助;
  • 哪一次 Memory Update 有效。

因此 ReMemR1 使用多层奖励。

1. Final Answer Reward

评价最终答案。

2. Callback Reward

评价 Memory 回调是否找到有效信息。

3. Memory Update Reward

评价 Memory 更新质量。

4. Format Reward

保证 Agent 输出格式正确。

最终组合:

text 复制代码
Final Reward

=
Answer Reward
+
Callback Reward
+
Memory Reward
+
Format Reward

六、实验设置

论文主要验证长文本多跳推理任务。

数据集:

  • HotpotQA;
  • 2WikiMultiHopQA。

关注:

  • 多跳推理;
  • 长距离信息依赖;
  • Memory 使用能力。

七、实验结果分析

实验显示 ReMemR1 相比传统 Memorize while Reading 方法具有明显优势。

主要原因:

传统方法:

text 复制代码
阅读
 ↓
压缩
 ↓
遗忘

ReMemR1:

text 复制代码
阅读
 ↓
记忆
 ↓
回访
 ↓
重新组合证据

因此能够处理:

  • 长距离依赖;
  • 隐含关系;
  • 多阶段推理。

八、与已有 Agent Memory 方法比较

1. A-MEM

A-MEM:

text 复制代码
Memory 写入阶段
        ↓
建立关联

重点:

如何组织 Memory。

ReMemR1:

text 复制代码
推理阶段
        ↓
主动访问 Memory

重点:

如何使用 Memory。


2. MAGMA

MAGMA:

text 复制代码
Semantic Graph
Temporal Graph
Causal Graph
Entity Graph

通过多图表达不同关系。

ReMemR1:

不提前构建复杂结构。

区别:

text 复制代码
MAGMA:
Structure First

ReMemR1:
Retrieval When Needed

3. Chain-of-Memory

CoM:

解决:

检索结果如何组织?

通过:

text 复制代码
Top-K Memory
 ↓
Memory Chain

ReMemR1:

解决:

过去 Memory 如何重新访问?

通过:

text 复制代码
Current State
 ↓
Callback
 ↓
Historical Memory

九、对 Coding Agent 的启发

Coding Agent 中:

text 复制代码
修改代码
 ↓
运行测试
 ↓
出现错误

如果错误原因来自几十步之前:

普通 Memory:

text 复制代码
当前总结

可能无法恢复。

ReMemR1:

text 复制代码
当前失败
 ↓
Callback Query

"之前哪个修改影响这个模块?"
 ↓
检索历史操作
 ↓
恢复修改链

更符合真实软件开发过程。


十、局限性

1. Callback 依赖 Agent 判断

Agent 需要知道:

什么时候应该回忆。

错误 Callback 会降低效果。

2. Retrieval 仍然依赖表示质量

如果历史 Memory 表示不足,Callback 无法找到关键内容。

3. 强化学习成本较高

需要:

  • 轨迹采样;
  • Reward 设计;
  • Agent 优化。

4. 应用范围有限

目前主要验证:

  • 长文本 QA。

对于:

  • Coding Agent;
  • Tool Agent;
  • Multi-Agent;
  • Embodied Agent;

仍需进一步研究。


十一、我的理解和启发

ReMemR1 最大的价值不是提出一个新的 Memory 数据结构,而是改变了 Memory

使用方式。

过去:

text 复制代码
Memory = 存储过去

现在:

text 复制代码
Memory = 可以主动调用的推理资源

这对于长期 Agent 非常重要。

未来 Memory 系统可能不只是:

text 复制代码
Store
↓
Retrieve

而是:

text 复制代码
Store
↓
Reason
↓
Recall
↓
Reconstruct
↓
Act

十二、总结

ReMemR1 提出了一种可回溯 Memory Agent 架构。

它认为:

长期 Agent

的关键问题不是保存更多信息,而是在未来需要时重新找到过去的重要信息。

通过:

  1. Memory Callback;
  2. History-Augmented State;
  3. Multi-Level Reward Reinforcement Learning;

ReMemR1 让 Agent 能够:

text 复制代码
向前阅读
+
向后回忆

形成非线性的长期推理过程。

如果一句话总结:

ReMemR1 将 Agent Memory

从"不断压缩的状态缓存"转变为"可以主动回访的历史推理空间"。


参考资料

  • Shi Y, Chen Y, Wang S, et al. Look Back to Reason Forward:
    Revisitable Memory for Long-Context LLM Agents. ICLR 2026.
  • 代码仓库:ReMemR1.
相关推荐
JavaPub-rodert1 小时前
Codex 从 0 开始:安装 ChatGPT,并接入 DeepSeek
人工智能·gpt·chatgpt
每日新鲜事1 小时前
北大医院引入WPS Comate智能助手,加速医院管理智能化进程
大数据·人工智能·wps
gis分享者1 小时前
LangChain 和 LlamaIndex 有什么区别?各自适合什么场景?
人工智能·ai·langchain·场景·区别·llamaindex
个 人 练 习 生1 小时前
数据结构链表:带头双向循环链表
c语言·数据结构·经验分享·学习·其他·链表
格林威1 小时前
C#图像处理:使用imagemagick实现像素放大水印转换等多种功能
android·开发语言·图像处理·人工智能·计算机视觉·c#·视觉检测
丁常彦-自媒体-常言道1 小时前
工业强桂深化AI与制造业融合,华为助力广西共筑新型工业化高地
人工智能·华为
火山引擎开发者社区7 小时前
七夕漫谈|向量检索界的超强 CP:DiskANN 铺路,RaBitQ 加速,又准又快还能省
人工智能
孙启超9 小时前
【大模型应用开发】LLM 到底是什么,以及它是怎么训练的
人工智能·lora·llm·微调·sft·token·rlhf
新知图书10 小时前
7.1 需求分析与规划 《AI Agent智能体开发实践》
人工智能·agent·ai agent·智能体