mcpField
D
dispatching-parallel-agents

dispatching-parallel-agents

github.com/pixel-process-ugエージェントワークフロー382 回インストール33 週間前に更新
リポジトリ

dispatching-parallel-agents について

複数のエージェントが独立したサブタスクを並行して進めるための調整スキルです。タスクの独立性確認、明確なプロンプト作成、ファイル競合の回避、統合結果の検証に関する手順を定めています。

主な機能

  1. 01タスクの独立性と競合の評価
  2. 02明確なエージェント用プロンプトの作成
  3. 03並行エージェントの起動と追跡
  4. 04結果の統合とチェックの実行
  5. 05失敗への対応と再試行

活用シーン

  1. 01コードベースの独立した作業を複数エージェントに分担
  2. 02ファイル単位の担当分けによる並行作業の調整
  3. 03エージェントの変更統合後にテストとビルドを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pixel-process-ug/superkit-agents --skill dispatching-parallel-agents

インストール後、Claude Code で/dispatching-parallel-agentsを入力して読み込まれたか確認します。

詳細

並列エージェントのディスパッチ

概要

このスキルは、独立したサブタスクに同時に取り組む複数のエージェントを調整し、正確性を保ちながら全体の実行時間を短縮します。安全に並列化できる機会を特定するための厳格なルール、焦点を絞ったエージェントプロンプトの作成方法、競合を避けながら結果を統合する方法を定めています。重要な制約として、同じファイルを変更してはならないエージェントが2つ以上存在してはいけません。

開始時に次のように宣言します。「並列エージェントのディスパッチスキルを使用して、独立した[N]個のタスクを同時に実行します。」

エージェントツールのリファレンス

すべてのディスパッチでAgentツールを使用します。パラメーター:

  • prompt(必須)— 十分なコンテキストを含むタスクの説明
  • description(必須)— 短いラベル(3〜5語)
  • subagent_type — "Explore"(コードベースの検索)、"Plan"(アーキテクチャ)、"general-purpose"(デフォルト)
  • run_in_background — 非同期の場合はtrue(完了時に通知されます)
  • model — オプションの上書き値:"sonnet"、"opus"、"haiku"

並列: 1つのメッセージ内で複数のAgent呼び出しを行うと、同時に実行されます。 バックグラウンド: ブロックせずに作業する場合はrun_in_background=trueにします。 名前付きエージェント: subagent_typeを使用して、インストール済みのエージェントテンプレート(例:"superpowers:code-reviewer")を指定します。

トリガー条件

  • タスクを、相互にデータ依存関係のない2つ以上のサブタスクに分割できる
  • 各サブタスクが、異なるファイルまたはコードベースの異なるセクションを扱う
  • すべてのエージェントの完了後に結果を統合できる
  • 逐次実行に比べて、並列実行で合計所要時間を大幅に短縮できる
  • /decomposeの出力から、独立したタスク群が明らかになる

フェーズ1:独立性の検証

目標: サブタスクが真に独立しており、安全に並列化できることを確認します。

すべてのサブタスクは、次の4つの独立性基準をすべて満たす必要があります。

基準質問いいえの場合
ファイルの共有なし2つ以上のエージェントが同じファイルに書き込みますか?それらのタスクを逐次実行します
可変状態の共有なしあるエージェントが、別のエージェントの副作用に依存しますか?依存するタスクを逐次実行します
自己完結したコンテキスト各エージェントは、自身に与えられた入力だけで作業できますか?コンテキストを追加するか、逐次実行します
独立した検証各エージェントの出力を単独で検証できますか?1つのタスクにまとめます
並列化の判断表
シナリオ並列化する?理由
異なるファイル、異なる関心事はい競合が発生しません
同じモジュール内の異なるファイルはい(注意が必要)共有インポートに変更がないことを確認します
同じファイル内の異なるセクションいいえマージ時に競合が避けられません
タスクBがタスクAの出力を使用するいいえ逐次的な依存関係があります
両方が同じファイルを読み、異なるファイルに書き込むはい読み取りは安全に並列化できます
両方が共有設定ファイルを変更するいいえ設定が競合します
独立したテストファイルはいテストは独立しています
一方のエージェントが依存関係を追加し、もう一方がそれを使用するいいえパッケージレベルの依存関係があります
並列化しない場合
  • サブタスクが可変状態を共有する、または同じファイルを変更する
  • タスクBがタスクAの出力に依存する
  • 調整のオーバーヘッドが、短縮できる時間を上回る
  • 1つのエージェントで30秒以内に完了できる
  • 各ステップの結果を次のステップに反映しながら、反復的に改善する必要がある

停止 — 次の条件を満たすまで、Agentツールを使ってエージェントをディスパッチしないでください。

  • すべてのサブタスクの組み合わせについて、4つの独立性基準をすべて検証している
  • 同じファイルに書き込むエージェントが2つ以上存在しない
  • 各エージェントのコンテキストが自己完結している

フェーズ2:プロンプトの作成

目標: 作業範囲の逸脱や競合を防ぐ、焦点が明確で曖昧さのないプロンプトを作成します。

