用途:将测试套件的失败清单转为可合并的修复。已知失败按签名聚类成工作项,每个工作项由独立无头工作节点在各自 worktree 中处理,结果经串行门禁(在主分支应用、兼容性检查、运行 smoke 与目标用例及抽样、零回归、至少一个目标翻转)后快进 main,再复查整个集群并重复。
适用条件:测试命令能以 JSON 报告每个测试的状态;存在数百或更多失败测试;修复可通过重跑测试验证;运行可持续数小时无人值守。少于十个任务或仅一次性扇出任务应改用其他方式;尚无机器可读测试输出时先写 runner。
使用方式:配置 swarm.toml(tests.command、paths、queue.ladder、gate 系列、worker.system_prompt 等),从 worker_prompt 模板编写提示词,用 $SWARM doctor --run-suite 检查 runner,$SWARM selftest 自检,$SWARM queue 查看队列,再以单次后台 Bash(timeout: 7200000、--max-minutes 110)运行 $SWARM run --concurrency 24 --max-usd 50 --max-minutes 110 --batch 6 --sample 80。每约 50 分钟用 send_later 自查,读取 status 的 SIGNALS 决定重启、放宽并发或补测试供给。
限制:后台任务有 2 小时上限(省略 timeout 则 30 分钟);磁盘需 10 GB 以上;CPU 是常见瓶颈,需分区扩容;仓库需允许特定推送前缀;存在权限拒绝、门禁卡单、舞台标签异常、陈旧 known 状态、共享文件冲突等失败模式,应通过 $SWARM stop 停止而非直接杀进程。