オーケストレーション
オーケストレーターは、複数のサブエージェントを調整して、複雑な複数ステップのワークフローを管理します。
サブエージェントの追加 によってエージェントをオーケストレーターとして構成すると、エージェントはタスクを計画し、サブエージェントに作業を委任し、その出力を統合する調整レイヤーになります。オーケストレーターはツールを直接実行しません。代わりに、戦略、タスクのルーティング、結果の組み合わせに焦点を当てます。
アーキテクチャ
オーケストレーターは、複数のエージェントを調整する監視レイヤーとして機能します。ツールを直接呼び出すことはありません。
代わりに、次の操作を実行してワークフローを管理します。
- エンドユーザーの目標を解釈します。
- どのエージェントが必要かを特定する。
- これらのエージェントにタスクを委任する。
- 収集し、その結果を統合します。
利点
- モジュラーアーキテクチャ:エージェントは特殊であり、独立して保守できます。
- スケーラブルな実行: タスクを並行して実行できます。
- 堅牢性: 障害は再試行/フォールバック メカニズムで分離されます。
- 明確な責任分担: オーケストレーターが計画を管理し、エージェントが実行を管理します。
- 拡張性: 新しいエージェントやツールを簡単に追加できます。
オーケストレーター プロンプトの例
オーケストレーションを使用するタイミングについては、エージェントの計画を参照してください。
サブエージェントがツールとして使用できるコンポーネントを構築するには、コンポーネント設計を参照してください。
サブエージェントのバージョン管理
オーケストレーター エージェントがサブエージェントを参照する場合、各サブエージェントには独自の独立したバージョン ライフサイクルがあります。オーケストレーターを公開すると、各サブエージェントの正確なバージョンを固定する不変のスナップショットが作成されます。
仕組み [#how-it-works-subagent-versioning]
- ドラフトオーケストレーターは、サブエージェントの任意のバージョン(ドラフトまたはリリース済み)を参照できます。
- オーケストレーターのリリース バージョンを作成すると、次のようになります。
- まだドラフト状態のサブエージェントは、新しいリリース バージョンに自動的に公開され、オーケストレーターのリリースに固定されます。
- すでにリリースされているサブエージェントは、そのまま固定されます。不要なバージョンのバンプは発生しません。
- サブエージェントがまだドラフトである場合は、続行する前に、そのサブエージェントをリストする確認ダイアログが表示されます。
- リリースされたオーケストレーターは、サブエージェントに対する今後の変更の影響を受けません。ピン留めされたバージョンはフリーズされたままです。
ランタイム バージョンの解決 [#runtime-version-resolution-subagent-versioning]
オーケストレーターが実行時にサブエージェントを呼び出すと、現在アクティブなサブエージェントのバージョンではなく、マニフェストの固定されたバージョンが使用されます。
サブエージェントのアクティブバージョンは、そのサブエージェントへの直接トラフィックを処理するバージョンを制御します(たとえば、ユーザーがサブエージェントスタンドアロンと対話する場合)。親エージェントが依存関係を解決する方法には影響しません。
例: オーケストレーター (V1) は、払い戻しハンドラー V2 をピン留めします。払い戻しハンドラー V3 がアクティブな場合でも、オーケストレーターは引き続き V2 を使用します。V3 を使用するには、オーケストレーターのドラフトを V3 を参照するように更新し、新しいリリース バージョンを作成します。
ロールバック [#rollback-subagent-versioning]
オーケストレーターのリリースされた各バージョンは、固定されたサブエージェント バージョンの不変のスナップショットであるため、オーケストレーターを以前のバージョンにロールバックして、以前のサブエージェント構成を即座に復元できます。詳細は、バージョン履歴をご参照ください。