切换深色模式
长任务 Agent:恢复、交付与未解问题
对应 CS329Z · 2026-12-02 · Frontiers & Open Problems。日期为校方课表日期,可能调整。核对官方课表。
资料状态
核对日期:2026-09-19。对应课程尚未开课;本文是基于公开课纲与文中原始资料的原创预习技术解读,不是课堂实录、讲义翻译或官方作业答案。本文于 2026-09-20 深度修订。示例为原创教学设计;离线实验与真实模型实验的边界分别说明,不以推演冒充模型实测。
研究助手已经从一次回答扩展到跨文档调查、人工确认和主动提醒。长任务的难点随之改变:它需要在进程重启、上下文压缩、用户改目标和外部服务故障之后,仍然知道哪些事实成立、哪些动作已经发生。
本讲将前面各章组合成一个恢复协议,并区分能够工程化解决的问题与仍需实验验证的开放问题。
先定义恢复时的可信起点
聊天摘要只是对过去的描述,不能单独证明外部操作成功。恢复应读取版本化任务记录、产物、操作状态和最新用户指令,再重建当前上下文。
参考 长任务 Harness 工程资料,本文设计以下原创恢复顺序:
text
读取任务版本与取消状态
→ 校验已保存产物
→ 对账结果未知的外部操作
→ 恢复尚未满足的证据槽位
→ 组装上下文并继续执行对账应先于重新调用工具。否则系统可能在不知道上次是否成功的情况下再次提交。
三个崩溃窗口对应不同处理
| 崩溃位置 | 已知状态 | 恢复策略 |
|---|---|---|
| 工具调用前 | 已保存操作意图 | 使用原操作 ID 发起 |
| 服务端执行后、响应前 | 结果未知 | 查询或幂等重试 |
| 响应后、产物提交前 | 远端可能成功、本地未确认 | 对账并补写状态 |
如果外部服务不支持状态查询或幂等,某些窗口无法自动判断。正确设计是停在待处理状态,而不是假装完全自动恢复。这种限制应进入产品能力说明。
只读研究允许重复读取,但仍要考虑内容版本变化。恢复时读到新文档,不能悄悄与旧证据混合;要么固定快照,要么明确升级任务数据版本并重新验证受影响结论。
持久状态与模型上下文承担不同责任
持久状态记录权威任务进度;模型上下文是下一轮决策的工作视图。上下文可以压缩、裁剪、重建,持久状态不能因摘要遗漏而消失。
例如摘要没有提到“尚未核实业务去重”,恢复器仍应从任务缺口表装入这一项。若权威状态本身仅是一段摘要,就无法判断遗漏是压缩错误还是任务已经完成。
因此第七讲的记忆分类与第五讲的检查点需要配合:事实、计划、确认和操作记录分别保存,再有选择地进入模型输入。
用户改需求时,要失效的是哪些产物
比较 B 2.0 改为 B 3.0,版本相关证据和结论需要重新核验,但 A 的同版本资料可以继续使用。全部重跑浪费成本,全部保留又会传播旧结论。
可以用依赖关系标注产物:报告依赖主张,主张依赖证据,证据依赖版本与来源。某个条件变化后,只使依赖它的产物失效。这个机制需要额外维护,却让恢复与增量更新更可解释。
迟到子任务携带旧任务版本,只能进入历史区。取消是协作请求,不能保证所有节点立即停下,因此接收端仍要拒绝过期提交。
只有一个恢复者提交当前状态
服务重启时可能有两个工作进程同时接管任务。即使外部操作幂等,它们也可能各写一份不同报告并交替覆盖状态。任务存储需要所有者租约或版本化提交规则。
一个简化办法是提交时携带读取版本:只有当前版本仍等于预期版本,才能更新并递增。另一个进程提交失败后重新读取,不应直接覆盖。租约过期也不意味着旧进程已经停止,因此外部写操作仍需任务版本或隔离令牌检查。
这类控制保护状态一致性,不证明两个进程生成的内容谁更正确。内容仍要通过证据与验收规则。将并发提交和语义质量分开处理,才能避免一个“锁”被误认为解决了长任务的全部可靠性问题。
长任务的停止同样需要证据
任务“还可以再查”并不意味着应该无限运行。交付条件满足、预算耗尽、环境不可恢复或需要用户信息,都应有独立终止状态。产物里保留未解决问题,便于后续继续。
开放式研究很难证明已经穷尽资料。可以约定必要维度、允许来源和预算,把“完成”限定为满足这些条件,而非宣称得到所有真相。这是任务契约的价值。
一次贯穿全系列的恢复验收
从 A、B 比较任务开始,在读取 D2 后中断;恢复后检查约束和引用是否保留。然后将 B 版本改动,确认旧主张失效。若扩展任务授权创建工单,再在服务端成功但响应丢失处中断,确认最终只有一张工单。
最后人为删除一个证据产物。恢复器应发现引用失效并重新读取或报告缺口,不能因为状态写着“完成”就直接交付。
这些实验能证明特定故障路径处理正确,不能证明任意长任务可靠。开放式语义判断、资料完整性和错误相关性仍需要持续评测。
整条工程主线至此闭合:任务契约定义完成,模型提出动作,工具改变或观察环境,证据支撑主张,评测判断产物,版本与操作记录支持恢复。回到逐讲目录,可以沿这条依赖关系选择需要深入实现的部分。