各エージェントのプロンプトには、次の4つのセクションを必ず含めてください。

セクション1:作業範囲(実施内容)

具体的なタスク、ファイル、期待される変更を明確にします。

SCOPE: Add structured JSON logging to all API route handlers in src/api/.
Replace console.log calls with the logger from src/utils/logger.ts.
Files to modify: src/api/users.ts, src/api/orders.ts, src/api/products.ts.
セクション2:コンテキスト(必要な情報すべて)

エージェントが調査を行わずに作業できるよう、必要な情報をすべて提示します。

CONTEXT:
- Logger API: logger.info(message, metadata), logger.error(message, error)
- Import: import { logger } from '../utils/logger'
- Current pattern in files: console.log('action', data)
- Target pattern: logger.info('action', { data, requestId: req.id })
セクション3:出力形式(返す内容)

エージェントが作成すべき内容を正確に定義します。

OUTPUT: For each modified file, return:
1. The file path
2. A summary of changes made
3. Number of console.log calls replaced
セクション 4:制約(してはいけないこと)

スコープの拡大や競合を明示的に防ぎます。

CONSTRAINTS:
- Do NOT modify any files outside src/api/
- Do NOT change the logger utility itself
- Do NOT add new dependencies
- Do NOT refactor function signatures
- Do NOT modify test files
- If you encounter an issue outside your scope, report it but do not fix it
エージェントプロンプトのテンプレート
You are a focused agent with a single task.

## Scope
[Specific task description with exact files]

## Context
[All information needed to complete the task]
[Relevant code patterns, APIs, conventions]

## Output Format
[Exact structure of what to return]

## Constraints
- Do NOT modify files outside: [list]
- Do NOT change: [list things to leave alone]
- Do NOT add dependencies
- If you encounter an issue outside your scope, report it but do not fix it
プロンプト品質チェックリスト
確認項目質問
スコープが具体的エージェントは推測せずにタスクを完了できますか?
コンテキストが完全エージェントがコードベースを調べる必要がありますか?(必要ないはずです)
出力が定義済みエージェントは統合に必要なものを返しますか?
制約が明示的ファイルの境界と「してはいけないこと」が明確ですか?

停止 — 次の条件を満たすまで、(Agent ツールを使って)ディスパッチしてはいけません:

  • すべてのプロンプトに 4 つのセクションがある
  • 提供されたコンテキストの範囲を超えて調査する必要があるプロンプトがない
  • すべての制約セクションでファイルの境界が明示されている

フェーズ 3:ディスパッチと監視

目標: すべてのエージェントを(Agent ツールを使って)並行して起動し、完了状況を追跡します。

  1. 1 つのメッセージ内で複数の Agent ツール呼び出しを行い、すべてのエージェントを並行して起動します
  2. 各エージェントは、指定されたファイルを対象に独立して作業します
  3. 完了状況を監視し、すべてのエージェントが完了するまで待ちます
  4. すべてのエージェントから出力を収集します
