跳转至

R2D2: Remembering, Replaying and Dynamic Decision Making with a Reflective Agentic Memory

会议: ACL 2025
arXiv: 2501.12485
代码: 无
领域: LLM Agent / Web Agent
关键词: web agent, replay buffer, reflective memory, A* search, WebArena, known MDP

一句话总结

R2D2 提出了一个结合 Remember(经验回放缓冲区 + A* 搜索导航)和 Reflect(错误反思 + 反思记忆存储)两范式的 Web Agent 框架,将 Web 导航从 Unknown MDP 转化为 Known MDP,在 WebArena 上导航错误减少 50%,任务完成率提升 3 倍,超越 SOTA 17%。

研究背景与动机

  1. 领域现状:Web Agent(如 ReACT)通过 LLM 执行网页导航和交互任务,但约 60% 的失败源于导航错误——Agent 无法找到正确的目标页面。
  2. 现有痛点
  3. Unknown MDP 假设:Agent 对动作后果的可见性有限,每次推理都从头摸索,无法利用历史经验
  4. 经验即用即弃:传统方法在一次 episode 后立即丢弃轨迹,浪费了宝贵的探索信息
  5. 反思方法不够:现有反思(如 Reflexion)只关注执行级别错误,对导航失败束手无策
  6. 核心矛盾:Web 环境复杂但 Agent 每次都从零开始探索,历史经验无法有效复用
  7. 本文要解决什么? 构建 Web 环境的结构化表示("地图"),让 Agent 基于已知信息做决策
  8. 切入角度:受人类认知和机器人探索研究的启发——人类通过记忆和反思迭代改进策略,不是每次都从头来
  9. 核心 idea 一句话:用 replay buffer 构建 Web 环境的有向图"地图"(Known MDP),用 A* 搜索替代盲目导航;用反思机制学习执行错误,将纠正后的轨迹存入记忆供未来检索。

方法详解

整体框架

探索阶段:ReACT Agent 执行任务 → 收集观测序列 → 构建 replay buffer 图 → 对失败轨迹分类(导航/执行错误)→ 分别用 Remember/Reflect 纠正 → 存入反思记忆。推理阶段:新查询编码 → 检索相关轨迹作为 in-context demo → 引导 Agent 执行。

关键设计

  1. Remember Paradigm(记忆范式)
  2. 做什么:从所有历史观测中构建 Web 环境的结构化"地图"
  3. Replay Buffer 构建:将 Web 环境表示为有向图 \(G = (O, E)\),节点是网页观测,边是动作(点击、填写等),存储连续观测之间的差异而非完整页面状态
  4. A* 搜索导航:对导航失败的轨迹,在 replay buffer 图中用 A* 搜索寻找到目标页面的最优路径。启发式函数由 LLM 评估每个节点到目标的相关性距离
  5. 设计动机:将 Unknown MDP 转化为 Known MDP——Agent 不再"摸黑"导航,而是在已知的"地图"上做路径规划

  6. Reflect Paradigm(反思范式)

  7. 做什么:对执行失败的轨迹进行错误诊断和策略纠正
  8. 核心思路:LLM 识别轨迹中第一个错误动作 \(a_i\) → 截断到 \(\{a_1, ..., a_{i-1}\}\)(正确部分)→ 生成对错误动作的反思和修正建议 → 存入反思记忆
  9. 设计动机:与 Remember 互补——Remember 解决"去哪里",Reflect 解决"怎么做"

  10. Reflective Memory(反思记忆)

  11. 做什么:键值存储,查询向量为 key,纠正后的轨迹+反思为 value
  12. Lookup:新查询编码后通过向量相似度检索最相关的历史轨迹
  13. Update:如果新的纠正轨迹比已有的更优,LLM 判断后更新
  14. 设计动机:Agent 通过积累经验持续改进,类似人类的"经验学习"

  15. 错误分类

  16. 导航失败:Agent 未到达关键页面 → 用 Remember(A* 搜索)纠正
  17. 执行失败:Agent 到达了正确页面但操作错误 → 用 Reflect 纠正
  18. 约 60% 失败是导航失败,这正是 Remember 范式解决的

实验关键数据

主实验(WebArena)

方法 任务完成率 导航错误率
ReACT (GPT-4o) ~14% ~60%
Tree-search + reflection ~20% ~45%
R2D2 ~42% ~30%
vs SOTA 提升 +17% -50%

各任务域对比:

ReACT R2D2 提升
CMS 显著
Reddit 显著
Shopping 显著
Map 中等

消融实验

配置 Task SR
R2D2 (Remember + Reflect) ~42%
w/o Remember (仅 Reflect) ~25%
w/o Reflect (仅 Remember) ~35%
w/o Reflective Memory ~30%
Base ReACT ~14%

关键发现

  • Remember 贡献大于 Reflect:去掉 Remember 下降 17%,去掉 Reflect 下降 7%——因为导航失败占总失败的 60%
  • 两范式协同效果 > 单独使用之和:Remember 减少导航障碍让 Reflect 能更专注于执行优化
  • A* 搜索比随机探索高效:在 replay buffer 中精准定位目标页面路径
  • 反思记忆的持续学习:随着探索 episode 增加,记忆质量提升,新任务受益

亮点与洞察

  • Unknown MDP → Known MDP 的转化思路非常优雅:将 Web 导航从"摸黑行走"变为"地图导航",这是根本性的范式改变。可迁移到任何交互式环境的 Agent(如 GUI Agent、游戏 Agent)
  • A* 搜索 + LLM 启发式的组合:用经典搜索算法的结构保证效率,用 LLM 提供语义级别的启发式——经典算法与现代 AI 的精彩结合
  • 错误类型分治策略:不是对所有失败用同一种方法纠正,而是先分类(导航 vs 执行)再对症处理——这种分类思维值得广泛借鉴

局限性 / 可改进方向

  • Replay buffer 需要前期探索:需要先执行多个探索 episode 来构建"地图",冷启动成本高
  • Web 环境动态变化:如果网页结构变化,replay buffer 中的旧信息可能过时
  • 仅在 WebArena(模拟环境)上测试:真实 Web 环境的噪声和复杂度更高
  • LLM 调用次数多:A* 搜索中每个节点都需要 LLM 评估启发式值

相关工作与启发

  • vs Reflexion (Shinn et al., 2023):Reflexion 只做执行级反思,R2D2 分离了导航和执行失败并分别处理
  • vs Tree-search methods (Koh et al., 2024):树搜索在 Unknown MDP 中在线探索,R2D2 离线构建 Known MDP 后做高效搜索
  • vs Agent-Q (Putta et al., 2024):Agent-Q 用 RL 微调,R2D2 纯 prompting 方法更灵活

评分

  • 新颖性: ⭐⭐⭐⭐⭐ Unknown→Known MDP 转化、A*+LLM 启发式、错误分治策略都非常新颖
  • 实验充分度: ⭐⭐⭐⭐ WebArena 详细消融和错误分析,但仅在一个 benchmark 上测试
  • 写作质量: ⭐⭐⭐⭐ 形式化定义清晰,图表直观
  • 价值: ⭐⭐⭐⭐⭐ 对 Web Agent 的实用提升巨大(3倍完成率),思路可迁移