跳到主要内容

RAG 与框架选型

读 RAG / Agent 动手篇之前,先扫一眼本篇:无框架 PoC、LangChain、GraphRAG、LangGraph 不在同一层,也不是三选一。按问题类型选型,再点进对应正文。

主题入口
RAG 概念与流水线RAG 与检索增强
Agent 概念与循环Agent 核心概念与架构
Agent 图编排[LangGraph 编排实践](/docs/ai/Agent/LangGraph 编排实践)
Coding Agent Harness[Pi Agent Harness 实践](/docs/ai/Agent/Pi Agent Harness 实践)
Token 与成本Token 计算与成本

分层直觉​

你要解决什么问题?
│
├─ 搞懂 RAG 流水线(切分 → 检索 → 生成)
│ → 无框架 PoC → LangChain RAG 实践
│
├─ 段落级 FAQ / 手册 / 私有知识问答(向量相似段)
│ → LangChain + 向量库(PoC:Chroma → 生产:[Milvus](/docs/ai/RAG/Milvus 向量库实践))
│
├─ 全局主题 / 跨文档归纳 / 实体关系(向量 top-k 不够)
│ → GraphRAG(微软图索引路线)
│
└─ 多步闭环:检索 + 调工具 + 观察 + 再规划
→ Agent(手写 loop 或 LangGraph 编排)

记忆口诀:LangChain 管 RAG 怎么拼;GraphRAG 管 另一种索引怎么建;LangGraph 管 Agent 怎么循环。

各方案是什么​

名称类型解决什么典型产物
无框架 PoC基线写法理解流水线,不依赖库自写 chunk / score / answer
LangChain(RAG)应用框架Loader、Splitter、VectorStore、Retriever向量 RAG 服务
GraphRAG索引 + 查询方案实体关系图、社区摘要、Global/Local 查parquet 图索引 + CLI 查询
Neo4j图数据库节点/关系持久化、Cypher 多跳查询在线图库(可与 RAG 组合)
LangGraph编排框架有状态图:节点、边、条件分支、循环ReAct / 多工具 Agent
LlamaIndex应用框架(并列)与 LangChain 类似的 RAG 拼装本篇不展开,选型逻辑同 LangChain

常见误解​

误解实际
LangChain = LangGraphLangGraph 是 Agent 编排;LangChain RAG 是 线性检索链,二者常组合而非替代
GraphRAG = LangChain 里的 GraphGraphRAG 是 Microsoft 独立流水线(抽图 + 社区),不依赖 LangChain
必须三选一常见组合:LangChain 向量 RAG + LangGraph Agent;复杂库再 叠加 GraphRAG
GraphRAG 是「更好的 embedding」是 不同的索引结构(图 + 社区报告),索引成本更高
GraphRAG = Neo4jGraphRAG 是 RAG 索引方案;Neo4j 是 图库,可存 GraphRAG 抽出的图或业务图谱

按场景选型​

场景优先说明
第一次学 RAGRAG 落地实践无框架,建立流水线直觉
接向量库快速上线[LangChain RAG 实践](/docs/ai/RAG/LangChain RAG 实践) + [Milvus 向量库实践](/docs/ai/RAG/Milvus 向量库实践)PoC 可用 Chroma;规模化 / 生产常见 Milvus
「整个知识库在讲什么?」[GraphRAG 概览与查询](/docs/ai/RAG/GraphRAG 概览与查询)Global Search 强项
实体关系、多跳推理GraphRAG 或 向量 RAG + 重排先向量基线,失败 case 再升级
ReAct / 多工具闭环Agent 最小可运行项目 → [LangGraph 编排实践](/docs/ai/Agent/LangGraph 编排实践)先手写 loop,再用状态图表达同一循环
终端可扩展 coding agent[Pi Agent Harness 实践](/docs/ai/Agent/Pi Agent Harness 实践)最小 harness + Skills/扩展;不是业务状态图框架
Agent 里要查私有库[LangGraph 编排实践](/docs/ai/Agent/LangGraph 编排实践) + RAG 检索节点RAG 链见 LangChain 篇;编排归 Agent
短 FAQ、频繁更新向量 RAG 即可不必上 GraphRAG
纯对话、无工具无检索Chatbot / Prompt不必 Agent 也不必 RAG

组合关系​

组合是否常见一句话
LangChain RAG + LangGraph Agent常见Agent 图里挂 retriever 工具或 RAG 节点
GraphRAG + LangGraph可以GraphRAG 当检索后端,LangGraph 管多步推理
GraphRAG 替代 LangChain RAG少见仅当全局/关系题占主导且接受索引成本
LangChain RAG + GraphRAG 双路进阶简单题走向量,分析题走 GraphRAG,需路由

实践路径:Naive 向量 RAG 基线 → 评测集看失败类型 → 按需加混合检索 / GraphRAG / Agent 编排。

深度与正文分工​

方案详细正文
无框架 RAGRAG 落地实践
LangChain RAG[LangChain RAG 实践](/docs/ai/RAG/LangChain RAG 实践)
Milvus 向量库[Milvus 向量库实践](/docs/ai/RAG/Milvus 向量库实践)
GraphRAG[GraphRAG 概览与查询](/docs/ai/RAG/GraphRAG 概览与查询)
Neo4j(含 GraphRAG 对比)Neo4j
Agent 概念 / 高频题Agent 核心概念与架构、Agent 系统高频题
手写 Agent 闭环Agent 最小可运行项目
工具与评测工具调用与评测实践
LangGraph 专篇[LangGraph 编排实践](/docs/ai/Agent/LangGraph 编排实践)
Pi Agent Harness[Pi Agent Harness 实践](/docs/ai/Agent/Pi Agent Harness 实践)
Agent 记忆分层[Agent 记忆分层实践](/docs/ai/Agent/Agent 记忆分层实践)

面试速记​

  1. LangChain / GraphRAG / LangGraph 各管什么? LangChain 拼 RAG 链;GraphRAG 建图索引答全局/关系题;LangGraph 编 Agent 状态图。
  2. 能互相替代吗? 不能简单替代;LangChain RAG + LangGraph Agent 常组合;GraphRAG 是 RAG 路线升级而非换 embedding。
  3. 选型第一步? 先 Naive 向量 RAG + 小评测集,按失败 case 加能力,别一上来堆框架。
  4. LlamaIndex 呢? 与 LangChain 同层的 RAG 框架,选型逻辑类似,不必两套都背。
  5. FDE 现场怎么说? 先澄清问答类型(段落 / 全局 / 要多步工具),再选 RAG 深度与是否要 Agent。