开发与工程 langgraphragretrieval-augmented-generationqdrantgradioollamahybrid-searchdocument-indexing

Agentic RAG 傻瓜式构建指南

用 LangGraph 快速搭建模块化、带记忆和人工确认的检索增强生成智能体。

FollowAgents 评估 · FARS-2.1
不推荐
51/ 100 五分制 2.6 / 5
1 2 3 4 5 6
1信任安全10 / 29 · 1.7/5

证据显示:README 描述了查询澄清阶段的人工介入(human-in-the-loop),但未提供用户确认机制的具体实现;数据流透明度有限,仅提及 Langfuse 可观测性;敏感数据处理未明确说明;依赖固定版本但未提供安全审计;外部效果包括本地文件写入和向量数据库操作,但未说明权限范围;无回滚机制;来源归属仅通过元数据中的 source 字段,未提供完整溯源。扣分原因:缺乏最小权限原则的明确说明,用户确认仅作为功能描述,数据流透明度不足,敏感数据处理未涉及,依赖安全未审计,外部效果未明确权限,无回滚,来源归属不完整。

2可靠稳定8 / 14 · 2.9/5

证据显示:代码内部逻辑一致,如父/子块大小校验;依赖版本固定,但未验证可用性;错误处理提供了部分返回信息(如 RETRIEVAL_ERROR)。扣分原因:依赖可用性未验证,失败消息覆盖不全面。

3适用触发12 / 18 · 3.3/5

证据显示:README 明确面向学习者和开发者,提供两种使用路径;能力边界通过功能表说明;触发精度通过查询重写和澄清机制体现;环境适配支持多种 LLM 提供商和本地/云端部署。扣分原因:能力边界描述不够详细,环境适配未覆盖所有可能场景。

4规范维护9 / 18 · 2.5/5

证据显示:README 结构清晰,包含安装和使用说明;命名稳定,如 CHILD_COLLECTION;提供示例和故障排除;MIT 许可证明确;但缺少版本历史和变更日志,维护责任未明确。扣分原因:无版本控制信息,维护责任未说明。

5有效结果9 / 13 · 3.5/5

证据显示:输出可用性通过示例和演示体现;边际价值在于提供模块化架构和多种功能;成本效益通过本地 Ollama 选项降低门槛。扣分原因:未提供性能基准或成本分析。

6证据核验3 / 8 · 1.9/5

证据显示:README 中的功能声明部分有代码支持,但未提供独立验证;跨来源佐证有限,仅依赖单一仓库;事实与推断未明确区分。扣分原因:缺乏独立验证和事实/推断分离。

证据充分度: 评估于 2026年8月11日 审查版本 f4db3ddef0e2
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:回滚或恢复路径
使用前请注意
  • 依赖版本固定但未提供安全审计,建议使用前进行漏洞扫描。
  • 敏感数据处理未明确,若处理个人数据需额外评估。
  • 无回滚机制,索引操作可能覆盖现有数据,建议备份。
  • 外部效果(文件写入、向量库操作)权限未明确,需在部署环境中限制。
评估证据 [1][2][3]
查看完整评分方法 →

这个 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 提供商。

  1. 开发者希望快速学习并实践 Agentic RAG 架构,借助 Jupyter 笔记本和示例文档逐步理解。
  2. 技术团队需要构建一个可定制、模块化的 RAG 系统,以便嵌入到自己的文档问答应用中。
  3. 需要处理大量 PDF 文档,并希望通过分层索引和混合检索提升答案的准确性和上下文相关性。
  4. 希望本地运行 LLM(如 Ollama)控制成本,同时保留切换云服务商(OpenAI、Anthropic 等)的灵活性。
  5. 研发人员想要评估检索和回答质量,使用内置的 RAGAS 指标对系统进行量化评测。

这个 Agent 有哪些优点和局限?

优点
  • 提供两种使用路径:交互式笔记本学习概念,模块化项目便于生产集成。
  • 架构高度模块化,LLM 提供商、嵌入模型、分块策略、工作流均可独立替换。
  • 内置多智能体并行处理、查询澄清、上下文压缩、自纠错等高级 RAG 特性。
  • 支持混合检索(稠密+稀疏),并默认使用 Ollama 本地模型,降低成本和隐私风险。
局限
  • 需要 Python 3.11+ 环境,并安装 Qdrant、LangGraph 等依赖,对轻量级使用来说较重。
  • 默认使用本地 Ollama 模型,效果依赖硬件性能,文档建议使用 8B+ 参数模型以保证工具调用可靠。
  • 文档中未提供 Docker 部署的完整细节,需参阅项目内 README。
  • 评估和可观测性集成(RAGAS、Langfuse)需要额外配置,可能增加使用复杂度。

如何安装或部署这个 Agent?

  1. 克隆仓库:git clone https://github.com/GiovanniPasq/agentic-rag-for-dummies
  2. 安装依赖:pip install -r requirements.txt 或 uv pip install -r requirements.txt
  3. 可选:安装 Ollama 并拉取模型:ollama pull granite4.1:8b
  4. 将 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 的示例。

常见问题

是否需要 GPU 才能运行?
不是必须的,但本地 Ollama 模型推理在 CPU 上可能较慢,尤其对于较大模型。建议使用支持 GPU 的环境或选择云端模型。
更换 LLM 提供商需要修改哪些文件?
主要修改配置文件和初始化 LLM 的代码,仓库提供了 OpenAI、Anthropic、Google 的示例,只需替换 llm 初始化部分。
如何调整检索质量?
可以通过修改检索的 top-k 值、相似度阈值、父子分块的大小等参数来调整精度和召回率,具体见 README 中的故障排除表格。
支持哪些文档格式?
目前支持 PDF,通过 pymupdf4llm 转换为 Markdown 后进行处理。其他格式可能需要额外转换工具。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents