LangGraph 是 LangChain 官方推出的图编排框架,用来构建带循环、分支、断点恢复、人机介入的复杂 Agent / 多智能体工作流;弥补 LangChain 原有 Chain 只能单向线性执行的短板。 一句话定位:LangChain = AI 组件库;LangGraph = Agent 状态机运行引擎。
一、核心基础概念
1. State(状态)
整个图全局唯一共享上下文,所有节点读写同一个 State,执行过程中不断更新。
-
本质是一个 Pydantic / TypedDict 结构
-
reducer(归约函数)
:定义字段合并规则(最核心)
-
add_messages
:消息追加(对话历史)
-
自定义 reducer:覆盖、合并列表、去重等逻辑
区别普通变量:节点不直接修改对象,返回增量更新字典,由 reducer 合并到全局状态。
from typing import Annotated, Sequencefrom langchain_core.messages import BaseMessageimport operatorclass State(TypedDict): messages: Annotated[Sequence[BaseMessage], operator.add]
operator.add = 追加策略,对应 Java 版 Spring‑AI‑Alibaba Graph 的 AppendStrategy。
2. Graph / StateGraph
StateGraph 是图定义构建器(DSL),负责注册节点、添加边、条件路由。
- 内置两个特殊常量:START(入口)、END(结束)
- 流程:定义 State → 实例化 StateGraph → add_node → add_edge /add_conditional_edges → compile ()
3. Node 节点
最小执行单元,输入 State,返回状态更新字典。 节点类型:
自定义 Python 函数节点(业务逻辑)
LLM Node
:调用大模型 invoke /stream
Tool Node
:ToolNode 执行 function‑call
Human‑in‑the‑loop 人工节点
子图 SubGraph(把一个完整 Graph 封装成节点)
节点是纯函数风格:只依赖输入 state,输出增量更新。
4. Edge 边(流转控制)
两类边:
普通边 add_edge(A, B)
:执行完 A,无条件走到 B
条件边 add_conditional_edges
:执行完节点后,运行路由函数,根据当前 state 返回下一个节点名称,实现 if‑else、循环判断。
典型路由逻辑:
LLM 输出是否需要调用工具 → 需要走 ToolNode,不需要走 END
5. CompiledGraph(编译后的可执行对象)
调用 graph.compile() 得到运行实例:
-
invoke()
:一次性完整执行,返回最终 state
-
stream()
:流式逐节点返回事件,可拿到每一步消息、工具调用,前端做 Agent 思考过程展示
-
astream()
异步流式(生产高并发常用)
二、三大核心高级能力(LangGraph 标志性特性)
1. Checkpointer 检查点 / 持久化快照
每走完一个节点,自动保存一份完整 State 快照。
- 内存:MemorySaver()(本地调试)
- 生产持久化:SqliteSaver / PostgresSaver / RedisSaver
价值:
thread_id:一条独立会话的唯一 id,不同对话状态互相隔离。
2. Human‑in‑the‑Loop 人机介入
两种实现方式:
interrupt_before / interrupt_after
:在指定节点前后自动暂停,保存 checkpoint
外部通过 update_state() 修改状态,再 resume 继续执行
业务场景:Agent 生成方案 → 人工审批确认 → 继续执行后续流程。
3. Subgraph 子图复用
一个完整 CompiledGraph 可以作为一个 Node 嵌入父图,实现模块化:
- 子图可以独立状态或者和父图状态映射转换
- 适合多 Agent 场景:每个子图 = 一个独立子智能体
三、经典内置组件 & 标准 Agent 范式
1. ReAct Agent(最基础循环 Agent)
标准流程图:START → LLM节点 → 路由判断
- 需要工具 → ToolNode → 返回结果回到 LLM(循环)
- 不需要工具 → END 结束
配套内置工具节点:ToolNode + tools_condition 路由函数(LangGraph 内置封装好的判断逻辑)
2. 预置高级 Agent 模式
Sequential 串行流水线
:A→B→C,固定顺序执行
Parallel 并行节点
:使用 Send 原语,并行启动多个子任务,之后结果汇聚(Map‑Reduce)
Supervisor 主管多智能体
:主管 LLM 负责分发任务给多个子 Agent,收集结果迭代汇总
Multi‑turn RAG Agent
:检索‑思考‑再检索循环
Self‑Reflection 自我反思 Agent
:执行完成后走反思节点,判断结果是否合格,不合格重新执行
3. Send 原语(动态批量任务)
Send("子节点", 独立状态),在运行期动态生成 N 个并行任务,实现 MapReduce。
四、流式与异步
stream()
/ astream_events():可以区分事件类型:on_chat_model_stream、on_tool_start、on_node_end
可以在前端展示:模型打字机输出、工具调用日志、Agent 思考链路
支持配置 recursion_limit 最大迭代次数,防止死循环(生产必配)
五、LangGraph 完整执行生命周期
六、LangGraph 生态周边
LangGraph Studio
:可视化调试 IDE,查看状态流转、断点调试
LangGraph Cloud
:云端部署托管服务,支持 API 调用、持久存储、监控
langgraph‑checkpoint‑*
:各种持久化存储驱动
LangGraph SDK:提供后端服务接口,对外提供 Agent HTTP 服务
七、横向对比(面试高频)
LangGraph vs LangChain Chain
- Chain:单向线性,不能循环,没有原生状态快照、没有断点恢复
- LangGraph:状态机,支持循环、分支、人工介入、持久化会话,适合复杂长流程 Agent
LangGraph(Python) VS Spring‑AI‑Alibaba Graph(Java) VS LangChain4j
表格
| 语言 | Python | Java | Java |
| 状态合并 | TypedDict + reducer | OverAllState + KeyStrategy | ChatMemory(无状态图) |
| Checkpointer | 原生完善 | 原生支持 | 无原生 |
| Human‑in‑the‑loop | 成熟 | 支持 | 无 |
| 子图 & 并行 Send | Send 原语 | 子图,并行节点 | 无原生编排 |
| 生态 | LangChain 完整组件 | 复用 Spring AI 底层 | AiServices 高层 API |
| 适用场景 | Python 复杂 Agent 原型 / 业务 | Java 微服务生产 Agent | 简单 Java 对话、工具调用 |
LangGraph vs AutoGPT / CrewAI
- LangGraph = 底层编排引擎,灵活可控,自己定义每一步逻辑
- CrewAI = 高层多 Agent 框架,基于 LangGraph 封装,开箱即用团队协作 Agent
八、生产踩坑 & 最佳实践
Reducer 函数一定要定义
:不指定合并策略会直接覆盖消息,丢失对话历史
recursion_limit
设置合理上限,避免死循环耗尽 token 与费用
生产必须替换内存 Checkpointer 为持久化数据库,绑定唯一 thread_id 管理会话
Interrupt 暂停后,修改状态优先使用 update_state,不要直接篡改快照
子图尽量做状态隔离,避免父图字段冲突
流式输出区分不同事件类型,前端做精细化展示
大并发场景优先使用异步 astream,避免阻塞
九、高频面试题汇总
State 和 reducer 的作用是什么?operator.add 含义?
State 是全局上下文;reducer 定义字段合并策略;operator.add 实现消息追加而不是覆盖。
Checkpointer 和 thread_id 的作用?
Checkpointer 保存每一步快照;thread_id 标识一条独立会话,用来断点恢复、人机暂停恢复。
Human‑in‑the‑loop 原理是什么?
执行到 interrupt 节点暂停,保存 checkpoint;外部更新状态后基于快照继续执行。
什么是 Send 原语?Map‑Reduce 如何实现?
运行时动态生成多个独立任务并行执行,最后汇聚结果。
ReAct Agent 在 LangGraph 的执行流程?
LLM 推理 → 条件路由判断是否调用工具 → ToolNode 执行工具 → 结果回传给 LLM 循环,直到无需工具结束。
LangGraph 和普通 LangChain Chain 的区别?
Chain 只能单向线性执行;LangGraph 是状态机,支持循环、分支、断点恢复、人工介入,适合复杂 Agent。
SubGraph 是什么?使用场景?
一个完整图封装成节点,实现 Agent 模块化、多智能体复用。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析 ✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑 ✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操 ✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用 ✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代 ✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

本文转载,如有侵权,请联系删除。
网硕互联帮助中心



评论前必须登录!
注册