Reasoning Graphs:让RAG Agent不再"翻车"的证据图谱
你有没有碰到过这种情况:同一个RAG Agent,问它同样类型的问题,有时候答得漂亮,有时候却离谱到家。跑10次能给你4种不同的推理路径,方差大到让人怀疑人生。更让人头疼的是,明明上次已经判断对了某个证据段落,下次碰到同一段落又从零开始推理——之前的经验全丢了。
这就是当前RAG Agent的结构性问题:每次查询都从零推理,运行结束就丢弃思维链。准确率低是一方面,更大的麻烦是不确定性——你不能信任一个行为不可预测的系统去做关键决策。
这篇论文给出了一个让我觉得"思路真的很对"的方案:Reasoning Graphs,把每次推理中对证据的判断持久化成图结构,下次碰到同一段落直接调取历史评估,不用重新来过。效果上,50%以上覆盖率时错误减少了47%,4跳推理准确率涨了11个百分点,而且判决一致性从88%提升到98%——行为几乎完全确定性了。
论文信息
- 标题:Reasoning Graphs: Self-Improving, Deterministic RAG through Evidence-Centric Feedback
- 作者:Matthew Penaroza
- 日期:2026年4月13日
- 链接:https://arxiv.org/abs/2604.07595
问题在哪:Agent的记忆断了
现有的Agent记忆机制主要走两条路:
Reflexion(NeurIPS 2023)把自我反思的文字存成扁平文本,按近因检索。问题是反思内容和具体证据之间的连接早就丢了——你只知道"上次我做错了",但不知道是哪个段落让你做错的。
ReasoningBank(Google, 2025)更进一步,把推理轨迹蒸馏成策略三元组,按查询相似度检索top-3。但蒸馏过程中,策略和具体证据项的绑定关系被抹掉了——你拿到一条"关注日期一致性"的策略,却不知道这个策略是因为哪段证据总结出来的。
两种方法都是查询中心的:根据新问题跟旧问题有多像,来检索过去的经验。但同一个问题在不同运行中可能检索到不同的证据集合,所以查询相似不等于证据相似。这就好比——你因为两道题都是关于奥斯卡获奖电影的,就把上一道题的解题思路照搬过来,但两道题涉及的电影根本不是同一部。
更深层的问题是不确定性。ReAct风格的Agent在相同输入下跑10次,会产生2.0到4.2种不同的动作序列。这在学术评测里可能只是方差问题,但在审计、合规、安全关键场景里,这就是致命缺陷——你不能让一个行为飘忽不定的系统做决策。
推理图:从"查问题"到"查证据"
核心思路
Reasoning Graphs的核心洞察就一句话:别按问题索引经验,按证据索引。
为什么?因为不同的多跳问题会反复碰到同一段落。比如问"哪部电影获得了2020年奥斯卡最佳影片"和"2020年奥斯卡最佳影片的导演还导过什么",两个问题完全不同,但都涉及同一段关于2020年奥斯卡的段落。如果按问题检索,这两次运行互不相干;如果按证据检索,第二次运行直接受益于第一次对该段落的评估。
图结构
推理图 \(\mathcal{G}_R\) 是一个有向标记属性图,三类节点:
- 代理节点 \(\mathcal{A}\):Agent实例
- 决策节点 \(\mathcal{D}\):每次推理的结论
- 证据节点 \(\mathcal{K}\):知识库中的段落
两类边:
- decided边:\((a, d, \phi)\),连接代理到决策,\(\phi\) 包含置信度、时间戳、结果
- evaluated边:\((a, k_i, \psi)\),连接代理到证据,\(\psi\) 包含步骤号、裁决、理由、置信度变化
关键在于evaluated边——它记录了Agent对某段落的判断:是用了(used)还是拒了(rejected),理由是什么,置信度变了多少。
反向遍历:核心机制
这个图最有价值的地方不是正向遍历(从代理出发重建某次运行的思维链),而是反向遍历:从证据项出发,沿所有入射evaluated边遍历,发现跨运行的模式。
举个例子:段落 \(k_{37}\) 在过去3次运行中被评估过——1次被标记为used且最终结果正确,2次被标记为rejected且理由都是"描述了不同年份的同名电影"。现在新查询又检索到了 \(k_{37}\),系统沿反向遍历拿到这3条评估边,构建证据档案 \(\mathcal{P}(k_{37})\):汇总裁决分布、提取代表性理由、计算可靠性分数。
然后将这个档案注入LLM的提示词,跟原始证据并列呈现。Agent看到的不只是段落内容,还有"之前3次运行中,这段被拒了2次,理由是年份不对"。
可靠性分数的定义:
只有当该段落被标记为used且最终决策正确时,才算"正样本"。
一个关键设计选择
作者做了一个很重要的过滤:只保留outcome=correct的评估边中的信息。你想想看,只从成功的推理中学习,不从失败中学习。理由很直白——失败的原因太多,可能是推理路径错了、可能是其他段落误导了,把失败的理由注入反而可能放大错误模式。
说实话,我第一反应是觉得这个设计有点保守。失败里也可能有信号啊。但仔细想想,在结果信号有噪声的情况下(Agent自己判断对错都不一定准),只从成功中学习确实是更安全的选择。论文后续的噪声鲁棒性实验也验证了这一点:10%噪声下系统几乎不受影响,30%噪声下也只是优雅降级,不会崩溃。
检索图:把候选集越收越窄
推理图解决的是"如何推理"的问题,但还有另一个维度:检索什么。
检索图 \(\mathcal{G}_P\) 在推理图的基础上增加了retrieved_via边,记录每次检索的过滤器配置、候选集大小、延迟、token成本等元数据。
管道规划器做两件事:
- 选择最佳过滤器配置:遍历同类型查询的所有retrieved_via边,计算每种配置的成功率,选最高的
- 跨图优化:查询推理图中拒绝率超过阈值的证据项,加入排除列表,下次检索直接跳过
效果是候选集越跑越精:第一次检索12个段落,几次运行后可能只检索7个——被反复拒绝的段落被排除了,省token也省推理时间。
双图闭环:越用越准
推理图和检索图形成互补反馈:检索图优化"检索什么",推理图优化"如何推理"。每次运行后原子性地写入新边,使下一次运行更好。
用一个具体例子来理解这个闭环:
Run 1:检索到12个候选段落,从零推理。有个相似标题的错误段落 \(k_{37}\) 被误判为used,最终答案错误。
Run 2:管道排除了3个曾被反复拒绝的段落(12→9个候选);\(k_{37}\) 的档案显示"1次正确决策中被拒绝,理由:描述了不同年份的同名电影"——Agent这次正确拒掉了它。
Run N:候选集收窄到7个段落,多个关键段落的档案已经积累了好几次正确评估,Agent稳定地推理出正确答案。
冷启动时没有任何评估边,系统等同于Vanilla RAG。不需要额外训练,基础模型保持冻结,所有增益都来自图遍历注入的上下文。
实验结果
主实验:准确率提升3.6个百分点
| 方法 | MuSiQue准确率 | MuSiQue F1 | HotpotQA EM |
|---|---|---|---|
| Vanilla RAG | 64.5% ± 5.7 | 0.729 ± .043 | 73.6% ± 7.2 |
| Reflexion | 65.8% ± 5.6 | 0.740 ± .047 | 73.6% ± 7.3 |
| ReasoningBank | 66.5% ± 6.1 | 0.742 ± .046 | 74.2% ± 7.0 |
| Ours-RG | 66.2% ± 5.6 | 0.743 ± .039 | 74.0% ± 6.4 |
| Ours-Full | 68.1% ± 5.5 | 0.758 ± .037 | 74.2% ± 6.3 |
MuSiQue整体提升+3.6pp(p<0.0001),赢输比2.9:1(60题获益vs 21题受损)。HotpotQA提升边际——这不是bug,而是feature。HotpotQA的段落重叠率只有0.055(vs MuSiQue的0.504),证据复用密度太低,推理图自然没多少用武之地。这恰恰验证了作者的核心假设:证据复用密度决定增益上限。
剂量-响应分析:最核心的因果证据
这篇论文最扎实的实验是剂量-响应分析,用证据档案覆盖率(候选集中有至少一次先前评估的段落比例)做分层:

图2:证据档案覆盖率与准确率的剂量-响应关系。零覆盖时完全持平(~54%),覆盖率越高提升越大,50%+时错误减少47%
| 覆盖率 | n | Ours-Full | VR同题 | Δ | 错误减少 |
|---|---|---|---|---|---|
| 0% | 371 | 54.2% | 54.4% | -0.3pp | 0% |
| 1-19% | 258 | 62.0% | 60.1% | +1.9pp | 5% |
| 20-49% | 208 | 75.0% | 71.6% | +3.4pp | 12% |
| 50%+ | 263 | 88.2% | 77.6% | +10.6pp | 47% |
零覆盖时两者完全持平(~54%),这是关键的因果验证:不是系统本身更强,而是证据档案在起作用。覆盖率越高,增益越大,50%+时错误减少47%(p<0.0001,32:4赢)。曲线明显还没饱和,说明当前观测值很可能是下界。
消融实验:两个图各管什么

图3:推理图和检索图的贡献随覆盖率的变化。低覆盖时检索图通过剪枝主导,高覆盖时推理图成为主要驱动力
| 覆盖率 | VR | +RG only | +Full | RG贡献 | RetG贡献 |
|---|---|---|---|---|---|
| 0% | 54.4% | -1.1pp | -0.3pp | — | — |
| 1-19% | 60.1% | +0.0pp | +1.9pp | 0% | 100% |
| 20-49% | 71.6% | +1.9pp | +3.4pp | 57% | 43% |
| 50%+ | 77.6% | +6.8pp | +10.6pp | 64% | 36% |
这个消融实验特别有意思。低覆盖时推理图几乎没有贡献——因为没什么档案可注入,反而是检索图通过早期剪枝在起作用。但随着覆盖率上升,推理图的贡献越来越大,50%+时占了64%。
两个图形成了一个很自然的互补分工:检索图负责"扫清障碍"(排除差段落),推理图负责"点亮道路"(告诉Agent好段落该怎么用)。
多跳深度:4跳问题涨了11个点
| 跳数 | n | Ours-Full | VR | Δ | McNemar |
|---|---|---|---|---|---|
| 2-hop | 646 | 68.9% | 67.2% | +1.7pp | n.s. |
| 3-hop | 253 | 66.0% | 63.6% | +2.4pp | n.s. |
| 4-hop | 201 | 68.2% | 57.2% | +11.0pp | p=0.0001 |
4跳+高覆盖(50%+)时,准确率达到89.2%,而VR只有73.5%——错误减少59%。更反直觉的是,4跳高覆盖的89.2%超过了2跳基线的67.2%。最难题目在高覆盖下反而比最简单题目更容易。
你想想看,为什么4跳反而受益更大?因为跳数越多,涉及的段落越多,段落被重复检索到的概率也越高——证据复用密度跟着跳数走。这正是推理图最擅长的场景。
确定性实验:行为从88%一致到98%
这篇论文一个让我很佩服的地方是,它真的认真测了确定性——不只是说"方差降低了",而是做了严格的重复实验:30个探测题 × 10次重复 × 3个检查点 × 3个温度,总共6298/6300次API调用成功。
关键指标是VVIR(Verdict Vector Identity Rate):重复运行中产生完全相同裁决向量的比例。
| 条件 | 温度 | VVIR | Δ vs VR | 完美VVIR | p值 |
|---|---|---|---|---|---|
| Vanilla RAG | 0.0 | 0.880 | — | 14/30 | — |
| Ours-RG | 0.0 | 0.950 | +0.070 | 20/30 | 0.007 |
| Ours-Full | 0.0 | 0.980 | +0.100 | 27/30 | — |
| Vanilla RAG | 0.5 | 0.777 | — | 10/30 | — |
| Ours-RG | 0.5 | 0.857 | +0.080 | 16/30 | 0.038 |
注意:Ours-RG vs VR是无混淆比较——两者都评估全部20个段落,唯一的区别就是有没有注入证据档案。7-8pp的VVIR提升完全归因于证据档案。
更有说服力的是11个"难探测题"(VR-VVIR<0.9)的结果:Ours-RG把VVIR从0.846提升到0.973;Ours-Full在温度0和0.5下把全部11个难探测题推至完美一致(VVIR=1.0, p=0.004)。
这就是确定性——不再掷骰子。
高复用场景:帕累托占优
| 配置 | Sonnet准确率 | Haiku准确率 | 延迟 | 成本/查询 |
|---|---|---|---|---|
| Vanilla RAG | 58.9% | 52.2% | 15.8s | 3.0c |
| Reflexion | 61.2% | 49.6%↓ | 23.3s | 3.7c |
| ReasoningBank | 61.5% | 51.2%↓ | 23.1s | 3.6c |
| Ours-Full | 62.8% | 56.6% | 8.6s | 1.6c |
Ours-Full在两个模型上准确率最高,延迟还降低了46%(8.6s vs 15.8s),成本降低47%(1.6c vs 3.0c)。帕累托占优——更快、更便宜、更准。
坦率的讲,Reflexion和ReasoningBank在弱模型Haiku上反而降低了准确率,这个结果让我有点意外。但仔细一想也合理:这两种方法往提示词里塞了一堆额外的反思文本或策略描述,反而干扰了弱模型的推理。推理图做的不是加塞内容,而是给现有证据配上"历史评价"——对弱模型来说,这是信息增强而不是噪声增加。
还有一个有意思的发现:Haiku + Ours-Full在50%+覆盖率下达到89.9%,匹配了Sonnet基线的89.2%,但成本只有1/5。弱模型+证据档案可以替代强模型+从零推理,这在成本敏感场景下很实用。
深层分析
裁决翻转:增益来自哪里
47%的问题出现了至少一次裁决翻转——证据档案改变了Agent对段落的判断。有翻转的问题改善+6.6pp,无翻转的只+0.8pp。几乎所有准确率增益来自档案改变了判断的问题。
而且73.3%被挽救的问题在VR下F1=0——系统挽救的是完全失败,不是差一点点的情况。
段落重叠是增益的预测器

