Skip to content

feat(subagent): 实现 Task DAG 调度器(依赖、并发、预算、重试) #275

Description

@Cai-Tang-www

背景

Parent: #273
依赖:#261 #262 #274

SubAgent 的核心是调度器。需要把 Todo/Task 视为 DAG,按依赖与预算执行。

目标

实现 Scheduler:支持任务领取、并发执行、依赖阻塞、完成回写。

范围

  1. TaskGraph 构建
  • 从 Session Todo 构建 DAG
  • 校验无环
  • 支持任务状态:pending/in_progress/blocked/completed/failed/canceled
  1. 调度策略
  • 仅调度依赖满足的任务
  • 全局并发上限(max_concurrency)
  • 单任务预算(token/step/timeout)
  • 支持优先级与公平性(避免 starvation)
  1. 任务领取与回写
  • claim -> in_progress
  • worker 结果回写 completed/failed
  • 失败任务可标记重试次数与下次重试时间
  1. 与 WorkerRuntime 对接

非目标

验收标准

  • 多任务依赖场景调度正确
  • 并发上限与预算生效
  • 失败/取消可回写且不污染其他任务
  • 调度决策可观测(事件或日志)

测试矩阵

  • DAG 校验(含环)
  • 依赖阻塞/解锁
  • 并发限制
  • 失败重试/放弃
  • 并发竞争下的状态一致性(revision)

Refs

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions