乐闻世界logo
第 16 / 20 篇

AI Agent 实战教程 16:构建 Agent 驱动的 RAG 问答系统

第 16 / 20 篇
返回教程主页

AI Agent 实战教程 16:构建 Agent 驱动的 RAG 问答系统

从文档切分、Embedding、检索工具、rerank、引用约束和 Agent 决策角度构建 Agentic RAG。

Agentic RAG 是把 RAG 从固定问答流程升级为 Agent 可决策的知识获取能力。传统 RAG 通常每次问题都检索一次;Agentic RAG 则让 Agent 判断是否需要检索、检索哪个知识源、是否需要二次检索,以及如何处理检索不足。

这种方式更适合真实任务,因为用户问题不总是简单问答。有些问题需要外部知识,有些只需要模型推理,有些需要多个知识源组合。

基础 RAG 回顾

基础 RAG 包括文档切分、Embedding、向量入库、查询向量化、相似度检索和答案生成。

它解决了模型知识过期、无法访问私有文档的问题。但固定 RAG 也有局限:检索策略单一,无法根据任务动态调整,也不擅长处理多知识源问题。

Agentic RAG 的核心

Agentic RAG 把检索封装成工具。Agent 可以在需要时调用,比如 search_docs、search_codebase、search_meeting_notes。

如果第一次检索结果不足,Agent 可以改写 query,扩大范围,或询问用户更多信息。它也可以决定不检索,直接回答通用概念。

文档切分

切分策略影响检索质量。过大的 chunk 包含太多噪音,过小的 chunk 丢失上下文。较好的做法是按标题、段落、语义边界切分,并保留 metadata。

metadata 可以包括文档标题、路径、更新时间、权限、业务模块。这些字段能帮助过滤和引用。

检索工具返回

检索工具不应只返回纯文本。更好的返回结构包括:内容片段、来源、标题、相似度、更新时间、权限信息。

这样模型可以判断资料可信度,也能在回答中引用来源。

Rerank 与多轮检索

向量检索返回的结果未必最适合生成答案。可以加入 rerank 模型重新排序,也可以结合关键词搜索和规则过滤。

Agent 还可以根据初次结果判断是否需要二次检索。例如发现资料都是旧版本,就按更新时间重新过滤。

权限与引用

企业 RAG 必须遵守权限。用户不能访问的文档,不应该进入检索结果。回答中也要避免泄露来源之外的信息。

对于关键回答,最好让模型给出引用,区分“资料明确说明”和“模型推断”。

小结

Agentic RAG 的价值在于把检索变成一种可决策能力。它不仅检索知识,还能判断何时检索、如何检索、结果是否足够,以及如何安全地使用结果。

实战案例:文档助手中的 Agentic RAG

假设用户问“这个接口为什么创建文章失败”。普通 RAG 可能只检索接口文档,然后生成答案。Agentic RAG 会更进一步:先检索文档,再查看错误日志,再查询相关代码,最后结合接口约定判断问题可能来自 draftId 缺失。

这个过程需要多个检索工具协作。文档检索回答“接口应该怎么用”,代码检索回答“实际实现是什么”,日志检索回答“线上发生了什么”。Agent 根据每一步结果决定是否继续检索。

因此,Agentic RAG 的重点不是一次检索,而是围绕任务动态获取证据。它更像研究助手,而不是固定问答机器人。

Query 改写与检索计划

Agentic RAG 中,用户原始问题不一定适合直接检索。Agent 可以先把问题改写成多个查询。例如“文章创建为什么失败”可以拆成“/admin/article draftId 参数”“Duplicate entry REL 唯一键”“article create 后端实现”。

多个查询可以覆盖不同证据来源。Agent 再把检索结果合并,判断哪些信息一致、哪些互相冲突。相比单次向量检索,这种检索计划更适合排障、研究和复杂问答。