Microsoft Foundry / Azure OpenAIのDeploy a hosted agent更新ポイント|2026年4月版

Microsoft Foundry / Azure OpenAIで「自社コードのAIエージェントを本番環境に載せたい」と考えているなら、2026年4月更新のDeploy a hosted agentは必ず確認すべき内容です。結論から言うと、今回のポイントは、コンテナー化したエージェントコードをFoundry Agent Serviceへデプロイし、Python SDKまたはREST APIから直接バージョン作成・状態確認・呼び出しまで管理できるように整理されたことです。初回構築はazdやVS Code拡張機能、運用自動化やCI/CD連携はPython SDKまたはREST API、という使い分けが現実的です。(Microsoft Learn)

Hosted agentは、単なるプロンプト設定型のエージェントではありません。LangChain、Microsoft Agent Framework、Semantic Kernel、独自実装などで作った処理ロジックをコンテナーにまとめ、Microsoft Foundryのマネージド基盤上で実行するための仕組みです。モデル呼び出しだけでなく、権限、コンテナー起動、セッション、監視、バージョン管理まで含めて設計する必要があるため、IT管理者・プロダクトオーナー・Microsoftエコシステムの開発チームは、デプロイ前に要件を整理しておくことが重要です。(Microsoft Learn)

目次

Microsoft Foundry / Azure OpenAIの最新動向: Deploy a hosted agentで何が変わったか

2026年4月更新の「Deploy a hosted agent – Microsoft Foundry」は、Hosted Agentsを「どう作るか」ではなく、「作ったエージェントをどう運用に載せるか」に焦点を当てています。

特に重要なのは、次の4点です。

更新ポイント実務上の意味
Python SDKまたはREST APIによるデプロイ手順が明確化CI/CD、社内ポータル、運用ツールからHosted agentを直接作成・更新しやすい
コンテナー要件が具体化linux/amd64、ポート8088、プロトコルライブラリ、環境変数の扱いを事前に確認できる
RBACとエージェントIDの説明が整理Azure AI Project Manager、Azure AI User、ACR関連ロールの設計ミスを防ぎやすい
Responses / Invocationsプロトコルの使い分けが明確化チャット型、Webhook型、非会話処理など、ユースケースに合わせた設計ができる

Microsoft公式ドキュメントでは、Hosted agentのデプロイは「ビルドとプッシュ」「エージェントバージョン作成」「状態確認」「専用エンドポイント呼び出し」という流れで説明されています。これは、従来のWebアプリやAPIデプロイに近い考え方でAIエージェントを管理できることを意味します。(Microsoft Learn)

Hosted agentとは何か

Hosted agentは、自社で作ったAIエージェントのコードをコンテナーイメージとしてAzure Container Registryに配置し、Foundry Agent Service上で実行する仕組みです。

プロンプトだけで構成するエージェントと違い、Hosted agentでは以下のような実装を持ち込めます。

  • 独自のオーケストレーションロジック
  • 社内APIや業務システムとの連携
  • LangChainやMicrosoft Agent Frameworkなどのフレームワーク
  • Webhookや独自JSONを受け取る処理
  • CPUやメモリを指定した実行環境
  • セッション単位の状態管理やファイル利用

つまり、Hosted agentは「チャットボットを作る機能」ではなく、「コードベースのAIエージェントをMicrosoft Foundry上でホストする機能」と理解すると分かりやすいです。

例えば、社内FAQに答えるだけのボットなら、プロンプト型エージェントで十分な場合があります。一方で、顧客データを参照し、承認フローを確認し、複数APIを呼び分け、処理結果を監査ログに残すような用途では、Hosted agentのほうが向いています。

まず押さえるべきデプロイの全体像

Hosted agentの基本フローは、次の4段階です。

手順内容確認すべきポイント
ビルドとプッシュエージェントコードをコンテナー化し、Azure Container Registryへプッシュlinux/amd64でビルドしているか、タグが一意か
バージョン作成Foundry Agent Serviceにイメージを登録CPU、メモリ、プロトコル、環境変数が正しいか
状態確認activeになるまでポーリングfailed時にerrorフィールドを確認する運用にしているか
呼び出し専用エンドポイントにリクエストを送信ResponsesかInvocationsか、呼び出し方式を統一しているか

特に運用で重要なのは、「デプロイ=即利用可能」ではない点です。エージェントバージョンを作成した後は、状態がactiveになったことを確認してから呼び出す必要があります。Microsoft公式ドキュメントでも、バージョン作成後に状態をポーリングし、activeになってから呼び出す流れが示されています。(Microsoft Learn)

