Azure AI Foundry Agent Service使ってみた
概要説明
目的
- シングルエージェント・マルチエージェントの構築方法を理解
- エージェントのログ監視やデータストアの使い方を学ぶ
Azure AI Foundryの概要紹介
- Azure AI Foundryは、Microsoft Azure上でAIエージェント(AIアシスタントや業務自動化ボット)を簡単かつ効率的に作成・運用できる新しいプラットフォームです。
- 特徴とポイント
- ノーコード/ローコードで開発可能: 専門的なプログラミング知識がなくても、GUIベースの操作やテンプレートを使ってAIエージェントを作成できます。
- 最新のAIモデルと連携: Azure OpenAI Serviceなどの大規模言語モデル(GPT-4.1など)や画像認識、音声認識など、最新のAIを組み込んだエージェントが手軽に作れます。
- エージェント同士の連携が簡単: シングルエージェントだけでなく、複数のエージェント(Connected Agents)を連携させて、より複雑なタスクや業務フローを自動化できます。
- セキュリティ・運用の面でも安心: Azureプラットフォームのセキュリティ機能や管理機能がそのまま使えるので、エンタープライズ用途でも安心して導入できます。
Azure AI Foundryのセットアップ
前提条件
- Azureアカウントとサブスクリプションの確認
- Azure サブスクリプション。
- Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- プロジェクトを使用するために必要な適切なアクセス制御を受け取るために、サブスクリプションの所有者である必要があります。
プロジェクトの作成とセットアップ
-
初めてAzure AI Foundryを作成する方はこちらから作成してください。
-
新しくプロジェクトを作成する方は、以下の通りプロジェクトを作成してください。
-
現在は、Azure AI Foundry リソースが推奨となっています。
-
リソースの名前やサブスクリプション等を変更する場合は、高度なオプションを指定します。
-
作成後、概要画面が表示されます。
モデルデプロイ
- エージェントで使用するモデルを選択します。
- 今回はgpt-4.1を使用します。必要に応じてデプロイの詳細を変更します。
- これで、エージェントのモデルとしてgpt-4.1が使用できるようになりました。
- 先に、ログ用としてApplication Insightsを設定しておきましょう。ない場合は、「新規作成」から新しく作成しましょう。
シングルエージェントの構築
エージェントの構成要素
-
以下にAI Foundryとエージェントサービスの構成要素を記載します。
-
特にエージェント作成では、以下の内容を記載します。
-
LLM(デプロイモデル): 使用するLLMモデル
-
Instruction(手順): エージェントの目標、動作、制約を定義
-
Tools(ツール): エージェントがナレッジを取得したり、アクションを実行したりできるように設定可能です。
-
以下は、実際にgpt-4.1をLLMとして指定、指示に株価を調べる旨を記載、ナレッジソースにBing Searchを指定している例です。
-
実際に「株価を調べるエージェント(stock_price_bot)」と「企業分析するエージェント(research_agent)」を作成してみましょう
stock_price_botの作成
- 左タブのエージェントから「セットアップ」の内容を入力していきます。
- こちらはエージェントの構成を記載する内容になります。
- エージェントIDは自動的に入力されます。エージェント名に「stock_price_bot」を選択します。
- デプロイは使用するモデルなので、最初にデプロイしたモデル(gpt-4.1)を選択します。
- 手順に以下を入力します。
あなたは株価を調べて答えるエージェントです。
ユーザーから銘柄名や証券コードを受け取ったら、
・現在の株価
を短く教えてください。
わからない場合は「情報が見つかりません」と答えてください。
-
ナレッジ の +追加をクリックし「Bing検索を使用したグランド」を選択します。
- 「接続の作成」から適宜追加します
- 既存でBingリソースがない場合は、以下を参考にAzure Portalから作成して使用できるようにしておきます。
- 入力した内容や設定は自動保存されるので保存ボタンはありません。誤って書き換えないように注意してください。
プレイグラウンドで試す
- 左上の「プレイグラウンドで試す」からすぐエージェントの動作が確認できます。
- 検索した内容を含めて回答していることが確認できます。
research_agentの作成
- 同様に、エージェントから「+新しいエージェント」からresearch_agentを作成します。
- エージェント名:research_agent
- デプロイ: gpt-4.1
- 手順:
あなたはリサーチエージェントです。
ユーザーの質問やテーマについて、最新の情報や信頼できる情報源をもとに、要点をわかりやすくまとめてください。
- 回答は簡潔かつ正確にまとめてください。
- 可能であれば、情報源や参考リンクも示してください。
- 推測ではなく、事実ベースで回答してください。
- ナレッジ: 先ほど作成したBing Search
- 同様にプレイグラウンドで試してみます
- 正常に検索できています。
スレッドとは
-
スレッドは会話履歴をためておく場所です。専用のデータベースを用意しなくても後から会話履歴に戻ることが出来ます。
-
エージェントの「自分のスレッド」から確認可能です。
-
「プレイグラウンドで試す」をクリックすると先ほどの会話の続きから再開できます。
-
「スレッド情報」をクリックすると会話の内容の詳細が確認できます。
-
ここでは実際にbing_groundingを呼び出している例やメッセージ作成にどれくらい時間がかかっているか確認できます。
-
デバッグ等する際に使用ください。
マルチエージェント(Connected Agents)の構築
- ここまで作成したエージェントを組み合わせてマルチエージェントを構成してみたいと思います。
Connected Agentsの概念と利点の説明
- Connected Agents(接続されたエージェント)では、コーディングを必要とせずに複雑なタスク実行するマルチエージェントを構成できます。
- 指示出しのようなプライマリエージェントが専用のサブエージェントを呼び出し、顧客サポート、市場調査、法的要約、財務分析などの複雑な作業を実現します。
- 同時にマルチエージェント化させることで、パフォーマンスと保守性の両方をスケーリングできます。
- 今回は先ほど作成した「stock_price_bot」と「research_agent」を用いてマルチエージェントを構成していきます。
- オーケストレーターとなるメインエージェントを作成し、そのエージェントに上記二つを接続していきます。
マルチエージェントの作成
mainエージェントの作成
- これまで作成したのと同様にmainエージェントを作成します。
- エージェント名:main_research_stock
- デプロイ: gpt-4.1
- 手順:
research_agentは、入力された会社名の概要を検索して、会社の株価をstock_price_botで調査します。
-
さらにセットアップの下の方にスクロールすると「接続されたエージェント」があるので、「+追加」からサブエージェントを設定します。
-
アクティブ化する手順は動作に大きく影響するため、実際に設定する際は十分に検証してください。
-
接続されたエージェント:
- 「stock_price_bot」
- 一意の名前: stock_price_bot
- エージェントをアクティブ化する手順の詳細: 企業名が入力されたらアクティブ化されます。
- 「stock_price_bot」
-
同様に、research_agentも追加します。
- 「research_agent」
- 一意の名前: research_agent
- エージェントをアクティブ化する手順の詳細: 企業名が入力されたらアクティブ化されます。
- 「research_agent」
- セットアップは以上です。実際の動作を見ていきたいと思います。
スレッドの確認
-
プレイグラウンドから「Microsoftの会社概要と現在の株価は何ですか?」と入力すると意図した回答が得られます。
-
スレッドを見ると実際に呼び出しているconnected_agentを確認できます。
-
ここでは意図したとおり2つのエージェントを呼び出していることがわかります。
-
それぞれのプロセスで消費しているトークンもわかります。
その他機能
カタログ機能
- エージェントのカタログではサンプルとなるエージェントが公開されています。
- 現在は、GitHubのリンクのみなので、今後もっと使いやすくなることを期待しています。
VS Codeの拡張機能
- VS Codeの拡張機能も用意されています。
- 次のブログでは、semantic kernelでのマルチエージェントを構成してみたいと思います。
Discussion