ホスト型エージェントとは

オープンソース フレームワークを使用してエージェント アプリケーションを構築する場合、通常、コンテナー化、Web サーバーのセットアップ、セキュリティ、メモリ永続化、スケーリング、インストルメンテーション、バージョンのロールバックなど、多くの横断的な問題を管理します。 これらのタスクは、異種クラウド環境ではさらに困難になります。

Foundry Agent Service でホストされるエージェントは、Microsoft Foundry ユーザーに対するこれらの課題を解決します。 ホストされるエージェントは、Foundry モデル カタログからモデルを呼び出して推論を実行し、カスタム コードがオーケストレーションを処理します。 このマネージド プラットフォームを使用すると、AI エージェントを安全かつ大規模にデプロイして運用できます。 デプロイと管理を合理化して、カスタム エージェント コードまたは優先エージェント フレームワークを使用できます。

ホストされているエージェントを使用する場合

必要に応じて、プロンプト ベースのエージェントよりもホストされるエージェントを選択します。

  • 独自のコードの作成 - プロンプトのみの定義ではなく、任意のフレームワーク (Agent Framework、LangGraph、Semantic Kernel、またはカスタム コード) を使用します。
  • カスタム プロトコルを使用する - 呼び出しプロトコルを使用して、Webhook または非 OpenAI ペイロードを受け入れます。
  • コンピューティング リソースを制御 する - エージェントのサンドボックスの CPU とメモリを指定します。
  • ステートフル ワークロードを実行する - $HOMEと /files エンドポイントを介して、複数のターンにわたってファイルと状態を保持します。

しくみ

エージェントをコンテナー イメージとしてパッケージ化し、Azure Container Registryにプッシュします。 デプロイすると、Agent Service によってイメージがプルされ、コンピューティングがプロビジョニングされ、専用のMicrosoft Entra ID (エージェント ID) が割り当てられ、専用エンドポイントが公開されます。 実行時に、エージェント コードはクライアントからの要求を処理し、そのエージェント ID を使用して Foundry モデル、ツールボックス ツール、ダウンストリーム Azure サービスを呼び出すことができます。 プラットフォームは、スケーリング、セッション状態の永続化、可観測性、およびライフサイクル管理を処理します。

重要

他のMicrosoft製品やサービスで Hosted Agents を使用する場合は、そのような製品やサービスに関連するすべてのドキュメントを読み、関連するリスクとコンプライアンスに関する考慮事項を理解する必要があります。

サードパーティのサーバー、エージェント、コード、または非Azure Direct モデル ("サード パーティ システム") で Hosted Agent を使用する場合は、自己責任で行います。 第三者システムは、Microsoft製品使用条件に基づく非Microsoft製品であり、独自のサードパーティライセンス条項に準拠します。 使用および関連するコストは、お客様が責任を負います。

サード パーティ システムと共有され、サード パーティ システムから受信されるすべてのデータを確認し、データの処理、共有、保持、および場所に関するサードパーティのプラクティスを認識することをお勧めします。 同様に、Foundry 以外のMicrosoft サービスや機能に接続または統合する場合は、それらのデータ プラクティスを確認することが重要です。 データが組織のコンプライアンスと地理的境界の外部に流れるかどうか、および関連する影響、および適切なアクセス許可、境界、承認がプロビジョニングされるかどうかを管理するのは、お客様の責任です。

特定のユース ケースのコンテキストで構築したアプリケーションを慎重に確認およびテストし、すべての適切な決定とカスタマイズを行う責任があります。 これには、メタプロンプト、コンテンツ フィルター、その他の安全システムなどの独自の責任ある AI 軽減策の実装や、アプリケーションが適切な品質、信頼性、セキュリティ、信頼性の標準を満たしていることを確認する機能が含まれます。 Foundry Agent Service の透明性に関するメモを参照してください。

主な概念

ホストされたエージェント

