Checkpoint(检查点)

长任务执行过程中持久化的状态快照,用于进程崩溃或中断后从最近的点恢复。

生产方式:人写签发:晓黎学习复核:2026年9月21日被 3 个词条引用

一句话定义

Checkpoint = 在长任务执行过程中,把当前状态持久化保存下来,让任务中断后能从这一点继续,而不必从头开始。

存储的是什么

一个可用的检查点至少要包含四类信息:

内容作用
进度标记已完成到哪一步
中间产物避免重新生成
关键决策保持前后一致
状态源的位置知道从哪里恢复

最后一项最容易被忽略。如果系统用事件日志作为真源,检查点必须记录日志序号,否则恢复后业务状态与日志不同步。

interface Checkpoint {
  id: string
  timestamp: number
  sessionSeq: number              // 关键:事件日志序号
  completedSteps: string[]
  artifacts: Record<string, string>
  state: Record<string, unknown>
}

检查点与事件日志的区别

维度检查点事件日志
内容某一时刻的状态快照所有状态变化事件
恢复速度快(直接加载)慢(需要重放)
可解释性差(不知道如何变成这样)好(能重建完整过程)
存储成本低(只存状态)高(存全部事件)

两者互补:**事件日志用于追溯,检查点用于快速恢复。**用日志序号把两者关联起来,就能同时获得可解释性和恢复速度。

什么时候保存

策略时机权衡
每条事件立即不丢数据,但性能差
每个请求请求前后平衡
每个阶段阶段边界性能好,可能丢一个阶段
定时固定间隔可控,但有时间窗口

实践建议:在阶段边界保存。原因是阶段边界通常对应「一个可独立验证的完成单元」,丢失一个阶段的工作比丢失一条消息更可接受。

在 Agent Harness 中的位置

框架检查点机制
LangGraphcheckpointer 保存图状态,支持时间旅行调试
DeepSeek Harnesssession-checkpoint-policy 拥有每次请求的持久性检查点
DeepSeek Harness(后台任务)进程内 registry 的 job 随进程消失,官方明确暴露这一边界

注意最后一行:不是所有状态都需要跨重启保存。后台任务的执行句柄通常无法持久化,诚实地暴露这个边界比假装支持恢复更好。

相关

互链

链接来自概念卡正文里的双链,编译时能解到本期词条集的才成为站内链接。

反链(3)

出现在哪些课时里(6)

判据与「课时正文里能不能点出来」是同一个:那一节确实提到了它。点课时走当前页跳转, 它是导航,不是词条链接。

关联图

只画这一条与它直接相连的词条,边与上面两区同源。可拖拽、可缩放,点节点是新标签。

出处

路径是本地知识库(Obsidian 库)里的位置,正文与概念卡逐字对应。

  • 概念卡原文Checkpoint(检查点)03_RESOURCES/概念/checkpoint.md
  • 所属知识地图栏目概念页索引 · 可观测性与可靠性03_RESOURCES/概念/Index.md
  • 正文引用的知识库笔记第 16 讲 错误恢复02_AREAS/AI开发/Harness Engineering/Agent Harness 课程/16-错误恢复:失败是常态.md
  • 正文引用的知识库笔记第 4 讲 Session 与事件日志02_AREAS/AI开发/Harness Engineering/Agent Harness 课程/04-Session与事件日志:可重放的状态.md

编译入库:2026年11月2日。词条由知识库编译而来, 修正要回到概念卡改,再重新编译。