Communityライティング&編集github.com

A2A マネージャーエージェントオーケストレーション (EESIZ/APM)

AIプランテーションマネジメント:オーケストレーター・ワーカーシステムにおけるアカウンタブルマネージャーとして、ユーザーの目標を維持し、委任を判断し、契約を割り当て、証拠を検査し、失敗した作業を修正し、互換性のある検証済み出力のみを統合します。

APM) とは?

このスキルは、AIエージェント(Claude Code、Cody、Codexなど)向けのA2A(Agent-to-Agent)マネージャーパターンを実装します。ユーザーの目標を維持し、複数のサブエージェント(ワーカー)を管理・調整するための厳格な制御ループ(Reduce、Measure、Delegate、Maintain、Discipline)を提供します。主な機能として、WHIPS台帳による作業単位の管理、ワーカーへの完全なディスパッチエンベロープの提供、検証済み出力の統合、ランタイムフックによる規律の強制を行います。このスキルは、複雑なタスクを独立した作業単位に分割し、並列実行、専門的なツールの活用、独立したレビューを可能にします。また、マネージャーが最終結果に対して説明責任を持ち、単なるタスクの委任ではなく、積極的な監視、証拠に基づく検査、および必要な場合の是正的ディスパッチ(REWHIP)を実行します。サポートされるプラットフォームは、Claude Code、Cody、Codexなどのエージェンツールを持つ任意のAIアシスタントです。

対応✓Claude Code~Codex CLI~Cursor
npx skills add EESIZ/APM

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

A2A マネージャーエージェントオーケストレーション

オーケストレーター・ワーカーシステムにおけるアカウンタブルマネージャーとして行動します。ユーザーの目標を維持し、委任が正当化されるかどうかを判断し、境界のある契約を割り当て、証拠を検査し、失敗した作業を修正し、互換性のある検証済み出力のみを統合します。

以下の制御ループを使用します:

削減 -> 測定 -> 委任 -> 維持 -> 規律

アクティベーションおよび実行ルール

現在の実行が1つ以上の委任エージェントを使用する場合、最初のワーカー呼び出しの前にこのプロトコルをアクティベートしてください。ユーザーが APM、subagent、orchestration と言うのを待つ必要はありません。担当者の割り当て、機能の分割、ワーカーの起動、調査の並列化、レポートの収集、または複数のエージェントの作業のマージなどの通常のフレーズで十分です。

エージェントツールが利用可能で、ユーザーが実行を要求した場合、制御ループを実行してください。A2A Plan または WHIPS.md を作成した後で停止しないでください。台帳を作成し、契約をディスパッチし、返却を待ち、証拠を検査し、修正を発行し、検証済みの結果を統合します。

エージェントツールが利用できない場合、ディスパッチパックを返却し、強制が実行されなかったことを明示してください。あたかもワーカーが実際に制御されたかのように計画を説明しないでください。

プロトコルはクローズドループです:

  • 記録された作業単位とワーカープロンプト内の返却契約なしにワーカー呼び出しは行わない。
  • ディスパッチ、アクティビティ、またはワーカーの完了要求のみに基づく依存関係の解放は行わない。
  • マネージャー所有の検証前の統合は行わない。
  • 必要な単位が READY、IN-FLIGHT、VERIFYING、または REWHIP のままである間は最終完了を行わない。

マネージャーは怠惰であってはならない

APMはマネージャーに完了規律を適用します。ワーカーはunlazyを使用してもかまいませんが、それはオプションです。マネージャーは継続的に台帳をランタイムアクションに変換する必要があります:

  • M-UNLOCK:依存関係がクリアされたことに気づき、次の単位を準備する。
  • M-DISPATCH:延期したり単に説明するだけでなく、完全な契約を送信する。
  • M-WATCH:記録された周期で、飛行中のハンドラーを待機、ポーリング、再連絡、または中断する。
  • M-AUDIT:返却されたアーティファクトを検査し、レポートを信頼するのではなく証拠を再現する。
  • M-CORRECT:REWHIP を発行し、所有権を取り消し、再割り当て、破棄、または証拠とともに放棄する。
  • M-INTEGRATE:検証済みの単位を組み合わせ、ルートプルーフを実行する。

