LangChain vs LangGraph 深度对比(上):从框架定位到 Agent 构建的设计篇
LangChain vs LangGraph 深度对比(上):从框架定位到 Agent 构建的设计篇
文章目录
1. 引言
随着大语言模型(LLM)能力的快速提升,AI 应用开发正在从简单的 Prompt 调用逐步演进为复杂的 Agent 系统构建。
早期的 LLM 应用主要围绕 Prompt Engineering 展开,开发者关注的核心问题是:
- 如何设计高质量 Prompt
- 如何管理上下文信息
- 如何接入不同模型
- 如何提升回答质量
然而,随着 Tool Calling、RAG、Planning、Reflection 等能力的出现,LLM 应用开始向 Agent 系统演进。
此时开发者面临的问题已经发生变化:
- 如何组织复杂任务流程?
- 如何管理长期运行状态?
- 如何支持多步骤决策?
- 如何实现 Agent 协同?
- 如何保证任务可恢复与可观测?
在这样的背景下,LangChain 与 LangGraph 逐渐成为当前 Agent 开发生态中的两大核心框架。
1.1 LangChain 与 LangGraph 的关系
很多开发者刚接触 LangGraph 时,都会产生一个误解:
LangGraph 是不是为了替代 LangChain?
事实上并非如此。
从架构定位来看,两者并不是竞争关系,而是协作关系。
LangChain
├── Models
├── Prompts
├── Tools
├── Retrievers
└── Memory
↓
LangGraph
├── State
├── Node
├── Edge
├── Workflow
└── Runtime
↓
Agent Application
LangChain 负责什么?
LangChain 更关注 LLM 应用开发。
它提供了大量基础组件:
- Prompt Template
- Chat Model
- Tool
- Retriever
- Memory
- Output Parser
开发者可以快速构建:
- ChatBot
- RAG 系统
- Tool Calling 应用
- 基础 Agent
本质上,LangChain 更像是一个:
LLM Application Framework
LangGraph 负责什么?
LangGraph 更关注:
Agent Workflow Orchestration
即:
- Agent 如何执行
- Agent 如何决策
- Agent 如何维护状态
- Agent 如何协同工作
它提供:
- Graph 执行模型
- 状态管理机制
- 条件路由
- 循环执行
- Checkpoint
- Human-in-the-Loop
本质上更像:
Agent Workflow Engine
两者的关系
可以简单理解为:
| 层级 | 作用 |
|---|---|
| LangChain | 提供能力组件 |
| LangGraph | 组织能力组件 |
| Agent Application | 最终业务系统 |
因此:
LangChain 解决的是「Agent 能做什么」,而 LangGraph 解决的是「Agent 应该如何完成任务」。
1.2 为什么需要 LangGraph?
要理解 LangGraph 的价值,首先需要理解传统 Chain 模型的局限性。
Chain 模型的工作方式
在 LangChain 中,一个典型执行流程如下:
Prompt
↓
LLM
↓
Tool
↓
Output
或者:
Question
↓
Retriever
↓
LLM
↓
Answer
整个过程是:
A → B → C → D
即:
线性执行(Linear Execution)
这种模式简单直接,非常适合:
- ChatBot
- RAG
- Tool Calling
等场景。
当 Agent 开始自主决策
问题开始出现。
例如一个 Research Agent:
用户问题
↓
任务规划
↓
搜索资料
↓
评估结果
↓
信息是否充分?
如果结果不足:
┌────────────┐
│ Information │
│ Not Enough │
└──────┬─────┘
↓
再次搜索
↓
再次评估
↓
生成报告
此时执行路径变成:
A → B → C
↑ ↓
└───┘
出现了:
- 循环
- 分支
- 动态决策
而这些并不是传统 Chain 模型擅长处理的问题。
企业级 Agent 的新需求
随着 Agent 开始进入企业生产环境,新的挑战进一步出现:
长时间运行任务
例如:
市场调研
↓
数据收集
↓
报告生成
↓
专家审核
↓
最终输出
可能运行数小时甚至数天。
人工审批节点
例如:
Agent
↓
生成方案
↓
人工审批
↓
继续执行
任务恢复能力
例如:
执行到第 8 步
↓
系统崩溃
↓
恢复执行
↓
从第 8 步继续
而不是重新开始。
多 Agent 协作
例如:
Supervisor
↓
┌───┼───┐
↓ ↓ ↓
研发Agent
产品Agent
测试Agent
多个 Agent 共同完成复杂任务。
LangGraph 的出现
为了应对这些问题,LangGraph 引入了新的执行模型:
State
↓
Node
↓
Node
↓
Conditional Edge
↓
Node
与传统 Chain 相比:
| 能力 | Chain | Graph |
|---|---|---|
| 顺序执行 | ✅ | ✅ |
| 条件分支 | ⚠️ | ✅ |
| 循环执行 | ❌ | ✅ |
| 状态管理 | ⚠️ | ✅ |
| 多 Agent | ⚠️ | ✅ |
| 任务恢复 | ❌ | ✅ |
从工程角度来看:
LangGraph 的出现,本质上是为了让 Agent 从"一次性调用程序"升级为"长期运行的状态化系统"。
1.3 本文对比维度说明
为了全面理解 LangChain 与 LangGraph 的区别,本文将从以下几个核心维度展开分析。
① 框架定位
分析:
- 两者解决什么问题
- 位于技术栈哪个层级
- 分别适合什么场景
重点回答:
为什么 LangGraph 不是 LangChain 的替代品?
② 架构设计思想
分析:
- Chain First
- Graph First
重点回答:
为什么复杂 Agent 更适合图结构?
③ 执行模型
分析:
- 顺序执行
- 条件路由
- 循环执行
- 动态决策
重点回答:
Agent 如何自主决定下一步行为?
④ 状态管理机制
分析:
- Memory
- State
- Checkpoint
重点回答:
Agent 如何维护长期任务状态?
⑤ Agent 构建能力
分析:
- ReAct
- Planning
- Reflection
- Multi-Agent
重点回答:
两者在 Agent 能力构建上的差异是什么?
⑥ 工作流编排能力
分析:
- DAG
- Workflow
- Human-in-the-Loop
重点回答:
企业级 Agent 为什么需要 Workflow Engine?
⑦ 容错与恢复机制
分析:
- Checkpoint
- Resume
- State Persistence
重点回答:
长任务失败后如何恢复执行?
⑧ 可观测性与扩展性
分析:
- Trace
- State Tracking
- Debugging
重点回答:
如何理解 Agent 的行为过程?
1.4 本章小结
随着 Agent Engineering 的兴起,LLM 应用开发正在经历从 Chain 架构 向 Graph 架构 的演进。
如果说 LangChain 解决的是:
如何快速构建 LLM 应用
那么 LangGraph 解决的则是:
如何构建复杂、可控、可恢复、可扩展的 Agent 系统
理解两者的差异,不仅是理解两个框架的区别,更是在理解下一代 Agent 系统的设计方向。
2. 框架定位对比
在正式分析 LangChain 与 LangGraph 的技术差异之前,首先需要明确两者在 Agent 技术栈中的定位。
很多开发者在学习 LangGraph 时,会下意识地将其视为 LangChain 的升级版,甚至认为两者是互斥关系。然而从架构设计角度来看,这种理解并不准确。
实际上,两者解决的是不同层级的问题:
- LangChain 关注能力组件的构建与集成;
- LangGraph 关注 Agent 的执行与编排。
理解这一点,是后续分析执行模型、状态管理以及工作流能力差异的基础。
2.1 LangChain 的设计目标
LangChain 诞生于 LLM 应用开发快速发展的阶段。
在大模型应用刚刚兴起时,开发者普遍面临以下问题:
- 不同模型接口不统一
- Prompt 管理方式混乱
- 工具调用缺乏标准化
- RAG 系统需要大量重复开发
- Agent 构建成本较高
因此 LangChain 的核心目标非常明确:
为开发者提供统一的 LLM 应用开发框架。
其设计理念可以概括为:
Build LLM Applications Faster
即:
帮助开发者快速构建基于大语言模型的应用。
LangChain 的核心职责
从能力角度看,LangChain主要负责以下几个方面:
Model 抽象
统一接入不同模型供应商:
ChatOpenAI()
ChatAnthropic()
ChatGoogleGenerativeAI()
开发者无需关心底层接口差异。
Prompt 管理
通过模板化方式组织 Prompt:
prompt = ChatPromptTemplate.from_template(...)
解决 Prompt 复用与维护问题。
Tool 集成
统一工具调用接口:
@tool
def search():
pass
使 Agent 可以访问外部能力。
例如:
- 搜索引擎
- 数据库
- API
- 文件系统
Retriever 与 RAG
支持:
文档加载
↓
向量化
↓
向量检索
↓
上下文增强
帮助开发者快速搭建知识库问答系统。
Agent 构建
支持:
- ReAct Agent
- Tool Calling Agent
- Structured Output Agent
快速实现智能体原型。
LangChain 的本质
从架构角度看:
Prompt
Tool
Model
Retriever
Parser
Memory
这些都是:
Agent 的能力组件(Capabilities)
因此 LangChain 更像是:
Agent Components Library
或者:
LLM Application Framework
其核心价值在于:
提供丰富的标准化组件,降低 LLM 应用开发门槛。
2.2 LangGraph 的设计目标
随着 Agent 系统复杂度不断提升,开发者逐渐发现:
即使拥有大量能力组件,也并不意味着能够构建复杂 Agent。
因为新的问题开始出现:
- Agent 如何规划任务?
- Agent 如何维护状态?
- Agent 如何决定下一步行为?
- Agent 如何支持循环执行?
- Agent 如何恢复中断任务?
这些问题并不是组件问题。
而是:
Workflow 问题。
LangGraph 要解决什么?
LangGraph 的设计目标可以概括为:
构建可控、可状态化、可恢复的 Agent Workflow。
其关注重点已经不再是:
Agent 能做什么
而是:
Agent 应该如何完成任务
LangGraph 的核心抽象
LangGraph 引入了三个关键概念:
State
任务运行状态
例如:
{
"messages": [],
"plan": [],
"current_step": 3
}
Node
执行节点
例如:
Planner
Searcher
Critic
Executor
Edge
节点之间的流转关系
例如:
Planner
↓
Searcher
↓
Critic
或者:
Critic
↓
Satisfied?
/ \
Yes No
| |
End Planner
LangGraph 的本质
从架构角度看:
LangGraph 更接近:
Workflow Engine
而非:
Component Framework
其职责是:
- 管理执行流程
- 管理状态流转
- 管理节点调度
- 管理任务生命周期
因此:
LangGraph 本质上是一个面向 Agent 的工作流编排框架。
2.3 两者在 Agent 技术栈中的位置
如果从 Agent 系统整体架构来看:
┌──────────────────────┐
│ Agent App │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ LangGraph │
│ Workflow Runtime │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ LangChain │
│ Components Layer │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ LLM Provider │
└──────────────────────┘
可以发现:
LangChain 与 LangGraph 实际处于不同层级。
LangChain 位于能力层
负责提供:
Prompt
Tool
Retriever
Memory
Model
类似于:
SDK
LangGraph 位于运行时层
负责提供:
State
Node
Edge
Execution
Checkpoint
类似于:
Workflow Runtime
一个形象的比喻
如果把 Agent 系统看作一家工厂:
LangChain
负责提供:
机器
工具
流水线设备
即:
生产资源。
LangGraph
负责提供:
调度系统
流程控制系统
任务管理系统
即:
生产组织能力。
因此:
LangChain ≠ LangGraph
<font color="red">LangChain + LangGraph</font>
↓
<font color="red">完整 Agent 系统</font>
2.4 适用问题域分析
理解定位之后,就可以分析两者分别适用于哪些问题。
LangChain 适用场景
ChatBot
典型流程:
用户
↓
LLM
↓
回复
线性执行即可完成。
RAG 系统
流程:
问题
↓
检索
↓
生成
↓
回答
属于标准 Pipeline。
Tool Calling
流程:
问题
↓
Agent
↓
Tool
↓
返回结果
无需复杂状态管理。
MVP 验证
特点:
- 开发速度优先
- 快速上线
- 功能验证
LangChain 足够满足需求。
LangGraph 适用场景
Research Agent
流程:
规划
↓
搜索
↓
评估
↓
继续搜索
↓
总结
存在循环与动态决策。
Coding Agent
例如:
生成代码
↓
执行测试
↓
发现错误
↓
修复代码
↓
重新测试
形成反馈闭环。
Deep Research
例如:
搜集资料
↓
分析资料
↓
发现缺口
↓
补充搜索
↓
生成报告
需要长期运行状态。
Multi-Agent
例如:
Supervisor
↓
多个 Agent
↓
结果汇总
需要复杂调度机制。
企业级 Agent 平台
例如:
Agent
↓
审批
↓
执行
↓
审计
需要:
- 状态持久化
- Checkpoint
- Human-in-the-Loop
2.5 本章小结
从框架定位角度来看,LangChain 与 LangGraph 并不是同一层面的产品。
LangChain 更关注:
如何为 Agent 提供能力。
因此它本质上是一个 LLM 应用开发框架。
而 LangGraph 更关注:
如何组织 Agent 的行为。
因此它本质上是一个 Agent 工作流编排框架。
二者的关系可以总结为:
| 维度 | LangChain | LangGraph |
|---|---|---|
| 核心定位 | LLM Application Framework | Agent Workflow Framework |
| 关注重点 | 能力组件 | 工作流编排 |
| 核心抽象 | Prompt、Tool、Model | State、Node、Edge |
| 解决问题 | Agent 能做什么 | Agent 如何完成任务 |
| 抽象层级 | 组件层 | 运行时层 |
| 典型场景 | ChatBot、RAG | Research Agent、Coding Agent |
从某种意义上说:
LangChain 是 Agent 的”能力库”,而 LangGraph 是 Agent 的”操作系统”。
3. 核心理论框架:LLM Agent System 四层模型
在对 LangChain 与 LangGraph 进行对比之前,需要建立一个统一的分析坐标系。
否则不同章节的对比将停留在“功能层面”,无法解释其本质差异。
本章提出一个通用抽象:
LLM Agent 系统 = 四层计算架构模型
3.1 LLM Agent 系统四层结构
四层核心定义
| 层级 | 核心问题 | 本质 |
|---|---|---|
| Capability Layer | Agent 能做什么 | 能力组件 |
| Control Layer | Agent 如何决策 | 决策机制 |
| Runtime Layer | Agent 如何持续运行 | 执行系统 |
| Orchestration Layer | Agent 如何组织流程 | 工作流引擎 |
3.2 Capability Layer(能力层)
—— Agent 的能力基础
Capability Layer 是 LLM Agent 的“能力来源”,主要由 LangChain 提供。
核心组成
主要能力
- LLM 调用抽象(OpenAI / Claude / Gemini)
- Prompt 模板系统
- Tool Calling(函数 / API / DB)
- RAG 检索增强
- 基础 Memory
本质
Capability Layer 只回答:
❗ Agent “能做什么”
但不负责:
- 如何执行
- 如何决策
- 如何组织流程
层级定位
Capability Layer = Agent 能力组件库
3.3 Control Layer(控制层)
—— Agent 的决策系统
Control Layer 负责:
Agent 下一步该做什么?
核心机制
关键能力
① Tool Selection
- 是否调用工具
- 调用哪个工具
- 参数如何生成
② Reasoning Pattern
- ReAct
- Plan-and-Execute
- Reflection
- Self-critique
③ Routing(路由)
- 条件分支
- 动态路径选择
- 多步骤推理
本质
Control Layer =
Agent Decision Engine(决策引擎)
LangChain vs LangGraph 对比
| 能力 | LangChain | LangGraph |
|---|---|---|
| Tool Routing | 基础 | 强 |
| Loop Control | 弱 | 原生 |
| Dynamic Decision | 限制 | 完整 |
3.4 Runtime Layer(运行时层)
—— Agent 的执行系统
Runtime Layer 负责:
Agent 如何长期运行
核心能力
关键能力
① State Management
- 当前任务状态
- 中间结果
- 全局上下文
② Checkpoint
- 断点保存
- 执行进度记录
- 支持恢复
③ Persistence
- Redis / DB / File
- 长期状态存储
④ Long-running Execution
- 数小时 / 数天任务
- 异步执行
- 外部触发恢复
本质
Runtime Layer =
Agent Execution Engine(执行引擎)
LangChain vs LangGraph
| 能力 | LangChain | LangGraph |
|---|---|---|
| State First | 弱 | 强 |
| Resume | 困难 | 原生 |
| Long Task | 不适合 | 原生支持 |
3.5 Orchestration Layer(编排层)
—— Agent 的流程系统(LangGraph 核心)
Orchestration Layer 负责:
Agent 如何组织整个执行流程
Graph 执行模型
核心能力
① Graph Structure
- Node(节点)
- Edge(边)
- Directed Graph(有向图)
② Flow Control
- 顺序执行
- 条件分支
- 循环执行
- 动态跳转
③ Parallel Execution
④ Human-in-the-loop
- 人工审批
- 中断等待
- 外部输入恢复
本质
Orchestration Layer =
Workflow Engine(工作流引擎)
LangGraph 核心优势
| 能力 | LangChain | LangGraph |
|---|---|---|
| Graph Model | ❌ | ✅ |
| Loop Flow | ❌ | ✅ |
| Multi-Agent | 限制 | 原生 |
| Workflow Engine | ❌ | ✅ |
3.6 四层模型总结
3.6.1 总体结构
3.6.2 LangChain vs LangGraph 归属
| 层级 | LangChain | LangGraph |
|---|---|---|
| Capability | 强 | 复用 |
| Control | 中 | 强 |
| Runtime | 弱 | 强 |
| Orchestration | 弱 | 强 |
3.6.3 核心结论
LangChain = <font color="red">能力组件体系(Capability System)</font>
LangGraph = <font color="red">Agent运行与编排系统(Runtime + Workflow System)</font>
4. 架构设计思想对比:Chain Model vs Graph Model
在明确 LangChain 与 LangGraph 的定位差异之后,需要进一步进入更本质的一层:
它们为什么会采用完全不同的“结构模型”?
这一章不再停留在功能层,而是从计算结构与系统建模方式出发分析两者差异。
4.1 Chain 模型(LangChain)
—— 线性流水线式执行模型
LangChain 的核心抽象是:
Chain(链式结构)
其本质是一种:
Pipeline Execution Model(流水线执行模型)
基本结构
核心特点
① 线性执行(Linear Flow)
- 严格顺序执行
- 每一步依赖上一步输出
- 无回路结构
A → B → C → D
② 结构固定(Static Flow)
Chain 在运行前结构已确定:
- 流程不可动态改变
- 执行路径固定
- 控制流隐式存在
③ 局部状态(Local State)
- 状态通常通过 Memory 传递
- 无统一全局状态管理
- 每一步“感知有限上下文”
④ 组件组合(Composition-based)
Chain 更像:
Function Composition
f(x) → g(x) → h(x)
本质总结
Chain 模型本质是:
确定性执行管道(Deterministic Pipeline)
优势
- 简单直观
- 易于调试
- 适合标准任务流
- 非常适合 MVP / 快速开发
典型场景:
- ChatBot
- RAG
- Tool Calling
- 单轮 Agent
局限性
Chain 模型的问题在于:
❌ 1. 无法表达循环
需要反复搜索 → 无法原生支持
❌ 2. 无法表达动态决策
根据结果决定下一步 → 很难表达
❌ 3. 无法表达多路径执行
A → B → C
↘ D → E (Chain不自然)
❌ 4. 状态弱表达
- 状态依赖 memory hack
- 没有统一 state model
结论
Chain 的设计本质是:
“预定义流程执行模型”
而不是:
“智能决策系统”
4.2 Graph 模型(LangGraph)
—— 状态驱动的图计算模型
LangGraph 的核心抽象是:
Graph(图结构执行模型)
其本质是:
State Machine + Directed Graph Execution
基本结构
核心特点
① 图结构(Graph-based)
- Node(节点)
- Edge(边)
- 支持任意拓扑结构
② 支持循环(Loop Native)
③ 支持条件路由(Conditional Edge)
if result == good → End
if result == bad → Retry
④ 全局状态(Global State)
核心特征:
state = {
"messages": [],
"plan": [],
"iterations": 3
}
- 所有节点共享 state
- state 在图中流动
- state 是一等公民
⑤ 可控执行流(Explicit Control Flow)
Graph 的控制流是:
显式定义,而非隐式执行
本质总结
Graph 模型本质是:
显式状态机执行模型(Explicit State Machine Execution Model)
优势
✅ 1. 支持复杂流程
- 分支
- 循环
- 多路径
- 回退
✅ 2. 原生支持 Agent Loop
例如:
Search → Evaluate → Improve → Search
3. 强状态建模能力
- State first design
- 可持久化
- 可恢复
4. 支持多 Agent 系统
局限性
❌ 1. 学习成本更高
- 需要理解 graph model
- 需要 state 思维
❌ 2. 结构复杂
- 小任务显得“过度设计”
❌ 3. 对简单任务不必要
- ChatBot 用 Graph 属于“杀鸡用牛刀”
结论
Graph 的设计本质是:
“可控的动态决策系统”
4.3 Pipeline vs State Machine(核心本质对比)
这一节是本章最关键部分。
① LangChain = Pipeline Model
特征:
- 线性
- 确定
- 无回路
- 轻量
② LangGraph = State Machine Model
特征:
- 状态驱动
- 可循环
- 可分支
- 可恢复
核心区别
| 维度 | LangChain | LangGraph |
|---|---|---|
| 模型 | Pipeline | State Machine |
| 控制流 | 隐式 | 显式 |
| 状态 | 局部 | 全局 |
| 执行 | 一次性 | 持续性 |
4.4 DAG vs Cyclic Graph(结构能力差异)
LangChain:DAG(有向无环图)
特点:
- 无循环
- 单向执行
- 一次性流程
LangGraph:Cyclic Graph(可循环图)
特点:
- 支持 loop
- 支持 retry
- 支持 agent reasoning loop
关键差异
| 结构 | LangChain | LangGraph |
|---|---|---|
| DAG | ✅ | ✅ |
| Cycle | ❌ | ✅ |
| Self-loop | ❌ | ✅ |
4.5 Agent 为什么天然适合 Graph 模型
Agent 的本质行为是:
不断“观察 → 思考 → 行动 → 修正”
可以抽象为:
Observe → Think → Act → Evaluate → Repeat
Graph 结构天然匹配
为什么 Chain 不适合 Agent?
Chain 无法表达:
- retry
- reflection
- multi-step planning
- dynamic decision
Graph 的优势
Graph 提供:
- loop
- state
- branching
- conditional routing
→ 完全匹配 Agent 行为模式
4.6 本章总结(核心结论)
① 两种模型的本质差异
LangChain = <font color="red">Pipeline Execution Model</font>
LangGraph = <font color="red">State Machine Execution Model</font>
② 控制方式差异
| 类型 | LangChain | LangGraph |
|---|---|---|
| 控制流 | 隐式 | 显式 |
| 执行路径 | 固定 | 动态 |
| 状态 | 弱 | 强 |
③ 设计哲学差异
- LangChain:How to execute a pipeline
- LangGraph:How to control an agent system
5. 执行模型对比:顺序执行 vs 动态决策执行
在 LangChain 与 LangGraph 的差异中,“执行模型(Execution Model)”是最关键的分水岭之一。
如果说第4章讨论的是结构(Structure),那么本章讨论的就是:
系统在运行时“如何思考与行动”
5.1 LangChain 执行模型:顺序驱动(Sequential Execution)
LangChain 的执行模型本质是:
Pipeline-based Sequential Execution(流水线式顺序执行)
基本执行流程
核心特点
① 严格顺序执行
每一步依赖上一步输出:
Step1 → Step2 → Step3 → Step4
② 执行路径固定
在运行前:
- 流程已确定
- 路径不可动态改变
③ 无显式控制流
控制逻辑通常隐藏在:
- Chain 组合
- Agent loop(有限支持)
- Prompt 逻辑
典型执行模式
① Chain 模式
② RAG 模式
③ Tool Calling(受限循环)
本质总结
LangChain 执行模型本质是:
确定性流程执行(Deterministic Execution Pipeline)
优点
- 简单清晰
- 易调试
- 易组合
- 非常适合标准任务
缺点
- 无法表达复杂决策
- 无法支持长期循环任务
- 状态能力较弱
- 动态路径能力不足
5.2 LangGraph 执行模型:状态驱动(Stateful Execution)
LangGraph 的执行模型本质是:
State Machine + Graph-based Dynamic Execution
基本执行结构
核心特点
① 状态驱动执行(State-driven)
每一步执行依赖:
state → node → updated state → next node
② 动态路径选择(Dynamic Routing)
执行路径不是固定的:
③ 支持循环(Native Loop)
LangGraph 原生支持:
④ 全局状态共享(Global State)
state = {
"messages": [],
"plan": [],
"results": [],
"iteration": 0
}
所有 Node 共享并修改 state。
本质总结
LangGraph 执行模型本质是:
显式状态机执行系统(Explicit Stateful Execution System)
优点
- 支持复杂决策流程
- 支持循环与回溯
- 支持长期任务
- 支持多 Agent 协作
- 支持状态恢复(Checkpoint)
缺点
- 学习成本更高
- 结构更复杂
- 小任务显得“过重”
5.3 顺序执行 vs 动态执行(核心差异)
LangChain:顺序执行模型
特征:
- Linear
- Static
- One-pass
LangGraph:动态执行模型
特征:
- Dynamic
- Stateful
- Cyclic
核心差异总结
| 维度 | LangChain | LangGraph |
|---|---|---|
| 执行方式 | 顺序执行 | 状态驱动 |
| 控制流 | 隐式 | 显式 |
| 路径 | 固定 | 动态 |
| 循环 | 不支持 | 原生支持 |
5.4 ReAct / Planning / Reflection 执行机制对比
这一节是 Agent 执行模型的核心。
① ReAct(LangChain 典型)
ReAct = Reason + Act
特点
- 思考 + 行动交替
- 轻量 loop
- 依赖 prompt 控制
局限
- loop 不稳定
- 控制能力弱
- 状态不结构化
② Planning Agent(规划型)
特点
- 先规划后执行
- 执行流程较稳定
局限
- plan 不可动态调整
- 遇到变化难适配
③ Reflection Agent(反思型)
特点
- 自我优化能力
- loop-based improvement
LangGraph 的优势
LangGraph 可以原生表达所有这些模式:
| 模型 | LangChain | LangGraph |
|---|---|---|
| ReAct | ✅(prompt实现) | ✅(结构化) |
| Planning | ⚠️ | ✅ |
| Reflection | ⚠️ | ✅ |
| Hybrid | ❌ | ✅ |
5.5 动态决策能力对比(核心差异)
LangChain:隐式决策
特点:
- 决策依赖 Prompt
- 不可控
- 不可观测
LangGraph:显式决策
特点:
- 决策结构化
- 可调试
- 可追踪
5.6 执行模型本质对比(总结)
① 模型定义
LangChain = <font color="red">Sequential Execution Model</font>
LangGraph = <font color="red">Stateful Graph Execution Model</font>
② 控制方式
| 维度 | LangChain | LangGraph |
|---|---|---|
| 控制流 | 隐式 | 显式 |
| 决策点 | Prompt内部 | Graph节点 |
| 可调试性 | 弱 | 强 |
③ 系统行为
| 行为 | LangChain | LangGraph |
|---|---|---|
| 单轮任务 | 强 | 强 |
| 多轮推理 | 弱 | 强 |
| 长任务 | 不适合 | 原生支持 |
| 动态路径 | 不支持 | 支持 |
6. 状态管理机制对比:Memory vs State vs Checkpoint
在 LangChain 与 LangGraph 的体系中,“状态管理能力”是决定系统是否能够从“对话工具”升级为“Agent 系统”的关键因素。
本章重点分析三种核心机制:
- LangChain Memory(记忆机制)
- LangGraph State(状态机制)
- Checkpoint(持久化与恢复机制)
6.1 LangChain Memory:局部记忆模型
LangChain 的 Memory 机制本质是:
对话上下文增强机制(Context Augmentation Layer)
基本结构
常见 Memory 类型
- ConversationBufferMemory
- ConversationSummaryMemory
- WindowMemory
- EntityMemory
核心特点
① 局部性(Local Scope)
Memory 通常绑定在:
- 单个 Chain
- 单个 Agent 会话
② 非结构化(Unstructured)
Memory 内容通常是:
聊天记录 / summary / text blob
而不是结构化 state。
③ 被动更新
Memory 更新通常发生在:
- prompt之后
- LLM输出之后
本质总结
LangChain Memory 本质是:
“增强上下文的文本缓存系统”
局限性
- ❌ 无全局状态概念
- ❌ 不适合复杂流程管理
- ❌ 不支持流程级恢复
- ❌ 状态不可拆分控制
6.2 LangGraph State:全局状态模型
LangGraph 引入了完全不同的设计:
State First Design(状态即一等公民)
基本结构
State 示例
state = {
"messages": [],
"plan": [],
"results": [],
"current_step": 0,
"final_answer": None
}
核心特点
① 全局共享(Global State)
所有节点:
- 读取 state
- 修改 state
- 推进 state
② 结构化(Structured State)
State 是:
- 明确 schema
- 可控字段
- 可追踪变化
③ 显式流动(Explicit Flow)
Node → State Update → Node → State Update
本质总结
LangGraph State 本质是:
“流动的数据中心(Data-centric Execution Model)”
6.3 Checkpoint 机制:任务恢复核心能力
Checkpoint 是 LangGraph 与 LangChain 最大差异之一。
基本结构
核心能力
① 状态持久化
- Redis
- Database
- File system
② 断点续跑(Resume Execution)
Task执行到50%
→ 系统崩溃
→ 从Checkpoint恢复继续执行
③ 多轮恢复能力
支持:
- 长任务恢复
- Agent中断恢复
- 外部触发恢复
本质总结
Checkpoint =
“Execution State Snapshot System(执行状态快照系统)”
6.4 Memory vs State vs Checkpoint 对比
总体对比
| 维度 | LangChain Memory | LangGraph State | Checkpoint |
|---|---|---|---|
| 层级 | 应用层 | 运行时层 | 系统层 |
| 结构 | 非结构化 | 结构化 | 持久化 |
| 生命周期 | 会话级 | 任务级 | 系统级 |
| 是否可恢复 | ❌ | ⚠️ | ✅ |
| 控制能力 | 弱 | 强 | 强 |
架构关系图
6.5 核心本质差异总结
LangChain
Memory = 上下文增强机制
特点:
- 轻量
- 非结构化
- 会话导向
LangGraph
State + Checkpoint = 状态化执行系统
特点:
- 结构化
- 可恢复
- 系统级
一句话总结
LangChain 通过 Memory 机制增强对话上下文,而 LangGraph 引入结构化、可持久化的状态系统,实现对 Agent 执行全生命周期的管理。
6.6 本章总结
状态管理的本质差异可以归纳为:
① 抽象层级不同
- LangChain → 会话增强
- LangGraph → 执行系统状态
② 控制能力不同
- LangChain → 被动记忆
- LangGraph → 主动状态驱动
③ 系统能力不同
- LangChain → 单轮/短任务
- LangGraph → 长任务/复杂流程
核心结论
Memory → 记忆系统(辅助)
State → 执行核心(主系统)
Checkpoint → 系统级恢复能力(工程级关键)
7. Agent 构建能力对比:从组件组合到系统化 Agent
在 LangChain 与 LangGraph 的对比中,“Agent 构建能力”是最直接体现两者工程能力差异的一层。
本章关注的问题是:
如何从 LLM + Tools 构建一个“可执行的智能体系统”
7.1 LangChain Agent:组件驱动型 Agent
LangChain 的 Agent 构建方式本质是:
Prompt + Tool + Loop 的组合模型
基本结构
核心特点
① Prompt 驱动决策
Agent 的行为主要依赖:
- ReAct Prompt
- Tool description
- Few-shot examples
② 运行时弱结构化
- 没有显式状态图
- loop 由框架隐式控制
- execution flow 不透明
③ 工具调用是核心扩展方式
Agent 能力扩展依赖:
Tool = 外部能力接口
本质总结
LangChain Agent 是:
Prompt-driven Reactive Agent(提示驱动反应式智能体)
局限性
- ❌ loop 不可控
- ❌ 状态不可结构化管理
- ❌ 多 Agent 协作困难
- ❌ 行为不可预测性较高
7.2 LangGraph Agent:系统化 Agent 构建模型
LangGraph 将 Agent 构建方式升级为:
Graph-based Stateful Agent System
基本结构
核心特点
① Node 化 Agent 逻辑
Agent 被拆解为多个 Node:
- Planner
- Executor
- Critic
- Tool Caller
② State 驱动执行
每个 Node:
- 读取 State
- 修改 State
- 决定下一步
③ 显式控制流
Node → Edge → Node
所有流程可定义。
本质总结
LangGraph Agent 是:
Stateful Graph-based Agent System(状态图智能体系统)
优势
- ✔ 行为可控
- ✔ 流程可解释
- ✔ 支持复杂决策链
- ✔ 支持循环与回溯
7.3 ReAct Agent 对比
LangChain ReAct(典型实现)
特点
- Prompt 控制循环
- Reason + Act 交替
- 依赖 LLM 自主推理
问题
- loop 不稳定
- 容易 hallucination
- 无结构化控制
LangGraph ReAct(结构化版本)
改进点
- loop 可控
- 状态可追踪
- 每一步显式化
7.4 Planning Agent 对比
LangChain Planning Agent
问题
- plan 固定
- 无动态调整能力
- 遇到失败难以修正
LangGraph Planning Agent
优势
- plan 可动态更新
- 支持中途修正
- 可结合 feedback loop
7.5 Reflection Agent 对比
LangChain Reflection Agent
问题
- reflection 依赖 prompt
- 无结构化评价体系
LangGraph Reflection Agent
改进点
- evaluation 独立 node
- 可插入多 evaluator
- 支持多轮优化策略
7.6 Multi-Agent 系统对比
LangChain Multi-Agent(弱编排)
局限
- 无统一状态
- 协作逻辑依赖 prompt
- 难扩展
LangGraph Multi-Agent(原生支持)
优势
- 统一 state
- 可控调度
- 支持任务分发与回收
- 支持 hierarchical agent system
7.7 Agent 生命周期对比
LangChain Agent 生命周期
特点:
- 短生命周期
- 一次性执行
- session-based
LangGraph Agent 生命周期
特点:
- 长生命周期
- 可中断恢复
- workflow-based
7.8 本章总结
① Agent 构建方式差异
| 维度 | LangChain | LangGraph |
|---|---|---|
| 构建方式 | Prompt组合 | Graph建模 |
| 控制方式 | 隐式 | 显式 |
| 状态 | 弱 | 强 |
| 扩展性 | 中 | 强 |
② 核心范式差异
LangChain = <font color="red">Prompt-driven Agent</font>
LangGraph = <font color="red">State-driven System Agent</font>
③ 架构本质总结
LangChain 侧重通过”以提示词为中心”的组合方式来构建智能代理,而 LangGraph 则将代理构建为显式的状态机,并通过基于图的执行逻辑进行编排
下篇预告: 本文上篇从框架定位、架构设计、执行模型、状态管理到 Agent 构建,完整梳理了 LangChain 与 LangGraph 在设计层面的核心差异。下篇将从工程落地视角出发,继续分析工作流编排、容错恢复、可观测性、性能扩展等企业级能力,并给出典型场景的技术选型建议。详见《LangChain vs LangGraph 深度对比(下):从工作流编排到企业级落地的工程篇》。
更多推荐



所有评论(0)