Agent Orchestrator
概要
エコシステム内のすべてのエージェントをオーケストレーションするメタスキル。スキルの自動スキャン、機能ベースのマッチング、マルチスキルワークフローの調整、レジストリ管理を提供します。
このスキルを使用するタイミング
- このドメインに関する専門的な支援が必要な場合
このスキルを使用すべきでない場合
- タスクがエージェントオーケストレーターと無関係な場合
- よりシンプルで具体的なツールでリクエストを処理できる場合
- ユーザーがドメイン専門知識を必要としない汎用的な支援を必要としている場合
仕組み
スキルエコシステム全体の中央決定・調整レイヤーとして機能するメタスキル。自動スキャンを実行し、関連するエージェントを特定し、複雑なタスクに対して複数のスキルを調整します。
原則: ゼロ手動介入
- 常にスキャンを実行してからリクエストを処理
- 新しいスキルは、任意のサブフォルダにSKILL.mdを作成すると自動検出・追加される
- 削除されたスキルはレジストリから自動除外される
- 新しいスキルを登録するための手動コマンドは不要
必須ワークフロー(全リクエスト)
ユーザーのリクエストを処理する前に、以下の手順を実行してください。 スクリプトは自動的に相対パスを使用するため、どのディレクトリからでも動作します。
ステップ 1: 自動検出(スキャン)
python agent-orchestrator/scripts/scan_registry.py
MD5ハッシュキャッシュにより超高速(<100ms)。変更されたファイルのみを再処理します。 見つかったすべてのスキルの概要を含むJSONを返します。
ステップ 2: スキルマッチング
python agent-orchestrator/scripts/match_skills.py "<ユーザーのリクエスト>"
関連性でランク付けされたスキルのJSONを返します。結果を解釈します:
| 結果 | アクション |
|---|---|
matched: 0 | 関連スキルなし。スキルなしで通常通り動作。 |
matched: 1 | 1つの関連スキル。そのSKILL.mdを読み込み、それに従う。 |
matched: 2+ | 複数のスキル。ステップ3(オーケストレーション)を実行。 |
ステップ 3: オーケストレーション(Matched >= 2 の場合)
python agent-orchestrator/scripts/orchestrate.py --skills skill1,skill2 --query "<リクエスト>"
パターン、ステップの順序、スキル間のデータフローを含む実行計画を返します。
クイックパス(ショートカット)
単純なクエリの場合、ステップ1と2を連続して組み合わせることができます:
python agent-orchestrator/scripts/scan_registry.py && python agent-orchestrator/scripts/match_skills.py "<リクエスト>"
スキルレジストリ
レジストリは以下にあります:
agent-orchestrator/data/registry.json
検索場所
スキャナーはSKILL.mdを以下の場所で探します:
.claude/skills/*/(Claude Codeに登録されたスキル)*/(トップレベルのスタンドアロンスキル)*/*(サブフォルダ内のスキル、深さ3まで)
スキルごとのメタデータ
レジストリの各エントリには以下が含まれます:
| フィールド | 説明 |
|---|---|
| name | スキル名(YAMLフロントマターから) |
| description | 完全な説明(トリガーを含む) |
| location | ディレクトリの絶対パス |
| skill_md | SKILL.mdの絶対パス |
| registered | .claude/skills/ にあるかどうか(true/false) |
| capabilities | 機能タグ(自動抽出 + 明示的) |
| triggers | 説明から抽出されたアクティベーションキーワード |
| language | 主要言語(python/nodejs/bash/none) |
| status | active / incomplete / missing |
レジストリコマンド
## クイックスキャン(ハッシュキャッシュを使用)
python agent-orchestrator/scripts/scan_registry.py
## 詳細なステータステーブル
python agent-orchestrator/scripts/scan_registry.py --status
## 完全再スキャン(キャッシュを無視)
python agent-orchestrator/scripts/scan_registry.py --force
マッチングアルゴリズム
各リクエストに対して、マッチャーは以下の基準でスキルをスコアリングします:
| 基準 | ポイント | 例 |
|---|---|---|
| クエリ内のスキル名 | +15 | "use web-scraper" -> web-scraper |
| キーワードトリガー完全一致 | +10 | "scrape" -> web-scraper |
| 機能カテゴリ | +5 | data-extraction -> web-scraper |
| 単語の重複 | +1 | 説明内のクエリ中の単語 |
| プロジェクトブースト | +20 | アクティブなプロジェクトに割り当てられたスキル |
最低閾値: 5ポイント。これ未満のスキルは無視されます。
プロジェクトとのマッチング
python agent-orchestrator/scripts/match_skills.py --project my-project "query here"
プロジェクトに割り当てられたスキルは自動的に+20のブーストを受け取ります。
オーケストレーションパターン
複数のスキルが関連する場合、オーケストレーターはパターンを分類します:
1. シーケンシャルパイプライン
スキルがチェーンを形成し、あるスキルの出力が次のスキルへの入力となります。
適用時: 「プロデューサー」スキル(data-extraction、government-data)と「コンシューマー」スキル(messaging、social-media)が混在する場合。
例: web-scraperが価格を収集 -> whatsapp-cloud-apiがアラートを送信
user_query -> web-scraper -> whatsapp-cloud-api -> result
2. 並列実行
スキルがリクエストの異なる側面に独立して取り組みます。
適用時: すべてのスキルが同じ役割を持つ場合(すべてプロデューサーまたはすべてコンシューマー)。
例: instagramが投稿を公開 + whatsappが通知を送信(両方とも同じコンテンツを受け取る)
user_query -> [instagram, whatsapp-cloud-api] -> aggregated_result
3. プライマリ + サポート
1つの主要スキルがリードし、他のスキルが補助データを提供します。
適用時: 1つのスキルが他のスキルよりもスコアが非常に高い場合(>= 2倍)。
例: whatsapp-cloud-apiがメッセージを送信(プライマリ)+ web-scraperがデータを提供(サポート)
user_query -> whatsapp-cloud-api (primary) + web-scraper (support) -> result
詳細は References/Orchestration-Patterns.md を参照
プロジェクト管理
スキルをプロジェクトに割り当てることで、関連性のブーストと永続的なコンテキストを実現します。
プロジェクトファイル
agent-orchestrator/data/projects.json
操作
プロジェクトの作成: projects.jsonにエントリを追加:
{
"name": "project-name",
"created_at": "2026-02-25T12:00:00",
"skills": ["web-scraper", "whatsapp-cloud-api"],
"description": "プロジェクトの説明"
}
プロジェクトへのスキル追加: プロジェクトの skills 配列を更新。
プロジェクトからのスキル削除: skills 配列から削除。
プロジェクトのスキル確認: projects.jsonを読み取り、割り当てられたスキルをリスト。
新しいスキルの追加
新しいスキルをエコシステムに追加するには:
skills root:以下の任意の場所にフォルダを作成- YAMLフロントマターを含む
SKILL.mdを作成:
---
name: my-new-skill
description: "アクティベーションキーワードを含む説明..."
---
## スキルドキュメント
- 完了! 自動検出が次のリクエスト時に自動的に検出します。
オプションで、Claude Codeのネイティブ検出のため:
4. SKILL.mdを .claude/skills/<name>/SKILL.md にコピー
明示的な機能タグ(オプション)
より正確なマッチングのためにフロントマターに追加:
capabilities: [data-extraction, web-automation]
すべてのスキルのステータスを確認
python agent-orchestrator/scripts/scan_registry.py --status
ステータスの解釈
| ステータス | 意味 |
|---|---|
| active | name + description が存在するSKILL.md |
| incomplete | SKILL.mdは存在するが、nameまたはdescriptionがない |
| missing | ディレクトリは存在するが、SKILL.mdがない |
現在のエコシステムスキル
| スキル | 機能 | ステータス |
|---|---|---|
| web-scraper | data-extraction, web-automation | active |
| junta-leiloeiros | government-data, data-extraction | active |
| whatsapp-cloud-api | messaging, api-integration | active |
| social-media, api-integration | partial |
このテーブルは scan_registry.py --status により自動更新されます。
ベストプラクティス
- プロジェクトと要件に関する明確で具体的なコンテキストを提供する
- プロダクションコードに適用する前に、すべての提案を確認する
- 包括的な分析のために、他の補完的なスキルと組み合わせる
よくある落とし穴
- このスキルをそのドメイン専門知識の範囲外のタスクに使用する
- 自分の特定のコンテキストを理解せずに推奨事項を適用する
- 正確な分析のために十分なプロジェクトコンテキストを提供しない
関連スキル
multi-advisor- 拡張分析のための補完スキルtask-intelligence- 拡張分析のための補完スキル
制限事項
- このスキルは、タスクが上記の範囲に明確に一致する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全境界、または成功基準が不足している場合は、停止して明確化を求めてください。