最近のAzure Architectureブログ記事において、Azureリードエンジニア Kishorekumar Pattabiraman氏は、AIシステムを構築する際のスキル、サブエージェント、その他のアプローチの実用的な選択基準を概説し、再利用性、シンプルさ、長期的な保守性を強調している。
Pattabiraman氏によると、チームはしばしばモデルとして何を使用するかにフォーカスした、誤った問いから出発する。しかし「最初の真の分岐点」はモデルではなく、アーキテクチャである:
スキルを構築しているのですか、それともサブエージェントを構築しているのですか?ここを間違えると、どのようなモデル選択をしても救われません。スキルとサブエージェントは異なる2つの提供形態であり、それぞれ相手の役割を果たすことはできません。
スキルは進行中の会話の中で動作する:ファイルを読み取り、質問し、ユーザーと反復的にやり取りし、プロセス全体を通じて人間をループ内に維持する。対照的にサブエージェントは単一プロンプトを受け取り、完了まで独立して実行し、最終的な出力を提供する。どちらもタスクに応じて適した用途を持っている、とPattabiraman氏は言う。
スキルとサブエージェントのどちらを構築すべきかを判断するために、Pattabiraman氏は考慮すべき4つの主要な次元をハイライトしている:反復モデル、ボイス忠実度、ヒューマンゲートの配置、タスクの繰り返し頻度。
4つの次元の中で頻度がもっとも明確な分岐を生み出す要素である:「一度限りの創作的成果物はスキルに向き、反復可能なバッチジョブはサブエージェントに向く」。その他の要素についてはより慎重な検討が必要である。例えば、選択肢は完全にインタラクティブな会話と単純な引き渡しとの二択になることはほとんどなく、人間が反復型のスキルベースフローに関与するコストと、その同じプロセスを毎回修正が必要になる可能性のあるワンショット応答に押し込めるリスクとを比較検討する必要がある。各次元についてPattabiraman氏は、主要トレードオフと回避すべき一般的な落とし穴を概説している。
スキルとサブエージェントのどちらをいつ使用すべきかという問題は、RedditやHacker Newsでの議論でも取り上げられている。コメント投稿者 enthusiast_bob氏は、サブエージェントは常にクリーンな状態から開始しコンテキストウィンドウを汚染しないのに対し、スキルは常に会話全体を考慮に入れると指摘している。 別のユーザー dan-does-ai氏は異なるトレードオフを主張している:スキルは「複数のエージェントや会話フローにまたがって再利用可能」であるのに対し、「サブエージェントが適しているのはそのステップで真に独立したコンテキスト、権限、または異なる知識ソースが必要な場合である」。
もう一つの重要な考慮点は、サブエージェントを使用する際に生じるオーケストレーションの必要性だ。複雑さが増すだけでなくオーケストレーション層によって生じる非決定性も考慮しなければならない。例えばRedditのコメント投稿者 Ashlesha-msft氏は、Copilot Studioにおいて次のように指摘している:
プランナーは説明文やコンテキスト、直近の会話履歴を基に、スキルやツール、トピック、サブエージェントの呼び出しを動的に判断します。そのため同様のプロンプトでもスキルが毎回起動されるとは限りません。
コミュニティからの最後の視点として、ユーザー Vlourenco69氏は「AIエージェント、サブエージェント、スキル、MCPのような概念を理解する」ためのシンプルなメンタルモデルを提案している。このモデルではエージェントはディレクター、サブエージェントはマネージャー、スキルは専門作業者、ツールは専用機械、MCPは組織のガバナンスルールまたはポリシーとして機能する。
議論を締めくくる形で、Pattabiraman氏は多くの場合においてスキル対サブエージェントという二分法は見かけ上のものにすぎないと指摘している。実際にはこの2つのモデルは自然に組み合わせることができ、問題に応じてサブエージェントの上にスキルを構築することも可能である。多くの場合、このレイヤードアプローチこそが最も成熟した設計を表している。