swarm について
Swarmは、完全かつ互いに重ならないパケットを用意し、実行器を選ぶ呼び出し元向けの任意ディスパッチスキルです。バッチ全体を検証して各パケットを一度だけ実行し、結果またはエラーを返します。再試行、タスクのスケジュール、判定は行いません。
主な機能
- 01パケットごとに一度だけ実行
- 02実行前にバッチ全体を検証
- 03候補・証拠・エラーをパケット別に返却
- 04パケットとコンテキストの識別情報を保持
- 05未対応の書き込み範囲除外を拒否
活用シーン
- 01範囲を明示した独立パケットの並列実行
- 02選択した実行器の呼び出し結果を個別に収集
- 03無効なパケットによる部分起動の防止
- 04自動再試行せず実行器エラーを返却
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ boshu2/ agentops --skill swarmインストール後、Claude Code で/swarmを入力して読み込まれたか確認します。
同梱ファイルscripts/dispatch_once.pytests/test_dispatch_once.py
詳細
Swarm
Swarm は、オプションのファクトリーポートを 1 つ公開します。
dispatch_once(explicit_disjoint_packets, executor)
-> per-packet candidate | evidence | error
呼び出し元は、完全なパケットをすべて用意し、書き込みスコープが互いに重複しないことを証明したうえで、実行者を選択します。Swarm は各パケットを 1 回ずつディスパッチし、パケットとコンテキストの同一性を維持して、結果を収集した後に停止します。
書き込みスコープはワークスペース相対かつ正規形式である必要があります。つまり、シンボリックリンクを解決し、あらかじめ正規化しておく必要があります。重複の判定は字句的に行われます。プレフィックスの大文字と小文字を同一視するため、大文字と小文字だけが異なるスコープは衝突として扱われます(大文字と小文字を区別しないファイルシステムで安全です)。ただし、2 つのスコープを同じターゲットにエイリアスするシンボリックリンクは検出できません。正規形式でないスコープやシンボリックリンクを含むスコープを指定すると、重複しないという保証は失われます。また、空でない write_scope.exclude は、その指定を黙って無視するのではなく拒否します。証明にその指定を反映できないためです。
重複しないことが証明されたスコープに対して、各パケットを必ず 1 回だけディスパッチするからこそ、並列実行の失敗が互いに独立したものとなります。どのパケットも別のパケットを観察、阻止、破損できないため、N 個のパケットからは、1 つのもつれた結果ではなく、N 個の実験についての事実に基づく N 個の結果が得られます。これらの結果は、意味上の判定ではありません。
名前付きの失敗モード — バッチの部分起動:無効なパケットが見つかる前に有効なパケットをディスパッチし、バッチの半分だけが実行された状態にしてしまうことです。最初の呼び出しを行う前に、バッチ全体を検証してください。
アンチパターン:実行者がエラーを返したパケットを再ディスパッチすること。 修正方法:そのエラーを、そのパケットの事実に基づく結果として返します。再試行するかどうかは呼び出し元が決めることであり、ディスパッチャーが決めることではありません。
開発者専用のリファレンス実装は scripts/dispatch_once.py です。
リポジトリのテストではこのモジュールを実行します。サポート対象のネイティブなインストール済みパスは、このスキルを通じて呼び出し元が選択した実行者を使用し、Python は呼び出しません。
このパスは最初の呼び出しの前に明示されたバッチ全体を検証し、各パケットについて、指定された実行者を必ず 1 回だけ呼び出し、実行者の例外をパケットごとの事実に基づくエラーとして返します。
Swarm 自体が起こす作用は、パケットごとに選択された実行者を 1 回呼び出すことです。実際の影響範囲はパケットに委ねられます。各パケットの推移的な作用、つまり実行者が書き込むもの、実行するもの、アクセスするものは、Swarm が制限するのではなく、呼び出し元がそのパケットで宣言する必要があります。
Swarm は、作業の選択、パケットの作成、バックログに基づくスケジュール、キューの永続化、所有権の主張、再試行、検証、統合、クローズ、Git の使用、配信を行いません。実行者の失敗は実行者の証拠のままであり、コアのフェーズや判定の状態になることはありません。アダプターは、AgentOps のセマンティクスを選択したり、拘束力のある判定を下したり、ファクトリーの完了を配信または検証の証明に変えたりすることはできません。