Skills

Dispatching Parallel Agents

当面对 2 个以上可以独立进行、无共享状态或顺序依赖的任务时使用

Install

npx skills add jnMetaCode/superpowers-zh --skill dispatching-parallel-agents -g -a claude-code -y
Category
Engineering
Updated
9d ago
License
MIT
Context cost
Lightabout 736 tokens
Runs scripts
No, instructions only

What it does

当面对 2 个以上可以独立进行、无共享状态或顺序依赖的任务时使用

并行分派智能体

概述

你将任务委派给具有隔离上下文的专用智能体。通过精心设计它们的指令和上下文,确保它们专注并成功完成任务。它们不应继承你的会话上下文或历史记录, , 你要精确构造它们所需的一切。这样也能为你自己保留用于协调工作的上下文。

当你遇到多个不相关的失败(不同的测试文件、不同的子系统、不同的 bug),逐一排查会浪费时间。每个排查都是独立的,可以并行进行。

核心原则: 每个独立问题域分派一个智能体,让它们并发工作。

何时使用

digraph when_to_use {
    "存在多个失败?" [shape=diamond];
    "它们是否独立?" [shape=diamond];
    "单个智能体排查所有问题" [shape=box];
    "每个问题域一个智能体" [shape=box];
    "能否并行工作?" [shape=diamond];
    "顺序执行智能体" [shape=box];
    "并行分派" [shape=box];

    "存在多个失败?" -> "它们是否独立?" [label="是"];
    "它们是否独立?" -> "单个智能体排查所有问题" [label="否 - 有关联"];
    "它们是否独立?" -> "能否并行工作?" [label="是"];
    "能否并行工作?" -> "并行分派" [label="是"];
    "能否并行工作?" -> "顺序执行智能体" [label="否 - 有共享状态"];
}

适用场景:

  • 3 个以上测试文件因不同根因失败
  • 多个子系统独立出现故障
  • 每个问题无需其他问题的上下文即可理解
  • 排查之间无共享状态

不适用场景:

  • 失败是相关的(修复一个可能修复其他的)
  • 需要理解完整的系统状态
  • 智能体之间会互相干扰

模式

1. 识别独立的问题域

按故障分组:

  • 文件 A 测试:工具审批流程
  • 文件 B 测试:批量完成行为
  • 文件 C 测试:中止功能

每个问题域是独立的, , 修复工具审批不会影响中止测试。

2. 创建聚焦的智能体任务

每个智能体获得:

  • 明确范围: 一个测试文件或子系统
  • 清晰目标: 让这些测试通过
  • 约束条件: 不修改其他代码
  • 预期输出: 你发现和修复内容的总结

3. 并行分派

// 在 Claude Code / AI 环境中
Task("修复 agent-tool-abort.test.ts 的失败")
Task("修复 batch-completion-behavior.test.ts 的失败")
Task("修复 tool-approval-race-conditions.test.ts 的失败")
// 三个任务并发运行

4. 审查与集成

当智能体返回时:

  • 阅读每个总结
  • 验证修复之间没有冲突
  • 运行完整测试套件
  • 集成所有更改

智能体提示词结构

好的智能体提示词应该是:

  1. 聚焦的 - 一个清晰的问题域
  2. 自包含的 - 包含理解问题所需的所有上下文
  3. 明确输出要求 - 智能体应该返回什么?
修复 src/agents/agent-tool-abort.test.ts 中 3 个失败的测试:

1. "should abort tool with partial output capture" - 期望消息中包含 'interrupted at'
2. "should handle mixed completed and aborted tools" - 快速工具被中止而非完成
3. "should properly track pendingToolCount" - 期望 3 个结果但得到 0 个

这些是时序/竞态条件问题。你的任务:

1. 阅读测试文件,理解每个测试验证的内容
2. 找到根因, , 是时序问题还是实际 bug?
3. 修复方式:
   - 用基于事件的等待替换任意超时
   - 如果发现中止实现中的 bug 则修复
   - 如果测试的是已变更的行为则调整测试期望

不要只是增加超时时间, , 找到真正的问题。

返回:你发现了什么以及修复了什么的总结。

常见错误

Read the whole SKILL.md on GitHub

More in Engineering