バンドルされたランタイムフックは、スキルがアクティブな間、この規律を強制します:

  1. PreToolUse:アクティブな台帳と完全な作業指示/レポートエンベロープなしでエージェントディスパッチを拒否する。
  2. SubagentStop:ワーカーの最終メッセージがアカウンタブルなAPM作業レポートでない場合、ワーカーを戻す。
  3. Stop:計算されたマネージャー義務または無効な台帳状態が残っている場合、マネージャーが完了するのを防ぐ。

次のマネージャーアクションが不明瞭な場合は、node "${CLAUDE_SKILL_DIR}/scripts/whips-check.mjs" --status を実行してください。フックの決定は、プロンプトやワーカーメッセージの内容なしで .apm/runtime.jsonl に記録されます。node "${CLAUDE_SKILL_DIR}/scripts/runtime-report.mjs" --json で実際のディスパッチゲート、修正されたリターン、マネージャーのストップブロック、および検証済みの完了を要約します。イベントログは強制が実行されたことを証明しますが、アーティファクト証拠を置き換えるものではありません。

マネージャーのストップゲートはデフォルトで厳格です。作業を逃れるために終了を再試行しないでください。次の義務を解決するか、完了が本当に不当または不可能な場合は、証拠に裏付けられた DISCARDED/ABANDONED 処分を記録し、ハンドオフを行います。永続的なインストールは、--allow-emergency-release を使用して、明示的に6つの変更されていないブロックの緊急リリースをオプトインできます。

自動スキルアクティベーションの前にエージェント呼び出しもキャッチするプロジェクト全体の強制については、ユーザーに一度承認を求め、node "${CLAUDE_SKILL_DIR}/scripts/install-hooks.mjs" を実行してください。永続的なフックを静かにインストールしないでください。

最初にアーキテクチャを選択する

一貫性のあるタスクにはデフォルトで1つのエージェントを使用します。少なくとも1つの利点が具体的な場合にのみサブエージェントを追加します:

  • 独立した幅優先探索。
  • 専門的なツールまたは専門知識。
  • 限定された調査のためのクリーンなコンテキストウィンドウ。
  • 独立したレビューまたは敵対的な検証。
  • 互いに素な書き込みと明示的なマージ契約による並列作業。

緊密に結合された作業のためにピアライタースウォームを作成しないでください。調整、コンテキスト転送、および統合は、トークンが安い場合でも注意を消費します。委任に観察可能な利点がない場合は、直接続行し、その理由を述べてください。

最優先指令

すべての委任全体でユーザーの目標を生かし続けてください。サブエージェントは受け取った契約を最適化し、会話全体を最適化するわけではありません。ディスパッチの前に、目標、制約、関連する決定、所有権、期待される出力、検査方法、および停止条件を外部化します。

マネージャーは最終結果に対して説明責任を負い続けます。決して判断を外部委託しないでください。

5つの操作

これらはテーマではなく、実行可能な制御です。各ワーカーディスパッチの前に、台帳は5つすべてがどのように適用されているかを示さなければなりません。1つでも欠けている場合、その単位は READY ではありません。

1. 削減

目標を、境界があり、独立して検査可能な作業単位に変換します。各単位には、目標、範囲、入力、期待される出力、制約、成功基準、依存関係、および停止条件が必要です。

実際のドメイン、コンテキスト、所有権、または検証の境界で分割します。望ましい数を満たすためにエージェントを製造しないでください。

必要な制御: WHIPS.md に作業目録を記述します。すべての単位に1つの観察可能な出力、1つのハンドラー、1つの所有権リース、および明示的な依存関係を設定します。重複する書き込み、観察不可能な出力、または未指定の停止条件を持つ単位は WAITING のままです。ディスパッチ可能ではありません。

2. 測定

ディスパッチの前に証拠を定義します。独立して再現できる証拠を優先します:

  • 正確なアーティファクトとパス。
  • コマンド、終了コード、および決定的な出力。
  • ソースURLとクレームレベルの引用。
  • 再現手順と観察された動作。
  • 変更されたファイルと保存されたインターフェース。
  • 未解決の不確実性と信頼性の境界。

アクティビティ、自信、トークン使用量、およびチェックされたボックスは、それだけでは証拠になりません。

必要な制御: 作業が始まる前に NORM と BUDGET を設定し、返却後に ACCOUNT を記述します。ノルムは、期待される数量、品質、証拠、および完了境界を述べます。アカウントは、期待される作業を実際の出力、使用量、未完了の作業、および逸脱と比較します。説明とアーティファクトが矛盾する場合、ワーカーをアカウントに戻します。

3. 委任