ディスパッチ追跡テーブル
| Agent | Task | Status | Files | Result |
|-------|------|--------|-------|--------|
| Agent 1 | Add logging to API | in_progress | src/api/*.ts | — |
| Agent 2 | Update unit tests | in_progress | tests/unit/*.ts | — |
| Agent 3 | Fix CSS layout | in_progress | src/styles/*.css | — |
ディスパッチ中の失敗への対処
状況対応
1 つのエージェントが失敗し、ほかは成功失敗したエージェントを単独で再試行します(Agent ツールを使います)
複数のエージェントが個別に失敗それぞれを個別に再試行します(Agent ツールを使います)
エージェントがスコープ外の問題を報告統合後のレビュー用に記録します
エージェントがスコープを逸脱(誤ったファイルを変更)出力を却下し、より厳しい制約を指定して再ディスパッチします(Agent ツールを使います)

フェーズ 4:統合と検証

目標: すべてのエージェントの出力を組み合わせ、統合した結果を検証します。

  1. 出力を収集 — すべてのエージェントの結果を集めます
  2. 競合を確認 — 複数のエージェントが同じファイルを変更していないことを確認します
  3. 変更を適用 — すべての出力をコードベースに統合します
  4. 統合チェックを実行 — テストスイート全体を実行します
  5. 問題を解決 — 統合に失敗した場合、どのエージェントの変更が原因かを特定します
  6. 一括でコミット — すべての変更をまとめて反映するか、まったく反映しないかのどちらかにします
統合検証チェックリスト
確認項目コマンド成功必須
ファイル競合がない共有ファイルの差分を確認はい
テストが成功するテストスイート全体はい
ビルドが成功するビルドコマンドはい
Lint が成功するLint コマンドはい
リグレッションがないテスト数を変更前後で比較はい
統合失敗時の判断テーブル
失敗の種類診断対応
Agent 1 のファイルでテストが失敗Agent 1 の変更にバグがありますテスト失敗のコンテキストを添えて Agent 1 を再ディスパッチします(Agent ツールを使います)
無関係なファイルでテストが失敗横断的なリグレッション根本原因を特定し、手動で修正するか再ディスパッチします(Agent ツールを使います)
ビルドの失敗インポートまたは型の問題どのエージェントの変更が原因かを確認し、修正します
マージ競合エージェントが同じファイルを変更(本来起きるべきではありません)ロールバックし、該当するタスクを順番に実行します

停止 — 次の条件を満たすまで、コミットしてはいけません:

  • すべてのエージェントの出力を収集済み
  • ファイル競合が検出されていない
  • テストスイート全体が成功
  • ビルドと Lint が成功

よくある並行処理パターン

パターン判断テーブル
パターン使用する場面例
モジュール単位独立したモジュールまたはパッケージマイクロサービスごとに Agent を 1 回呼び出す
レイヤー単位各レイヤーが異なるファイルに触れる場合API エージェント、サービスエージェント、データエージェント
機能領域単位独立した垂直スライス認証エージェント、プロフィールエージェント、課金エージェント
タスク種別単位コード、テスト、ドキュメントが異なるファイルに触れる場合コードエージェント、テストエージェント、ドキュメントエージェント
例:完全なディスパッチ
TASK: "Update the API to v2, add tests, and update OpenAPI spec"

AGENT 1 - API Routes:
  Scope: Update route handlers in src/routes/v2/
  Context: [v2 API spec, breaking changes list]
  Output: Modified files list, breaking changes implemented
  Constraints: Do NOT touch tests or docs

AGENT 2 - Tests:
  Scope: Write tests in tests/v2/
  Context: [v2 API spec, test conventions, existing v1 tests as reference]
  Output: New test files, coverage summary
  Constraints: Do NOT modify source code

AGENT 3 - OpenAPI Spec:
  Scope: Update openapi/v2.yaml
  Context: [v2 API spec, OpenAPI 3.1 format]
  Output: Updated spec file
  Constraints: Do NOT modify code or tests

アンチパターン/よくある間違い

アンチパターン失敗する理由正しいアプローチ
2つのエージェントが同じファイルを変更するマージの競合、データ損失Agent のディスパッチごとに、各ファイルの担当者を1人にする
エージェント間で可変状態を共有する競合状態、一貫性の欠如共有状態をなくす
プロンプトのコンテキストが不完全エージェントが調査し、互いに作業を妨げる必要なコンテキストをすべて提供する
ファイルの境界が曖昧エージェントが範囲を推測し、誤ったファイルを変更する制約にファイルの一覧を明記する
完了後に統合チェックを行わない複数箇所にまたがるバグを見逃す統合後にテストスイート全体を実行する
順次実行すべきタスクを並列化するエージェント B がエージェント A の出力を必要とするまず独立性を確認する
どのエージェントがどのファイルに触れたか追跡しない統合の失敗を診断できないディスパッチの追跡表を維持する
エージェントをディスパッチしすぎる(10人以上)調整のオーバーヘッドが効率化の効果を上回るディスパッチのラウンドごとに Agent 呼び出しを2~5回にする
ロールバックの準備を省略する統合に失敗したときに復旧できないディスパッチ前の状態に復旧できるようにしておく

合理化を防ぐためのガード

同じファイルを変更するエージェントを(`Agent` ツール経由で)ディスパッチしないでください。データ依存関係のあるタスクを並列化しないでください。統合の検証を省略しないでください。独立性の基準を満たさない場合は、タスクを順次実行してください。

次のように考えていることに気づいたら:

  • 「これらのエージェントは、おそらく競合しないでしょう……」— 検証してください。決めつけないでください。
  • 「統合は問題ないでしょう……」— テストスイート全体を実行してください。必ず実行してください。
  • 「同じファイルへの変更を手作業でマージできます……」— いいえ。1つのファイルにつき担当者は1人です。

統合ポイント

スキル関係タイミング
task-decomposition上流 — 独立したタスク群を特定するディスパッチ前
subagent-driven-development補完関係 — レビューゲートを提供するエージェントの出力に対する品質ゲート
executing-plans上流 — 独立したタスクを委任する場合がある計画の実行中
verification-before-completion下流 — 統合後の結果を検証する統合後
code-review下流 — 統合後の変更をレビューするすべてのエージェントの完了後
resilient-execution失敗時 — 失敗したエージェントを再試行する個々のエージェントが失敗したとき

並列化の安全ルールのまとめ

ルール理由
2人のエージェントが同じファイルを変更しないマージの競合と競合状態を防ぐ
可変状態を共有しないデータ競合をなくす
各エージェントに完全なコンテキストを渡すエージェントが調査し、互いに作業を妨げるのを防ぐ
ファイルの境界を明確に定義する担当範囲を明確にする
完了後に統合をレビューする複数箇所にまたがる問題を検出する
すべての変更をアトミックにコミットするすべて反映するか、すべて取り消す
必ずロールバック手段を用意するディスパッチ前の状態に復旧できるようにしておく

スキルの種類

RIGID — このプロセスに厳密に従ってください。独立性の検証は必須です。プロンプトの4つのセクションはすべて必須です。統合の検証は必須です。並列化の安全性に関する手順を省略してはいけません。

コメント