加载中...
加载中...
为智能体的长任务执行过程设置「存档点」——任务中断或崩溃后,从最近的检查点恢复执行而非从头开始,避免浪费已完成的计算和Token消耗
Agent Checkpointing(检查点机制)是在智能体执行长任务过程中,定期将当前状态——包括对话历史、已完成的工具调用结果、内存中的中间数据、推理上下文——序列化保存到持久化存储中。当任务因超时、网络中断、LLM 限流或程序崩溃等原因中断后,Agent 可以从最近的检查点「复活」继续执行,而不是从零开始重新推理和调用工具。这相当于给 Agent 的长任务装上了「存档按钮」,避免已完成的昂贵推理(尤其是多轮 LLM 调用和工具 API 调用)付诸东流。
检查点机制在 Agent 系统中按粒度分为三种层级,通常三层协同工作:
**1. 消息级检查点(Message-Level Checkpoint)——最细粒度**
每次 LLM 推理完成后,将完整的对话消息列表(含 system prompt + user messages + assistant responses + tool results)序列化保存。这是最基础的检查点形式。恢复时直接还原消息列表,LLM 从最后一个 assistant 消息之后继续推理。优势是实现简单、开销低(仅序列化 JSON 消息数组),但只能恢复到上一轮推理,不能恢复「推理到一半」的状态。
**2. 工具级检查点(Tool-Level Checkpoint)——关键节点**
在每次工具调用完成后保存检查点。除了消息列表外,还包含工具调用的完整上下文:工具名称、输入参数、返回结果、调用时间戳。这种粒度允许在工具调用中途崩溃后恢复,避免重复昂贵的 API 调用(如一次文件上传、一次数据库事务)。实现要点:每个工具调用的结果必须是幂等可重放的——即恢复后,Agent 能识别出「这个工具已调用过,直接用缓存结果」而不是重新执行。
**3. 图级检查点(Graph-Level Checkpoint)——完整状态**
对于采用 DAG/状态图编排的 Agent(如 LangGraph),检查点保存完整的图执行状态:当前节点位置、所有边的遍历记录、各节点的输入输出。这是 LangGraph 内置的 `checkpointer` 机制——支持从任意中间节点恢复执行。优势是可以在复杂分支流程中准确定位恢复点,但序列化开销最大。
核心设计原则:检查点必须包含三要素——**状态快照**(当前已知信息)、**位置指针**(任务进度标记)、**幂等标记**(已完成操作的指纹,防止重复执行)。
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