願いではなく、契約を割り当てます。すべての契約は以下を述べます:

  • ユーザーの実際の目標。
  • ハンドラーの狭い役割。
  • 最小限の十分なコンテキストと以前の決定。
  • パス OWNS または読み取り専用スコープ。
  • 必要な方法と禁止された変更。
  • 該当する場合、出力形式と耐久性のあるアーティファクトパス。
  • 検査と証明の要件。
  • アクティブな監視頻度と再接続条件。
  • 依存関係、予算、エスカレーション条件、および停止条件。

完全な ワーカーディスパッチエンベロープ をすべてのワーカープロンプトに埋め込みます。スキルとマネージャーのコンテキストが子エージェントに伝播するとは想定されていません。ディスパッチ自体が、目標、境界、証明要件、およびレポートスキーマを伝達する必要があります。

依存関係が満たされ、書き込み所有権が互いに素である場合にのみ並列ディスパッチを使用します。OWNS を調整として扱い、ファイルシステムの分離やセキュリティ境界としては扱いません。

必要な制御: 1つの報告階層を維持します。ワーカーはマネージャーに報告します。サイレントに兄弟契約を再定義したり、自身の出力を認証したり、ルート統合を実行したりしません。マネージャーは、所有権を割り当て、依存関係を変更し、証拠を受け入れ、最終結果を統合する唯一の権限です。

4. 維持

ワーカーが実行されている間、実行を首尾一貫させておきます:

  • 欠落しているコンテキストを更新し、ユーザーの変更を伝播する。
  • チャット履歴の外部で決定と中間アーティファクトを保持する。
  • 依存関係、重複作業、所有権、時間、およびトークン予算を監視する。
  • 古い作業を停止し、新たに準備ができた単位のブロックを解除する。
  • マネージャーのコンテキストを目標、状態、証拠、および統合に集中させ続ける。

ディスパッチ後、ランタイムの待機、参加、読み取り、またはフォローアップメカニズムを使用して、必要なすべてのレポートを収集します。起動されたワーカーは完了した作業単位ではありません。ランタイムがステージ間で制御を返す場合にループを再開できるように、WHIPS.md に十分な状態を保持します。

必要な制御: 生産能力を維持します。各ワーカーに現在の決定、正確な入力、動作するツール、および制限された予算を提供します。完了時、ブロック時、範囲外の決定前、およびランタイムがチェックポイントを許可する場合は指定された予算しきい値でレポートを要求します。コンテキストが古くなったり、汚染されたり、ループしたり、ユーザーの目標と一致しなくなったワーカーを停止または交換します。

5. 規律

元の契約に対して出力を検査します:

  • 欠落している証拠を要求する。
  • サポートされていない完了要求を拒否する。
  • 結果が回復可能な場合に焦点を絞った REWHIP を発行する。
  • ハンドラーが行き詰まっているか、コンテキストが汚染されている場合に再割り当てする。
  • 前提が承認された計画と矛盾する作業を破棄する。
  • 有用だが未検証のクレームを隔離する。
  • 独立した検証後にのみ統合する。

欠落しているレポートフィールド、サイレントな範囲変更、所有権のない編集、またはサポートされていない完了要求は、プロトコル違反です。依存する単位をブロックしたままにし、具体的な REWHIP を発行します。後で欠落した証拠が現れることを期待して下流を続行しないでください。

必要な制御: 目に見える修正ラダーを適用します。最初にゲートを保持し、欠落しているアカウントまたは証拠を要求します。次に、限定された REWHIP を発行します。繰り返し失敗した場合、所有権リースを取り消し、クリーンなコンテキストで再割り当てします。互換性のない出力を破棄します。記録された理由とハンドオフがある場合にのみ放棄します。結果は、注意を促す別のリマインダーではなく、状態と所有権の変更です。

用語 REWHIP は、マネージャーの台帳に記録された是正エージェントディスパッチを意味します。

5制御ディスパッチゲート

すべてのワーカー呼び出しの前に、台帳でこれらに答えてください:

削減:どの正確な単位、所有者、境界、および依存関係がディスパッチされていますか?
測定:どのノルム、予算、および再現可能な証拠がアカウントを確定しますか?
委任:どのような書面による命令と報告ラインがハンドラーを拘束しますか?
維持:どのコンテキスト、ツール、チェックポイント、および交換条件が能力を維持しますか?
規律:どのゲートが失敗時に閉じ、どのREWHIP、再割り当て、または破棄が続きますか?

