让 AI 智能体持续工作:进度保存与失败恢复
让智能体连续做几小时的工作,难点不只是把任务交给它。会话切换、工具超时,甚至一次进程重启,都可能打断执行。下一轮需要知道:哪些工作已经完成,结果放在哪里,还有什么没有验证。
把大任务拆成能验收的小步
以“给网站增加文章搜索”为例,可以分成索引生成、搜索交互和结果验证。每一步都写清完成条件,例如“输入一个词,能找到标题中包含它的文章”,而不是笼统地记录“搜索已完成”。
Anthropic 的长任务智能体工程文章采用了功能清单、逐项推进和进度记录,帮助新会话接手工作;它也强调,功能需要经过实际测试,不能仅凭模型自述就标记完成。[1]
保存状态,不只保存聊天
一份便于接手的记录,可以包含四项:本轮修改了什么、如何验证、还有什么没通过、下一步从哪里开始。例如:
任务:文章搜索
已完成:生成标题索引,关键词查询测试通过
待验证:手机端长标题的显示
下一步:打开搜索结果页,检查窄屏排版
工作记录方便接手,但程序恢复还需要持久保存当前步骤、必要输入和已有结果。以 LangGraph 为例,检查点可以保存执行状态;如果只使用内存存储,进程重启后记录仍会丢失。保存下来的状态是恢复依据,具体从哪一步继续,还需要在执行流程中设计。[2]
恢复之前,先核对结果
恢复时,先读取进度,再检查文件、运行环境和关键功能是否与记录一致。如果状态不符,先找出中断位置,不急着重复上一条命令。
涉及外部操作时,还要区分“没有执行”和“执行了但没有收到结果”。例如创建内容的请求超时后,有任务编号时,可以先查询是否已经创建;若接口支持幂等键,同一次操作的重试应按接口约定复用原键,避免重复创建,而不是每次换一个新键。[3]
对可重试的故障,应设置次数上限;遇到权限不足或需要人工选择的节点,则保存现场、说明原因,等待处理。这样,下一轮工作才有明确的接续点。