dispatching-parallel-agents

AI 智能 社区 @obra
信任分
88/100
兼容 Agent
1
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
AI 智能
兼容 Agent
Claude Code
信任分
88 / 100 · 社区维护
作者 / 版本 / 许可
@obra · 未声明 license
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

设计思路

当一组失败 / 任务彼此独立时,串行排队是浪费——并行派 sub-agent 各自处理,主 agent 集成。skill 的核心是教你怎么判断「真独立」、怎么写好每个 sub-agent 的 prompt、以及不该并行时的反例。

何时该用 vs 何时不该用

不该并行的场景:

  • Related failures:修一个可能修一堆,应该先一起调查再决定。
  • Need full context:理解这个问题需要看到整个系统。
  • Exploratory debugging:还不知道哪儿坏了。
  • Shared state:sub-agent 会编辑同一批文件、抢同一份资源。

该并行的场景:domain 真的独立——比如一组测试的失败原因互不依赖,可以一人一份。

Agent prompt 必须包含

  • 具体范围(不是「fix all the tests」而是「fix agent-tool-abort.test.ts」)
  • 上下文(粘报错和测试名进去)
  • 约束("Do NOT change production code"、"Fix tests only")
  • 结构化输出格式(要求 sub-agent 返回根因 + 改了什么的 summary)

常见错误(作者原文)

  • Too broad Fix all the tests → agent 走丢
  • No context Fix the race condition → agent 不知道在哪儿
  • No constraints → agent 可能顺手把整套重构掉
  • Vague output Fix it → 你不知道改了什么

真实例子

6 个测试失败跨 3 个文件,作者判断 abort 逻辑 / batch completion / race condition 三个 domain 互不依赖:

  • Agent 1 → 改 agent-tool-abort.test.ts
  • Agent 2 → 改 batch-completion-behavior.test.ts
  • Agent 3 → 改 tool-approval-race-conditions.test.ts

结果三人三种 fix(替换 timeout 为事件驱动、修事件结构 bug、加异步等待),全部独立无冲突,integration 后全绿。

验证

sub-agent 回来后:

  1. 读每份 summary——理解他们改了什么
  2. 检查是不是改了同一段代码(冲突)
  3. 跑完整测试套——验证修复联动有效
  4. 抽检——sub-agent 可能犯系统性错误

适合谁

  • 大重构后多文件失败的清理
  • 已经定位好「互相独立」的多 task
  • 想把主 context 留干净的复杂调试

何时不该用

  • bug 还没复现——先 diagnose
  • 改的都是同一文件——并行只会冲突

配套

diagnose(先把根因切出来)、subagent-driven-development(更通用的 sub-agent 协作)、improve-codebase-architecture(结构性返工时)。