Agentic RAG
在 Modular RAG 阶段,我们通过解构“检索-重排-生成”各个模块,并引入查询重写与多路召回,解决了基础 RAG 的线性瓶颈。然而,即便是在模块化的架构下,系统依然是“被动”执行预设流程。面对法律咨询、医疗决策等极具专业深度的垂直领域时,传统的 Modular RAG 依然面临“语义断层”的挑战:当用户提问过于口语化而知识库条文过于专业时,即便是经过模块化重写,若初始检索分值低于阈值,系统往往会直接放弃或产生幻觉。
本篇文档将带你实施 Agentic RAG 智能体优化策略。通过在 Modular RAG 的基础上引入自主决策循环与自我纠错机制,我们在 《中华人民共和国民法典》 数据集的复杂逻辑测试中,实现了从“固定模块流”向“智能体自主推理”的跨越。
一、架构概览
- 数据层:
- 核心数据集:采用 《中华人民共和国民法典》。该数据具有严谨的逻辑层级和极高的专业术语密度,是验证智能体“语义重写”与“法理推理”能力的绝佳素材。
- 私有数据接入:系统具备高度的灵活性,支持上传行业规范、专家共识等 PDF,通过 SSH 通道(SCP)实现快速数据流转,即可实现从公共知识到行业私有知识的无缝切换。
- 解析策略:放弃会导致语义碎裂的 机械切片,采用 SentenceSplitter 结合法律条文层级进行结构化解析,确保单个 Chunk 的语义完整性,为智能体提供高质量的“认知素材”。
- 推理层:
- 核心引擎:采用 vLLM 托管 Qwen3-8B,承担复杂的法理分析与查询重写任务。
- 数据存储与检索层:
- 高效向量库:集成 Milvus Lite。采用嵌入式部署范式,通过 Python 原生加载本地 .db 文件。
- 嵌入模型:调用内置库加载 Qwen3-Embedding-8B,利用其 4096 维语义空间捕捉复杂的法理关联。
- 逻辑编排层:
- 自主决策工作流:超越 Modular RAG 的固定顺序,基于事件驱动架构实现“判定-反思-纠错-重搜”的闭环。
- 循环迭代范式:
- 自信度评估:引入 BGE-Reranker-v2-m3。不再盲目接受检索结果,而是根据精排分值(Threshold=0.35)判定“知识是否足以回答”。
- 自主纠错重写:若检索质量不达标,Agent 自动反思并将口语提问转化为标准法律术语(语义飞跃),重新触发检索。 思维链生成:通过输出 “think” 标签展示 Agent 的内部推导过程。
- 评估与溯源层:
- 实验验证:针对 Agentic 架构特有的“纠错重试”环节,对比原始检索与重写检索的分值跃升,量化智能体的“避坑”能力。
- 证据链透明化:在输出答案的同时,强制展示原始法条原文及 Rerank 置信度分值,并配合流式 “think” 标签展示推理链路,严控幻觉。
二、优化步骤
为了彻底解决垂直领域中“搜不到”和“不敢信”的痛点,我们在代码中实施了以下三大 Agentic 进阶策略:
1:基于 Reranker 的自信度决策门控
在 Agentic RAG 中,重排模块不再仅是排序工具,而是系统路径的选择器。
- 代码实现逻辑:
- 分值化质量监测:在检索模块初筛后,立即接入 BGE-Reranker-v2-m3。
- 决策门控:实测设定 0.35 为动态判定阈值。若 Top-1 片段得分低于该值,系统判定当前“知识储备不足”,自动拦截生成请求。
- 结果:该机制有效过滤了 99% 的无关噪声。
2:自主纠错与语义重写循环
这是 Agentic RAG 区别于 Modular RAG 的核心标志,实现了检索路径的动态修复。
- 典型案例:
- 用户输入:“租房子没到期房东想涨房租怎么办?”
- 初始检索:关键词“租房”在民法典中仅匹配到 0.07 分的无关条文(判定失败)。
- 智能体动作:触发纠错逻辑--推理出核心法理--自动执行二次检索。
- 二次检索:置信度提升至 0.99(匹配成功)。
- 代码实现逻辑:在 while 循环内封装重写逻辑,让 LLM 根据 Reranker 的反馈“重新思考”搜索词,直到分值达标或达到重试上限。
3:可观测性推理与证据溯源
在高标准的法律/技术咨询场景中,结果的“可信度”与准确度同等重要。
- 代码实现逻辑:
- CoT 思考路径展示:利用 Qwen3 的思考模型特性,实时展示智能体从“口语描述”到“法理判定”的逻辑跃迁。
- 证据溯源输出:在最终回复末尾,系统强制回溯输出检索到的 source_nodes:
- 原文对照:展示 PDF 解析出的原始《民法典》法条。
- 置信度量化:展示每一条证据的 重排得分。
- 结论:将传统的“黑盒生成”转变为“透明证据链”,显著提升了系统在垂直行业落地时的专业说服力。