LangGraph 是 LangChain 的扩展框架,它依托 LangChain 的底层基础构建,提供更多拓展能力。
大家心里可能会有疑问:直接用 LangChain 不好吗?为什么要把事情搞得更复杂? 这个问题问得很好。事实上,"复杂" 一词恰好精准点明了理解 LangChain 与 LangGraph 本质区别的关键。
如果你只是开发一款依据企业规章制度回答客户问题的简易聊天机器人,LangChain 基本就能胜任这类工作,因为它天生适配简单、流程固定的任务。
但部分业务需求远远不止实现一个基础企业聊天机器人这么简单。 举个例子:公司要求你搭建深度调研助手,用来梳理从多方渠道收集的海量资料。这种场景远比普通聊天机器人复杂,此时选用 LangGraph 的优势就会逐步凸显。
换个角度来看,什么时候该从 LangChain 切换到 LangGraph,核心分水岭就是一个组件:状态图(StateGraph)。
简单来说,借助状态图,你可以定义节点(nodes) 与边(edges)。 节点是独立的计算单元,你可以把它理解成可调用的函数; 边代表节点之间的流转关系,流转既可以是直接通行,也可以设置条件分支。
LangGraph 属于 LangChain 生态内的扩展框架,基于 LangChain 底层组件搭建,专门补齐原生 LangChain 在复杂多轮智能体流程上的短板。
很多人会疑惑:原生 LangChain 链式调用 Chain 已经能用,为什么还要引入 LangGraph,增加学习成本? 答案的核心就藏在任务复杂度上。
1. 原生 LangChain 的局限
LangChain 传统范式:Chain、SequentialChain、RunnableSequence 执行特征:
- 流程偏向线性、单向、预先编排;
- 虽然支持简单分支,但很难实现循环、回退、多轮自我反思、动态跳转; 适合场景: ✅ 固定流程任务:企业知识库问答、单次摘要、简单提示词流水线、单轮 RAG。
一旦业务出现这些需求,原生 Chain 就会变得极其难维护:
- Agent 需要循环调用工具,多次检索、多次思考;
- 需要根据结果动态判断:要不要重试、要不要补充资料、要不要终止;
- 多节点并行执行、分支汇聚、人工介入暂停;
- 全局上下文持续读写、多轮迭代更新状态。
硬用 LangChain 实现上述逻辑,会写出大量嵌套判断、临时变量,代码臃肿,难以可视化、调试。
2. LangGraph 的核心:StateGraph(状态图)
LangGraph 的一切能力都建立在带持久化全局状态的有向图模型:
- State(状态) 全局共享数据容器,所有节点读写同一份状态(对话历史、检索文档、中间结论、标记位等)。每次节点运行完成,更新状态。
- Node 节点 独立执行单元,可以是 LLM 调用、工具调用、RAG 检索、数据格式化、校验函数。 等同于图中的处理工序。
- Edge 边 定义节点流向,分为两类:
- 普通边:A 执行完成,固定流向 B;
- 条件边 Conditional Edge:根据当前 State 的内容动态选择下一个节点(分支逻辑)。
除此之外,LangGraph 原生支持两大关键特性,是普通 Chain 很难低成本实现的:
- 循环:节点执行后,条件判断满足可以回到上游节点(思考→工具调用→再次思考,智能体自我迭代)
- 中断 / 断点:可以暂停流程,等待人工输入后继续执行(人机协同 Agent)
3. 清晰的选型分水岭
选用 LangChain(Runnable / Chain)
任务特征:流程线性、无循环、分支极少、执行一次就结束 示例:
- 固定流程企业客服问答机器人
- 文档一次性总结、简单翻译流水线
- 单轮 RAG 问答
选用 LangGraph
任务特征:存在循环迭代、动态分支、多步骤反思、多轮工具调用、需要持久中间状态 示例:
- 深度调研智能助手(多次检索、交叉验证资料、反复总结)
- 规划类 Agent:代码编写调试、学术文献调研
- 自主多工具智能体、支持人工干预的复杂工作流
4. 一句话总结两者本质差异
- LangChain Runnable/Chain:静态流水线,适合预先知道完整执行路径的任务;
- LangGraph:可动态流转的状态机,适合路径不确定、需要不断自我迭代、动态决策的复杂智能体。
LangChain 与 LangGraph 的适用边界
原文翻译
LangChain(基础层业务场景)
- Q&A with Context:带上下文问答(经典 RAG 知识库问答)
- Document Summarization:文档摘要
- Semantic Search Engine:语义搜索引擎
LangGraph(复杂高阶场景)
- Multi-agent Collabration:多智能体协作
- Complex Web Scraping:复杂网页数据爬取
- Multi Research Assistant:多源调研助手
- Interactive Decision Support:交互式决策支持
底部标注:BUSINESS → 全部场景面向商业化落地
核心技术解读 📌
这张图清晰划分了 LangChain 与 LangGraph 的适用边界:
1. LangChain
定位:线性、简单流程的 LLM 应用框架 适合任务特点:流程单向、分支少、无需循环迭代、不需要持续状态记忆。 典型代表就是标准 RAG:文档检索 → 拼装上下文 → 大模型回答。
2. LangGraph
定位:基于图结构、支持循环 / 分支 / 状态持久化的扩展框架(基于 LangChain 生态) 适合任务特点:
- 需要多轮自我反思、循环重试
- 多个 Agent 分工协作、互相调用
- 复杂分支判断、人机交互介入
LangGraph 并不是用来取代 LangChain,而是LangChain 在复杂智能体场景下的增强扩展。
场景选择参考
✅ 只用 LangChain 即可:企业知识库问答、批量文档总结、简单语义检索 ✅ 需要引入 LangGraph:智能调研机器人、多 Agent 分工系统、自主网页爬虫、辅助决策系统(需要反复收集信息、校验、修正结论)
补充说明 💡
- 工程实践中:简单业务优先 LangChain,降低复杂度;业务演化到需要循环、多 Agent 时,再迁移至 LangGraph。
- 两者 API 可以互通,LangChain 的各类组件(Embedding、Loader、Retriever)都能直接在 LangGraph 中复用。
随着企业对智能体软件的落地应用持续增长,LangChain 这类工具成为工作流自动化顺理成章的演进选择。搞清楚何时、如何使用 LangGraph,能够帮助你解决各类富有挑战性的业务问题,同时避免编写大量冗余代码。
LangGraph 的核心价值,是让开发者专注于系统架构设计与问题本身,而不必耗费精力去实现流程编排逻辑、纠结各个组件的运行调度细节。
LangChain Linear Chains vs LangGraph 核心对比
一、LangChain:Linear Chains 线性链路
适用场景:单向顺序执行、无分支、无循环,数据流 A → B → C 依次运行
能力清单
- Prompt templates 提示词模板
- LLM calls 大模型调用
- Simple tools 简单工具调用
- Basic RAG 基础检索增强生成
核心特点
- 执行路径固定,只能串行单向流转,不能回退、不能分支判断
- 无持久化状态,上下文在链条流转完成后销毁
- 开发简单,适合标准化、一次性任务
局限
无法实现:循环迭代、条件分支、人工介入、并行任务、多轮自我修正,复杂智能 Agent 会显得笨拙。
二、LangGraph:Intelligent Graphs 智能图结构
LangGraph 是 LangChain 官方推出的状态驱动图框架,用来弥补线性链短板,构建生产级智能体
能力清单
- Stateful graphs with memory:带持久状态与记忆的图(全局状态贯穿整个流程)
- Conditional routing & decisions:条件路由、分支判断(根据 LLM 输出选择下一步路径)
- Loops & iterative refinement:循环与迭代优化(自我校验、反复修正答案)
- Human-in-the-loop workflows:人在回路(人工审批、人工输入干预流程)
- Parallel execution:并行节点执行
- Production-ready agents:可直接上生产环境的智能体
核心特点
- 流程是有向图,而非直线;节点之间可自由跳转、循环
- 统一
State对象保存全局信息,每一步都能读写状态 - 原生支持中断、重试、分支,是当前构建复杂 Agent 的标准方案
最简选型指南
表格
| 需求场景 | 推荐方案 |
|---|---|
| 固定流程:检索 → 组装 Prompt → LLM 回答 | LangChain Linear Chains |
| 需要自主判断是否调用工具、多次重试、循环自查 | LangGraph |
| 需要人工介入审核 Agent 输出 | LangGraph |
| 多个任务节点并行执行 | LangGraph |
| 复杂多轮对话智能体、工具调用 Agent | LangGraph |
一句话总结
简单流水线用 LangChain 链式调用;需要决策、循环、记忆、人机交互的复杂智能体,必须用 LangGraph。