外观
LangGraph 的状态、Checkpoint 与人工介入怎么实现?
3 分钟速学卡
30 秒口述: LangGraph 中状态是节点共享、按定义合并的任务数据,Checkpoint 是在稳定线程标识下保存状态快照和执行位置,人工介入则是在高风险节点前中断,把待审内容和版本暴露给人,再携带审批结果恢复。Checkpoint 解决流程恢复,不自动解决外部副作用恰好一次;节点必须幂等,并记录业务键、尝试次数和执行回执。实现时我会区分任务状态与大对象引用,设计中断前后状态契约、并发审批版本校验、超时取消和审计 Trace。
- 本质: Checkpoint 保存“从哪继续”,幂等保证“继续时不重复伤害”,人工介入决定“是否允许继续”。
- 核心机制: 状态字段必须定义合并语义;中断优先放在高风险副作用之前。
- 关键判断: 恢复携带线程、版本和权限;外部执行仍需幂等键与业务回执。
- 项目落地: 故障演练:两名审批人同时操作旧页面,第二个批准覆盖第一个拒绝。通过乐观版本检查使后到请求失败并刷新,审计保留双方动作。
- 边界与坑: “Checkpoint 等于数据库事务。” 它不覆盖外部系统副作用;“恢复就是重新跑节点。” 非幂等节点可能重复执行。
目录
面试官为什么问
考察 durable execution、状态合并、恢复语义和人机协作边界。
小白先看懂
登山队每到营地就记录位置和物资,这是 Checkpoint;遇到危险路段先停下等指挥部批准,这是人工介入;恢复时从营地继续,但若补给订单已下过,就不能无脑再下单。
专业上状态快照与外部系统副作用是两个事实源。类比忽略了并发分支合并和存储事务。
主题教学图片
图:教学图片|LangGraph 的状态、Checkpoint 与人工介入怎么实现?
替代文本: 围绕“LangGraph 的状态、Checkpoint 与人工介入怎么实现?”组织的中文教学图,通过分区、箭头和标签解释核心机制。

读图结论: 快照决定从哪继续;幂等保证不会重复执行。
这张图片用于建立主题机制的直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。
图片生成记录: model=gpt-image-2,generated=2026-07-15,prompt_version=v1,reviewed=2026-07-16,review_basis=user-confirmed;查看生成 Prompt。
图:技术调用流程|暂停、审批与幂等恢复
替代文本: 图状态执行到高风险节点前写入 Checkpoint 并暂停,审批人基于版本决策,恢复时校验版本和幂等键,再执行副作用并写回结果。
图表加载中…
读图结论: 可恢复流程需要状态快照、审批版本和副作用幂等三者配合。
中断应发生在不可逆副作用之前;若中断发生在调用后,必须先查询外部执行状态再决定是否重试。
核心原理
状态字段要有清晰 reducer/合并语义,避免并行节点覆盖。Checkpoint key 应包含线程/任务范围,恢复请求要校验租户和版本。大文件保存对象存储引用,不直接塞入状态。
项目和生产视角
故障演练: 两名审批人同时操作旧页面,第二个批准覆盖第一个拒绝。通过乐观版本检查使后到请求失败并刷新,审计保留双方动作;这是演练建议。
常见错误回答
- “Checkpoint 等于数据库事务。” 它不覆盖外部系统副作用。
- “恢复就是重新跑节点。” 非幂等节点可能重复执行。
- “人工介入就是发通知。” 还需暂停、版本化决策与受控恢复。
递进追问
- 并行节点如何合并状态?
- Checkpoint 应在副作用前还是后写?
- 审批超时和撤回怎样建模?
- 外部调用超时未知时如何恢复?
关联阅读
总结
一句话记忆: Checkpoint 保存“从哪继续”,幂等保证“继续时不重复伤害”,人工介入决定“是否允许继续”。
- 状态字段必须定义合并语义;
- 中断优先放在高风险副作用之前;
- 恢复携带线程、版本和权限;
- 外部执行仍需幂等键与业务回执。