LangGraph 1.x 与其它框架对比

什么是 LangGraph 1.x?一个通俗的解释
想象你在指挥一个乐团演出。传统的 AI 应用就像让一个音乐家独自演奏——他只能一首接一首地弹,弹错了就得从头来。而 LangGraph 1.x 就像一个完整的指挥系统:
- 多位音乐家协作(多个 AI Agent)可以同时演奏不同乐器
- 有乐谱可循(图状态机)告诉每个人什么时候该演奏什么
- 指挥家可以随时调整(Human-in-the-loop)在关键时刻人工介入
- 演出可以暂停和继续(持久化)中途出问题不用从头再来
- 可以回放任何片段(时间旅行调试)找出哪里演奏错了
用一句话说:LangGraph 1.x 是一个让你能够精确控制 AI 应用执行流程的框架,它把复杂的 AI 工作流变成一张"地图",你可以清楚地看到 AI 在做什么、要去哪里、遇到问题怎么办。
LangGraph 1.0 的三大核心升级
2025 年 10 月,LangChain 团队正式发布了 LangGraph 1.0,这是一个里程碑式的版本。以下是最重要的更新:
1. create_agent —— 极简的 Agent 创建方式

以前创建一个 Agent 需要写很多代码,现在只需要几行:
from langchain.agents import create_agent
# 就这么简单!几行代码创建一个天气查询 Agent
weather_agent = create_agent(
model="openai:gpt-4o", # 选择任意模型
tools=[get_weather], # 给它工具
system_prompt="帮助用户查询城市天气", # 告诉它做什么
)
# 运行 Agent
result = weather_agent.invoke("北京今天天气怎么样?")支持结构化输出——让 AI 返回固定格式的数据:
from pydantic import BaseModel
class WeatherReport(BaseModel):
temperature: float # 温度
condition: str # 天气状况
agent = create_agent(
"openai:gpt-4o-mini",
tools=[weather_tool],
response_format=ToolStrategy(WeatherReport), # 强制返回这个格式
)2. Middleware 中间件 —— 像插件一样扩展功能

中间件就像给 Agent 装上"过滤器"和"检查站"。LangGraph 1.0 内置了三个实用中间件:
| 中间件 | 功能 | 使用场景 |
|---|---|---|
| Human-in-the-loop | 在执行关键操作前等待人工确认 | 防止 AI 误操作,如转账、删除等 |
| Summarization | 自动压缩过长的对话历史 | 保持上下文同时节省 Token |
| PII Redaction | 自动屏蔽敏感信息 | 保护用户隐私,符合 GDPR 等法规 |
3. Standard Content Blocks —— 统一的模型输出格式
不同的 AI 模型返回的数据格式各不相同,这给开发者带来很多麻烦。LangGraph 1.0 引入了标准内容块,统一处理:
- 推理轨迹(Reasoning Traces):AI 的思考过程
- 引用来源(Citations):信息来自哪里
- 工具调用(Tool Calls):AI 使用了什么工具
这意味着你可以轻松切换不同的模型供应商,而不用重写代码!
LangChain 与 LangGraph 的关系

