Agent 执行中断后怎样恢复?如何避免重复副作用?
Checkpoint 能让任务从保存的位置继续,不能保证外部操作只执行一次。
最容易漏掉的是这个窗口:退款接口已经成功,Agent 还没保存结果就崩溃了。恢复后看起来这一步没做过,再调一次就可能重复退款。
恢复前先确认业务结果
Section titled “恢复前先确认业务结果”在调用前保存稳定的业务操作标识,让下游用它去重并记录结果。恢复后先查询状态,或者用同一标识重试。标识要对应同一次业务意图,不能每次让模型重新生成,也不能把同一订单的所有退款都当成一笔操作。
去重与业务写入是否原子、幂等记录保存多久、同一标识但参数不同怎样处理,都影响实际保证。只在 Agent 侧写“执行过”,仍然存在跨系统的崩溃窗口。
下游如果既不能幂等,也不能查结果,就记录为“结果未知”,人工核对或按业务规则补偿。不能直接承诺 exactly-once。
超时为什么不等于失败?
Section titled “超时为什么不等于失败?”调用方只知道没及时收到响应。请求可能没到,也可能已经执行成功。对写操作,应查状态或幂等重试,不能把“没响应”当成“没发生”。
上下文摘要和 Checkpoint 有什么区别?
Section titled “上下文摘要和 Checkpoint 有什么区别?”摘要帮助模型理解当前目标和未完成事项;Checkpoint 与执行记录帮助程序恢复状态。一个负责信息,一个负责执行,不能互相替代。
资料
核对于 2026-10-13。阿里 AgentScope 状态保存、Spring AI Alibaba 状态与人工中断。机制依据见 Persistence、幂等 API 与 长期任务 Harness。状态设计和退款流程为工程示例。延伸阅读:上下文持久化与恢复。