Agentic RAG 傻瓜式构建指南
用 LangGraph 快速搭建模块化、带记忆和人工确认的检索增强生成智能体。
证据显示:README 描述了查询澄清阶段的人工介入(human-in-the-loop),但未提供用户确认机制的具体实现;数据流透明度有限,仅提及 Langfuse 可观测性;敏感数据处理未明确说明;依赖固定版本但未提供安全审计;外部效果包括本地文件写入和向量数据库操作,但未说明权限范围;无回滚机制;来源归属仅通过元数据中的 source 字段,未提供完整溯源。扣分原因:缺乏最小权限原则的明确说明,用户确认仅作为功能描述,数据流透明度不足,敏感数据处理未涉及,依赖安全未审计,外部效果未明确权限,无回滚,来源归属不完整。
证据显示:代码内部逻辑一致,如父/子块大小校验;依赖版本固定,但未验证可用性;错误处理提供了部分返回信息(如 RETRIEVAL_ERROR)。扣分原因:依赖可用性未验证,失败消息覆盖不全面。
证据显示:README 明确面向学习者和开发者,提供两种使用路径;能力边界通过功能表说明;触发精度通过查询重写和澄清机制体现;环境适配支持多种 LLM 提供商和本地/云端部署。扣分原因:能力边界描述不够详细,环境适配未覆盖所有可能场景。
证据显示:README 结构清晰,包含安装和使用说明;命名稳定,如 CHILD_COLLECTION;提供示例和故障排除;MIT 许可证明确;但缺少版本历史和变更日志,维护责任未明确。扣分原因:无版本控制信息,维护责任未说明。
证据显示:输出可用性通过示例和演示体现;边际价值在于提供模块化架构和多种功能;成本效益通过本地 Ollama 选项降低门槛。扣分原因:未提供性能基准或成本分析。
证据显示:README 中的功能声明部分有代码支持,但未提供独立验证;跨来源佐证有限,仅依赖单一仓库;事实与推断未明确区分。扣分原因:缺乏独立验证和事实/推断分离。
- 依赖版本固定但未提供安全审计,建议使用前进行漏洞扫描。
- 敏感数据处理未明确,若处理个人数据需额外评估。
- 无回滚机制,索引操作可能覆盖现有数据,建议备份。
- 外部效果(文件写入、向量库操作)权限未明确,需在部署环境中限制。
这个 Agent 能做什么,适合哪些场景?
该项目提供了一个基于 LangGraph 的模块化 Agentic RAG 系统,包含对话记忆、查询改写与澄清、多智能体并行检索、上下文压缩和自动纠错等完整流程。它采用父子分块的分层索引,结合稠密与稀疏向量的混合检索(Qdrant),并默认使用 Ollama 本地模型,同时兼容 OpenAI、Anthropic、Google 等云服务商。项目提供交互式 Jupyter 笔记本用于学习,以及可扩展的 Python 项目结构和 Gradio 聊天界面。此外,还包含基于 RAGAS 的评估工具和 Langfuse 可观测性集成。
该仓库演示了如何构建一个 Agentic RAG 系统。它接收用户提问,通过对话摘要和查询改写理解上下文,并在必要时请求澄清。系统将复杂问题分解为多个子问题,并行运行多个智能体子图,每个子图调用 search_child_chunks 和 retrieve_parent_chunks 工具进行分层检索,并根据需要对结果进行压缩和自纠错。最后,聚合所有子答案生成最终回答,并通过 Gradio 界面展示。整个过程由 LangGraph 状态图协调,支持使用 Qdrant 向量数据库和多种 LLM 提供商。
- 开发者希望快速学习并实践 Agentic RAG 架构,借助 Jupyter 笔记本和示例文档逐步理解。
- 技术团队需要构建一个可定制、模块化的 RAG 系统,以便嵌入到自己的文档问答应用中。
- 需要处理大量 PDF 文档,并希望通过分层索引和混合检索提升答案的准确性和上下文相关性。
- 希望本地运行 LLM(如 Ollama)控制成本,同时保留切换云服务商(OpenAI、Anthropic 等)的灵活性。
- 研发人员想要评估检索和回答质量,使用内置的 RAGAS 指标对系统进行量化评测。
这个 Agent 有哪些优点和局限?
- 提供两种使用路径:交互式笔记本学习概念,模块化项目便于生产集成。
- 架构高度模块化,LLM 提供商、嵌入模型、分块策略、工作流均可独立替换。
- 内置多智能体并行处理、查询澄清、上下文压缩、自纠错等高级 RAG 特性。
- 支持混合检索(稠密+稀疏),并默认使用 Ollama 本地模型,降低成本和隐私风险。
- 需要 Python 3.11+ 环境,并安装 Qdrant、LangGraph 等依赖,对轻量级使用来说较重。
- 默认使用本地 Ollama 模型,效果依赖硬件性能,文档建议使用 8B+ 参数模型以保证工具调用可靠。
- 文档中未提供 Docker 部署的完整细节,需参阅项目内 README。
- 评估和可观测性集成(RAGAS、Langfuse)需要额外配置,可能增加使用复杂度。
如何安装或部署这个 Agent?
- 克隆仓库:git clone https://github.com/GiovanniPasq/agentic-rag-for-dummies
- 安装依赖:pip install -r requirements.txt 或 uv pip install -r requirements.txt
- 可选:安装 Ollama 并拉取模型:ollama pull granite4.1:8b
- 将 PDF 文件放入 docs/ 目录(可下载示例 PDF)。
如何使用这个 Agent?
选项1(快速测试):在 Google Colab 中打开 notebooks/agentic_rag.ipynb,运行所有单元格,并上传 PDF 到 docs/。
选项2(完整项目):运行 python project/app.py 启动 Gradio 界面,然后在浏览器中打开本地 URL(如 http://127.0.0.1:7860)进行对话。
需注意:Ollama 是默认 LLM 提供商,若使用云端模型,请在代码中替换为 OpenAI/Anthropic/Google 的示例。