MRAgent:面向LLM的图记忆主动重建方法

neural_avb 发布于 2026-06-20 阅读 121

本文介绍了一种名为MRAgent的LLM驱动主动记忆重建方法,它彻底改变了传统'检索-推理'的被动范式。核心思想是'记忆是重建的,而非检索的',通过构建提示-标签-内容(CTC)图,将记忆组织为多层结构:情景层、语义层和抽象层。在推理时,LLM通过迭代遍历该图,根据已有线索动态选择下一步搜索方向,实现多跳检索。实验表明,该方法在LoCoMo和LongMemoryEval基准上显著优于基线,同时大幅降低token消耗。

图像

这篇新论文摒弃了 LLM 驱动记忆检索系统中常见的被动“检索-推理”范式,转而引入了“主动记忆重构”。

以下是该论文核心论点的三点总结:

“在大多数记忆实现中,记忆检索是一次性的:你根据查询搜索文档,得到结果列表,然后让 LLM 进行推理。”

这篇新论文 MRAgent 认为这有根本性的局限,因为 Agent 在开始“思考”问题之前并不知道自己需要什么。

主动记忆重构将记忆访问视为一个动态搜索问题,LLM 在结构化的记忆图中迭代探索,逐步发现证据,并根据已找到的内容调整搜索路径。

而且,这篇论文中有图。我知道你内心深处是喜欢图的。

核心论点:“记忆是被重构的,而非被检索的”

大多数记忆增强型 LLM Agent 隐含地将记忆视为图书馆搜索:根据查询检索最相似的 top-k 个历史片段,然后回答。这个流程假设 Agent 一开始就确切地知道自己需要什么(在大多数情况下,这根本不成立)。

这篇论文假设,记忆应该更像重构性回忆,而非一次性检索。

在人类中,回忆不是对记录的直接“抓取”,而是一个迭代过程:部分线索触发联想,进而触发更多线索,直到形成连贯的解释。

这有点像我们大脑中的链式反应,从一个想法跳跃到下一个,直到回忆起核心记忆。

MRAgent 也如此:Agent 反复根据已有发现决定下一步搜索什么,而非一开始就固定在一个检索结果上。

它只是通过遍历记忆图来做到这一点。

架构:Cue-Tag-Content (CTC) 图

为了支持这种“主动探索”,MRAgent(记忆重构 Agent)将记忆组织成一个 Cue-Tag-Content (CTC) 图。这种结构受认知科学启发,特别是人类不只是“抓取”文件,而是导航关联这一概念。

该图的节点:

Cues (线索):这些是从记忆中提取的细粒度、原子性元素或“提示”(例如,特定实体、时间戳或关键词)。例如:“你的初恋”或“你的第一次旅行”。这些是你大脑用来启动记忆的“Hook”。

Tags (标签):这些充当语义桥梁。它们根据高层主题或关系将相关的线索和内容分组。例如:“尴尬的记忆”或“度假照片”。标签解释了为什么某个线索与特定记忆相关。

Content (内容):这是原始信息或“记忆”本身(例如,一个特定的对话轮次或一个事实)。例如:“确切的对话”或“确切的行程”。也可能非常详细,比如“我当时在高中,给了她一盒大巧克力,她说谢谢然后一个人吃掉了”。

该图的边:

……是“映射函数”。每种节点类型都可以连接到其他所有节点类型。

Cue → Tag 映射:给定一组线索,识别它们属于哪些关联标签。

Cue 到 Tag 的映射回答:“这个关键词与哪些主题或类别相关?”

示例: -> 你有一个线索“特斯拉”。 -> 映射:这个线索可能映射到诸如“电动汽车”、“股票投资组合”或“埃隆·马斯克”等标签。 -> 为什么有用:Agent 不必查看每个提到“特斯拉”的文档,而是如果用户的查询是关于钱的,它可以决定只跟随“股票投资组合”这个标签。他们称之为“选择性激活”。

2. (Cue,Tag) → Content 映射:给定一个线索和一个标签,找到证明该关联关系的具体记忆内容。

示例: -> 你有一个线索“特斯拉”,并且你选择了标签“股票投资组合”。 -> 映射:这会直接将你引向一个特定的对话轮次:“3月12日,你提到以200美元的价格购买了10股特斯拉股票。” -> 为什么有用:它可以过滤掉“噪音”。它忽略了你谈论特斯拉新Cybertruck的记忆(那会在另一个标签如“产品发布”下),因为那不是你要找的。

3. Content → (Cue,Tag) 或“反向”映射

还有一个 Content 到 (Cue,Tag) 的映射,这非常像人类的行为。

想象一下你读到那个关于购买特斯拉股票的记忆。读到它让你想起:“等等,我在同一个对话中还提到了一个银行账户!”

反向映射:内容(特斯拉股票记忆)揭示了一个新的线索(银行账户)。

下一步:现在 Agent 开始一个新的搜索“银行账户”,看看那里是否有更多证据。

图像

基本上,他们使用这种线索-标签-内容系统,通过记忆图触发基于推理的搜索序列。

图构建

在 Agent 能够“导航记忆”之前,首先需要将记忆组织成便于导航的结构。MRAgent 通过从原始对话中构建一个结构化的关联图来实现这一点,而不是将记忆存储为文本块的扁平列表。

  1. 构建流程有两个阶段:
    • 元素生成:从对话中提取构建块(事件片段、线索、标签、语义事实、主题)。
    • 图构建:将这些构建块连接成一个图,以便 Agent 之后可以遍历它。

如前所述,他们使用了三种核心成分:线索、内容和标签。

一个线索通过标签指向内容。标签是“有意义的连接器”,使图可导航,并防止 Agent 淹没在原始事件片段文本中。

这个标签概念至关重要,因为它使检索自然分为两个阶段:首先选择正确的标签(高层关系),然后在那些标签下获取内容。

记忆不是一个整体:它是分层构建的(事件级、事实级、主题级)。

该图不仅仅是一种记忆节点。它被组织成多个“层”,以便 Agent 可以以适当的粒度进行推理:

  • 情景记忆(事件):具体的、有时间基础的事件(“发生了什么”),连接到线索并由标签路由;事件还被放置在时间线上,以便 Agent 之后可以施加时间约束。
  • 语义记忆(稳定事实):从对话中提炼的长期属性/偏好/事实,锚定到实体线索和方面级标签——这样 Agent 就可以回答“用户喜欢什么?”,而无需梳理冗长的事件历史。
  • 主题抽象(更高层主题):跨多个事件的重复模式的摘要;主题向下连接到它们所汇总的事件,从而实现自上而下的“找到正确主题,然后深入细节”的访问方式。

如何从原始对话填充图

那么如何从原始文本中获取这些节点和链接呢?

作者运行了一个自动化流程,使用 LLM 进行重写、分割和提取。

图像

他们:

  • 预处理并规范化对话:原始对话充满了诸如:代词(“他”、“她”、“那个”)、隐式上下文(“正如我之前说的……”)、模糊的时间引用(“昨天”、“上周”)、缺失的主语(“听起来不错”——对什么而言?)。

论文提到他们首先重写/优化对话,以解决上下文依赖性并使线索明确。所以首先,他们解决代词并做时间归一化。

  • 将规范化后的对话分割成事件片段:在重写/优化之后,系统进行事件分割:它将对话流切分成连贯的基于事件的片段(每个片段旨在表示上下文中的一个单一经历/事件)。这些片段成为记忆图事件层中的节点。一个事件片段是一个围绕一个事件/主题/行为(例如,计划一次旅行,讨论一个偏好,描述发生的事情)的有界对话切片。

  • 对于每个事件片段:生成一个标签并提取线索:系统生成一个简短的标签,总结该事件片段的核心关系/语义模式,以及一组细粒度的线索(实体、属性、显著描述符)。然后,它通过标签将每个线索链接到该事件片段,形成事件记忆的图连接。

  • 以类似方式提取语义记忆:从相同输入事件流中提取稳定事实/属性,将它们总结为语义单元,并将其锚定到实体级线索,并带有方面级标签。

  • 生成主题节点以连接相关事件:它生成对一组重复模式事件的主题摘要,并添加主题到事件片段的链接。这为 Agent 提供了一个粗略的“索引”,可以在进行细粒度导航之前跳转到记忆的正确区域。

直观地说,他们正在构建一个“多粒度记忆层”,灵感来自人类记忆。

  • 第1层是事件层 (Cue–Tag–Episode):该层存储特定事件的记忆单元,例如与特定时间和上下文相关的具体经历。
  • 第2层是语义层 (Cue–Tag–Semantic):该层存储从对话中提炼的相对稳定的知识,如属性、偏好和一般事实。
  • 第3层是抽象层 (Topics):该层存储主题节点,即一组事件中重复模式的高层摘要。