ホストされるエージェントは、エージェント サービスで実行されるコンテナー化されたエージェント AI アプリケーションです。 Foundry ポータルでプロンプトとツール構成によって完全に定義されるプロンプト ベースのエージェントとは異なり、ホストされるエージェントはコンテナー イメージとしてパッケージ化された独自のコードです。 フレームワークを選択し、ランタイムの動作を制御し、Microsoftマネージド インフラストラクチャにイメージをデプロイします。

プラットフォームは、アクティビティに基づいてコンテナーのライフサイクルを自動的に管理し、バージョンの作成時にリソースをプロビジョニングし、アイドル タイムアウトに達したときにプロビジョニングを解除します。

分離モデル

ホストされるエージェントは、セッションごとの VM 分離サンドボックスで実行されます。 各セッションは永続的なファイルシステム ($HOME/files) を備えた専用のサンドボックスを取得し、ステートフルな再開と予測可能なコールド スタートによるゼロへのスケールを有効にします。 セッションは互いに分離され、アイドル状態になった後にセッションが再開されると状態が自動的に復元されます。

プロトコル: 応答、呼び出し要求、呼び出し要求 (WebSocket)

ホストされるエージェント コンテナーは、1 つ以上のプロトコルを公開できます。 各プロトコルは、HTTP または WebSocket サーバー、正常性チェック、OpenTelemetry 統合を処理する軽量ライブラリによって提供されます。 応答、呼び出し、および呼び出し (WebSocket) プロトコルは、 ホストされているエージェントをサポートするすべてのリージョンで使用できます。

どのプロトコルを使用する必要がありますか?

シナリオ プロトコル なぜでしょうか
会話チャットボットまたはアシスタント 応答 プラットフォームは、会話履歴、ストリーミング イベント、およびセッション ライフサイクルを管理します。OpenAI と互換性のある SDK をクライアントとして使用します。
RAG またはツールを使用したマルチターン Q&A 応答 組み込みの会話 ID スレッド処理とツールの結果処理。
バックグラウンド/非同期処理 応答 background: true により、プラットフォームによって管理されるポーリングやキャンセルが可能になります。カスタム コードは必要ありません。
Teams または Microsoft 365 に発行済みのエージェント + Responses プロトコルは、エージェント ロジックに電力を供給します。プラットフォームは、チャネル配信のためにアクティビティ プロトコルへの応答を自動的にブリッジします。
Webhook レシーバー (GitHub、Stripe、Jira など) 呼び出し 外部システムは独自のペイロード形式を送信します。/responses と一致するように変更することはできません。
非会話処理 (分類、抽出、バッチ) 呼び出し 入力は構造化データであり、チャット メッセージではありません。 任意のJSON入力、任意のJSON出力。
カスタム ストリーミング プロトコル (AG-UI など) 呼び出し AG-UI およびその他のエージェント UI プロトコルは OpenAI と互換性がありません。生の SSE 制御が必要です。
プロトコル ブリッジ (GitHub Copilot、独自のシステム) 呼び出し 呼び出し元には、/responses にマップされない独自のプロトコルがあります。
リアルタイム音声エージェント (マイクイン、音声出力) 呼び出し (WebSocket) 1 つの永続的な接続を介した双方向ストリーミング。 コンテナー内の Pipecat、LiveKit、または Voice Live とペアリングします。 音声エージェントの作成を参照してください。

ヒント

自信がありません。 応答から始めます。 後でいつでも呼び出しエンドポイントを追加できます。ホストされたエージェントは、両方のプロトコルを同時にサポートできます。

プロトコルの比較

