先这样答
结论是,Checkpoint 不能只保存执行到了哪一步。它要保存三类信息。第一类是任务目标与当前计划,让 Agent 知道恢复后还要完成什么。第二类是已完成步骤及其结果,让 Agent 能直接复用已有结果。第三类是未决状态,也就是中断时还没有确认完成的部分。
恢复时先加载快照,再校验外部状态与快照是否一致。校验重点是副作用是否已经生效。比如某一步要操作订单,Agent 不能看到快照里没有成功结果就直接重发。它要先查询订单状态。若操作已经生效,就把这一步视为已完成。若操作没有生效,再继续执行。
安全恢复还依赖两个前提。外部操作要幂等,也要支持查询。完成校验后,Agent 跳过快照中已经完成的步骤,从未完成部分继续。Checkpoint 也不需要每轮都保存。应在关键节点落盘,让快照覆盖重要的执行进度和状态变化。
面试官会怎么追问
- 「Checkpoint 里具体要存哪些内容?」 存任务目标与当前计划。存已完成步骤及对应结果。还要存未决状态,避免恢复时把未确认的步骤误判为成功或失败。
- 「为什么恢复时不能直接从中断位置继续?」 因为外部副作用可能已经生效,但快照还没有记录结果。直接继续可能重复执行外部操作。恢复时必须先查询外部状态,再决定跳过还是继续。
- 「Checkpoint 是不是每执行一轮都要保存?」 不是。应在关键节点落盘。面试里要说明保存频率取决于关键执行进度,而不是机械地每轮保存一次。
回答的坑
- 只说保存执行进度,不说任务目标、已完成结果和未决状态,会让恢复依据不完整。
- 加载快照后直接重发外部操作,不先查询副作用是否生效,无法保证安全恢复。
同系列的题
—— 本题完 ——