参考になる複数エージェント+MCPのサンプルです。

参考になる複数エージェント+MCPのサンプルです。 この記事の内容 Microsoftが公開した「Azure AI Travel Agents」サンプルプロジェクトを紹介します MCPを活用した複数AIエージェント連携(マルチエージェント)のアーキテクチャを解説します LlamaIndex.tsによるオーケストレーションと、各エージェントの役割を説明します .NET・Python・Javaなどポリグロット構成のツール群がどう連携するかを解説します ローカル環境で無料で試せる方法についても触れます はじめに:複数のAIエージェントが連携する旅行プランニングシステム AI技術の進化に伴い、単一のAIだけでなく、複数のAIエージェントが協調して複雑なタスクを処理する「マルチエージェントシステム」が注目されています。今回は、Microsoftが公開したサンプルプロジェクト「Azure AI Travel Agents」を紹介します。このプロジェクトは、複数のAIエージェントが連携して旅行プランを作成するシステムであり、マルチエージェントシステムの構築に興味がある開発者にとって非常に参考になる内容です。 Azure AI Travel Agentsとは? 「Azure AI Travel Agents」は、旅行に関するさまざまなリクエストに応えるAIエージェントのサンプルアプリケーションです。最大の特徴は、MCP(Model Context Protocol) を活用し、複数のエージェントが協調して動作する点にあります。 たとえば、ユーザーが「フランスのパリから10日間、予算5000ユーロで旅行プランを立てて」といったリクエストを投げると、システム内の各エージェントがそれぞれの役割に基づき、情報収集・プランニング・提案などを連携して行い、最適な旅行プランを生成します。 ローカル環境で手軽に試せるデモ このサンプルは、Azure Container Appsを使用した本格的な構成だけでなく、自身のPC上で無料で動作させることも可能です。Azure環境がない方でも、手軽にマルチエージェントシステムの挙動を試し、ソースコードを読んで学習することができます。 ただし、ローカルのデモ環境では、実際のフライト情報やホテル情報を取得するのではなく、あらかじめ用意されたモックデータ(ダミーデータ)を使用する点にご注意ください。 システムのアーキテクチャ このシステムのアーキテクチャは、Web UI・Web API・エージェントワークフローサービス、そして複数のツール群で構成されています。 ユーザーはWeb UIを通じてリクエストを送信し、APIを介してエージェントのワークフローが起動します。ワークフロー内では、5つの異なる役割を持つエージェントが、5つの専用ツール(MCPクライアント経由でアクセス)を駆使してタスクを処理します。 特筆すべきは、各ツールが.NET・Python・Javaなど、異なるプログラミング言語で構築されている点です。これは、既存の多様なツールやシステムを連携させる現実的なシナリオを想定した設計と言えます。 LlamaIndex.tsによるAIエージェントのオーケストレーション システムの中核となるAIエージェントの連携(オーケストレーション)には、エージェントフレームワークであるLlamaIndex.tsが採用されています。Node.jsのバックエンド上で構築されており、エージェント間のインテリジェントなやり取りを管理します。 タスクの振り分け(デリゲーション) 最初に「トリアージエージェント」がユーザーのリクエストを分析し、日程作成・目的地提案など、タスクに応じて最適なエージェントに仕事を割り振ります。 エージェント間の連携(コーディネーション) LlamaIndex.tsが会話の文脈(コンテキスト)を維持することで、「複数の都市を巡る」といった複雑な問い合わせに対しても、一貫性のある応答が可能になります。 LLMとの統合 Azure OpenAI・OpenAI、またはローカルで動作するLLMなど、さまざまな大規模言語モデルと柔軟に接続できます。 MCP(Model Context Protocol)によるデータとツールの供給 MCP(Model Context Protocol) は、エージェントにリアルタイムのデータと外部ツールへのアクセスを提供するエンジンとしての役割を担います。 リアルタイムデータの提供 「Webサーチエージェント」がBing検索などを通じて、最新の旅行トレンドや情報を取得します。 多様なツールへのアクセス 顧客の感情を分析する.NET製の「感情分析ツール」、旅行スケジュールを立てるPython製の「旅行プランナー」、行き先を提案するJava製の「おすすめツール」など、さまざまなツールに接続します。 このように、MCPがエージェントの能力を拡張し、LlamaIndex.tsがエージェント間の連携を司ることで、高度なタスク処理を実現しています。 Azure Container Appsによるスケーラビリティと回復性 本番環境での運用を想定し、Azure Container Appsをインフラ基盤として採用しています。これにより、モダンなアプリケーションに求められる拡張性と回復性を確保しています。 動的なスケーリング トラフィックの増減に応じてコンテナインスタンスを自動で調整し、予約が急増しても安定したサービスを提供できます。 ポリグロット・マイクロサービス対応 .NET・Python・Java・Node.jsなどで作られた各ツールを、それぞれ個別のコンテナとして実行できます。 ...

June 2, 2025 · 1 min · 胡田昌彦