图像

在对此图进行搜索/推理期间,这些层帮助 Agent 更快地到达相关记忆,并在多个粒度级别(从粗略到超具体)上操作。

  • 使用主题快速定位正确区域(粗略过滤器)。
  • 使用语义记忆有效回答稳定的“档案/事实”问题(一般已知事实)。
  • 当你需要基于时间的具体证据时,使用事件记忆(超具体)。

搜索算法

一旦图作为离线预处理步骤构建完成,就该使用图来根据记忆回答用户查询了。

图像

MRAgent 运行一个循环,模型反复根据已经找到的内容决定下一步要寻找什么。

Agent 始终跟踪一个简单的内部“工作状态”,由两部分组成:

  • 活跃集 (Active Set):当前可能下一步扩展的记忆元素列表(可以包括线索、标签,甚至候选内容片段)。
  • 累积上下文 (Accumulated Context):它已经接受为有用的证据(运行中的重构记忆草稿)。
  1. 从查询初始化:给定一个用户查询,MRAgent 首先从查询中提取几个初始线索(名称、地点、关键短语、时间提示等)。它将这些线索与已存储在记忆中的线索节点进行匹配,并从这些匹配中构建起始的活跃集。累积上下文开始时为空(尚无证据)。

  2. 选择一个动作:LLM 对查询本身以及迄今为止累积的证据进行推理,然后选择一个或多个遍历动作——即下一步在 Cue–Tag–Content 结构中向哪个方向移动。

  3. 受控遍历(记忆系统执行所选移动):一旦 LLM 选择了遍历动作,记忆系统就会以受控方式执行它。论文中的遍历动作本质上是该记忆中的三个“合法移动”:Cue 到 Tag、Cue+Tag 到 Content、或 Content 回到 Cue+Tag。这些就是之前讨论的三种边类型。LM 遍历其中一个。

  4. 路由 + 更新(保留好的,修剪其余的):现在进入过滤步骤。给定遍历返回的候选,LLM:

    • 评估哪些候选确实有助于回答查询。
    • 将最佳证据添加到累积上下文中。
    • 修剪不相关的分支,使上下文保持简洁(这个修剪很重要,否则搜索会变得混乱)。
    • 更新活跃集,以反映哪些内容应继续“存活”以供进一步探索。
  5. 决定是否停止(导航模式 vs 答案模式):MRAgent 运行在两种执行模式下:导航模式与答案模式。

    • 导航模式:继续探索记忆图并累积证据。
    • 答案模式:一旦 Agent 认为有足够证据,它停止探索,并使用已构建的重构上下文生成最终响应。

每次循环迭代后,它会问一个简单的问题:“我是否有足够的证据来回答?”

  • 如果否,则回到动作选择并继续探索。
  • 如果是,则切换到答案模式,并生成基于累积上下文的最终答案。

图像

就是这样……LM 的推理能力使其能够遍历此图并通过多跳检索获取记忆。查看上图了解一个检索示例。

一些“啊哈”结果

1) 良好的基准分数

LoCoMo 是一个基准测试,旨在评估 Agent 的长期对话记忆,即它是否能回答需要从很长的对话历史中回忆和整合事实的问题。

图像

另一个基准测试:LongMemoryEval 是在持续的用户与助手交互下,聊天助手的超长期记忆。每个测试项给模型一个带时间戳的聊天会话序列,然后提出一个需要回忆和推理那个长交互历史的问题。

图像

2) 效率:比基线方法使用更少的 token(且不牺牲准确性)

在 LONGMEMEVAL 成本分析中,MRAgent 每个样本消耗 118k token,而 A-Mem 使用 632k(其他一些方法更多)。运行时间也具有竞争力(MRAgent 586s vs Mem0 533s,但质量强得多)。

3) 推理比仅仅拥有图更重要

图像

他们的消融研究凸显了主动多步推理的关键作用。带有“推理”的变体在所有记忆结构上始终优于“仅有结构”的对应变体。

而结构仍然重要:

  • 性能从 Cue→Episode (CE) 到 Cue-Tag-Episode (CTE) 到完整的 Cue-Tag-Content (CTC) 逐步提升,表明即使没有推理,标签/关联也能更好地引导检索。
  • 结构有帮助(更好的检索方向)。
  • 但结构 + 多轮推理才是真正改善多跳问题的关键。

阅读完整论文:http://arxiv.org/abs/2606.06036

  • 原文链接: x.com/neural_avb/status/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论