五要素的最后一个——Super-step 与 Checkpoint。这两个经常一起讲,因为它们是 LangGraph 能做「长流程、可恢复 Agent」的根基。

前面几篇讲的都是「图怎么定义、怎么跑」。这一篇讲「图跑起来,怎么存档、怎么恢复」——这是从 demo 到生产的关键一跃。

Super-step:图的推进节拍

第 9 篇提过,LangGraph 不是「一口气跑完整张图」,而是按 super-step(超级步)推进:每个 super-step 执行该跑的节点,执行完把 state 存一下,再进下一个 super-step。

Super-step:一步步推进

这种「逐步推进」借鉴自经典的 BSP(块同步并行)模型。它的好处是每一轮都是个清晰的边界:执行、存档、决策下一步,三者分开。

为什么不能一口气跑完

为什么非要分步?一口气跑完不是更简单吗?因为生产环境的 Agent 有几个需求,是「一口气跑完」满足不了的:

  • 要能恢复:跑到一半进程崩了,得能从断点继续,而不是从头来
  • 要能暂停:跑到敏感步骤要等人审批,得能「停在那」(下一篇 HITL)
  • 要能跑很久:一个复杂任务可能跑几分钟甚至几小时,不能占着内存不放

这些需求的前提都是**「每一步的状态被保存下来」**。如果不存档,崩了就全丢,也没法暂停。Checkpoint 就是干这个的。

一口气跑完 vs 逐步存档

Checkpoint:每一步存档

Checkpoint 是「把当前 state 存下来」的动作。每过一个 super-step,LangGraph 自动给当前 state 拍一个快照(snapshot),存进 checkpointer。

Checkpoint:每个 super-step 存一次档

这些快照按 thread_id 组织——一个 thread 对应一次会话/一次运行。同一个 thread 的所有快照连起来,就是这次运行从头到现在的完整轨迹。

Checkpoint 带来的能力

有了每步存档,三件事变得可能:

1. 崩溃恢复。进程崩了,从最后一个 checkpoint 恢复,不用重跑。这对跑很久的任务至关重要——谁也不想一个跑了半小时的任务因为一个异常从头再来。

2. 中断恢复(HITL 的基础)。下一篇讲的「跑到一半暂停等人审批」,本质就是「存好 checkpoint,停下;人审完,从 checkpoint 继续」。没有存档,暂停了就接不上了。

3. 回溯与重放。可以回到任意一个历史的 checkpoint,从那里重新跑(甚至改了输入再跑)。这是 LangSmith replay 调试(第 40 篇)的基础。

Checkpoint 带来的三种能力

Thread:会话的边界

Checkpoint 按 thread 组织,thread 是「一次会话/一次运行」的边界。不同的对话用不同的 thread_id,彼此隔离。

这点对记忆很关键(第 36 篇展开):短期记忆 = 一个 thread 内的 state。同一个 thread 里,前面聊的内容在 state 里,后面能接着聊;换个 thread,就是全新对话,不记得之前。

Thread:会话边界与记忆隔离

Checkpointer 的选择

存到哪?LangGraph 提供几种 checkpointer:

  • 内存 checkpointer:存内存里,快但重启就丢——只适合开发测试
  • 持久化 checkpointer(如 Postgres、Redis):存数据库,重启不丢——生产用这个

生产环境一定用持久化的。内存的只是让你本地跑通 demo,上线必丢数据。

Checkpointer 的选择

收束:从能跑到可靠

这一篇把五要素收尾,讲了 Super-step 与 Checkpoint:

  • 图按 super-step 逐步推进,每步是个清晰边界
  • Checkpoint 每步给 state 拍快照,按 thread_id 组织
  • 它带来崩溃恢复、中断恢复、回溯重放三种能力
  • 生产用持久化 checkpointer,别用内存的

到这里,StateGraph 五要素全部讲完。下一篇讲建立在这些基础上的一个重要应用——Human-in-the-Loop:怎么让 Agent 跑到一半暂停,等人介入后再继续。


关于十三Tech

我是十三,All in AI Agent 方向的架构师,专注 AI 工程实践。我相信 AI 是程序员的最佳搭档。

如果你想跟完这套「图解 LangChain」,欢迎关注公众号 「十三Tech」。全系列 42 篇,会按认识基础、LangGraph 状态机、Agent 与 middleware、RAG 检索、Tools/MCP/记忆、生产化收束这条线更新。

十三Tech公众号二维码