初回構築はazdまたはVS Code、運用自動化はSDK/APIが向いている

Hosted agentのデプロイ方法は、大きく分けて3つあります。

方法向いている読者主な用途
Azure Developer CLI(azd)初めて試す開発者、PoC担当者サンプル作成、ローカルテスト、初回デプロイ
VS Code拡張機能GUIで作業したい開発者プロジェクト作成、デバッグ、Playground確認
Python SDK / REST APIIT管理者、SRE、Platform Engineering、製品チームCI/CD、自動デプロイ、社内ツール連携、複数環境管理

初めてHosted agentを試すなら、azdまたはVS Code拡張機能を使うほうが早いです。クイックスタートでは、サンプルプロジェクトの作成、ローカルテスト、Foundry Agent Serviceへのデプロイ、Playgroundでの検証までを一連の流れで実行できます。(Microsoft Learn)

一方、プロダクトとして継続運用するなら、Python SDKまたはREST APIを使う設計を検討すべきです。理由は、リリースパイプラインに組み込みやすく、エージェントのバージョン、イメージタグ、リソース割り当て、環境変数をコードで管理できるからです。

たとえば、次のような運用にはSDK/APIが適しています。

  • GitHub ActionsやAzure DevOpsから新しいエージェントバージョンを作成する
  • ステージング環境でactiveになったことを確認してから本番へ反映する
  • 複数プロダクトのエージェントを社内ポータルから一元管理する
  • 監査のため、どのコンテナーイメージがどのバージョンに紐づくか記録する

Python SDKでのデプロイで確認すべきポイント

Python SDKを使う場合、Microsoft公式ドキュメントではazure-ai-projects>=2.1.0が前提として示されています。コンテナーイメージはAzure Container Registryに配置し、エージェント作成時にイメージURL、CPU、メモリ、プロトコル、環境変数などを指定します。(Microsoft Learn)

実装時に特に見落としやすいのは、次の3点です。

確認項目失敗例対策
イメージタグlatestを使い、どのコードが動いているか分からなくなるmy-agent:20260424-001のように一意のタグを使う
CPU・メモリPoCの設定をそのまま本番に使い、応答遅延や失敗が起きる想定リクエスト量と処理内容に応じて検証する
環境変数モデル名や外部API設定をコードに直書きするenvironment_variablesで明示し、秘密情報は適切な管理方式を検討する

公式ドキュメントでも、再現可能なデプロイのために:latestではなく一意のイメージタグを使うことが推奨されています。これは、障害発生時の切り戻しや監査対応でも重要です。(Microsoft Learn)

SDK/API運用での実務チェックリスト

デプロイを自動化する場合は、パイプラインに次の確認を入れておくと安全です。

フェーズチェック内容
ビルド前対象ブランチ、モデルデプロイ名、Foundryプロジェクト、ACR名を確認
ビルド時linux/amd64でイメージを作成
プッシュ時一意のタグを付け、ACRへのpush権限を確認
バージョン作成時cpu、memory、container_protocol_versions、環境変数を検証
デプロイ後activeになるまでポーリングし、failedならエラー内容を保存
呼び出し確認ResponsesまたはInvocationsのテストリクエストを送る
リリース後ログ、メトリック、利用コストを監視

このチェックリストを作らずにPoCの手順だけで本番化すると、「コンテナーは作れたがFoundry側でプルできない」「権限不足でモデルを呼べない」「どのバージョンが本番か分からない」といった問題が起きやすくなります。

ResponsesとInvocationsの使い分け

Hosted agentでは、コンテナーがFoundryゲートウェイと通信するためにプロトコルライブラリを使います。主な選択肢はResponsesとInvocationsです。Microsoft公式ドキュメントでは、Responsesは会話型チャットボット、ストリーミング、複数ターンの対話に向き、InvocationsはWebhook、非会話処理、カスタム非同期ワークフローに向くと説明されています。(Microsoft Learn)

プロトコル向いている用途判断基準
Responsesチャット、アシスタント、RAG、ストリーミング、複数ターン対話OpenAI互換の/responses形式で扱いたい場合
InvocationsWebhook、分類、抽出、バッチ処理、独自JSON入出力スキーマを自社側で自由に決めたい場合
両方チャットUIと外部システム連携を同じエージェントで扱う場合container_protocol_versionsに両方を指定する

