(上の画像をクリックすると、このレッスンのビデオを視聴できます)
複数のエージェントを扱うプロジェクトに着手するとすぐに、マルチエージェント設計パターンを考慮する必要があります。しかし、いつマルチエージェントに切り替えるべきか、その利点は何かがすぐに明確になるとは限りません。
このレッスンでは、以下の質問に答えていきます:
このレッスンを終えた後には、以下のことができるようになるでしょう:
全体像は?
マルチエージェントは、複数のエージェントが共通の目標を達成するために協力する設計パターンです。
このパターンはロボティクス、自律システム、分散コンピューティングなど、多様な分野で広く利用されています。
どのようなシナリオがマルチエージェントを使う上でよいケースか?答えは、多くのシナリオで複数エージェントを使うことが有益で、特に以下の場合が挙げられます:
単一エージェントシステムは単純なタスクには適していますが、より複雑なタスクには複数エージェント利用のほうが多くのメリットがあります:
例として、ユーザーの旅行予約を考えましょう。単一エージェントシステムでは、フライト検索からホテルやレンタカーの予約まで、すべてを担当する必要があります。これには各タスクを扱うためのツールが必要であり、複雑でモノリシックなシステムとなって維持や拡張が困難になる可能性があります。対照的にマルチエージェントシステムでは、フライト検索、ホテル予約、レンタカー予約に特化したエージェントが存在し、よりモジュール化され、保守性・拡張性が高まります。
これを、家族経営の旅行代理店とフランチャイズ運営の旅行代理店に例えることができます。家族経営の方は単一のエージェントがすべての予約を担当し、フランチャイズの場合は異なるエージェントが予約プロセスの異なる側面を担当しています。
マルチエージェント設計パターンを実装する前に、パターンを構成する部品を理解する必要があります。
ユーザーの旅行予約という例で具体化してみます。この場合、構成要素は以下のようになります:
複数エージェントがどのように相互作用しているかの可視化は、デバッグや最適化、システム全体の効果検証に不可欠です。そのためにエージェントの活動と相互作用を追跡できるツール・技術が必要で、ログやモニタリングツール、可視化ツール、パフォーマンス指標がその例です。
例えば、ユーザーの旅行予約の場合、各エージェントの状況、ユーザーの希望や制約、エージェント同士のやりとりを表示するダッシュボードを用意できます。ダッシュボードはユーザーの旅行日程、フライトエージェントの推奨フライト、ホテルエージェントの推奨ホテル、レンタカーエージェントの推奨レンタカーを示し、エージェント間の相互作用とユーザー希望の充足状況を明確に把握できます。
以下の要素を詳しく見てみましょう。
マルチエージェントアプリを作成する際に使える具体的なパターンを見ていきましょう。注目すべき興味深いパターンは以下の通りです:
このパターンは、複数のエージェントが互いにコミュニケーションを取るグループチャットアプリを作りたいときに有効です。典型的な利用ケースは、チームコラボレーション、カスタマーサポート、ソーシャルネットワーキングです。
このパターンでは、各エージェントがグループチャット内のユーザーを表し、エージェント間でメッセージプロトコルを使ってメッセージをやり取りします。エージェントはグループチャットにメッセージを送信し、受け取り、他のエージェントのメッセージに応答します。
実装は、すべてのメッセージが中央サーバーを経由する中央集権型、またはエージェント間で直接メッセージを交換する分散型のいずれかが可能です。

このパターンは、複数のエージェントがタスクを互いに引き継ぐアプリを作りたいときに適しています。
典型的な用途は、カスタマーサポート、タスク管理、ワークフロー自動化です。
このパターンでは、各エージェントがタスクやワークフローのステップを表し、事前に決められたルールに基づきエージェント間でタスクを引き継ぎます。

このパターンは、複数のエージェントが協力してユーザーへの推薦を行うアプリを作りたいときに有効です。
複数のエージェントが協力する理由は、それぞれ異なる専門知識を持ち、推薦プロセスに多様な観点から貢献できるからです。
例えば、ユーザーが株式市場で買うべき銘柄の推薦を求めるケースを考えます。

製品の返金を求める顧客を想定します。このプロセスには多くのエージェントが関わりますが、このプロセス専用のエージェントと他のプロセスでも使用可能な汎用エージェントに分けてみましょう。
返金プロセス専用エージェント:
返金プロセスに関わる可能性があるエージェントは以下の通りです:
汎用エージェント:
これらはビジネスの他の部分でも利用できるエージェントです:
返金プロセス専用とビジネスの他の部分で使う汎用両方のエージェントがかなり多くリストアップされました。これによりマルチエージェントシステムでどのようにエージェントを選ぶかの参考になれば幸いです。
カスタマーサポートプロセスのマルチエージェントシステムを設計してください。プロセスに関わるエージェント、それぞれの役割・責任、および相互作用の仕組みを特定してください。カスタマーサポート専用エージェントとビジネスの他の部分でも使える汎用エージェントの両方を考慮してください。
次の解決策を読む前に少し考えてみてください。想像以上に多くのエージェントが必要になるかもしれません。
TIP: カスタマーサポートプロセスの異なる段階や、システムに必要なエージェントについても考慮してください。
Question: いつマルチエージェントの使用を検討すべきですか?
このレッスンでは、マルチエージェントデザインパターンを取り上げました。マルチエージェントが適用されるシナリオ、単一エージェントに比べたマルチエージェントの利点、マルチエージェントデザインパターンの実装における構成要素、および複数のエージェントがどのように相互作用しているかを把握する方法について説明しました。
Microsoft Foundry Discord に参加して、他の学習者と交流したり、オフィスアワーに参加したり、AIエージェントに関する質問に答えてもらいましょう。
免責事項: 本書類はAI翻訳サービス「Co-op Translator」(https://github.com/Azure/co-op-translator)を利用して翻訳されました。正確性を追求しておりますが、自動翻訳には誤りや不正確な箇所が含まれる可能性があります。原文の母国語の文書を正本としてご参照ください。重要な情報については、専門の人間による翻訳を推奨いたします。本翻訳の利用により生じたいかなる誤解や誤訳についても責任を負いかねます。