恢复应该接续任务,而不只是重启进程

发布于

从检查点到外部副作用,整理可靠恢复需要保存和验证的边界。

Agent任务恢复研究札记
目录 0%

沿着“进程还活着,任务却没有向前”的问题继续想:即使能够正确识别停滞,我们仍然需要回答,究竟从哪里恢复。

检查点保存了什么

保存一段对话,并不一定保存了任务。工作区中的文件、工具返回的结果、尚未完成的操作,以及已经对外产生的效果,都可能决定下一步是否安全且有效。

因此,检查点的新鲜程度只是一个维度。更关键的是它覆盖了哪些状态,这些状态之间是否相容,以及恢复时还能不能核验。

重试之前,确认已经发生的事

读取失败和提交失败具有不同的含义。后者可能是操作未发生,也可能是操作已成功、确认信息却丢失了。盲目重复执行,会把恢复变成新的错误来源。

这提示我,恢复策略需要认识工具行为的边界。可以重复的读取、需要先查询状态的写入,以及需要人工判断的不可逆操作,不应共用一种重试逻辑。

如何比较不同策略

一个值得展开的实验,是在相同任务和故障条件下,对比固定心跳、仅依赖探测、仅依赖检查点,以及结合进展判断的策略。

除了成功率,还应该记录无效重试、丢失工作、重复副作用与恢复耗时。否则,一个看起来更积极的控制器,可能只是以更多操作换来了表面的完成率。

以上是从原始概念笔记中整理出的实验问题,目前没有可报告的对比结果。