迷った場合は、会話型アプリならResponsesから始めるのが自然です。GitHub、Jira、Stripeなど外部サービスから独自ペイロードを受けるWebhook型の処理では、Invocationsを選ぶほうが設計しやすくなります。Hosted agentは両方のプロトコルを同時に公開できるため、将来的に用途が増える可能性がある場合は、拡張性も考えて設計しておくとよいでしょう。(Microsoft Learn)

コンテナー要件で失敗しやすいポイント

Hosted agentのデプロイで最初につまずきやすいのは、AIモデルやプロンプトではなくコンテナーです。

Microsoft公式ドキュメントでは、ホスティング基盤がx86_64、つまりlinux/amd64のコンテナーイメージを要求すると説明されています。Apple SiliconなどARMベースの端末でビルドする場合は、docker build --platform linux/amd64 .のように明示しないと、互換性のないARMイメージを作ってしまう可能性があります。(Microsoft Learn)

docker build --platform linux/amd64 -t myagent:v1 .

また、コンテナーはローカルではポート8088でトラフィックを処理します。本番環境ではFoundryゲートウェイがルーティングを担うため、コンテナー側でパブリックポートを公開する必要はありません。(Microsoft Learn)

ローカルテストは本番デプロイ前に必ず実施する

Hosted agentでは、ローカルでも本番と同じエンドポイント形式で動作確認できます。Responsesなら/responses、Invocationsなら/invocationsを呼び出します。(Microsoft Learn)

POST http://localhost:8088/responses
Content-Type: application/json

{
  "input": "What can you do?",
  "stream": false
}
POST http://localhost:8088/invocations
Content-Type: application/json

{
  "message": "Hello!"
}

ローカルテストで確認すべきなのは、単に「返答があるか」だけではありません。次の観点まで見ると、本番移行後のトラブルを減らせます。

観点確認内容
起動依存パッケージのインストール漏れがないか
認証Azure認証やモデル呼び出しが失敗しないか
入力形式Responses / Invocationsのペイロードが正しいか
例外処理外部API失敗時に適切なエラーを返すか
ログ障害調査に必要な情報が出ているか
レイテンシ初回起動や外部API待ちで許容範囲を超えないか

RBACとID設計はIT管理者が最初に見るべき部分

Hosted agentの本番導入では、RBAC設計が非常に重要です。

Microsoft公式ドキュメントでは、Hosted agentを作成・デプロイするにはプロジェクトスコープのAzure AI Project Managerが必要と説明されています。このロールには、エージェント作成のためのデータプレーン権限と、プラットフォームが作成するエージェントIDにAzure AI Userロールを割り当てる権限が含まれます。(Microsoft Learn)

また、デプロイ時にはHosted agentごとに専用のMicrosoft EntraエージェントIDが作成されます。このIDは、実行中のコンテナーがモデルやツールを呼び出すために使うサービスプリンシパルです。管理者が手動でマネージドIDを構成する必要はありませんが、エージェント作成者にはそのIDへAzure AI Userを割り当てる権限が必要です。(Microsoft Learn)

権限設計の実務例

ロール・権限主な用途管理上の注意
Azure AI Project ManagerHosted agentの作成・デプロイ開発者全員に広く付与せず、デプロイ担当やCI/CD主体に限定する
Azure AI UserエージェントIDがモデルやツールへアクセス実行時アクセスとして必要
Container Registry Repository ReaderFoundry側がACRからイメージをプル付与漏れはimage_pull_failedやACR認証系エラーの原因になる
Container Registry Repository Writer / AcrPushイメージをACRへプッシュCI/CDやビルド担当に必要

PoCでは自分のアカウントに広い権限を付けて進めがちですが、本番では「誰がデプロイできるか」「どのエージェントがどのモデル・ツールにアクセスできるか」「CI/CDのサービスプリンシパルに何を許可するか」を分けて考える必要があります。

Azure Container Registryはパブリックエンドポイント到達性に注意

2026年4月更新の内容で、特にエンタープライズ環境のIT管理者が注意すべき点があります。Hosted agentのコンテナーイメージを保持するAzure Container Registryは、現時点ではパブリックエンドポイント経由で到達可能である必要があります。プライベートエンドポイントの背後に置き、パブリックネットワークアクセスを無効化したレジストリは、Hosted agentでは現在サポートされていません。Foundry側がイメージをプルできないためです。(Microsoft Learn)

