LangGraph 设计与实现
前言
前言
写作动机
当你用 LangChain 构建了第一个 RAG 应用后,你很快会遇到一个问题:真实世界的 AI 工作流远比一条直线管线复杂。
你需要循环——Agent 调用工具后需要回到模型继续推理。你需要分支——根据模型输出动态决定下一步。你需要并行——多个 Agent 同时工作然后合并结果。你需要持久化——用户关掉浏览器明天回来要能继续。你需要人工介入——关键决策需要人类审核。
这些需求催生了 LangGraph。
LangGraph 不是 LangChain 的简单扩展,而是一个独立的有状态工作流引擎。它的核心设计灵感来自 Google 的 Pregel 分布式计算框架——将 AI 工作流建模为图中的节点和边,节点通过共享状态通信,边决定控制流转。
这本书讲什么
本书从 LangGraph 的源码出发,回答那些文档不会告诉你的问题:
StateGraph.compile()到底做了什么?图定义如何变成可执行的 Pregel 引擎?- Channel 的版本追踪机制如何实现"哪些节点需要被触发"的高效判定?
- Checkpoint 如何实现时间旅行——回退到任意历史步骤并从那里分叉?
interrupt()如何暂停整个执行图并在外部输入后恢复?- 子图如何通过命名空间隔离状态,又如何通过 Command 与父图通信?
每一章大量使用 Mermaid 图表可视化复杂的数据流、状态机和执行时序。
本书读者
- AI 应用开发者:已经用过 LangChain,想构建更复杂的多步骤、有状态 Agent 工作流
- 后端工程师:对状态机、图执行引擎、分布式计算模型感兴趣
- 架构师:需要评估 LangGraph 是否适合你的 Agent 平台
- 对 Pregel 模型好奇的人:想看 Google 的分布式图计算思想如何应用于 AI Agent
你需要有 Python 基础,了解 LangChain 的 Runnable 接口会更好(但不是必须的——第 2 章会回顾关键概念)。
本书组织
graph TD
P1["第1-2章\n为什么 & 架构总览"] --> P2["第3-4章\nStateGraph & Channel"]
P2 --> P3["第5-7章\n图编译 & Pregel 引擎\n& 任务调度"]
P3 --> P4["第8-10章\nCheckpoint & Interrupt\n& Command"]
P4 --> P5["第11-13章\n子图 & Send\n& 流式输出"]
P5 --> P6["第14-16章\nRuntime & Store\n& 预构建组件"]
P6 --> P7["第17-18章\n多 Agent 实战\n& 设计模式"]
前两章建立全景认知,第 3-7 章深入核心引擎,第 8-10 章讲持久化与控制流,第 11-16 章覆盖高级特性,最后两章是实战与总结。
源码版本
本书基于 LangGraph 1.1.6 和 langgraph-checkpoint 4.0.1 源码分析。
git clone https://github.com/langchain-ai/langgraph.git
核心代码在 libs/langgraph/langgraph/ 和 libs/checkpoint/ 目录下。
感谢 LangChain 团队和 Nuno Campos 创建了 LangGraph,让构建复杂的有状态 AI 工作流成为可能。