# 从原生RAG到智能体RAG：LangChain与LangGraph的渐进式学习路径

> 一个结构化的RAG学习项目，从基础LangChain检索流程到具备质量评估、路由决策和网络回退能力的LangGraph智能体工作流，帮助开发者系统掌握检索增强生成的演进路径。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-06T07:15:41.000Z
- 最近活动: 2026-04-06T07:20:56.138Z
- 热度: 150.9
- 关键词: RAG, LangChain, LangGraph, 智能体, 检索增强生成, 向量数据库, Ollama, 机器学习
- 页面链接: https://www.zingnex.cn/forum/thread/ragrag-langchainlanggraph
- Canonical: https://www.zingnex.cn/forum/thread/ragrag-langchainlanggraph
- Markdown 来源: ingested_event

---

# 从原生RAG到智能体RAG：LangChain与LangGraph的渐进式学习路径\n\n在大型语言模型（LLM）应用开发中，检索增强生成（RAG）已成为解决知识时效性和幻觉问题的核心技术。然而，许多开发者在入门时面临一个困境：简单的RAG示例过于理想化，而复杂的智能体系统又难以理解其设计原理。今天介绍的开源项目 **native-to-agentic-rag** 恰好填补了这一空白，它提供了一条从基础到进阶的清晰学习路径。\n\n## 项目背景与设计初衷\n\n这个项目的核心定位是"学习路径"而非"最终演示"。作者TheAlanWang意识到，直接跳入复杂的智能体架构会让学习者感到抽象和困惑，因为智能体的设计建立在理解基础RAG循环的前提之上。因此，项目被精心拆分为两个阶段：第一阶段教授检索的基本机制，第二阶段展示如何通过图编排添加智能决策层。\n\n项目围绕一个具体的场景构建：论文搜索与阅读，语料库包含《Attention Is All You Need》和BERT等经典NLP论文。这种聚焦让学习者能够在一个真实的知识问答场景中理解RAG的演进。\n\n## 第一阶段：原生RAG——理解基础机制\n\n第一阶段实现了一个最简单的本地RAG基线，使用LangChain构建线性流程。这个阶段的核心目标是让学习者理解文档如何变成嵌入、如何存储到向量数据库、以及检索结果如何组装成提示词。\n\n具体来说，流程包括：文档加载（将Markdown文件转换为Document对象）、文本分块（chunking）、嵌入生成（使用Ollama的embeddinggemma模型）、Chroma向量存储、以及基于检索结果的问答生成（使用qwen3:4b模型）。\n\n这个阶段"故意"省略了许多高级功能：没有文档质量评估、没有网络搜索回退、没有幻觉检测、也没有图逻辑。这种刻意的简化让初学者能够专注于理解RAG的核心循环，而不是被复杂性淹没。正如项目文档所说："在继续之前，你应该理解文档如何变成分块，分块如何变成嵌入，以及检索如何变成答案。"\n\n## 第二阶段：智能体RAG——添加决策与恢复能力\n\n第二阶段使用LangGraph构建了一个有状态的智能体工作流。与第一阶段的线性流程不同，这个系统能够根据检索质量和答案质量决定下一步操作。这种"智能"体现在多个层面：\n\n首先是**文档相关性评分**。系统不仅检索文档，还会评估每个文档与问题的相关程度，过滤掉低价值的上下文。其次是**条件路由**，当本地检索结果质量不足时，系统会自动触发Tavily网络搜索作为回退机制。第三是**答案质量检查**，包括幻觉检测和答案充分性评估。\n\nLangGraph的共享状态机制是这个阶段的关键概念。工作流中的每个节点都可以读取和更新共享状态，这使得多步骤流程能够协调工作。条件边（conditional edges）允许系统根据当前状态动态选择下一步路径，而不是遵循固定的流程。\n\n## 技术栈与架构对比\n\n两个阶段共享相同的基础技术栈：Python实现、Ollama本地模型服务、LangChain文档处理、Chroma向量存储。第二阶段在此基础上添加了LangGraph状态编排、Firecrawl论文抓取、以及Tavily网络搜索。\n\n从架构角度看，两个阶段的差异可以用下表概括：\n\n| 维度 | 原生RAG | 智能体RAG |\n|------|---------|-----------|\n| 检索流程 | 检索分块→构建提示→生成答案 | 检索→评分上下文→基于质量路由→生成答案 |\n| 控制流 | 线性管道 | 带条件分支的图 |\n| 回退行为 | 无 | 本地上下文弱时触发Tavily网络搜索 |\n| 失败处理 | 限于首次检索结果 | 重试、质量检查、恢复路径 |\n| 心智模型 | 文档→分块→嵌入→检索→答案 | 状态+节点+边+条件路由 |\n\n这种对比清晰地展示了智能体RAG的价值：当需要系统判断证据质量并自适应调整下一步时，简单的检索往往是不够的。\n\n## 学习建议与实践路径\n\n项目文档为不同背景的学习者提供了清晰的建议。如果你是RAG新手，应该从第一阶段开始，先建立基线理解。如果你已经了解检索基础，可以快速浏览第一阶段获取仓库上下文，然后将大部分时间投入到第二阶段。\n\n推荐的阅读顺序是：先阅读第一阶段README了解整体目标，然后阅读index_part.py和query_part.py理解实现细节。在进入第二阶段之前，确保你真正理解了文档→分块→嵌入→检索→答案的流程。第二阶段则建议从README开始，然后深入graph_part.py、state.py和nodes.py，理解状态、节点逻辑和路由决策如何扩展第一阶段基线。\n\n## 总结与启示\n\nnative-to-agentic-rag项目的价值不仅在于提供了可运行的代码，更在于它展示了一种渐进式的学习设计。通过将复杂系统分解为可理解的阶段，它帮助学习者建立扎实的基础，然后再引入抽象概念。\n\n对于正在构建RAG系统的开发者，这个项目也提供了重要的架构启示：智能体不是对基础RAG的替代，而是对其的增强。两个阶段共享相同的本地模型基础、相同的索引概念、相同的检索目标，但第二阶段添加了状态记忆、判断层和路由层，使系统能够在首次尝试不够好时进行恢复。这种"分层增强"的设计思路值得在实际项目中借鉴。
