LangGraph 设计与实现

前言

作者 杨艺韬 · 732 字

前言

写作动机

当你用 LangChain 构建了第一个 RAG 应用后,你很快会遇到一个问题:真实世界的 AI 工作流远比一条直线管线复杂。

你需要循环——Agent 调用工具后需要回到模型继续推理。你需要分支——根据模型输出动态决定下一步。你需要并行——多个 Agent 同时工作然后合并结果。你需要持久化——用户关掉浏览器明天回来要能继续。你需要人工介入——关键决策需要人类审核。

这些需求催生了 LangGraph。

LangGraph 不是 LangChain 的简单扩展,而是一个独立的有状态工作流引擎。它的核心设计灵感来自 Google 的 Pregel 分布式计算框架——将 AI 工作流建模为图中的节点和边,节点通过共享状态通信,边决定控制流转。

这本书讲什么

本书从 LangGraph 的源码出发,回答那些文档不会告诉你的问题:

每一章大量使用 Mermaid 图表可视化复杂的数据流、状态机和执行时序。

本书读者

你需要有 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.6langgraph-checkpoint 4.0.1 源码分析。

git clone https://github.com/langchain-ai/langgraph.git

核心代码在 libs/langgraph/langgraph/libs/checkpoint/ 目录下。

感谢 LangChain 团队和 Nuno Campos 创建了 LangGraph,让构建复杂的有状态 AI 工作流成为可能。