《LangGraph 设计与实现》完整目录
- 前言(当前)
- 第1章 为什么需要理解 LangGraph
- 第2章 架构总览
- 第3章 StateGraph 图构建 API
- 第4章 Channel 状态管理与 Reducer
- 第5章 图编译:从 StateGraph 到 CompiledStateGraph
- 第6章 Pregel 执行引擎
- 第7章 任务调度与并行执行
- 第8章 Checkpoint 持久化
- 第9章 中断与人机协作
- 第10章 Command 与高级控制流
- 第11章 子图与嵌套
- 第12章 Send 与动态并行
- 第13章 流式输出与调试
- 第14章 Runtime 与 Context
- 第15章 Store 与长期记忆
- 第16章 预构建 Agent 组件
- 第17章 多 Agent 模式实战
- 第18章 设计模式与架构决策
前言
写作动机
当你用 LangChain 构建了第一个 RAG 应用后,你很快会遇到一个问题:真实世界的 AI 工作流远比一条直线管线复杂。
你需要循环------Agent 调用工具后需要回到模型继续推理。你需要分支------根据模型输出动态决定下一步。你需要并行------多个 Agent 同时工作然后合并结果。你需要持久化------用户关掉浏览器明天回来要能继续。你需要人工介入------关键决策需要人类审核。
这些需求催生了 LangGraph。
LangGraph 不是 LangChain 的简单扩展,而是一个独立的有状态工作流引擎。它的核心设计灵感来自 Google 的 Pregel 分布式计算框架------将 AI 工作流建模为图中的节点和边,节点通过共享状态通信,边决定控制流转。
这本书讲什么
本书从 LangGraph 的源码出发,回答那些文档不会告诉你的问题:
StateGraph.compile()到底做了什么?图定义如何变成可执行的 Pregel 引擎?- Channel 的版本追踪机制如何实现"哪些节点需要被触发"的高效判定?
- Checkpoint 如何实现时间旅行------回退到任意历史步骤并从那里分叉?
interrupt()如何暂停整个执行图并在外部输入后恢复?- 子图如何通过命名空间隔离状态,又如何通过 Command 与父图通信?
每一章大量使用 Mermaid 图表可视化复杂的数据流、状态机和执行时序。
源码版本
本书基于 LangGraph 1.1.6 和 langgraph-checkpoint 4.0.1 源码分析。
bash
git clone https://github.com/langchain-ai/langgraph.git
核心代码在 libs/langgraph/langgraph/ 和 libs/checkpoint/ 目录下。
致谢
感谢 LangChain 团队和 Nuno Campos 创建了 LangGraph,让构建复杂的有状态 AI 工作流成为可能。