Azure AI Foundry プレイグラウンド/プロンプトフロー/AIエージェント 使い分け

Azure AI Foundryにおける、プレイグラウンド・プロンプトフロー・エージェントの機能差異や使い分けについて整理してみます。

:::note info
本投稿時(2025/5/5)時点ではエージェント機能がプレビュー版となります。
正式リリース版では機能の追加/変更/削除等が発生している可能性があります。
:::

# イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/e30d14d7-3801-4df9-940d-a8f60c4809f1.png)


# プレイグラウンド
### 概要
生成AIモデルを使用したチャット応答

### できること
・チャット形式の応答画面
・生成AIモデルを利用したテキスト応答
・生成AIモデルを利用した音声応答
・チャット応答の一時記憶による再問合せ
・アップロードファイルを利用したテキスト検索(RAG)
・AI Search Serviceを利用したRAG検索処理

### 概説
プレイグラウンドについては、基本的に１画面でシンプルに生成AIモデル応答を確認できることが利点になります。
（RAGなどを使用する場合は別途AI Search Serviceなどのリソース利用が必要になったりします）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/da3e6b6a-664d-497d-8d4f-93814d5a4827.png)





# プロンプトフロー
### 概要
処理ブロックを結合したワークフロー処理

### できること
・処理ブロックを結合したワークフロー処理
・生成AIモデルを利用したテキスト応答
・Promptテキスト成形処理
・Pythonを利用したテキスト処理
・AI Search Serviceを利用したRAG検索処理
・外部処理の実行(function calling)
・プロジェクト利用による生成物/設定内容の保存
・評価と比較

### 概説
プロンプトフローはプレイグラウンドと異なり、Azure AI Foundryプロジェクトの中で作成され、各プロンプトフローごとに個別管理ができるため、階層的な実装と管理が可能です。

`AI Foundry プロジェクト` - `Prompt Flow`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/7504c878-b150-45d6-b64b-9c8d85cb026f.png)

<br>

プロンプトフローでは各処理を左ペインに、その処理の連結状態が右ペインにグラフとして表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/1adbf966-5e1c-4745-a55d-c2ccb2d2416c.png)

<br>

追加できる処理は、生成AIチャット処理をする`LLM`、LLMのためのプロンプト作成を行う`Prompt`、Pythonコードを記述する`Python`、その他にRAG用のインデックス処理ブロックになる`Index Lookup`などがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/d89c9681-e63e-48c6-9fdf-c48ee711f0dd.png)

<br>

各処理部ではデフォルトの入力セルに各種設定を記入するほか、プロンプトやコードについては内容をテキストブロックとして入力可能です。

**LLM**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/0b8b3f6b-6d29-45e0-a656-d59ea04a0d4d.png)

**Python**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/196d811f-9c8b-4c15-aa21-237197ad3aa3.png)







# AIエージェント
### 概要
チャット応答ベースでの統合処理実行

### できること
・チャット形式の応答画面
・生成AIモデルを利用したテキスト応答
・生成AIモデルを利用した音声応答
・チャット応答の一時記憶による再問合せ
・アップロードファイルを利用したテキスト検索(RAG)
・AI Search Serviceを利用したRAG検索処理
・Bing検索を利用したWebナレッジ検索
・Microsoft Office製品ファイルのナレッジ検索
・Trip Advisor連携した旅行等ナレッジ検索
・任意処理/ファイルの読み取りやデータの利用
・OpenAPI 3.0を使用したAPI実行
・外部処理の実行(function calling)
・プロジェクト利用による生成物/設定内容の保存

### 概説
エージェントはプレイグラウンドと異なり、Azure AI Foundryプロジェクトの中で作成され、各エージェントごとに個別管理ができるため、階層的な実装と管理が可能です。

`AI Foundry プロジェクト` - `エージェント`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/75ed61f4-47fd-459d-9bf6-83ddc3ac063c.png)

<br>

エージェントではナレッジとアクションを関連付けることで処理の複雑性を上げることができます。

ナレッジでは以下のデータソースが利用可能で、ファイル・AzureAI検索(AI Search Service)・MicrosoftFabric(MicrosoftOffice製品検索)を使用したRAGや、Bing検索/TripAdvisor検索を利用した一般情報検索も使用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/aa3b99a8-77c1-4bc3-8c7e-c64e5af2be46.png)

アクションではAIエージェントが使用する/使用できるコード・スクリプト・APIなどを設定することができます。ただし、現時点ではカスタム関数やAzureFunctionsの利用はGUIではなく、エージェントに対してコードでアクセスする(VScode等でコーディングアクセスする)場合のみ利用可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/94a790f0-cde0-4520-bc84-ada2d5ecc35e.png)

<br>

作成したエージェントに対しては、エージェント用のプレイグラウンドでチャット応答を試すことも可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/55fd99a2-db41-4ce2-a8c4-e8da6f2c9dd8.png)

<br>

作成したエージェントについて、Azure側で内部生成されたコードを表示可能なので、GUIで簡易的にエージェントを作成し、途中からエディタに移行する方法も採れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/28826568-d665-4bdb-86c5-2ec8916fc3ed.png)




# まとめ
以下のような使い分けが可能になります。

`プレイグラウンド`：ちょっとした生成AIモデルの応答確認
（テキスト応答だけでなく、音声応答や画像生成も）

`プロンプトフロー`：生成AIモデル応答を含むワークフロー型アプリケーション作成
（複数の生成AIモデルを連携する場合などは候補）

`AIエージェント`：複雑な入力データやfunction callingを含む生成AIアプリケーション作成
（AIエージェント機能で自動作成されたコードを自作用に流用/転用することほうが有用かも）


# 参考
https://learn.microsoft.com/ja-jp/azure/ai-foundry/quickstarts/hear-speak-playground


https://learn.microsoft.com/ja-jp/azure/ai-foundry/concepts/prompt-flow?azure-portal=true


https://learn.microsoft.com/ja-jp/azure/ai-services/agents/overview