图6:簇级段落重叠率与准确率改善的相关性(Pearson r=0.638, p=0.019)。MuSiQue簇(高重叠)改善显著,HotpotQA簇(低重叠)几乎无改善
这进一步验证了核心假设:推理图的增益取决于证据复用密度。唯一的负向簇(musique_2, -2.0pp)重叠最低(0.245)。
决策一致性:从90%攀升到97%

图7:决策一致性 \(d_\tau\) 的机制解释。左:\(d_\tau \geq 95\%\)时准确率77.1% vs \(d_\tau < 50\%\)时25%(p=0.0005)。右:\(d_\tau\) 随查询序列攀升,从Q1-25的90.0%到Q76-100的97.4%
决策一致性 \(d_\tau\) 是Agent裁决与证据档案多数信号一致的比例。它不只是相关指标,更像是因果中介:档案积累→裁决对齐→准确率提升。
跨模型迁移:失败
Haiku使用Sonnet积累的图:54.0% vs Haiku自身图:56.6%(-2.6pp)。不同模型对同一段落的推理模式不同,强模型的判断对弱模型反而可能是噪声。这告诉我们:推理图是模型专用的,不是通用知识库。
说实话,这个失败结果让我有点遗憾。如果跨模型迁移能work的话,实用价值会大很多——用强模型积累的图直接给弱模型用,省掉弱模型的预热成本。但失败也有价值,至少说明推理图捕获的是"这个模型怎么看这段证据"的模型特定模式,而不是"这段证据本身好不好"的客观信号。
效率:看场景
高复用场景下帕累托占优——更快更省更准。但在标准MuSiQue(轻度剪枝,20→15.5个段落)上,Ours-Full比VR慢2.7倍。图遍历的开销(读图、构建档案、注入上下文)在低剪枝场景下不能被推理时间节省抵消。
所以这套方法不是银弹,它有明确的适用条件:
- 高段落复用(重叠>0.3)——这是前提
- 足够查询量(50+题/段落类型)——预热需要时间
- 多跳推理(4跳比2跳收益大得多)
- 裁决一致性重要(审计、合规、安全关键场景)
局限性
除了跨模型迁移失败和效率依赖复用密度之外,还有几个值得注意的局限:
模型覆盖面窄。只测了Claude Sonnet 4和Haiku 4.5,GPT-4和开源模型都没验证。不同模型族的推理模式差异可能很大。
结果信号噪声鲁棒性有上限。10%噪声几乎无影响,20%噪声就掉了4.1pp,30%噪声掉了3.9pp。在真实场景中,Agent自判断的噪声率可能不低——尤其对于复杂推理任务。
冷启动问题。无档案时等同基线,需要足够的查询来预热。对于低频查询场景,图可能积累不到足够的边。
上下文窗口限制。档案消耗token,激进截断可能丢失信号。论文设了4096 token的预算,但在更长的推理链中这可能不够用。
我的判断
这篇论文解决的是一个非常真实的问题,而且思路是对的。证据中心的索引方式比查询中心更自然——至少在段落复用密集的场景下是这样。剂量-响应分析和确定性实验做得很扎实,不是"跑一次实验就敢下结论"的水准。
但我也想指出几点不足:
增益的条件性很强。50%+覆盖率时效果惊艳,但覆盖率低时几乎没收益。实际部署中你没法保证覆盖率——它取决于查询分布和段落重叠率,不是你能控制的。论文在HotpotQA上的表现就说明了这一点:低重叠场景下,推理图只是更贵的RAG。
跟同期Agentic RAG方案对比不够充分。当前Graph RAG、CoT-RAG、MA-RAG等工作也在解决类似问题,论文只比了Reflexion和ReasoningBank两个记忆基线。如果跟知识图谱驱动的RAG比,推理图的信息增益是否还这么明显?这是论文没回答的。
单作者工作。整个方法、实验、论文都是一个人完成的,实验规模因此受限——只有2个数据集、2个模型族、30个确定性探测题。更大的实验规模可能会揭示更多问题。
不过,核心洞察——按证据而非按查询索引经验——这个方向我觉得是对的。特别是在企业内部知识库、客户支持、法律合规等段落复用密度天然很高的场景下,推理图的价值会很直接。弱模型+证据档案替代强模型+从零推理这个发现,对成本敏感的工程场景也很有启发。
如果你在做高复用的RAG系统,这个思路值得试试。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我