Skip to content

前言

写作动机

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

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

这些需求催生了 LangGraph。

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

这本书讲什么

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

  • StateGraph.compile() 到底做了什么?图定义如何变成可执行的 Pregel 引擎?
  • Channel 的版本追踪机制如何实现"哪些节点需要被触发"的高效判定?
  • Checkpoint 如何实现时间旅行——回退到任意历史步骤并从那里分叉?
  • interrupt() 如何暂停整个执行图并在外部输入后恢复?
  • 子图如何通过命名空间隔离状态,又如何通过 Command 与父图通信?

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

源码版本

本书基于 LangGraph 1.1.6langgraph-checkpoint 4.0.1 源码分析。

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

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

致谢

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

基于 VitePress 构建