Skip to content

迭代检索与 Agentic RAG ​

Agentic RAG 让语言模型参与决定 RAG 的执行步骤:模型根据用户问题与当前取得的资料,选择检索、读取全文、切换数据源、调用计算工具或结束检索。工具返回结果后,模型继续判断下一步,直到可以回答或达到停止条件。这是一类应用架构,没有唯一规定的论文流程。

一次检索后立即生成答案的 RAG 流程,在资料不完整时缺少继续查找的机会。迭代检索增加了返回路径:读取结果后,判断还缺什么,再发起下一次检索。这个循环可以由预设规则控制,也可以交给 Agent 在限定动作范围内选择;Agentic RAG 采用的是后一种方式。

下一次动作如何从结果中产生 ​

用户问:“比较 2025 与 2026 年境内差旅提交期限,说明提交后多久能收到款;境外是否相同?”一次搜索只命中了 2026 年境内提交规则。系统已经拿到一条资料,却还不能完整回答。

如果采用 Agentic RAG,模型会同时收到原问题、可用工具说明和当前已取得的证据。根据这些输入,它选择一次具体调用;工具执行后,结果再加入上下文,供模型决定下一步。

text
用户问题、工具说明、已有证据
  → 模型选择动作和参数
  → 执行器调用工具
  → 工具返回结果
  → 更新已有证据和待确认事项
  → 再次选择动作,或生成回答

例如,第一次结果只包含“2026 年境内提交期限为 30 个自然日”,模型就可以选择检索 2025 年版。假设后续查到旧版是 60 个自然日、支付发生在审批通过后 5 个工作日,但一直没找到境外条款,执行过程可以是:

已有结果或待确认事项下一动作得到的信息如何影响后续步骤
只有 2026 年境内提交期限检索 2025 年境内提交条款取得旧版 60 个自然日,继续核对两版计时起点
两版都从差旅结束后计时比较两个期限可以确认提交期限缩短了 30 个自然日
尚不清楚提交后何时到账检索支付期限及起算条件查到的是“审批通过后 5 个工作日”,还不能推出提交到付款的总耗时
不知道审批一般需要多久查询适用的审批时限若没有找到,保留这项缺口,不给出总到账天数
尚未找到境外规定限定境外范围检索;必要时沿文档引用读取补充办法有适用条款才能比较;反复返回境内规定不能支持境外结论

这个过程中的动作有因果关系。查询审批时限,是因为支付条款的起点与用户问的起点不同;读取补充办法,是因为已有文档提供了可以继续追查的引用。后一轮查询使用前一轮发现的信息,因此事先未必能写出全部检索请求。

模型也可能选择错误的动作。增加一轮调用只增加了一次取证机会,能否补齐答案仍取决于查询是否合理、数据源是否包含所需资料,以及结果是否被正确理解。

多轮检索与 Agentic RAG 的区别 ​

多轮检索不一定需要 Agent。可以预先写好规则:第一次为空就换关键词,再为空就查询备用索引。执行路径已由程序定义,模型即使参与改写,也未必负责决定下一步。

Agentic RAG 中,模型通常会在给定工具和动作范围内参与控制流程。面对同一条不完整结果,它可能选择换查询、读全文、查询另一个来源或向用户澄清。执行器仍然负责真正调用工具,模型不会因为提出一个工具名就获得任意执行权限。

对于始终需要“查今年制度、查去年制度、比较差异”的任务,可以按事先分解出的子任务执行固定流程。沿文档引用继续查询也能编写成规则。当检索后发现的条件会改变取证方向、后续查询与数据源难以预先列全时,动态选择动作才更有用。

ReAct 提供了推理与行动交替的研究范式,IRCoT 研究推理与检索交替。应用可以参考这些思路,但具体工具、状态和停止规则仍由系统定义。

每轮需要保留哪些信息 ​

模型不能只看到上一轮搜索的最后一段文本。原问题、已经确认的事实、待确认事项及来源应当随循环保留,否则它可能重复检索旧问题,或忘记用户还问了境外规则。

本例在取得两版期限和支付条款后,可以记录:

text
原问题:比较两版期限、确认提交到付款时间、比较境内外规则
已确认:2025 年境内 60 个自然日;2026 年境内 30 个自然日
已确认:两版从差旅结束后起算
已确认:支付期限为审批通过后 5 个工作日
待确认:提交到审批通过的时长;境外适用条款
来源:各事实对应的文档 ID、版本和原文位置
已尝试:查询过哪些问题、采用什么过滤条件、返回了哪些文档

这些信息可以放在对话历史中,也可以保存为结构化状态。来源和关键条款需要保留到最终回答阶段;只保存模型写出的总结,会让后面的步骤难以复核总结是否遗漏条件。

一项需求只有在取得适用证据后才能标为已覆盖。两份资料冲突时应记录冲突,继续核对版本、时间或适用范围。空结果表示这次查询没有找到资料;超时表示查询没有完成,都不能据此断定制度中没有相关规定。

什么时候继续,什么时候停止 ​

取得足够证据后即可生成回答,无需用满检索次数。仍有缺口时,要看是否还有具体可执行的取证动作:已找到补充办法编号,可以读原文;只是在不断改写同一句问题、返回同一批境内条款,就没有继续填补境外缺口。

可以把填补缺口、解决冲突、取得带有必要限定的完整原文记为有效进展。新增引用 ID 不一定有新信息,同一制度的转载和重叠块应先去重。连续没有有效进展时,系统可以结束检索,并在回答中保留未确认事项。

应用还需要在代码中限制总调用次数、截止时间和 token 预算,单次调用也应设置超时。模型可以建议停止,但不能自行放宽这些上限。每次执行前校验工具是否允许、参数是否有效,并使用当前用户的权限范围检索。

本例最终可以回答:境内提交期限从 60 改为 30 个自然日;支付期限从审批通过后起算,现有资料不足以确定提交后几天到账;境外期限尚未确认。回答保留已经取得的结论,每个结论仍需通过原文引用核验。

与其他检索控制方法的关系 ​

检索路由 选择数据源和检索器,可以作为 Agent 的一次决策;问题分解 列出需要分别回答的子问题,可以为循环提供初始计划。二者也都能用于预先编排的流程,无需每次运行完整的 Agent 循环。

Adaptive-RAG 在入口选择不检索、单步检索或多步检索;CRAG 关注检索结果质量不足时如何补救。系统可以借鉴这些判断来选择或调整执行路径,但具体实现仍需区分各方法的原始机制。

Self-RAG 有专门的训练和反思 token 机制,不能把普通模型检查证据的步骤直接当作 Self-RAG。调试 Agentic RAG 时,保留每轮动作、参数和证据 ID,就可以追查为何发生下一次调用;无需展示模型完整的内部思考。

研究参考 ​

持续学习,持续实践。