本文属于 RAG 工程框架中的「4 生成与智能体编排」环节,聚焦「Agentic RAG」方法。可先阅读 RAG-00.方法概述 再进入本篇。
原理
Agent 将任务拆解为多个步骤,按需调用检索与工具并自我校验。
1 | flowchart TD |
优缺。
- 优点:复杂场景鲁棒,能做多步推理与外部动作。
- 缺点:链路不确定性更高,成本和时延上升。
性能/资源
- 多轮推理 + 多次工具调用,在线开销显著。
- 需严格设置步数、预算和超时。
应用场景
- 研究助手、运维诊断、复杂业务流程自动化。
统一合成数据示例
输入数据片段
1 | { |
中间结果(Agent 步骤)
1 | [ |
最终生成示例(含引用)
1 | { |
原始发表与工程实现
- 代表性原始发表:ReAct (2023), Toolformer (2023)。
- 核心解决问题:解决多步推理与工具调用。
- 成熟实现工具:LangGraph, AutoGen, CrewAI。
详细原理拆解
- 计划-执行-观察-反思循环,关键是步数、预算、权限三重约束。
- 典型实现可拆为:输入预处理 -> 方法核心计算 -> 候选/证据构建 -> 生成与引用。
- 工程调优重点:质量(准确率/引用率)与成本(时延/token)的联合优化。
1 | flowchart LR |
工程落地扩展示例
伪代码
1 | def agentic_loop(task, tools, planner, llm, max_steps: int, token_budget: int): |
参数示例
1 | max_steps: 6 |
常见失败案例
- 失败模式 1:工具返回 结构化噪声(检索到旧版制度),后续步骤全错。
- 失败模式 2:计划震荡(检索→否定→再检索),步数耗尽仍无结论。
- 失败模式 3:工具权限过大,误操作写接口(非只读 RAG)。
Demo 数据带入计算示例
1 | 步1 retrieve_policy → 得「上限2000」;步2 calc(2300>2000)→ True;步3 lookup_exception → 无特批。 |