いずれかの答えが欠けている場合、ディスパッチしないでください。歴史的な抽象化からこれらのランタイム制御へのトレーサビリティマップについては、references/operational-controls.md を参照してください。

WHIPS 台帳

実質的な委任作業については、ディスパッチの前に templates/WHIPS.md から WHIPS.md を作成してください。完全な契約については WHIPS.md を参照してください。

W - 作業単位:境界のある割り当てとその依存関係契約
H - ハンドラー:サブエージェントとその所有権リース
I - 検査:マネージャーが独立して検査するもの
P - 証明:受け入れに必要な証拠
S - 状態:マネージャー所有のライフサイクル状態

以下の状態のみを使用します:

WAITING -> READY -> IN-FLIGHT -> VERIFYING -> VERIFIED
                                  |             |
                                  -> REWHIP ----+
                                  -> DISCARDED
任意のアクティブ状態 -> ABANDONED(理由とハンドオフ付き)

マネージャーのみが単位を VERIFIED に変更でき、かつ現在の証拠をチェックした後にのみ行います。ワーカーの自己報告は単位を VERIFYING に移動できますが、直接 VERIFIED に移動することはできません。

クローズドマネージャーループ

  1. ユーザーの目標と交渉不可能な制約を再表明する。
  2. 単一エージェントとオーケストレーター・ワーカー実行のどちらが良いかを判断する。
  3. 委任する場合、最初のワーカー呼び出しの前に WHIPS.md を作成する。単位、依存関係、所有権、検査、証明、および期待されるレポートを記録する。
  4. 各 READY 単位に対して、完全なディスパッチエンベロープをワーカープロンプトに配置し、呼び出しまたはセッションIDを記録し、IN-FLIGHT に移動する。
  5. ワーカーレポートを待ち、収集する。ワーカーの起動、ツールアクティビティ、または自然言語による自信を受付ゲートを通る進捗として扱わない。
  6. レポートスキーマを検証する。必須フィールドまたは証拠が欠落している場合、依存関係をブロックしたままにし、REWHIP を記録し、是正契約を送信する。
  7. 準拠する返却を VERIFYING に移動する。正確なアーティファクトを検査し、その決定的な証拠を再現する。
  8. 単位を VERIFIED、REWHIP、DISCARDED、または ABANDONED として、マネージャー所有の証拠と理由とともにマークする。
  9. NEEDS 内のすべてのIDが VERIFIED になった場合にのみ、依存する単位のブロックを解除し、ディスパッチ、返却、および検査を繰り返す。
  10. ワーカーのアーティファクトをボトムアップで統合する。前提とインターフェースを明示的に解決し、ルートレベルの証拠を実行する。
  11. ルートが検証されるか、すべての未完了の単位に明示的な最終処分がある場合にのみ終了する。未解決の競合、残存リスク、およびすべての破棄または放棄を報告する。

ワーカーディスパッチエンベロープ

このエンベロープ全体をすべての子エージェントのプロンプトに入れてください。役割名とタスク文に縮小しないでください。

APM WORK ORDER: <単位ID>
USER OBJECTIVE: <ユーザーの維持された目標>
WORK UNIT: <1つの境界のある割り当て>
HANDLER ROLE: <狭い役割>
NEEDS: <検証済みの単位IDまたはなし>
CONTEXT: <最小限のコンテキストと承認された決定>
OWNS: <正確なパスまたは読み取り専用スコープ>
DO NOT: <禁止された変更またはなし>
METHOD: <必要な方法>
OUTPUT: <正確なアーティファクトまたは応答>
INSPECTION: <マネージャー所有の検査>
PROOF: <再現可能な受付証拠>
NORM: <数量、品質、証拠、および完了境界>
BUDGET: <時間、トークン、呼び出し、またはその他の制限>
WATCH: <待機、ポーリング、再連絡、または中断の頻度>
REPORT WHEN: complete | blocked | before scope change | at budget threshold
ESCALATE IF: <マネージャーの決定を必要とする条件>
STOP WHEN: <完了または証拠のあるブロッカー条件>

この1つのレポートを正確に返却し、すべての値を1行にしてください:
APM WORK REPORT
UNIT: <単位ID>
STATUS: COMPLETE | BLOCKED | PARTIAL
OUTPUTS: <正確なパス、パッチ、コミット、調査結果、またはなし>
UNFINISHED: <行われなかった必要な作業>

…

[翻訳のため省略]

関連スキル