mcpField
D
dispatching-parallel-agents

dispatching-parallel-agents

github.com/obraAgent 工作流307.4k221.7k 次安装1 周前更新
代码仓库

关于 dispatching-parallel-agents

dispatching-parallel-agents 是一个 skill,指导 Agent 将彼此独立的问题分派给上下文隔离的子 Agent 并行处理。它强调为每个子 Agent 构造自包含的指令,并明确范围、约束和输出要求。

主要功能

  1. 01按独立问题领域划分子 Agent 任务
  2. 02为每个子 Agent 提供隔离且自包含的上下文
  3. 03在同一轮次并行分派多个子 Agent
  4. 04要求子 Agent 返回具体的根因与改动摘要
  5. 05集成前检查冲突并运行完整测试

适用场景

  1. 01多个测试文件因不同原因同时失败
  2. 02多个子系统独立出现故障时的并行调查
  3. 03需要互不干扰地修复不同模块的场景

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/obra/superpowers --skill dispatching-parallel-agents

安装后在 Claude Code 中输入/dispatching-parallel-agents确认已加载。

详细介绍

并行分派 Agent

概述

你将任务委派给具有隔离上下文的专用 Agent。通过精确编写它们的指令和上下文,你可以确保它们保持专注并完成任务。它们绝不应继承你会话的上下文或历史记录,你只需构造它们所需的确切内容。这也能保留你自己的上下文,用于协调工作。

当存在多个互不相关的故障(不同的测试文件、不同的子系统、不同的缺陷)时,依次排查会浪费时间。每项排查都是独立的,可以并行进行。

核心原则: 为每个独立的问题领域分派一个 Agent,让它们并发工作。

适用场景

digraph when_to_use {
    "Multiple failures?" [shape=diamond];
    "Are they independent?" [shape=diamond];
    "Single agent investigates all" [shape=box];
    "One agent per problem domain" [shape=box];
    "Can they work in parallel?" [shape=diamond];
    "Sequential agents" [shape=box];
    "Parallel dispatch" [shape=box];

    "Multiple failures?" -> "Are they independent?" [label="yes"];
    "Are they independent?" -> "Single agent investigates all" [label="no - related"];
    "Are they independent?" -> "Can they work in parallel?" [label="yes"];
    "Can they work in parallel?" -> "Parallel dispatch" [label="yes"];
    "Can they work in parallel?" -> "Sequential agents" [label="no - shared state"];
}

适用于:

  • 3 个以上测试文件失败,且根因各不相同
  • 多个子系统各自独立损坏
  • 每个问题都可以在不依赖其他问题上下文的情况下理解
  • 各项排查之间没有共享状态

不适用于:

  • 故障相互关联(修复一个可能同时修复其他)
  • 需要了解完整的系统状态
  • Agent 之间会相互干扰

模式

1. 识别独立领域

按故障所涉及的内容进行分组:

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

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

2. 创建聚焦的 Agent 任务

每个 Agent 应获得:

  • 明确范围: 一个测试文件或一个子系统
  • 清晰目标: 让这些测试通过
  • 约束条件: 不要修改其他代码
  • 预期输出: 所发现与修复内容的摘要
3. 并行分派

在同一次响应中发出全部三个子 Agent 分派请求,它们将并行运行:

Subagent (general-purpose): "Fix agent-tool-abort.test.ts failures"
Subagent (general-purpose): "Fix batch-completion-behavior.test.ts failures"
Subagent (general-purpose): "Fix tool-approval-race-conditions.test.ts failures"
# All three run concurrently.

在一次响应中发出多个分派调用 = 并行执行。每次响应只发出一个 = 顺序执行。

4. 审查与整合

Agent 返回结果后:

  • 阅读每份摘要
  • 验证修复之间没有冲突
  • 运行完整测试套件
  • 整合所有修改

Agent 提示词结构

优秀的 Agent 提示词应具备以下特点:

  1. 聚焦: 只针对一个清晰的问题领域
  2. 自包含: 包含理解问题所需的全部上下文
  3. 明确输出: Agent 应返回什么内容?
Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:

1. "should abort tool with partial output capture" - expects 'interrupted at' in message
2. "should handle mixed completed and aborted tools" - fast tool aborted instead of completed
3. "should properly track pendingToolCount" - expects 3 results but gets 0

These are timing/race condition issues. Your task:

1. Read the test file and understand what each test verifies
2. Identify root cause - timing issues or actual bugs?
3. Fix by:
   - Replacing arbitrary timeouts with event-based waiting
   - Fixing bugs in abort implementation if found
   - Adjusting test expectations if testing changed behavior

Do NOT just increase timeouts - find the real issue.

Return: Summary of what you found and what you fixed.

常见错误

❌ 范围过宽: "修复所有测试",Agent 会迷失方向 ✅ 范围具体: "修复 agent-tool-abort.test.ts",范围聚焦

❌ 缺少上下文: "修复竞态条件",Agent 不知道问题出在哪里 ✅ 提供上下文: 粘贴错误信息和测试名称

❌ 缺少约束: Agent 可能会重构所有代码 ✅ 明确约束: "不要修改生产代码"或"仅修复测试"

❌ 输出模糊: "修好它",你不知道改了什么 ✅ 输出具体: "返回根因摘要和所做的修改"

不适用的情况

相关故障: 修复一个可能会修复其他,应先一起排查 需要完整上下文: 理解问题需要查看整个系统 探索性调试: 你还不知道哪里出了问题 共享状态: Agent 会相互干扰(编辑同一文件、使用同一资源)

会话中的真实示例

场景: 大规模重构后,3 个文件中出现 6 个测试失败

失败情况:

  • agent-tool-abort.test.ts:3 个失败(时序问题)
  • batch-completion-behavior.test.ts:2 个失败(工具未执行)
  • tool-approval-race-conditions.test.ts:1 个失败(执行次数为 0)

决策: 各自独立的领域。中止逻辑与批处理完成相互独立,二者又与竞态条件相互独立

分派:

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

结果:

  • Agent 1:用基于事件的等待替换了超时
  • Agent 2:修复了事件结构缺陷(threadId 位置错误)
  • Agent 3:增加了等待异步工具执行完成的逻辑

整合: 所有修复相互独立,没有冲突,完整测试套件全部通过

验证

Agent 返回后:

  1. 审查每份摘要: 了解改动内容
  2. 检查冲突: Agent 是否编辑了相同的代码?
  3. 运行完整套件: 验证所有修复能够协同工作
  4. 抽查: Agent 可能会犯系统性错误

评论

支持 Markdown