compose について
compose は、エージェントワークフローを構築する人向けのマルチエージェント設計スキルです。複数エージェントの必要性を確認し、構成、引き継ぎ、監督役の設計を案内します。
主な機能
- 01マルチエージェント設計の必要性を確認
- 02エージェントの役割、境界、入力を定義
- 03引き継ぎ条件と障害対応を設計
- 04監督役と構成の設計を支援
活用シーン
- 01単一エージェントで十分かを判断
- 02マルチエージェントの役割と接続を計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sharpdeveye/ maestro --skill composeインストール後、Claude Code で/composeを入力して読み込まれたか確認します。
詳細
必須の事前準備
/agent-workflow を呼び出してください。ここには、ワークフローの原則、アンチパターン、コンテキスト収集プロトコルが含まれています。作業を進める前にこのプロトコルに従ってください。まだワークフローのコンテキストがない場合は、必ず最初に /teach-maestro を実行してください。 トポロジーパターンとマルチエージェントが妥当な場合については、agent-workflow スキルにある agent-architecture リファレンスを参照してください。
マルチエージェントシステムを設計します。ただし、まず、本当に必要でしょうか?
ステップ 1:構成前の確認
先に次の質問に答えてください。
- 単一エージェントを試して、うまくいきませんでしたか?(いいえの場合は、まず単一エージェントを試してください)
- 複数のエージェントを必要とする具体的な制約は何ですか?(説明できない場合、マルチエージェントは必要ありません)
- コストとレイテンシーの増加は妥当ですか?(マルチエージェントではコストとレイテンシーが 2~10 倍になります)
具体的な制約を明確に説明できない場合は、代わりに単一エージェントで /amplify を使用してください。
ステップ 2:トポロジーを設計する
適切なアーキテクチャパターンを選択してください(agent-workflow スキルにある agent-architecture リファレンスを参照してください)。
システム内の各エージェントについて、次を定義してください。
## Agent: [Name]
Role: [One sentence]
Responsibilities: [What it does]
Boundaries: [What it does NOT do]
Tools: [List of tools this agent has access to]
Input: [What it receives]
Output: [What it produces]
ステップ 3:引き継ぎを設計する
エージェント間の各接続について、次を定義してください。
## Handoff: [Agent A] → [Agent B]
Trigger: [When does A hand off to B?]
Payload: [What data is passed?]
Expected response: [What does A expect back?]
Timeout: [How long to wait?]
Failure handling: [What if B fails?]
ステップ 4:スーパーバイザーを設計する
すべてのマルチエージェントシステムにスーパーバイザーが必要です。
- エージェントの健全性とパフォーマンスを監視する
- 適切なエージェントにタスクを割り当てる
- 障害とエスカレーションに対応する
- グローバルな制約(予算、時間、品質)を適用する
構成チェックリスト
- 各エージェントの役割が明確で、重複していない
- 各接続の引き継ぎプロトコルが定義されている
- スーパーバイザーパターンが導入されている
- すべてのエージェントを考慮したコストとレイテンシーの予算が設定されている
- すべての引き継ぎポイントで障害モードに対処している
- トポロジー図を見ることでシステムを理解できる
次の推奨ステップ
構成後、/fortify を実行してすべての引き継ぎにエラー処理を追加し、その後 /evaluate を実行してマルチエージェントシステムをエンドツーエンドでテストしてください。
絶対に避けてください:
- 単一エージェントで対応できる問題にマルチエージェントを構築する
- 役割が重複するエージェントを作成する
- スーパーバイザーを省略する(自律型の群れは予測できません)
- すべてのエージェント間でコンテキスト全体を渡す(必要な情報だけを渡してください)
- 引き継ぎプロトコルを定義せずに構成する