これは、金融、医療、公共、グローバル企業のようにネットワーク分離を重視する環境では大きな設計ポイントです。

ただし、Foundry Agent Service全体としては、Standard Setup with private networkingにより、隔離されたネットワーク環境、サブネット統合、プライベートリソースアクセスを構成できる説明もあります。ネットワーク要件は機能ごとに制約が異なるため、「Foundryはプライベートネットワーク対応だからACRも完全プライベートでよい」と単純に判断しないことが重要です。(Microsoft Learn)

ネットワーク設計で確認すべきこと

確認項目判断基準
ACRの到達性Hosted agent基盤がイメージをプルできる構成か
社内データソースプライベート接続が必要なデータベースや検索基盤があるか
データ所在地エージェントが外部ツールや第三者サービスにデータを送る可能性があるか
監査要件どのエージェントがどのリソースへアクセスしたか記録できるか
環境分離開発、検証、本番でACR・Foundryプロジェクト・モデルを分けるか

エンタープライズ導入では、AIエージェントの性能よりも先に、ACR、Foundryプロジェクト、モデルデプロイ、ログ、ネットワーク、IDをまとめたアーキテクチャ図を作ることをおすすめします。

プラットフォーム注入の環境変数を再定義しない

Hosted agentでは、Foundryプラットフォームが実行時にいくつかの環境変数を自動注入します。たとえば、Foundryプロジェクトエンドポイント、ARMリソースID、エージェント名、エージェントバージョン、セッションID、Application Insights接続文字列などです。FOUNDRY_*プレフィックスはプラットフォーム用途として予約されています。(Microsoft Learn)

実務上の注意点は、これらをagent.yamlやSDKのenvironment_variablesで再定義しないことです。再定義すると、意図しない値の上書きや設定の混乱につながります。

自分で設定すべき環境変数は、たとえば次のようなものです。

変数例用途
MODEL_DEPLOYMENT_NAME利用するモデルデプロイ名
APP_ENVdev、staging、prodなどの環境識別
LOG_LEVELログ出力レベル
TOOL_ENDPOINT社内ツールやMCPサーバーのエンドポイント
FEATURE_FLAG_*機能切り替え

秘密情報を環境変数で扱う場合は、組織のセキュリティ基準に従い、Key VaultやCI/CDのシークレット管理と組み合わせる設計を検討してください。

REST APIはPlatform Engineeringと社内ツール連携に向いている

REST APIによるデプロイは、Python SDKを使わない環境や、既存の社内運用ツールからHosted agentを管理したい場合に便利です。公式ドキュメントでは、Foundry Agent Serviceのエンドポイントに対して、エージェント作成、バージョン状態確認、ResponsesまたはInvocationsの呼び出し、新しいバージョン作成を行う例が示されています。(Microsoft Learn)

REST APIが向いているケースは次の通りです。

  • 社内のリリース管理システムからエージェントを作成する
  • Azure DevOps、GitHub Actions、GitLab CIなどからHTTPで直接操作する
  • 複数言語のチームが共通のAPI仕様で運用する
  • 管理画面からエージェントのバージョンや状態を表示する
  • Python依存を避けたいPlatform Engineeringチームが利用する

REST APIを使う場合も、SDKと同様に「バージョン作成後にactiveを待つ」「失敗時はerror.codeとerror.messageを記録する」「イメージタグを固定する」という基本は変わりません。

トラブルシューティングで最初に見るべきエラー

Hosted agentのデプロイ失敗は、コンテナー、ACR、RBAC、ネットワークのどれかに原因があることが多いです。Microsoft公式ドキュメントでは、プロビジョニングエラーはバージョンオブジェクトのerror.codeとerror.messageに表示されると説明されています。(Microsoft Learn)

エラー例よくある原因最初に確認すること
image_pull_failedイメージURI誤り、ACRプル権限不足イメージ名、タグ、ACR Reader権限
InvalidAcrPullCredentialsマネージドIDまたはレジストリRBACの問題Foundryプロジェクトの管理IDとACR権限
UnauthorizedAcrPull認可不足ACR側のロール割り当て
AcrImageNotFoundタグ未作成、push漏れ、名前違いACRに該当イメージが存在するか
RegistryNotFoundレジストリ名、DNS、到達性の問題ACR名、リージョン、ネットワーク設定
SubscriptionIsNotRegistered必要なAzureリソースプロバイダー未登録サブスクリプションのプロバイダー登録

