LangChain 与 LangGraph 深度对比:设计哲学、核心差异与选型指南
2026/6/9 19:18:26 网站建设 项目流程

LangChain 与 LangGraph 深度对比:设计哲学、核心差异与选型指南

前言

在大语言模型应用开发领域,LangChain 和 LangGraph 是绕不开的两个名字。但开发者常常困惑:它们到底有什么区别?什么时候该用 LangChain,什么时候该用 LangGraph?更关键的是,它们是竞争对手还是互补工具?

本文将彻底厘清这两个框架的关系:LangChain 和 LangGraph 由同一家公司(LangChain Inc.)开发,并非竞争关系,而是同一生态中高低不同的抽象层级,前者是“乐高积木”,后者是“自动化控制系统”。我们将从设计哲学、核心组件、执行模型、状态管理到实战选型,展开系统对比。

一、核心定位与设计哲学

1.1 LangChain:高层抽象框架,快速构建 LLM 应用的“瑞士军刀”

LangChain 的核心价值在于将大语言模型交互流程标准化,通过预置的组件库(Chains/Agents/Tools)实现快速组装。其设计理念类似“乐高积木”——开发者通过组合现成的模块,快速搭建问答系统、聊天机器人、RAG 应用等。

LangChain 1.0 定位为全栈式开发框架,核心价值在于提供标准化的模型接口、工具集成和智能体抽象。通过 LCEL(LangChain Expression Language),开发者可以用声明式方式构建链式工作流,实现快速原型开发。

# LangChain 链式调用示例fromlangchain.chainsimportLLMChainfromlangchain.promptsimportPromptTemplate template="""用户问题:{question} 回答要求:简洁专业,不超过50字"""prompt=PromptTemplate(template=template,input_variables=["question"])chain=LLMChain(llm=model,prompt=prompt)result=chain.run("如何优化数据库查询性能?")

1.2 LangGraph:低层编排框架,构建复杂智能体的“图式引擎”

LangGraph 作为 LangChain 生态的底层扩展,专门解决复杂 AI 应用中多智能体协作、长期运行状态管理、循环流程控制等核心问题。其核心突破在于引入状态图(State Graph)概念,将工作流建模为可动态演进的图形结构,每个节点可读写共享状态,边线定义流转规则,天然支持“计划-执行-反思-重规划”的 Agent 循环。

LangGraph 1.0 则聚焦于复杂工作流编排,其基于有向图的执行模型突破了传统线性链的局限,通过原生支持状态持久化、人机交互干预和动态分支决策,特别适合需要长期运行的多智能体系统。

LangGraph 图式架构

分支A

分支B

开始

条件判断

节点A

节点B

需要优化?

输出

LangChain 链式架构

输入

Prompt

LLM

输出

二、LangGraph 的三要素:State、Node、Edge

与 LangChain 以 Chain 为核心的抽象不同,LangGraph 围绕三个核心概念构建:State(状态)Node(节点)Edge(边)

2.1 State(状态)

State 是在图的各个节点之间传递的“公共黑板”,它是一个全局可访问的数据结构(通常用 TypedDict 定义),记录了当前的任务上下文、中间结果、决策历史等信息。LangGraph 的状态管理是集中式的,与 LangChain 的分散式 Memory 组件有本质区别。

2.2 Node(节点)

Node 是图中的基本执行单元,每个节点是一个函数,接收当前状态,处理后返回修改后的状态。节点应保持单一职责,例如“意图分类节点”“LLM 调用节点”“工具执行节点”等。

2.3 Edge(边)

Edge 定义了节点之间的流转路径,支持两种类型:

  • 静态边:固定流转方向,适合确定性流程
  • 条件边:根据状态动态决定下一个节点,实现分支/循环逻辑
# StateGraph 核心用法示意fromlanggraph.graphimportStateGraph graph=StateGraph(state_schema=GraphState)graph.add_node("translator",translator_node)graph.add_node("checker",checker_node)graph.add_edge("translator","checker")graph.add_conditional_edges("checker",route_after_check,{...})graph.set_entry_point("translator")graph.set_finish_point("end")

三、执行模型与状态管理:核心差异解剖

3.1 执行模型对比

对比维度LangChainLangGraph
执行模型线性链式执行,确定性顺序基于有向图的执行,支持循环和分支
控制流有限的条件分支有向图,天然支持循环、并行执行
状态范围局部 Memory(对话级)全局 State(工作流级)
数据处理单向传递双向状态共享
状态持久化无内置支持,依赖外部存储内置检查点机制,自动保存状态快照
可观测性黑盒操作,难以干预中间步骤全流程可见,每个节点精确可控

3.2 为什么要从 AgentExecutor 迁移到 LangGraph?

LangChain 官方强烈建议将旧的 AgentExecutor 替换为基于 LangGraph 的实现。核心原因在于:AgentExecutor 是一个“黑盒”,开发者很难干预其中间步骤的执行;而 LangGraph 提供了全流程可见性——每个节点的输入、输出、执行轨迹都可以被精确追踪和调试。

