mcpField
S
swarm

swarm

github.com/michael-denyerエージェントワークフロー3.6k898 回インストール今日更新
リポジトリ

swarm について

エージェントが作業の定義、ワーカーへの分配、結果の集約、報告を段階的に進めるためのスキルです。ワーカー選定や出力の分離、検証根拠の扱いも定めます。

主な機能

  1. 014段階のスウォームワークフロー
  2. 02分割・競争・混合方式の選択
  3. 03ワーカーモデルと推論レベルの設定
  4. 04書き込み可能な出力先の分離
  5. 05検証済みワーカーレポートの集約

活用シーン

  1. 01複数のワーカーエージェントへのタスク分割
  2. 02並行するアプローチの結果比較
  3. 03コード領域ごとの検証の調整

インストール

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

$npx skills add https://github.com/michael-denyer/pstack-claude --skill swarm

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

詳細

Swarm

Codex では、このスキルに従う前に、スキルごとの注記を含めてプラットフォームマッピングを読んでください。

GitHub Copilot では、このスキルに従う前に、スキルごとの注記を含めてプラットフォームマッピングを読んでください。

Muse では、このスキルに従う前に、スキルごとの注記を含めてプラットフォームマッピングを読んでください。

開始

何かを起動する前に、各フェーズにつき1つの項目を含む ToDo リストを作成します。

  1. 枠組みを定める
  2. 作業を分担する
  3. 結果を集約する
  4. 報告する

フェーズ A:枠組みを定める

  1. 完了条件と、swarm が返すアーティファクトまたはレポートを明示します。
  2. 形を選びます。作業をスライスに分割する、同一の指示で N 人のワーカーを競わせる、または両方を組み合わせます。競争形式または混合形式の場合は、ワーカーの起動前に first pass、rank all、best-of のいずれかを宣言します。
  3. pstack-models.md の swarm workers 行からワーカーモデルを選びます。そのシートまたは該当行がない場合は、Models のデフォルトを使います。auto または inherit-parent の場合は、model を省略して、ワーカーに親のモデルを使わせます。Agent ツールでスラッグが拒否された場合は、デフォルトを使い、その旨を伝えます。デフォルトも拒否された場合は、エラーメッセージに示された同じファミリーの有効なスラッグのうち、最も近いものを使います。モデルを競わせる場合は、各候補のモデルを事前に指定します。poteto-mode スキルの Subagents セクションに従い、各サブエージェントの作業に応じた推論レベルを選びます。
  4. 書き込みを行う場合、各ワーカーにそれぞれ書き込み可能な出力先を割り当てます。ワーカーがコミットを検証または測定する場合は、各指示に正確な SHA を記載します。測定の指示には、測定方法(サンプル数、1つのサンプルの定義、順序)も記載します。ワーカーは結果にその両方を記録します。

フェーズ B:作業を分担する

すべての N 人のワーカーを1つのメッセージで起動し、subagent_type: "general-purpose"、run_in_background: true、およびステップ3で選んだモデルを指定します。auto または inherit-parent の場合はモデルを未設定にします。Claude Code のサブエージェントはすべてこのマシン上で実行されるため、分離はリモート環境ではなく、フェーズ A で割り当てたワークツリーまたは出力ディレクトリによって行います。

ワーカーがデフォルト以外のブランチから作業を開始する必要がある場合は、ワーカー自身のワークツリーでそのブランチをチェックアウトし、指示にワークツリーのパスを記載します。

各指示だけで作業内容が完結するようにします。目標、範囲、正確なスライスまたは競争の候補、検証方法、報告内容を含めます。報告には根拠とともに PASS、ISSUES、BLOCKED のいずれかを使います。不具合を証明できるワーカーは ISSUES と報告し、最初のものだけでなく、証明できる問題をすべて列挙します。

ワーカーが離脱した場合は、N-1 人で続行し、その旨を記録します。

フェーズ C:結果を集約する

最終結果を確認します。指示に記載された SHA と方法が記録されていない結果は除外し、そのワーカーを1回再起動します。2回目も不備があれば、ギャップとして記録します。ギャップは合格として扱いません。カバレッジについては、必須の各スライスに結果が必要です。競争形式の場合は、事前に宣言した選択ルールを適用します。first pass、rank all、best-of のいずれかを使います。ワーカーの出力をそのまま貼り付けないでください。

フェーズ D:報告する

結果表、問題の簡潔な説明、ギャップまたは離脱、競争形式を使った場合はその選択ルールを含む、統合されたレポートをチャット内で1つ返します。

モデル

役割のデフォルトは plugins/pstack/models.json からスタンプされます(編集後、tools/generate.mjs を再実行してください)。pstack-models.md オーバーライドシートに一致する役割の行があれば、実行時に各デフォルトより優先されます。/setup-pstack はそのシートを書き込み、各ランタイムでそのパスを一覧表示します。

  • swarm workers:opus

推論の強度

オーバーライドシートのロール値では、opus @xhigh のように、モデルの後に推論の強度を指定できます。Claude Code で指定できるレベルは、low、medium、high、xhigh、max です。どのレベルを使用できるかは、モデルによって異なります。@ を含まない値では、シートの default effort 行に指定されたレベル、または session を使用します。その行がない場合も session を使用します。session は推論の強度を指定しないため、通常どおりディスパッチされます。モデルを読み取る前にサフィックスを取り除いてください。inherit-parent または auto では、どのレベルでも model を省略し、モデル名は model として渡します。レベルはディスパッチの推論の強度フィールドに渡し、それ以外は通常使用する subagent_type を維持してください。Claude Code の Agent 呼び出しでは effort、Codex の spawn_agent では reasoning_effort を指定します。Muse では、Workflow の子に effort を指定します。subagent_spawn ディスパッチでは、セッションの推論の強度が維持されます。

コメント