トラブル対応では、いきなりコードを直すのではなく、次の順番で切り分けると効率的です。

  1. ACRに対象タグのイメージが存在するか確認する
  2. Foundryプロジェクトの管理IDにACR読み取り権限があるか確認する
  3. エージェント作成者またはCI/CD主体に必要なRBACがあるか確認する
  4. コンテナーがlinux/amd64でビルドされているか確認する
  5. ローカルで/responsesまたは/invocationsが動作するか確認する
  6. バージョンのerror.codeとerror.messageを確認する

この順番で見ると、AIモデルやプロンプトの問題ではないインフラ起因の障害を早く見つけられます。

プロダクトオーナーが判断すべき導入基準

Hosted agentは強力ですが、すべてのAI機能に必要なわけではありません。導入判断では、「エージェントをコードとして管理する必要があるか」を基準にすると分かりやすいです。

要件Hosted agentを使うべきか
FAQ回答や単純な社内チャット必須ではない。プロンプト型や既存エージェント機能で十分な場合がある
複数APIを呼び分ける業務エージェント向いている
Webhookを受けて自動処理するAIワークフローInvocationsでのHosted agentが向いている
RAG、ツール、会話履歴を組み合わせた顧客対応ResponsesでのHosted agentを検討
厳密なリリース管理・監査が必要バージョン管理できるHosted agentが向いている
ネットワークを完全閉域化したいACR到達性などの制約を事前確認すべき

Hosted agentを採用する価値が高いのは、AIエージェントを「機能」ではなく「プロダクト」として継続改善する場合です。コードレビュー、テスト、CI/CD、バージョン管理、ログ監視、権限設計を含めて運用するなら、Hosted agentは有力な選択肢になります。

本番化前に決めておきたい設計項目

Microsoft Foundry / Azure OpenAIでHosted agentを本番運用する前に、次の設計を決めておくと後戻りを減らせます。

設計項目決めること
エージェント名環境や用途が分かる命名規則にする
イメージタグlatestを避け、リリースIDや日付を含める
プロトコルResponses、Invocations、または両方
モデルデプロイ名環境ごとに分けるか、共通化するか
CPU・メモリ初期値ではなく負荷試験で決める
ロール割り当て人間、CI/CD、エージェントIDを分けて整理する
ログ設計セッションID、エージェントバージョン、リクエストIDを追跡できるようにする
切り戻し旧バージョンを保持するか、再デプロイで戻すか
コスト管理不要なリソースやテスト環境を削除する手順を用意する

特にグローバル向けサービスでは、リージョン、データ保管、外部ツール連携、第三者モデルやサービスの利用条件も確認が必要です。Hosted Agentsを第三者システム、第三者コード、第三者モデルと組み合わせる場合は、データ共有、保持、所在地、責任あるAI対策を利用者側で管理する必要があるとMicrosoftは説明しています。(Microsoft Learn)

2026年4月更新を踏まえた実務アクション

今回のDeploy a hosted agent更新は、Microsoft Foundry / Azure OpenAIを使うチームにとって、Hosted agentをPoCから運用へ進めるための実装ガイドとして重要です。

次に取るべき行動は、チームの立場によって変わります。

立場次にやること
IT管理者RBAC、ACR到達性、ネットワーク、監査ログの要件を確認する
開発者azdまたはVS Codeでサンプルを動かし、Responses / Invocationsの違いを試す
Platform EngineeringPython SDKまたはREST APIでバージョン作成と状態確認をCI/CDに組み込む
プロダクトオーナーHosted agentが必要なユースケースか、プロンプト型で足りるかを判断する
セキュリティ担当エージェントID、外部ツール連携、データ境界、責任あるAI対策を確認する

最初の一歩としては、1つの小さな業務ユースケースを選び、ローカルテスト、ACRプッシュ、バージョン作成、active確認、専用エンドポイント呼び出しまでを一度通してみるのが効果的です。そのうえで、本番化するエージェントだけをSDK/API管理に移行すると、無理なく運用設計を固められます。

Microsoft Foundry / Azure OpenAIのHosted agentは、AIエージェントを「試作」から「運用可能なソフトウェア」へ近づけるための仕組みです。2026年4月更新の要点は、コンテナー、バージョン、RBAC、プロトコル、API管理を明確に押さえること。まずは初回デプロイをazdまたはVS Codeで確認し、その後にPython SDKやREST APIで自動化する流れが、実務では最も失敗しにくい進め方です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次