応答 呼び出し
最適な用途 ほとんどのエージェント - プラットフォームは、会話履歴、ストリーミング ライフサイクル、バックグラウンド実行を管理します 完全な HTTP 制御、カスタム ペイロード、または実行時間の長い非同期ワークフローを必要とするエージェント
ペイロード OpenAI 互換 /responses コントラクト /invocations を使用した任意の JSON - スキーマを定義します
クライアント SDK OpenAI と互換性のある SDK (Python、JS、C#) は、すぐに使用できます カスタム クライアント - コントラクトを定義する
セッション履歴 会話 ID を使用したプラットフォーム管理 セッション (インメモリ、Cosmos DB など) を管理する
ストリーミング ライフサイクル イベントを含むプラットフォームで管理される ResponseEventStream ローSSE—イベントを直接書式設定して書き込む
バックグラウンド/長時間実行 組み込み機能 (background: true + プラットフォームによって管理されるポーリング) 手動タスク追跡とカスタム ポーリングエンドポイントの設定

その他のプロトコル

また、ホストされるエージェントは、Teams とMicrosoft 365 チャネル統合の Activity プロトコルもサポートします。 エージェント ロジックに Responses プロトコルを使用し、Teams などのMicrosoft 365 チャネルに発行すると、プラットフォームはチャネル配信用のアクティビティ プロトコルに応答を自動的にブリッジします。個別の配線は必要ありません。 A2A プロトコルは、エージェント間の委任をサポートします。 サポートされているプロトコルは、1 つのエージェントで組み合わせることができます。

エージェント ID とエンドポイント

Foundry プロジェクトにデプロイされたすべてのホスト型エージェントは、独自の dedicated Microsoft Entra ID (エージェント ID)dedicated エンドポイントを取得します。どちらもデプロイ時に自動的に作成されます。 マネージド ID またはルーティングを手動で構成する必要はありません。

エンドポイントはデプロイの直後に使用できます。プログラムによるアクセスには発行は必要ありません。

  • 応答: {project_endpoint}/agents/{name}/endpoint/protocols/openai/responses
  • 呼び出し (インボケーション): {project_endpoint}/agents/{name}/endpoint/protocols/invocations
  • 呼び出し (WebSocket): wss://{account}.services.ai.azure.com/api/projects/{project}/agents/{name}/endpoint/protocols/invocations_ws?api-version=v1
  • A2A (プレビュー): {project_endpoint}/agents/{name}/endpoint/protocols/a2a

アクティブなエンドポイントは、エージェント のバージョン定義で宣言されているプロトコルによって異なります。 azure.ai.agentを使用する場合は azure.yamlazd サービスで、SDK を使用する場合は container_protocol_versions を使用して、この定義を設定します。

2 つの ID が関係します。

識別子 Scope 目的
Microsoft Entra ID (エージェントごとの ID) デプロイ時に自動的に作成される エージェント コンテナーが実行時に認証する ID。 モデル呼び出し、ツール アクセス、ダウンストリーム Azure サービスに使用されます。
Project マネージド ID (プロジェクト全体) Foundry プロジェクトでシステム割り当て済み インフラストラクチャ操作 (コンテナー レジストリのコンテナー レジストリ リポジトリ リーダーなど) にプラットフォームによって使用されます。 エージェントの実行時の ID ではありません。

エージェント ID は、既定でプロジェクト エンドポイントとセッション ストレージを介してモデル推論にアクセスできます。 外部リソース (独自のAzure Storageなど) の場合は、エージェントのMicrosoft Entra IDに RBAC ロールを手動で割り当てます。 詳細については、 既定以外のエージェント アクセスに関するページを参照してください。

Microsoft 365 チャネル (Teams など) を介して統合された場合、ホストされるエージェントは、呼び出し方法に応じて 2 つの ID モードで動作できます。

  • ユーザー呼び出しシナリオ (対話型): ユーザー トークンが存在する場合、プラットフォームは OAuth 2.0 On-Behalf-Of (OBO) フローをサポートします。 この場合、エージェントは、Microsoft Entra IDテナント ポリシーに従って、ユーザーの委任されたアクセス許可を使用して、ユーザーに代わってダウンストリーム サービスを呼び出すことができます。

  • 自動またはバックグラウンドのシナリオ: 使用可能なユーザー トークンがない場合、エージェントは独自のMicrosoft Entra ID (エージェント ID) を使用して認証を行い、通常はマネージド ID を介してダウンストリーム サービスにアクセスします。

どちらの場合も、エージェントは認証、承認、監査の専用Microsoft Entra IDを保持します。 詳細については、「 エージェント アプリケーションエージェント ID の概念」を参照してください

セッションと会話

ホストされるエージェントは 、セッション会話を 使用して状態を管理します。 動作方法はプロトコルによって異なります。

セッション

セッション ID は、/files エンドポイントを介してアップロードされた$HOMEやファイルなど、永続化された状態の論理セッションを識別します。 プラットフォームはオンデマンドで計算リソースを提供し、永続化された状態をその上に復元します。

  • 状態の永続化: $HOMEと /files のコンテンツは、ターン間およびアイドル期間にわたって保持されます。 コンピューティングがアイドル状態になり、(新規または既存のインフラストラクチャで) 復帰すると、セッションの状態が自動的に復元されます。
  • 分離: 各セッションは、他のセッションから分離されます。
  • 自動ライフサイクル: セッションは初回使用時に作成されます。 プラットフォームは、コンピューティング リソースを自動的にプロビジョニングおよびプロビジョニング解除します。
  • セッションの有効期間: アイドル タイムアウトは 15 分です。その期間内に要求が届かない場合、プラットフォームはコンピューティングのプロビジョニングを解除し、セッション状態を保持します。 セッションは、非アクティブ状態が 30 日後に完全に削除されます。
  • セッション管理 API: セッションを一覧表示し、セッションを終了し、セッションごとにファイルをアップロードまたはダウンロードします。

会話

会話 ID は、Foundry に格納されている会話履歴 (メッセージ、ツール呼び出し、応答) の永続的なレコードです。

  • 永続化: 会話履歴は Foundry に格納され、コンピューティング状態とは無関係に保持されます。
  • クロスチャネル アクセス: ユーザーは、プレイグラウンド、API、Teams、またはその他の公開されたチャネルから同じ会話にアクセスできます。

各プロトコルでのセッションと会話のしくみ

応答プロトコル: 会話 ID が主要な概念です。 プラットフォームは会話履歴を自動的に管理し、セッション ID を各会話に関連付けます。 プラットフォームはセッション ID をクライアントに返します。これを使用して /files エンドポイント経由でファイルをアップロードし、それらのファイルを会話のコンピューティングで使用できるようにします。

呼び出しプロトコル: セッション ID が主要な概念です。 クライアントはセッション ID を直接管理して、対話の間で状態を維持します。 クライアントは、セッション ID を使用して /files エンドポイント経由でコンテンツをアップロードして、セッションで使用できるようにします。 プラットフォームで管理される会話履歴はありません。独自のコードで状態を管理します。

セッション コンピューティングのライフサイクル

状態 何が起こるか
アクティブ 計算処理が動作しています。 要求はそれにルーティングされます。 $HOMEと /files のコンテンツを使用できます。
アイドル 15 分間の要求はありません。 コンピューティングはプロビジョニング解除されます。 セッション状態 ($HOME、/files) は保持されます。
再開 同じセッション ID が再び参照されます。 プラットフォームは新しいコンピューティングをプロビジョニングし、永続化された状態を復元します。

セキュリティとデータの処理

ホストされたエージェントを運用アプリケーション コードのように扱います。

重要

サードパーティのシステムを自己責任で使用し、適切な責任ある AI 軽減策を常に実装します。 組織のコンプライアンスと地理的境界の外に流れる可能性のあるすべてのデータを管理する責任があります。 詳細については、こちらを参照してください

  • コンテナー イメージまたは環境変数にシークレットを配置しないでください。 マネージド ID と接続を使用し、マネージド シークレット ストアにシークレットを格納します。 ガイダンスについては、「 Key Vault接続を設定する」を参照>。
  • Microsoft以外のツールとサーバーに注意してください。 エージェントがMicrosoft サービス以外のツールを呼び出すと、一部のデータがそれらのサービスに流れる可能性があります。 接続するMicrosoft以外のサービスのデータ共有、保持、場所のポリシーを確認します。

プラットフォームの詳細

バージョニング

バージョンを作成する各呼び出しでは、不変の エージェント バージョン (コンテナー イメージのスナップショット、リソースの割り当て、環境変数、プロトコル構成) が生成されます。 デプロイは特定のバージョンを参照します。 エージェントを更新するには、新しいバージョンを作成し、プラットフォームでエージェントをデプロイします。 コンテナー イメージ、環境変数などのエージェント バージョン パラメーターを変更しないエージェント バージョンの作成要求では、新しいバージョンは作成されないことに注意してください。 重み付け配信を使用してバージョン間でトラフィックを分割し、カナリアデプロイメントおよびブルーグリーンデプロイメントをサポートできます。

環境変数は、実行時にコンテナーに構成を渡すための主要なメカニズムです (プロジェクト エンドポイント、モデルデプロイ名、カスタム設定など)。 これらはバージョンごとに設定され、バージョンが作成されると変更できません。

可観測性

ホストされるエージェントは、組み込みの可観測性を提供します。 プラットフォームは、環境変数を使用して、Application Insights 接続文字列をエージェント コンテナーに自動的に挿入します。 プロトコル ライブラリを使用するエージェントは、既定で OpenTelemetry トレースを出力します。このトレースは、リンクされた Application Insights リソースの [調査>Transaction 検索 または パフォーマンス] に表示されます。

構成と分析のガイダンスについては、「 プロジェクトでトレースを有効にする」を参照してください

Foundry のツールボックス

重要

ホストされるエージェントの定義にツールを直接追加することはサポートされていません。 Foundry でツールボックスを使用することをお勧めします。

ホストされるエージェントは、Foundry プロジェクトでプロビジョニングされた Toolbox MCP エンドポイントを介して Foundry マネージド ツール (コード インタープリター、Web 検索、Azure AI 検索、OpenAPI、カスタム MCP 接続、A2A) にアクセスします。 エージェント コードは、標準の MCP クライアント ライブラリを使用してこのエンドポイントに接続します。 プラットフォームはツールを自動的に挿入しません。 詳細については、「 Foundry の意図ベースのツールボックスをキュレーションする」を参照してください。 OAuth ID パススルー、エージェント ID、キー ベースなどの統合認証サポートを持つホストエージェントのツールを接続するには、Foundry のツールボックスを使用します。

言語のサポート

ホストされるエージェントは、PythonC# をサポートします。 任意のエージェント フレームワークを使用できます。プロトコル ライブラリはフレームワークに依存しません。 Microsoft Agent Framework、LangGraph、およびカスタム コードを使用するサンプルについては、foundry-samples リポジトリを参照してください。

サンドボックスのサイズ

ホストされるエージェント サンドボックスでは、次の CPU とメモリの組み合わせがサポートされます。

CPU メモリ
0.5 vCPU 1 GiB
1 vCPU 2 GiB
2 vCPU 4 GiB

セッション ストレージ

各セッションには永続的な$HOMEが存在します。 その内容は、15 分間の非アクティブ状態の後にコンピューティングのプロビジョニングが解除されたときに保持され、セッションが再開されたときに復元されるため、 $HOME の下で書き込まれたファイルはアイドル期間を維持します。 /files エンドポイント経由でアップロードされたファイルは、$HOMEに書き込まれ、同じストレージを共有します。 各セッションには、 1 vCPU 以上で最大 20 GiB の合計ディスク予算が割り当てられ、小さい CPU レベルに対して比例してスケールダウンされます。 その予算の約 20% はシステム使用のために予約されており、エージェントに表示または使用できません。 残りの部分は、コンテナー イメージ、 $HOME、およびコンテナー内のその他の書き込み可能な場所の間で共有されます。

スケーリングと適切なサイズ設定

ホストされるエージェントは、レプリカごとではなく、セッションごとにスケーリングされます。 プラットフォームは、必要に応じて各セッションに対して新しい VM 分離サンドボックスを作成し、セッションの期間中に実行し (アイドル タイムアウト 15 分、最大有効期間 30 日間)、セッションの終了時に破棄します。 設定するレプリカ数もなく、ウォームプールのサイズを決める必要もありません。

すべてのセッションは独自のサンドボックスで実行されるため、エージェント のバージョンで設定した CPU とメモリの値は、エージェントの集約フットプリントではなく、 1 つのセッションを記述します。 課金は、すべてのアクティブなセッションで消費される CPU とメモリの使用量に基づいて計算されるため、必要以上に大きい構成にすると、コストは同時実行数に応じて増大します。

適切なサイズにするには、代表的なワークロードを実行し、リンクされた Application Insights リソースのリソース使用状況を調べます。

  1. Azure ポータルで App Insights リソースを開き、Investigate>Performance を選択します。
  2. CPU、使用可能なメモリ、要求レート、およびテストした期間の平均要求期間を確認します。

観測されたピークを、割り当てた CPU とメモリと比較します。 持続的なピークが約 70% の割り当てを超える場合は、次のエージェント バージョンの割り当てを上げます。ピークが低い場合は、コストを削減するためにそれを下げてください。 新しい各バージョンは不変であるため、変更後は常に再テストします。

プライベート ネットワーク

ホスト型エージェントは、ネットワーク分離 Foundry リソース内でのデプロイをサポートし、送信トラフィックに顧客が提供するAzure Virtual Networkを使用できます。 これにより、ネットワーク分離 Foundry デプロイのエージェントは、データベースや内部 API などのプライベート リソースに到達できます。 詳細については、「 仮想ネットワークの構成」を参照してください。

メモ

2026 年 6 月 25 日以降に作成された Foundry プロジェクトでは、エージェント イメージのプライベート (ネットワークで保護された) Azure Container Registryがサポートされます。 その日付より前に作成されたプロジェクトでは、レジストリにパブリック エンドポイント経由で到達可能な状態を維持する必要があります。 既存のプロジェクトは影響を受けません。 詳細については、「 制限事項」を参照してください。

制限、価格、および可用性

価格

マネージド ホスティング ランタイムの課金は、アクティブなセッション中の CPU リソースとメモリ リソースの使用量に基づきます。 現在の料金については、Foundry の 価格に関するページを参照してください。

リージョンの可用性

現在、ホストされているエージェントは次のリージョンで利用できます。

  • 米国東部 2
  • 米国中北部
  • スウェーデン中部
  • カナダ中部
  • カナダ東部
  • 東南アジア
  • ポーランド中部
  • 南アフリカ北部
  • 韓国中部
  • インド南部
  • ブラジル南部
  • 米国西部
  • 米国西部 3
  • ノルウェー東部
  • 東日本
  • フランス中部
  • ドイツ中西部
  • スイス北部
  • スペイン中部
  • オーストラリア東部

メモ

この一覧は、追加のリージョンが利用可能になると更新されます。

次の手順

タスク リンク
最初のホステッド エージェントをビルドしてデプロイする クイック スタート: 最初のホステッド エージェントをデプロイする
Foundry SDK を使用してデプロイする Foundry SDK を使用してホステッド エージェントをデプロイする
ログの更新、削除、呼び出し、またはストリーム配信 ホストされているエージェントの管理
トレースと監視を設定する プロジェクトでトレースを有効にする
エージェントの指示を自動的に最適化する エージェント オプティマイザーの概要
エージェントのパフォーマンスを評価する エージェント エバリュエーター
Teams、Microsoft 365、またはカスタム アプリに発行する エージェント アプリケーション
コード サンプルを参照する Python サンプルC# サンプル