用途
Long Task Coordinator 用于协调长时间运行的工作,使其保持可恢复、有状态且状态报告真实。当任务满足以下任一条件时适用:任务会跨越当前轮次或会话;任务需要向其他执行单元(worker、子代理、后台任务)交接;任务需要检查点、轮询或定时跟进;任务复杂度足够高,丢失状态代价较大。
对于小型、单轮任务应跳过此技能。如果简单规划就足够、恢复逻辑不是主要关注点,可使用 planning-with-files。
主要能力
- 维护单一持久状态文件作为唯一事实来源,聊天历史不被视为可靠的状态存储。
- 状态文件至少记录:目标、成功标准、当前状态、当前步骤、已完成工作、下一步行动、下一个检查点、阻塞项、活跃负责人或 worker。
- 按需分离角色:Origin(拥有目标与验收标准)、Coordinator(拥有状态、排序与恢复)、Worker(执行有界子工作)、Watchdog(仅检查存活与恢复)。简单任务可合并角色,长任务或委派任务应显式拆分。
- 支持显式状态转换,包括 running → awaiting-result、awaiting-result → running、running → paused、running → complete。
- 将恢复与领域工作分离:先恢复(检查执行是否偏离保存状态、预期 worker 结果是否仍待返回、是否需要等待/重试/重新派发),再继续领域工作。
使用方式
每个协调周期按固定顺序执行:READ → RECOVER → DECIDE → PERSIST → REPORT → END。在状态文件更新之前不得报告结论。
操作流程:
- 判断任务是否需要协调。
- 创建或加载状态文件,优先使用易于重新发现的路径,例如 docs/<topic>-execution-plan.md、docs/<topic>-state.md、worklog/<topic>-state.md。若尚无持久状态,可依据 references/workflow.md 创建。
- 每轮开始先恢复:读取状态文件、检查记录的下一步是否仍然合理、确认委派工作是否返回、在采取新行动前修复过时假设。
- 报告前先持久化:更新状态文件,记录新状态、负责人、阻塞项和检查点,然后再向用户或调用方报告进度。
- 诚实结束本轮,状态为 running、awaiting-result、paused、blocked 或 complete 之一,报告状态应与持久化状态完全一致。
非终态轮次必须产生真实进展,至少完成以下之一:派发有界工作、消费新结果、更新当前阶段或决策、持久化新的下一步或检查点、执行显式恢复。若无变化,不得假装任务已推进。
适用场景
- 跨多轮或多会话的长期任务。
- 需要向 worker、子代理或后台任务交接的工作。
- 需要显式等待状态而非“仍在查看”式更新的任务。
- 必须能在中断后从持久状态文件恢复的任务。
限制与注意事项
- 不适用于小型、单轮任务。
- 避免反模式:凭记忆重建进度而非读取状态文件;在保存结论前先报告;把等待标记为失败;以无新行动、无状态变化结束一轮;将恢复检查与领域决策混为一个模糊步骤。
- 验收标准:存在可预测路径的持久状态文件;保存状态与真实任务状态一致;显式记录已完成工作、下一步行动与阻塞项;委派工作有具名负责人与返回条件;最终报告源自持久化状态而非临时推理;若任务未真正完成,应以 running、awaiting-result、paused 或 blocked 结束,而非假装完成。
相关技能
- planning-with-files:将多步骤工作组织在文件中。
- workflow-orchestrator:在里程碑后串联后续技能。
- long-task-coordinator:使长任务可恢复、可审计且可安全交接。
参考
references/workflow.md:详细工作流、状态模板与恢复检查清单。