对比特性AgentExecutor(旧)LangGraph(新)
透明度黑盒,难干预中间步骤全流程可见,每个节点可精确控制
可定制性修改策略非常复杂灵活定义状态跳转,支持多 Agent 协作
状态持久化难以在中断后恢复原生支持断点续传
循环逻辑仅限于简单的思考循环支持复杂的自定义条件循环

四、功能对比总览

保留所有能力

LangGraph 增强能力

状态图编排
StateGraph

循环控制
Loop/Retry

持久化执行
Checkpointer

人机协同
HITL

多智能体协作
Multi-Agent

LangChain 核心能力

模型抽象层
统一100+ LLM接口

链式组合
Chain

工具集成
Tool

记忆组件
Memory

检索组件
Retriever

4.1 LangChain 核心组件

LangChain 的组件体系包含五大核心模块:

  • Chains:基础执行单元,支持顺序调用
  • Agents:决策单元,根据工具选择执行路径
  • Tools:外部能力接口,如搜索引擎/计算器
  • Memory:状态存储,包含对话缓冲/摘要记忆
  • Retrievers:知识检索组件

4.2 LangGraph 新增能力

LangGraph 在继承上述组件的基础上,新增:

  • State Graph Builder:图结构定义 DSL
  • Node Execution Context:节点执行上下文管理
  • Cycle Detection:循环控制机制
  • Edge Conditions:边条件判断逻辑
  • Checkpointer:状态持久化机制
  • Human-in-the-Loop:人机协同交互能力

五、核心差异深度对比表

对比维度LangChainLangGraph
抽象层级高层抽象(High-level)低层编排(Low-level)
核心目标快速构建标准 LLM 应用构建长期运行的有状态 Agent
设计哲学链式思维——快速组装图结构思维——精确控制
基础单元Chain / AgentStateful Node(有状态节点)
控制流线性 / 简单分支有向图(支持循环、并行)
状态管理内存组件(Memory),无持久化集中式 State + Checkpointer 持久化
数据传递单向链式传递双向状态共享
循环支持需手动实现状态传递逻辑通过循环边直接表达
人机协同需自定义工具实现原生 HumanInputNode 支持
持久化无内置支持自动状态快照,支持断点续传
学习曲线平缓,适合快速上手较陡,需要理解图结构概念
适用场景RAG、单次问答、线性流程多轮复杂对话、循环自修正流程、多智能体协作
生产特性内存占用低状态持久化、工作流隔离、动态调度

六、实战场景代码对比

“文档摘要生成 + 质量检查 + 循环重试”任务为例,对比两种框架的实现。

6.1 需求描述

用户提交一篇长文档,需要 LLM 生成摘要,然后自动评估摘要质量,若不达标则循环重试直到满足要求。

6.2 LangChain 实现方式

fromlangchain.chainsimportLLMChainfromlangchain.promptsimportPromptTemplate summary_prompt=PromptTemplate.from_template("请生成以下文档的摘要:{document}")quality_prompt=PromptTemplate.from_template("评估以下摘要质量,回复'pass'或'fail':{summary}")summary_chain=LLMChain(llm=model,prompt=summary_prompt)quality_chain=LLMChain(llm=model,prompt=quality_prompt)defgenerate_summary_with_retry(document,max_retries=3):for_inrange(max_retries):summary=summary_chain.run(document=document)quality=quality_chain.run(summary=summary)if"pass"inquality:returnsummaryreturnsummary# 最后一次结果

局限:循环逻辑在框架外部手动实现,状态(重试次数、历史摘要)需开发者自行管理,无法利用框架内置的状态管理能力。

6.3 LangGraph 实现方式

fromlanggraph.graphimportStateGraphfromtypingimportTypedDict# 1. 定义全局状态classSummaryState(TypedDict):document:strsummary:strfeedback:strretry_count:intis_ok:bool# 2. 定义节点defsummarizer_node(state:SummaryState):# 生成或修正摘要prompt=f"请生成文档摘要:{state['document']}"ifstate.get("feedback"):prompt=f"根据反馈'{state['feedback']}'修正摘要:{state['summary']}"# response = model.invoke(prompt)return{"summary":"摘要结果","retry_count":state["retry_count"]+1}defchecker_node(state:SummaryState):# 评估摘要质量# if quality_score >= threshold:return{"is_ok":True,"feedback":""}# else:return{"is_ok":False,"feedback":"不够简洁"}# 3. 条件路由defroute_after_check(state:SummaryState):return"end"ifstate["is_ok"]else"retranslate"# 4. 构建图builder=StateGraph(SummaryState)builder.add_node("summarizer",summarizer_node)builder.add_node("checker",checker_node)builder.set_entry_point("summarizer")builder.add_edge("summarizer","checker")builder.add_conditional_edges("checker",route_after_check,{"retranslate":"summarizer","end":"end"})graph=builder.compile()result=graph.invoke({"document":"长文档内容...","retry_count":0})

优势:循环逻辑在框架内显式声明,状态自动流转,且可启用 Checkpointer 实现断点续传。

七、进阶能力对比

