智能任务编排系统:自动扫描项目规模,规划子任务,动态派发多AI Worker并行执行,支持模块拆分、自适应超时、滚动派发及用户打断重排。适用场景:复杂任务、多步骤分析、代码生成、调试、研究调查或需智能调度。
智能任务编排系统,为主会话提供自动规划和批量派发能力。
bash
cd <skill_dir>/scripts
python scan_and_plan.py \
--task "用户的任务描述" \
--target-dir "/path/to/project" \
--output plan.json \
--max-parallel 5
输出摘要后告知用户规划结果。
用 read 工具读取 plan.json,提取 subtasks 列表。每个 subtask 包含:
description:子任务 prompt(已含文件读取约束)estimated_time_sec:超时时间module_key:模块名module_file_count:模块文件数file_read_cap:文件读取上限按 max_parallel(默认 5)取前 N 个 subtasks,逐个调用 sessions_spawn:
text
sessions_spawn(
agentId: "main",
label: "orch-{module_key}",
mode: "run",
task: subtask.description,
timeoutSeconds: subtask.estimated_time_sec,
runTimeoutSeconds: subtask.estimated_time_sec,
)
派发时必须输出任务表格:
text
第 N 批 M 个子代理已派发:
| # | 模块 | 文件数 | 超时 | Label |
|---|------|--------|------|-------|
| 1 | tools | 184 | 600s | orch-tools |
| 2 | services | 136 | 600s | orch-services |
| 3 | hooks | 104 | 600s | orch-hooks |
调用 sessions_yield 等待子代理完成推送。不主动轮询。
用户可随时发消息打断:
每个子代理完成时:
所有子代理完成后,汇总全部结果写入报告文件。
配置默认说明max_files_per_subtask2每子任务最多读文件数(代码生成类)analysis_max_files_per_subtask8分析类每子任务最多读文件数large_project_file_threshold1000大项目文件数阈值large_project_line_threshold100000大项目行数阈值analysis_small_module_timeout300小模块超时(秒)analysis_medium_module_timeout480中模块超时(秒)analysis_large_module_timeout600大模块超时(秒)max_parallel_subagents3同时运行的子代理数
能力OpenClaw 原生Orchestrator派发方式手动调用 sessions_spawn,逐个派发自动扫描 → 规划 → 批量派发任务拆分手动编写 prompt 拆分自动按模块/功能域拆分超时控制固定超时(手动传参)自适应超时(小模块 5min、大模块 10min)文件读取约束无约束自动注入"最多读 N 个文件"限制并发控制无限制max_parallel 限流,超出排队失败重试无缩小范围重跑进度追踪手动记录 session_key实时进度表格滚动派发无前一批完成后自动派发下一批用户打断需手动管理随时打断,暂停/改思路/恢复
text
第 N 批 M 个子代理已派发:
| # | 模块 | 文件数 | 超时 | Label |
|---|------|--------|------|-------|
| 1 | xxx | 184 | 600s | orch-xxx |
...
text
{模块名} 完成(N/总数)。
**{模块名} 模块关键发现:**
- [重要] 发现 1
- [重要] 发现 2
- [重要] 发现 3
进度:N/总数 完成。
text
全部 N 个模块分析完成。M 个子代理,零超时。
报告已写入 reports/xxx.md
文件说明状态scripts/scan_and_plan.py扫描规划 CLI(Step 1 入口,支持 analyze/fix 模式)已验证scripts/orchestrator_v4_acp.py核心引擎(扫描+规划+上下文管理+并发控制)已验证
派子代理时必须输出任务表格
子代理完成时立即通知用户进度和关键发现
执行过程中主会话保持可交互,用户随时可打断
分析类任务的子代理 prompt 必须包含文件读取约束
超时的子任务缩小范围重跑,不原样重试
小模块合并到一个子代理时,prompt 里列出所有模块的目录
用户说"暂停"时停止派发新子代理,说"继续"时恢复
空结果检测与处理:子代理返回结果后,检查内容是否有效:
默认排除目录:扫描器自动排除 .next、node_modules、.git、dist、build、out、.turbo、coverage 等构建产物和依赖目录,无需手动跳过
当分析完成后需要批量修复问题时,使用修复模式:
将审计发现的问题整理为 issues.json:
json
[
{
"id": "fix-1",
"title": "密码改用 bcrypt",
"priority": "P0",
"files": ["lib/auth.ts", "app/api/auth/login/route.ts"],
"description": "将明文密码验证改为 bcrypt.compare()...",
"depends_on": []
},
{
"id": "fix-2",
"title": "middleware 添加 role 校验",
"priority": "P0",
"files": ["middleware.ts"],
"description": "JWT 验证后检查 payload.role === 'admin'...",
"depends_on": ["fix-1"]
}
]
bash
cd <skill_dir>/scripts
python scan_and_plan.py \
--mode fix \
--issues issues.json \
--target-dir "/path/to/project" \
--output fix-plan.json
脚本会自动:
也可以跳过 issues.json,直接根据审计报告手动规划修复子任务(适合问题清单已经很清晰的情况)。
以下功能在 orchestrator_v4_acp.py 中完整实现,当前在标准流程中由主会话的 sessions_spawn 替代。将来 OpenClaw 支持 Python SDK 后可直接启用:
enable_audit=True 时代码任务自动过审计官,REJECT 自动重做_spawn_semaphore 控制最大并行 subagent 数