LangGraph 00:系列概要

前言

LangChain 的 create_agent 能快速拼出「模型 + 工具」循环。
一旦要自定义状态、并行分支、人工审批或可恢复长任务,就要直接操作 LangGraph 的状态图。
本系列从手写 StateGraph 讲到工具、检查点、HITL、流式、子图,最后用工作流模式收束。
本文不写可运行代码,只说明后续各篇讲什么、适合什么时候读。
动手环境、Coding Plan 与最小图见下一篇 《LangGraph 01:生态与环境》。

怎么读

建议按编号顺序读:01 到 04 打底,05、06 接上动态路由与工具,07 再谈循环上限。
08 之后按任务跳读即可。

  1. 只要标准 Agent:先看 LangChain 系列;本系列补手写图时,工具看 06,循环上限看 07。
  2. 要可恢复会话或跨进程落库:08 检查点,09 时光旅行,10 Store。
  3. 要人点头再继续:11 动态中断,12 静态闸门。
  4. 要拆大图或套工作流形状:14、15。

示例统一对接火山方舟 Coding Plan,Python 3.12+,依赖用 uv。
与 LangChain 系列可共用同一套 .env

图基础

01 生态与环境

对比 LangGraph 与 create_agent 的分工。
用 uv 装依赖、配置 Coding Plan,跑通一个不调 LLM 的最小 StateGraph
从这里开始动手。

02 StateGraph 基础

状态怎么定义、节点返回的局部更新怎么合并。
覆盖 TypedDict、dataclass、Pydantic,以及 Annotated 与自定义 reducer。
本篇仍可不调模型。

03 消息与多 Schema

对话图几乎都围绕 messages
讲解 add_messages、Overwrite、输入/输出 Schema 与私有状态,并用 MessagesState 接上模型。

04 边与条件路由

图的跳转:固定边、并行扇出、条件边、path_map,以及 defer 汇合。
最后用 LLM 做一个内容类型路由示例。

控制与工具

05 Send 与 Command

编译期边不够用时,用 Send 在运行时按列表派生 N 个同构任务。
Command 把状态更新和 goto 写在同一个返回值里。
含扇入归并与 MapReduce 词频示例。

06 工具调用

工具如何定义、如何挂到运行时、按场景怎么选。
默认可抄路径是 @tool + bind_tools + ToolNode;再补并行调用、手写节点、包装与写入状态。

07 循环重试与缓存

「模型 ⇄ 工具」多轮往返,以及如何避免把递归跑爆。
覆盖条件边 / Command 循环、RemainingStepsRetryPolicy 与节点缓存。
最小工具闭环见 06,本篇侧重循环与韧性。

记忆

08 Checkpoint 持久化

给图加上 checkpointer 和 thread_id,同一会话才能续跑。
查询 get_state / get_state_history;可选 PostgresSaver,连接串从 DB_URL 读取。

09 时光旅行

在检查点上做错误恢复、replay 与 fork。
仍是同一条会话时间线,不涉及跨线程档案。

10 Store 与 Context

Store 是跨线程长期键值,演示 InMemoryStorePostgresStore
请求级、不应进检查点的数据用 Runtime context

人机协同

11 HITL 人机协同

节点里 interrupt() 暂停,再用 Command(resume=...) 按同一线程续跑。
覆盖审批、编辑、并行多中断,以及检查点上的分步恢复。

12 静态断点

编译期声明 interrupt_before / interrupt_after,适合调试或固定闸门。
恢复用 invoke(None) 逐步推进。

输出与组合

13 流式输出

stream / astreamstream_modevaluesupdatesmessagescustom
以及 stream_writerastream_events

14 子图

把一张图嵌进另一张。
四种模式:子图当节点、checkpointer 共享、子图内 interrupt、跨图 Command.PARENT + goto

15 工作流模式

用短示例串常见形状:提示链、并行、路由、编排-工人、评估-优化、最小工具 Agent。
当作本系列收束对照表,细节回前面各篇。

总结

  1. 00 只负责地图;动手从 01 开始。
  2. 01~04 是图的语法;06 是工具;08 是会话记忆,09 是时间线操作,10 是跨线程档案。
  3. 15 是总复习;标准循环可走 create_agent,自定义图再回 0607