💬 多跳 agentic RAG 里,hop 1 的检索错误可能要到 hop 3 才会显现为错误答案,后续检索也可能把轨迹"修复"回来。这篇论文用干预式(interventional)方法造了个基准 AgenticRAG-FP:主动在指定 hop 注入一个"认证过的"故障,重跑下游轨迹,再问诊断器还能不能在后缀已经改变的情况下认出真正的故障点。结论很扎心:事后追溯类(post-hoc)诊断方法在 hop 1 表现完美,一旦故障往后传播一步就完全失灵。
🎯 问题
事后诊断信号会随传播深度迅速流失
Agentic RAG 系统把检索、推理、生成交织在多个 hop 里执行。当最终答案错了,标准做法是回看 trace(执行轨迹),试图定位"是哪一步先出的错"。但这类事后诊断隐含一个假设:错误的痕迹会在后续步骤里被保留下来、可被追溯识别。这篇论文的核心问题是——这个假设站不站得住?如果 hop 1 出错但轨迹后缀已经因为下游的重新检索、重新推理而"改写"甚至"自我修复",诊断器还能不能认出真正的病灶,还是只会盯着离答案最近的那一跳下手?
论文把"传播深度"(failure propagation depth,即故障发生的 hop 与被观测到的 hop 之间的距离)明确当作一个独立的评测轴,而不是把所有失败案例混在一起算一个笼统的"归因准确率"。
🔬 方法
AgenticRAG-FP:干预式因果失败归因基准
基准的构造逻辑是"干预"而非被动观察:给定一条正常的多跳推理轨迹,在指定的某一 hop 主动注入一个"认证过的"(certified,即人工/程序确认确实构成该 hop 上的错误)故障,然后重新执行故障点之后的所有下游步骤,得到一条新的、真实包含该故障后果的轨迹。因为注入点是已知的 ground truth,诊断器给出的归因结果可以直接和"真正被干预的 hop"做比对,从而把"归因准确率"变成一个有因果基准的、可验证的指标,而不是靠人工主观判断诊断是否"合理"。
为什么要"重新执行"而不是直接改写文本:仅仅在原始轨迹里手工替换掉 hop k 的文本、保留后面 hop 原样,并不能反映真实系统的行为——下游 agent 在看到错误的中间结果后可能会做出完全不同的检索/推理决策(甚至可能碰巧把错误纠正回来)。只有重新执行下游步骤,才能得到"故障传播之后世界线真正会变成什么样"的轨迹,归因也才是在诊断这条真实轨迹,而不是一个人为拼接的假轨迹。
两种故障类型:hop 定位 vs. 内容篡改
主实验在 80 道三跳 MuSiQue 问题上做"严格密集"(strict dense)扫描,用 Claude Haiku 4.5 作为被测系统,在每个可能的 hop 位置注入故障,考察一个 coverage-based(基于检索覆盖度判断)诊断方法能否定位故障 hop。补充的"内容篡改"(content-corruption)实验换了一种更隐蔽的故障:不是让检索整体跑偏,而是在话题上仍然相关、看起来正常的证据里悄悄改动一个关键事实——要么是直接承载答案的事实,要么是连接推理链的桥接事实(bridge fact)。这种故障对 coverage-based 方法天然更难发现,因为检索到的文档"看起来"仍然对路。
在严格密集扫描(Claude Haiku 4.5、80 道三跳 MuSiQue 问题)下,coverage-based 诊断在故障发生于 hop 1 时准确率高达 0.91,但只要故障发生在 hop 2 或 hop 3,准确率直接掉到 0.00。也就是说,这个诊断方法本质上只能可靠地识别"最早一跳就出错"的情况——一旦故障需要经过至少一次下游重新执行才显现,诊断信号就完全丢失了,而不是"打折扣"式的缓慢下降。