很多初学者分不清 LangChain 和 LangGraph:
| LangChain 1.0 | LangGraph 1.0 | |
|---|---|---|
| 定位 | 快速开发常见 AI 应用 | 构建复杂的生产级工作流 |
| 适合场景 | 简单的问答、翻译、摘要 | 多步骤推理、多 Agent 协作 |
| 学习曲线 | 较平缓 | 较陡峭但更强大 |
| 关系 | LangChain 的 Agent 运行在 LangGraph 之上 | 底层执行引擎 |
简单说:LangChain 是"快餐",让你快速上手;LangGraph 是"厨师工具",让你做出任何菜品。而且两者完全兼容——用 LangChain 写的简单应用,随时可以升级为 LangGraph 的复杂工作流。
安装 LangGraph 1.0
Python 安装:
uv pip install --upgrade langchain langgraph
# 如果需要旧版特性
uv pip install langchain-classicJavaScript/TypeScript 安装:
npm install @langchain/langchain@latest @langchain/langgraph概述
在 AI Agent 开发领域,2025 年涌现出了众多优秀的框架。每个框架都有其独特的设计理念和适用场景。本节将深入对比主流的 Agent 框架,帮助你理解为什么 LangGraph 是构建复杂生产级 AI 应用的最佳选择。
📚 术语表
| 术语名称 | LangGraph 定义和解读 | Python 定义和说明 | 重要程度 |
|---|---|---|---|
| Graph State Machine | LangGraph 的核心架构,将 Agent 执行过程建模为有向图,支持循环和条件分支 | 状态机设计模式,通过状态和转换规则控制程序流程 | ⭐⭐⭐⭐⭐ |
| StateGraph | LangGraph 的核心类,用于定义状态图工作流,管理节点、边和状态转换 | 继承自 Graph 的 Python 类,提供状态管理和节点编排功能 | ⭐⭐⭐⭐⭐ |
| Node | 图中的执行单元,代表一个状态转换函数,接收状态并返回更新后的状态 | Python 函数,参数为 State,返回字典形式的状态更新 | ⭐⭐⭐⭐⭐ |
| Edge | 连接节点的路径,定义执行流程的顺序和条件分支 | add_edge() 或 add_conditional_edges() 方法定义的节点间连接 | ⭐⭐⭐⭐⭐ |
| Conditional Edge | 根据条件动态选择下一个执行节点的边,实现流程分支逻辑 | 通过路由函数(router)返回字符串,映射到不同节点名称 | ⭐⭐⭐⭐⭐ |
| Checkpointer | 持久化层组件,保存和恢复图的执行状态,支持故障恢复和断点续传 | SqliteSaver 等实现类,提供状态序列化和存储功能 | ⭐⭐⭐⭐ |
| Human-in-the-loop | 人机协作模式,在关键节点暂停等待人工审批或干预 | 通过 breakpoint 或特殊节点实现暂停和继续执行 | ⭐⭐⭐⭐ |
| Time-travel Debugging | 时间旅行调试,允许回溯到历史状态检查和修改执行过程 | get_state_history() 和 update_state() 方法实现状态回溯 | ⭐⭐⭐⭐ |
| LangSmith | LangChain 生态的可观测性平台,提供调试、监控和性能追踪 | 第三方服务,通过 SDK 集成实现应用监控和日志分析 | ⭐⭐⭐ |
| ReAct Pattern | Reasoning + Acting 模式,Agent 交替进行推理和行动的执行模式 | 通过循环节点实现 Thought→Action→Observation 流程 | ⭐⭐⭐⭐ |
| Multi-Agent System | 多智能体协作系统,多个专业化 Agent 协同完成复杂任务 | 通过多个节点和消息路由实现 Agent 间的通信和协作 | ⭐⭐⭐⭐ |
| Supervisor Pattern | 监督者模式,由一个协调器 Agent 管理和调度其他专业 Agent | 通过 supervisor 节点决定下一步调用哪个 Agent 节点 | ⭐⭐⭐ |
主流 Agent 框架全景
在开始详细对比之前,让我们先了解一下当前主流的 Agent 框架:
| 框架 | 开发者 | 核心特点 | 最佳用途 |
|---|---|---|---|
| LangGraph | LangChain 团队 | 图状态机架构 | 复杂的生产级多智能体系统 |
| CrewAI | CrewAI Inc. | 基于角色的团队协作 | 快速原型开发和角色分工明确的场景 |
| AutoGen | Microsoft | 对话式多智能体编排 | 自主代码生成和企业级应用 |
| OpenAI Swarm | OpenAI | 轻量级智能体协调 | 简单的智能体交互(实验性) |
| Semantic Kernel | Microsoft | 企业级编排引擎 | .NET/C# 生态系统和企业工作流 |
| Haystack | deepset | 文档检索和 RAG | 问答系统和语义搜索 |
详细框架对比
1. LangGraph vs CrewAI
架构设计
LangGraph:
- 采用**图状态机(Graph State Machine)**架构
- 将智能体步骤视为有向图中的节点
- 支持循环图,允许智能体重新访问之前的步骤
- 显式定义状态转移和条件分支
CrewAI:
- 采用基于角色的团队抽象
- 将智能体视为具有角色、目标和工具的协作者
- 线性或简单的任务流编排
- 强调可读性和清晰的编排逻辑
状态管理
LangGraph 的优势:
# LangGraph 提供强大的状态管理能力
from langgraph.graph import StateGraph
class AgentState(TypedDict):
messages: list[BaseMessage]
context: dict
retry_count: int
last_error: Optional[str]
# 可以在节点间共享和修改状态
workflow = StateGraph(AgentState)CrewAI:
- 状态管理相对简单
- 主要依赖智能体之间的消息传递
- 适合不需要复杂状态追踪的场景
学习曲线与易用性
CrewAI:
- ✅ 最容易上手的框架之一
- 文档友好,示例丰富
- 几行代码就能创建一个团队
LangGraph:
- 学习曲线较陡峭
- 需要理解图和状态的概念
- 但提供免费的学习课程
适用场景
选择 LangGraph 当你需要:
- 复杂的、多步骤的工作流
- 循环和条件分支逻辑
- 精确的流程控制
- 生产级的容错和可观测性
选择 CrewAI 当你需要:
- 快速原型开发
- 角色分工明确的团队协作
- 简单直观的编排逻辑
2. LangGraph vs AutoGen
编排方式
LangGraph:
- 遵循详细的地图,有特定的路径和检查点
- 确保一致性和可预测性
- 像指挥交响乐团,每个乐器按照乐谱演奏
AutoGen:
- 像开放式讨论,任何智能体可以与任何其他智能体交谈
- 灵活的对话模式
- 更自主但也更难控制
核心优势对比
LangGraph 的强项:
- ✅ 精确的工作流控制
- ✅ 内置的持久化层(支持故障容错、短期和长期记忆)
- ✅ 时间旅行调试(Time-travel debugging)
- ✅ 人机协作模式(Human-in-the-loop)
- ✅ 与 LangSmith 的深度集成,提供强大的可观测性
AutoGen 的强项:
- ✅ 自主代码生成能力突出
- ✅ 智能体可以自我纠错、重写、执行代码
- ✅ 企业级基础设施
- ✅ 适合解决编程挑战
生产就绪性
LangGraph:
# LangGraph 提供生产级特性
from langgraph.checkpoint.sqlite import SqliteSaver
# 持久化支持
memory = SqliteSaver.from_conn_string(":memory:")
# 人机协作:在关键节点暂停等待人类审批
workflow.add_node("human_approval", human_approval_node)
workflow.add_conditional_edges(
"analyze",
should_continue,
{
"approve": "human_approval",
"reject": "retry"
}
)AutoGen:
- 需要更多手动配置
- 基于对话的工作流,更难调试
- 文档版本管理混乱(社区反馈)
最佳实践
选择 LangGraph 当你需要:
- 结构化的、图状态的工作流
- 生产环境的稳定性和可观测性
- 精确控制每一步的执行
选择 AutoGen 当你需要:
- 动态的多智能体对话协作
- 强大的代码生成能力
- 企业级的复杂应用(如果你愿意应对其复杂性)
3. LangGraph vs Semantic Kernel
生态系统定位
LangGraph:
- Python 为主(也支持 JavaScript/TypeScript)
- 深度集成 LangChain 生态系统
- 开源社区活跃
Semantic Kernel:
- C#/.NET 优先(也支持 Python 和 Java)
- Microsoft 企业生态系统
- 适合 .NET 开发者
工作流特点
LangGraph:
- 图状态机,支持复杂的非线性流程
- 显式的状态管理
- 循环和条件逻辑易于实现
Semantic Kernel:
- Planner 和 Plugin 引擎
- 擅长长时间运行的多步骤工作流
- 函数组合 + 记忆系统
- 强大的 .NET 框架集成
适用场景
选择 LangGraph 当你:
- 使用 Python 开发
- 需要精确的图状态流程控制
- 构建复杂的推理智能体
选择 Semantic Kernel 当你:
- 在 Microsoft/.NET 生态系统中工作
- 需要企业级自动化
- 构建复杂的业务系统
4. LangGraph vs Haystack
这两个框架的定位完全不同:
Haystack:
- ✅ 专注于 RAG(检索增强生成)
- ✅ 文档搜索和问答系统的专家
- ✅ 管道式架构
- ❌ 不适合复杂的多智能体编排
LangGraph:
- ✅ 通用的智能体编排框架
- ✅ 可以集成 RAG,但不限于此
- ✅ 支持各种复杂的智能体交互模式
结论:如果你只需要构建文档问答系统,Haystack 更轻量。如果需要构建包含 RAG 在内的复杂多智能体系统,选择 LangGraph。
为什么选择 LangGraph?
1. 图状态机架构的独特优势
更好的控制和灵活性
"图"框架使构建复杂和定制化的工作流更加直观,提供更好的开发者体验,让你能够真正控制节点之间的转移概率。
传统的链式(Chain)架构只能处理简单的线性流程:
输入 → 处理1 → 处理2 → 输出而 LangGraph 的图架构支持:
↗ 分支A → 汇总 ↘
输入 → 决策 → 输出
↘ 分支B → 验证 ↗
↓
循环重试状态机的循环能力
状态机的强大之处在于能够循环,这使得它能够处理比简单链更模糊的输入,同时在循环的构建方式上保持人类指导的元素。
2. 生产级特性的全方位支持
持久化和记忆
from langgraph.checkpoint.sqlite import SqliteSaver
# 内置持久化层
checkpointer = SqliteSaver.from_conn_string("agent_memory.db")
# 支持:
# - 故障容错
# - 短期记忆
# - 长期记忆
# - 断点续传人机协作模式
# 在关键决策点暂停,等待人类干预
workflow.add_node("analyze_data", analyze_node)
workflow.add_node("human_review", human_review_node)
workflow.add_conditional_edges(
"analyze_data",
lambda x: "human" if x["confidence"] < 0.8 else "auto",
{
"human": "human_review",
"auto": "execute"
}
)时间旅行调试
LangGraph 允许你回溯到任何历史状态,检查智能体在每一步的决策:
# 获取历史快照
states = graph.get_state_history(thread_id)
# 回溯到特定状态
graph.update_state(states[5]) # 回到第5步3. 可观测性和监控
LangGraph 与 LangSmith 深度集成,提供:
- 📊 实时的智能体性能追踪
- 🔍 资源消耗监控
- 🐛 详细的错误堆栈
- 📈 跨复杂工作流的系统行为分析
这在生产环境中至关重要!
4. 灵活的抽象层次
LangGraph 提供了两全其美的方案:
# 低级 API:精确控制
from langgraph.graph import StateGraph
workflow = StateGraph(AgentState)
workflow.add_node("step1", node1)
workflow.add_edge("step1", "step2")
# 高级 API:快速开发
from langgraph.prebuilt import create_react_agent
agent = create_react_agent(
model=llm,
tools=tools,
checkpointer=memory
)这使得 LangGraph:
- 比纯低级框架更易用
- 比纯高级框架更灵活
- 适合从原型到生产的全生命周期
5. 多智能体协作的卓越能力
智能体专业化
# 研究员智能体
researcher = create_react_agent(
model=llm,
tools=[web_search, arxiv_search],
name="researcher"
)
# 分析师智能体
analyst = create_react_agent(
model=llm,
tools=[data_analysis, visualization],
name="analyst"
)
# 协调器
workflow = StateGraph(TeamState)
workflow.add_node("research", researcher)
workflow.add_node("analyze", analyst)
workflow.add_conditional_edges("research", route_to_analyst)分组工具和职责可以带来更好的结果,因为专注的智能体在特定任务上更容易成功,而不是从几十个工具中选择。
6. 条件分支和动态响应
def should_continue(state: AgentState) -> str:
if state["error_count"] > 3:
return "escalate_to_human"
elif state["confidence"] > 0.9:
return "finalize"
else:
return "retry"
workflow.add_conditional_edges(
"process",
should_continue,
{
"retry": "process",
"finalize": "output",
"escalate_to_human": "human_review"
}
)这种条件分支能力使得 LangGraph 能够:
- 动态响应变化的条件
- 无缝集成人机协作组件
- 在 AI 工作流中实现复杂的业务逻辑
7. 不会将你锁定在单一的认知架构中
许多框架会强制你使用特定的智能体模式(如 ReAct、Plan-and-Execute 等)。
LangGraph 提供了一个更具表达力的框架,能够处理公司独特的任务,而不会限制你使用单一的黑盒认知架构。
你可以:
- 混合使用不同的智能体模式
- 自定义状态转移逻辑
- 实现完全定制化的工作流
8. 弥合刚性和完全自主之间的鸿沟
LangGraph 本质上弥合了过度刚性的传统聊天机器人和完全自主的智能体之间的鸿沟,为复杂的 AI 工作流提供了受控的灵活性。
传统聊天机器人 ← [LangGraph:可控的灵活性] → 完全自主智能体
(太僵化) (难以控制)快速决策指南
选择 LangGraph,如果你:
✅ 需要构建复杂的、多步骤的生产级应用 ✅ 需要精确控制智能体的行为和流程 ✅ 需要循环、条件分支和非线性工作流 ✅ 需要故障容错和持久化能力 ✅ 需要人机协作模式 ✅ 重视可观测性和调试能力 ✅ 想要一个不会过时的长期技术投资
考虑其他框架,如果你:
🔹 CrewAI:只需要快速原型开发,角色分工明确 🔹 AutoGen:专注于自主代码生成和企业级应用 🔹 Haystack:只构建文档问答系统 🔹 OpenAI Swarm:做简单实验(注意:仍为实验性质)
真实世界的评价
根据 2025 年开发者社区的第一手反馈:
"CrewAI 是你优雅团队协作和快速迭代的首选,LangGraph 适合精确控制和生产级流程,AutoGen 则适合挑战 AI 智能体的极限 —— 如果你准备好应对其复杂性的话。"
"LangGraph 在 2025 年脱颖而出,成为生产级复杂多智能体系统的首选,在这些系统中,控制、可观测性和状态行为是关键要求。"
总结
虽然市场上有许多优秀的 Agent 框架,但 LangGraph 在以下方面具有无可比拟的优势:
- 架构优势:图状态机提供最大的灵活性和控制力
- 生产就绪:内置持久化、容错、人机协作
- 可观测性:与 LangSmith 的深度集成
- 灵活抽象:同时提供低级和高级 API
- 不锁定架构:支持任何认知模式,不受限于单一黑盒
- 活跃生态:LangChain 生态系统的持续演进
这就是为什么我们选择 LangGraph 作为本教程的核心框架 —— 它不仅能帮你快速入门,更能支持你构建真正的生产级 AI 应用。
在接下来的章节中,我们将深入探索 LangGraph 的强大功能,从核心概念到高级模式,一步步掌握构建智能体应用的艺术。