LangGraph 是 LangChain 生态中最重要的低层编排框架之一,它让开发者能够以“图”(Graph)的形式构建复杂、状态持久、多 Actor 的 LLM 应用。不同于传统的 LangChain Chain 或 Agent,LangGraph 真正解决了“长生命周期、有状态、可恢复、可中断、可调试”的核心痛点,被广泛用于构建生产级 Agent、自主工作流、多 Agent 协作系统等场景。
本文从入门 (零基础快速上手)到深入 (源码级原理分析),再到实践 (基于 LangGraph 原理手写一个简易版 LangGraph),帮助你真正“精通”LangGraph。所有代码均在 Python 3.10+ 环境下测试通过,基于官方仓库 原理提炼。
LangGraph 的核心思想源于 Google Pregel(一种大规模图计算框架)和 NetworkX 图接口。它把 LLM 应用建模为有向图 :
节点(Node) :执行具体动作的函数或 Runnable(LLM 调用、工具调用、Python 函数等)。
边(Edge) :控制流(无条件边、条件分支边、动态 Send)。
状态(State) :共享的 TypedDict,通过 Channel(通道)进行更新,支持多种归约器(reducer,如 append、last_value)。
执行引擎 :Pregel 算法 —— “超级步”(superstep)模型,实现 Bulk Synchronous Parallel(BSP),支持循环、并行、检查点持久化。
与 LangChain 的区别 :
LangChain Chain 是线性/树状流程,适合简单任务。
LangGraph 是循环有向图 (支持 cycle),天然适合 ReAct Agent、规划-执行-反思循环、多 Agent 协作。
官方文档定位:LangGraph 是“为长期运行、有状态 Agent 设计的低层框架”,LangChain 很多高级 Agent(如 create_react_agent)底层就是 LangGraph。
核心优势 :
持久化(Checkpoint) :任意时刻保存状态,支持故障恢复、人机协同。
Human-in-the-Loop :中断执行,人工修改状态后继续。
流式 + 调试 :stream_mode 支持 values/updates/debug/messages,与 LangSmith 无缝集成。
可扩展 :自定义 Channel、Subgraph、Remote Pregel。
生产就绪 :支持 Postgres/SQLite 持久化、异步执行、重试策略。
官方最新版本(2026 年 4 月):langgraph==1.1.7a1(预发布),核心位于 libs/langgraph/langgraph/ 下,主要模块包括:
graph/:StateGraph、MessageGraph、分支逻辑。
pregel/:_loop.py、_runner.py、_algo.py、_checkpoint.py 等实现 Pregel 执行引擎。
channels/:LastValue、Topic、BinaryOperatorAggregate 等通道实现。
继续阅读