workbench-example-agentic-rag
为 RAG 系统装上 AI Agent 大脑,实现路由判断、答案评估与多轮迭代纠错的智能问答系统
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为 RAG 系统装上 AI Agent 大脑,实现路由判断、答案评估与多轮迭代纠错的智能问答系统
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一家科技公司的技术顾问,经常需要回答客户关于最新 AI 技术的复杂问题。传统的 RAG 系统只能从本地文档库中检索答案,但客户的问题往往是多维度的——有时文档里有答案,有时需要结合最新的行业新闻,有时则需要综合判断文档内容是否过时。
NVIDIA 的 Agentic RAG 项目,正是为解决这类复杂问答场景而生的。
传统 RAG 的工作流程是"检索 → 生成",线性执行,一次搞定。但现实中的问题往往没那么简单:文档相关性参差不齐、答案可能存在幻觉(LLM 自信地编造事实)、上下文窗口有限导致长文档容易被截断。
Agentic RAG 在传统 RAG 基础上叠加了一层 AI Agent 智能调度层,由三个协同工作的 Agent 组成闭环:

图1:Agentic RAG Web 应用界面,支持文档管理与实时对话
</center>项目基于 LangGraph 构建——这是 LangChain 官方推出的有向无环图(DAG)工作流框架。相比普通 Python 脚本,LangGraph 的优势在于将 Agent 状态(State)显式建模,节点(Node)之间的流转逻辑清晰可追溯,非常适合复杂的多 Agent 协作场景。
核心技术栈如下:
| 组件 | 技术选型 | 作用 |
|---|---|---|
| Agent 编排 | LangGraph 0.2.67 | 构建 Route/Evaluate/Iterate 循环工作流 |
| LLM 接口 | langchain-nvidia-ai-endpoints 0.3.7 | 连接 NVIDIA NIM 云端推理或本地 Ollama |
| 向量检索 | langchain-chroma + langchain-community | 文档分块与向量相似度检索 |
| Web 搜索 | tavily-python 0.3.5 | Route Agent 的外部知识补充 |
| 文档解析 | unstructured[pdf] + tesseract + nltk | PDF/HTML/Markdown 等多格式文档解析 |
| Web UI | Gradio 4.15.0 | 文档管理与对话交互界面 |
| 推理服务 | FastAPI + NVIDIA NIM / Ollama | LLM 推理后端 |

图2:NVIDIA AI Workbench 支持一键克隆并运行环境
</center>项目设计了三种部署路径,充分考虑了不同用户的硬件条件和预算:
Easy Mode(5分钟内上手):项目深度集成 NVIDIA AI Workbench,克隆仓库后配置好 API Key 即可使用。LLM 推理走 NVIDIA 官方免费端点(build.nvidia.com),无需本地 GPU。需要申请 NVIDIA API Key(ngc.nvidia.com)和 Tavily API Key(tavily.com 提供免费额度)。
Intermediate Mode(自行修改):通过 variables.env 文件修改 prompt 模板和行为参数,或者直接编辑 code/chatui/prompts/ 目录下的提示词文件。Gradio UI 代码在 code/chatui/pages/ 下,可以定制界面风格和交互逻辑。
Advanced Mode(自托管 GPU 推理):项目提供 compose.yaml,启动本地 NIM(NVIDIA Inference Microservice)容器,将 NVIDIA_API_KEY 替换为本地 GPU 推理服务。需要一块 NVIDIA GPU(8GB+ 显存)和 Docker NVIDIA Container Toolkit 支持。
项目核心是 code/langgraph_rag_agent_llama3_nvidia_nim.ipynb——一个完整的 Jupyter Notebook,展示了从环境配置、文档处理、向量索引、Agent 工作流构建到 UI 集成的全流程。chatui 目录是 Gradio 应用的核心代码:
pages/converse.py:对话页面主逻辑,处理文件上传、向量检索、Agent 执行循环prompts/prompts_nemotron.py:各 Agent 的 prompt 模板定义configuration_wizard.py:引导式 API Key 配置向导优势方面,LangGraph 带来的 DAG 状态机设计让 Agent 逻辑高度可控,每个节点输入输出明确,便于调试和扩展。NVIDIA 官方背书意味着生态兼容性有保障,NIM 接口标准化也为切换不同 LLM 后端提供了便利。
局限方面,整个系统强依赖 NVIDIA 生态(Workbench、NIM),对非 NVIDIA 硬件用户不够友好。Agent 循环的迭代次数和终止条件需要手动调优,在低质量文档场景下可能导致过多无效迭代。LangGraph 版本锁定在 0.2.67,依赖较旧,存在版本兼容风险。
Agentic RAG 代表着 RAG 系统从"检索-生成"线性管道向"Agent 化"演进的重要方向。Route/Evaluate/Iterate 三层循环的思路,与斯坦福大学、微软等机构提出的 Self-RAG、CRAG(Corrective RAG)等技术路线不谋而合。随着 LLM 推理成本持续下降,这种"多轮校验-动态检索"的范式有望成为企业级 RAG 应用的主流架构。
<center>
图3:RAG 系统从线性管道到 Agent 化工作流的演进
</center>