feat: 任务最大重复数(task_max_retry)——超限暂停任务链+抛故障给人工,人工处理后reset_task_retry清零重执行

This commit is contained in:
yumoqing 2026-08-19 07:29:10 +08:00
parent b7fde03d75
commit 31c05c8ceb

View File

@ -2,7 +2,7 @@
name: task
description: SDLC 产线默认任务状态机规范——定义任务状态、合法流转、角色→操作权限、门禁、人拍板点。agent 处理任务时据此操作LLM 读本 skill 判断流转合法性。项目可同名 skill 覆盖。触发:认领/提交/审核/退回/完成/重试任务。
capability: task_capability
tools: [claim_task, submit_task, approve_task, reject_task, complete_task, mark_failed, retry_task, suspend_task, revive_task, set_task_state]
tools: [claim_task, submit_task, approve_task, reject_task, complete_task, mark_failed, retry_task, reset_task_retry, suspend_task, revive_task, set_task_state]
---
# 任务状态机规范SDLC 产线默认)
@ -76,6 +76,13 @@ submitted ──claim──▶ running ──submit──▶ review ──approv
3. **暂停才需指令**:仅当用户明确指令「暂停 / 停止推进」时,项目置为 paused会话 agent 调 pause_project。paused 时 PM 不认领审核任务、不推进恢复推进resume_project后自动继续。
4. 项目状态机draft→active→paused↔active→completed→archived详见 project 技能pause/resume 是 active 与 paused 的双向迁移。
### 任务重复上限与任务链暂停(最大重复数)
1. **最大重复数**:每个任务有最大重复数(`task_max_retry`appbase params 表,默认 3。任务失败自动重试瞬时错误`retry_count` 递增。
2. **超限暂停任务链**`retry_count` 达到上限(或判定为永久错误)→ 系统自动 `pause_project` 暂停项目推进(任务链暂停)+ 抛 `fault_report` 故障问题first_handler=main_agent任务置 waiting 等人工介入。
3. **人工处理恢复**故障冒泡给用户ask_user/answer_question用户处理完毕 → 主 agent 调 `reset_task_retry`:任务 `retry_count` 归零、waiting/failed → submitted 重新执行,并 `resume_project` 恢复项目推进。
4. 区分瞬时错误timeout/网络/限流/5xx`retry_task` 自动重试;永久错误或超限走人工 `fault_report``reset_task_retry`
### 任务分解与编排(先评估,再拆解)
PM 派发任务时先评估复杂度,复杂任务自动分解并编排执行顺序(能并行并行、不能并行串行),同时记录父子关系。
@ -103,7 +110,7 @@ problem_type 用 approval/confirm。人答复后由 agent 再执行状态迁
## 七、配套能力task 能力工具)
`claim_task` / `submit_task` / `approve_task` / `reject_task` / `complete_task` /
`mark_failed` / `retry_task` / `suspend_task` / `revive_task` / `set_task_state`(通用 CAS 兜底)。
`mark_failed` / `retry_task` / `reset_task_retry` / `suspend_task` / `revive_task` / `set_task_state`(通用 CAS 兜底)。
## 八、分层覆盖