MemR3:基于LangGraph的反思推理、记忆和检索的RAG框架

在构建大模型智能体(LLM Agents)时,记忆系统是其核心。无论是为了记住用户的偏好,还是为了处理长达数月的对话历史,我们通常会给 AI 挂载一个"外部存储器"。

然而,目前的记忆检索系统大多遵循简单的 "检索-回答"(Retrieve-then-Answer) 模式:用户提问 系统去数据库捞数据 把捞到的扔给模型。

https://arxiv.org/pdf/2512.20237
Memory Retrieval via Reflective Reasoning for LLM Agents

https://github.com/Leagein/memr3

基于 LangGraph 构建,其核心是一个智能路由(Router),它可以在三个动作之间自主选择:

  1. 检索(Retrieve):如果当前信息不足,更新查询词(Query Refinement),再次进入数据库寻找精准证据。
  2. 反思(Reflect):对已获取的证据进行逻辑推演。比如虽然没直接找到"领养间隔",但通过对比两个不同日期的证据,推算出时间差。
  3. 回答(Answer):当证据链完整时,生成最终响应。

相比传统的 RAG, 引入了"早停机制"。如果系统认为现有的证据已经足够逻辑闭环,它会提前停止检索,从而减少冗余信息的干扰并提高效率。

传统的 RAG 是线性流,而 借鉴了 Self-RAGReflexion 的思想。

  • Self-RAG/ReAct:让模型决定什么时候搜。
  • ** 的进化**:它不仅决定"什么时候搜",还通过一个**显式的"证据-缺口状态"(Evidence-Gap State)**来量化当前的搜索进度。这就像给 AI 检索过程装了一个进度条和逻辑检查站。

是基于 LangGraph 构建的。这意味着它的每一个动作(检索、反思、回答)都是图中的一个节点。

  • 透明度:你可以清楚地看到 AI 在得出"3个月"这个结论前,经历了多少次检索,每次检索补充了哪些 Evidence,又缩减了哪些 Gap。
  • 鲁棒性:通过闭环控制,它能有效过滤掉检索回来的无关噪声,防止模型被误导。

unsetunset 的内部构造unsetunset

的核心在于它不把检索看作"一锤子买卖",而是看作一个有目的的探索过程

系统每一步都会问自己两个问题:

  • 我已知了什么?(Evidence, E) :从记忆中捞出来的、能支撑答案的事实。
  • 我还缺什么?(Gap, G) :阻碍我给出最终答案的缺失信息。

就像一个拥有三个路径,由 Router(路由器) 决定何时换挡:

  1. 检索节点 (Retrieve) :当 (有缺口)时,生成新的查询词 。为了防止重复,它会**掩码(Mask)**掉已读过的记忆,确保每一轮都有新发现。
  2. 反思节点 (Reflect) :当搜不到新东西,或者需要逻辑推演时,进行内部思考。
  3. 回答节点 (Answer) :只有当 消失或达到最大步数时,才整合所有证据给出最终结论。

为了保证效率, 给路由器加了三道锁:

  • 预算限制 :步数到了必须强制回答,防止无限搜索。
  • 反思连击限制 :不能光想不干,想太多了就得去搜一下。
  • 空检索跳转 :如果搜不到东西,自动转入"反思"模式。

unsetunset实验结果解析unsetunset

LoCoMo(长程对话记忆)基准测试中, 展示了统治级的表现:

  • 全面超越基准 :无论底层用的是普通的 RAG (基于分块)还是 Zep(基于图谱),加上 控制器后,分数都有显著提升。
  • 刷新上限:在 GPT-4o-mini 下, + RAG 的总分达到了 **81.55%**,甚至超过了把所有记忆都塞进上下文的 **Full-Context (76.32%)**。
  • 后端兼容性 :数据证明 是"即插即用"的,它能显著修补传统 RAG 在处理时间推理 (Temporal)多跳问题 (Multi-Hop) 上的短板。

大家最担心的可能是"多轮检索太慢/太贵"。但实验数据说明了的高效性:

  • 如图 5 所示,绝大多数问题(尤其是单跳问题)在第 1 次迭代时就解决了
  • 只有开放域 (Open-Domain) 问题会经常耗尽 5 次迭代预算。
相关推荐
LienJack3 小时前
《Re0 Build Harness》第二章Agent 组成模型:Model、Loop、Tools、State
人工智能·agent
数数科技的数据干货3 小时前
ThinkingAI 正式发布数据采集 Agent,实现对话式数据接入!
ai·agent·ai编程·thinkingai·agentic engine
HIT_Weston5 小时前
98、【Agent】【OpenCode】task 工具提示词(子 Agent)
人工智能·agent·opencode
周易宅5 小时前
深度解析 AI Agent 的工具调用机制:从技能激活到动态路由
人工智能·ai·agent
程序员契奇5 小时前
10_Agent的使用OverAllState和RunnableConfig
后端·agent
Artech6 小时前
[MAF的Agent管道详解-05]对话历史的持久化和输入输出的增强
ai·agent·maf·aicontextprovider·chathistoryprovider
-停泊6 小时前
Skill和Prompt有何不同
prompt·agent·skill
阿里云云原生7 小时前
告别“大海捞针”式排障:阿里云 UModel 如何用“本体论”重塑 AIOps?
阿里云·ai·云计算·agent·umodel
Aloudata7 小时前
语义层 vs 数据中台:轻量语义架构与重型中台路线的深度对比与选型建议
大数据·数据分析·agent·指标平台·数据中台