7.1 记忆与持久化

记忆类型LangChainLangGraph
短期记忆ConversationBufferMemory 等Checkpointer + thread_id 自动管理
长期记忆需自行实现Store 跨会话持久化
状态恢复不支持中断恢复原生支持断点续传
时间旅行不支持可回溯到任意历史状态

LangGraph 的持久化基于线程(Thread)和检查点(Checkpoint)两大概念。当启用持久化功能时,LangGraph 会在图执行的每个 Superstep 后自动创建状态快照,Superstep 通常对应图中一个或多个节点的执行。通过相同的 thread_id 恢复执行,Agent 能够在中断后从中断点继续运行。

7.2 人机协同(Human-in-the-Loop)

  • LangChain:需通过自定义 Tools 实现人工干预,流程僵化
  • LangGraph:提供 HumanInputNode 节点类型,可暂停执行并等待人工输入,结合条件边实现动态路由
# LangGraph 人机协同示意fromlanggraph.graphimportHumanInputNode human_node=HumanInputNode(name="await_approval",question="请审核以下结果,确认是否继续:",schema={"approved":bool,"comment":str})

7.3 多智能体协作

LangGraph 天然支持多智能体协作架构,每个 Agent 对应图中的一个独立节点,通过共享的全局 State 进行交互,支持层级式和网络式两种协作模式。

协作模式说明适用场景
层级式一个父 Agent 协调多个子 Agent任务分解、流水线处理
网络式Agent 之间点对点自由通信辩论系统、共识达成

八、选型决策框架

8.1 优先选择 LangChain 的场景

场景说明
快速原型开发需验证业务逻辑可行性,LangChain 的模块化设计可大幅缩短开发周期
无状态服务简单的问答机器人、文本分类等,无需维护执行上下文
标准 RAG 系统用户提问 → 向量检索 → 上下文构建 → 答案生成,确定性流程
轻量级部署资源受限环境下,LangChain 的内存占用通常更低
学习入门LangChain 学习曲线平缓,适合初学者快速上手

8.2 优先选择 LangGraph 的场景

场景说明
多轮复杂对话需要长期运行、状态记忆的对话系统
循环自修正流程代码生成自检、翻译优化、质量审查
多智能体协作需要多个 Agent 分工协作完成复杂任务
人机协同审批金融交易、敏感操作需要人工审核
企业级复杂系统需要状态持久化、审计追踪、中断恢复的生产系统
动态决策系统根据实时数据调整执行路径

8.3 实践建议

  • 不要全量重构:简单的 RAG 流程依然可以用 LCEL 写,没必要强行上 LangGraph
  • 从小到大迁移:先尝试将原有的 AgentExecutor 替换为 LangGraph 的预构建版本,获得状态管理能力后再逐步精细控制
  • 核心流程优先:先识别业务中的动态分支逻辑(如条件判断、循环处理),将其重构为 LangGraph 节点
  • 两者结合使用:在 LangGraph 节点内部仍可自由调用 LangChain 的各种组件,充分利用两者的优势

九、总结

选型决策树

简单、线性

复杂、需循环/状态

任务复杂度?

LangChain
快速原型/RAG/问答

LangGraph
Agent工作流/多步任务

需要生产级特性?

LangGraph +
Checkpointer + Store

核心要点总结
两者关系同一家公司开发的互补框架,LangGraph 构建在 LangChain 之上
核心区别LangChain 是快速开发的可组合工具箱,LangGraph 是复杂系统编排的底层引擎
选型原则从简单开始,按需升级——先 LangChain 验证想法,复杂时迁移到 LangGraph
迁移路径AgentExecutor → create_agent → 自定义 StateGraph,渐进式迁移
最佳实践两者可混合使用,LangGraph 节点内部继续使用 LangChain 组件

LangChain 负责“快速组装”,LangGraph 负责“精确控制”。LangGraph 的出现,标志着 AI Agent 开发从“线性链”迈向了“结构化图”的工程化阶段。理解这一本质差异,是在实际项目中做出正确技术选型的关键。

迁移行动建议:如果你正在使用 AgentExecutor,官方已宣布它将在 2026 年底废弃。现在是时候把手里的项目迁移到 LangGraph 了——越早越省心。

参考资料

  1. 从零入门Agent开发:LangChain与LangGraph框架选型指南
  2. LLM应用开发框架选型:LangChain与LangGraph的技术对比与选型指南
  3. LangChain 1.0与LangGraph 1.0技术选型指南:从架构到场景的深度对比
  4. Spring AI Alibaba、Dify、LangGraph 与 LangChain 综合对比分析报告
  5. LangChain与LangGraph 1.0技术对比:架构演进与迁移实战
  6. 从 LangChain 到 LangGraph 构建可控 Agent 的工程实践
  7. LangChain 与 LangGraph 的关系与迁移路线
  8. LangGraph新手村系列:StateGraph 与带记忆的 ReAct 循环
  9. LangGraph:基于有向图的智能体编排框架深度解析
  10. LangChain与LangGraph:智能体开发框架的选型指南

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询