Azure AI Agent Server SDK for Pythonのbeta wave更新まとめ|core・invocations・responsesの実務初動

Coordinated Azure AI Agent Server Python beta wave updates core, invocations, and responses packages は、Azure AI Agent Server SDK for Python を使う開発者が、最初に「ログ」「相関ID」「Responsesのチャット分離」「ID検証」「SSE replay」「Foundryストレージ連携」を確認すべきベータ更新です。

結論から言うと、今回の更新は大きな新機能の追加というより、エージェントサーバーを実運用に近い形で検証しやすくするための改善です。2026年4月20日時点で確認対象になるのは、Pre-releaseとして公開されている azure-ai-agentserver-core_2.0.0b2、azure-ai-agentserver-invocations_1.0.0b2、azure-ai-agentserver-responses_1.0.0b2 の3パッケージです。(GitHub)

すぐに取るべき初動は、依存関係を固定したステージング検証、ログ量とアラート条件の見直し、x-agent-chat-isolation-key の引き継ぎ確認、400/404などのエラー期待値の更新です。特にResponses protocolを使っている場合は、クライアント、API gateway、BFF、ストレージ連携、E2Eテストまで影響範囲を広めに見てください。

目次

まず押さえるべき変更点

今回のbeta waveは、core、invocations、responses が連動して更新されています。単体のパッケージだけを見ると小さな変更に見えますが、実務ではログ設計、トレース、テスト、セキュリティ境界に影響します。

パッケージ対象バージョン主な変更最初に確認すること
azure-ai-agentserver-core2.0.0b2起動時設定ログ、インバウンドHTTPログ、trace-id 抽出、重複コンソールログ修正既存ログとの重複、アラート増加、相関IDの出方
azure-ai-agentserver-invocations1.0.0b2InvocationAgentServerHost のOpenAPI設定ログ、core由来のインバウンドログOpenAPI specの設定有無、呼び出しログの粒度
azure-ai-agentserver-responses1.0.0b2handler診断ログ、チャット分離キー、ID検証、Foundry storage logging、SSE replay修正分離キーの引き継ぎ、400/404期待値、SSEとinput_itemsの回帰テスト

core の InboundRequestLoggingMiddleware は、すべてのインバウンドHTTPリクエストに対して、メソッド、クエリ文字列を除いたパス、ステータスコード、処理時間、x-request-id、x-ms-client-request-id などの相関ヘッダーを記録します。4xx以上はWARNING、未処理例外は500相当のWARNINGとして扱われ、W3C traceparent からの trace-id 抽出も強化されています。(GitHub)

つまり、アップデート後は「ログが増える」だけでなく、「どのログを監視や障害調査の一次情報にするか」を決め直す必要があります。

Azure AI Agent Server SDK for Pythonの3パッケージの役割

Azure AI Agent Server SDK for Pythonは、ホスト基盤とプロトコル実装を分けて理解すると整理しやすくなります。

azure-ai-agentserver-core は、Azure AI Hosted Agentコンテナ向けの基盤ホストフレームワークです。ヘルスプローブ、グレースフルシャットダウン、OpenTelemetry tracing、ASGI servingなど、プロトコルに依存しない部分を担います。Microsoft Learnでは、protocol packagesがこのAgentServerHostを継承してエンドポイントを追加する構成として説明されています。(Microsoft Learn)

azure-ai-agentserver-invocations は、Invocations protocolのエンドポイントを提供するパッケージです。POST /invocations、GET /invocations/{id}、POST /invocations/{id}/cancel、GET /invocations/docs/openapi.json などを扱い、InvocationAgentServerHost を通じてハンドラーを登録します。(Microsoft Learn)

azure-ai-agentserver-responses は、Responses protocolのエンドポイントを提供するパッケージです。レスポンス作成、SSE stream、cancel、delete、replay、input-item listingなど、レスポンスのライフサイクル全体を扱います。(Microsoft Learn)

利用シーン主に見るパッケージ実務上の確認ポイント
ホスト起動、ヘルスチェック、OpenTelemetry、ASGIcore/readiness、ログ設定、トレース、シャットダウン
シンプルな呼び出し型エージェントinvocationsinvoke_handler、OpenAPI spec、invocation ID、session ID
Responses API型のエージェントresponsesSSE、cancel、delete、replay、input_items、チャット分離
複数プロトコルを同じサーバーに載せる構成core + protocol packagesルーティング、ログ重複、middleware、トレース相関

1.x利用者はb2の前にパッケージ分割を確認する

今回のb2更新は、直前のアーキテクチャ変更の上に乗っています。azure-ai-agentserver-core 2.0.0b1 では、パッケージが軽量なホスト基盤に再設計され、Responses API関連の型やSSE streamingは azure-ai-agentserver-responses、Invocations関連の型は azure-ai-agentserver-invocations に移動しました。(GitHub)

そのため、1.x系から一気に追う場合は、「b2で壊れた」と判断する前に、2.0.0b1のパッケージ分割と破壊的変更を確認する必要があります。

現在の状態先に確認することb2で追加確認すること
core 1.xでResponses系を使っているresponses パッケージへの移行、import修正Responsesのログ、ID検証、チャット分離
旧FoundryCBAgentに依存しているAgentServerHostへの置き換え起動ログ、middleware、トレース
/healthy をヘルスチェックにしている/readiness への変更コンテナ、ロードバランサー、監視設定
OpenTelemetryを任意依存と見ていた必須依存として扱うtrace-id、Application Insights、OTLP連携
複数プロトコルを組み合わせたいcooperative mixin inheritanceの確認ログ、ルート、エラー処理の衝突確認

初期リリース時点で、invocations はハンドラー登録、任意のGET/CANCELエンドポイント、OpenAPI spec serving、invocation ID tracking、session correlation、分散トレーシング、構造化ログ、streaming response supportなどを提供していました。(GitHub)

同様に、responses は ResponsesAgentServerHost、Responses protocol endpoints、SSE event stream、ResponseContext、各種execution mode、SSE replay、InMemoryResponseProvider、OpenTelemetry integrationなどを初期機能として提供しています。(GitHub)

core 2.0.0b2の実務ポイント

起動時設定ログで環境差分を見つけやすくなる

core 2.0.0b2 では、AgentServerHost の起動時にINFOレベルの設定ログが出るようになりました。対象には、agent name、version、port、session ID、SSE keep-alive、project endpoint、OTLP endpoint、Application Insightsの設定有無、shutdown timeout、登録プロトコルなどが含まれます。Application Insights connection stringのようなセンシティブ値はログに出さないとされています。(GitHub)

これは、ステージングと本番で環境変数がずれている場合や、コンテナ起動時に想定と違うportで待ち受けている場合の切り分けに役立ちます。

一方で、INFOログをすべてログ基盤へ送っている環境では、デプロイ、スケールアウト、再起動のたびに設定ログが増えます。導入直後は、次の観点を確認してください。

確認項目理由対応例
起動ログが何行増えるかログ転送料や保存量に影響するステージングでデプロイ時のログ量を測る
マスキングが期待通りか接続先や設定値がログに出るため機密値、トークン、connection stringが出ないか確認
Application Insights / OTLP設定が正しいかトレースが出ない原因を早期に見つけられる起動直後のログをデプロイ検証に含める
登録プロトコルが想定通りか複数プロトコル構成で設定漏れを見つけやすいcore、responses、invocationsの組み合わせを確認

インバウンドHTTPログは監視ルールに影響する

InboundRequestLoggingMiddleware は、AgentServerHost により自動的に組み込まれます。これにより、アプリ側で明示的にmiddlewareを追加しなくても、HTTPリクエストの開始・完了ログが出ます。(GitHub)

ここで注意したいのは、4xx以上がWARNINGとして扱われる点です。API利用者の入力ミス、存在しないIDへのアクセス、チャット分離キー不一致などもWARNINGとして見えるため、従来の「WARNING以上は即インシデント」という運用だとアラートが増える可能性があります。

監視設計では、4xxと5xxを分けて扱うのが現実的です。4xxはクライアント起因やセキュリティ制御による正常な拒否を含むため、件数の急増や特定pathの偏りを監視します。5xxはサーバー側障害の可能性が高いため、短時間でも強めのアラートにする判断ができます。

重複コンソールログ修正はコンテナ運用で効く

core 2.0.0b2 では、root loggerに既存の StreamHandler がある場合にSDK側のconsole logが重複する問題が修正されています。logging.basicConfig() やフレームワーク側の設定で既にハンドラーがある場合でも、SDKが重複追加しにくくなっています。(GitHub)

これは地味ですが、コンテナ運用では重要です。同じログが二重に出ると、ログ転送料、エラー件数、アラート集計、障害調査の読みやすさに影響します。アップデート後は、同じ1リクエストで同一メッセージが重複していないかを確認しましょう。

invocations 1.0.0b2の実務ポイント

azure-ai-agentserver-invocations 1.0.0b2 では、InvocationAgentServerHost がOpenAPI specの設定有無をINFOレベルでログに出すようになりました。また、core由来の InboundRequestLoggingMiddleware が自動的に組み込まれるため、Invocations protocolのHTTPリクエストも一貫した形式で記録されます。(GitHub)

Invocationsを使っているチームは、次の3点を最初に確認すると効率的です。

  • GET /invocations/docs/openapi.json を使う構成で、OpenAPI specの設定有無が期待通りログに出るか
  • POST /invocations、GET /invocations/{id}、POST /invocations/{id}/cancel のログが既存のアクセスログと重複しすぎないか
  • invocation_id、session_id、trace-id を使って、1回の呼び出しをログとトレースで追えるか

Invocationsは、比較的シンプルな「呼び出し型」のエージェントに向いています。長時間処理やキャンセル、OpenAPIによる発見可能性を重視する場合は、今回のログ強化により運用時の見通しが良くなります。

ただし、既に独自の構造化ログで invocation_id や session_id を出している場合、SDKログとアプリログの両方に同じ情報が出ることがあります。ログを削るのではなく、役割を分けるのがおすすめです。SDKログはHTTP境界と相関ID、アプリログはビジネス処理やモデル呼び出しの詳細、という切り分けにすると読みやすくなります。

responses 1.0.0b2の実務ポイント

Responses利用者は今回の影響が最も大きい

今回のbeta waveで確認項目が最も多いのは azure-ai-agentserver-responses 1.0.0b2 です。起動時ログ、インバウンドログ、handler-level diagnostic logging、orchestrator handler invocation logging、チャット分離キー、response ID検証、Foundry storage logging、SSE replay、item_reference の解決、エラーコードの仕様準拠など、多数の変更が含まれます。(GitHub)

Responses protocolは、作成、取得、ストリーミング、キャンセル、削除、入力アイテム取得までを扱います。そのため、変更の影響はPythonコードだけでは終わりません。フロントエンド、BFF、API gateway、ストレージ、監視、E2Eテストまで含めて確認する必要があります。

x-agent-chat-isolation-key は最優先で確認する

responses 1.0.0b2 では、レスポンス作成時に x-agent-chat-isolation-key ヘッダーを付けた場合、後続のGET、DELETE、Cancel、InputItemsリクエストでも同じキーが必要になります。キーが不足または不一致の場合、クロスチャット情報漏えいを避けるため、区別しにくい404を返します。作成時にキーがなかったレスポンスでは、この強制は行われません。(GitHub)

実務でよく失敗するのは、作成リクエストと取得リクエストの経路が違うケースです。たとえば、POST /responses はフロントエンドから直接送る一方、GET /responses/{id} はBFFや管理画面から送る構成では、後続リクエストで同じヘッダーを付け忘れる可能性があります。

シナリオ起きやすい問題確認ポイント
フロントエンドがPOST /responsesを送る後続GETで分離キーを保持していないresponse IDと分離キーを同じライフサイクルで管理する
API gatewayを通すカスタムヘッダーが落ちるx-agent-chat-isolation-key を転送許可する
管理画面からcancel/deleteする管理系リクエストに分離キーがない操作対象のchat contextを復元できるようにする
404を自動リトライする分離キー不一致を「未作成」と誤判定する404の発生条件をログと相関IDで確認する

簡易検証では、次のように「キーあり作成」「キーなし取得」「同じキーで取得」を分けて確認します。

# 作成時にチャット分離キーを付ける
curl -X POST "$BASE_URL/responses" \
  -H "Content-Type: application/json" \
  -H "x-agent-chat-isolation-key: chat-a" \
  -d '{"input":"hello"}'

# 後続GETでキーを付けない場合、404になることを確認
curl -X GET "$BASE_URL/responses/{response_id}"

# 同じキーを付けた場合、取得できることを確認
curl -X GET "$BASE_URL/responses/{response_id}" \
  -H "x-agent-chat-isolation-key: chat-a"

このテストは、セキュリティ境界の確認にもなります。マルチテナント、複数会話、ユーザー別履歴を扱うアプリでは、E2Eテストに組み込む価値があります。

response ID検証で400と404の期待値を分ける

responses 1.0.0b2 では、response_id path parameterの形式が不正な場合、ストレージに触れる前にHTTP 400を返すようになりました。previous_response_id も検証対象です。(GitHub)

この変更で落ちやすいのが契約テストです。「存在しないIDなら404」とだけテストしていると、不正な形式のIDでも404を期待してしまいます。b2では、形式が不正なIDは400、形式は正しいが存在しないIDは404、というように分けて考える必要があります。

テストケース期待する扱い
prefixが違う、短すぎるなど形式が不正なresponse_idHTTP 400
形式は正しいが存在しないresponse_idHTTP 404
previous_response_id が不正HTTP 400
削除済みresponseへのGETHTTP 404
削除済みresponseへの2回目のDELETEHTTP 404

また、エラーの code フィールドは、400/404系で "invalid_request_error"、500系で "server_error" など、仕様準拠の値に整理されています。RequestValidationError のデフォルトコードや、terminal stateのresponseをcancelした場合のメッセージも更新されています。(GitHub)

フロントエンドやクライアントSDK側でエラー文字列を直接見て分岐している場合は、ここも更新対象です。可能であれば、表示文言ではなくHTTPステータス、error.type、error.code、paramを使って分岐する設計に寄せると、今後の変更にも強くなります。

SSE replayとinput_itemsは回帰テストに入れる

SSE stream replayでは、レスポンスプロバイダーが ResponseStreamProviderProtocol を実装していない場合でも動作するよう修正されています。たとえば FoundryStorageProvider のような構成で、以前は GET /responses/{id}?stream=true がHTTP 400になり得たケースに対し、ホスト側がインメモリのstream providerをfallbackとして用意するようになりました。(GitHub)

また、POST /responses の入力に item_reference が含まれる場合、永続化前にprovider経由でbatch resolveされるようになりました。以前はinput expansion中に item_reference が落ち、GET /responses/{id}/input_items でinline itemしか返らないケースがありました。(GitHub)

Responsesを使っているなら、最低限次の回帰テストを用意してください。

回帰テスト目的
POST /responses → GET /responses/{id}?stream=trueSSE replayが動くか
background + streamの組み合わせ接続断後やreplay時の挙動確認
item_reference を含む入力input_items に期待通り反映されるか
Foundry storage利用時の4xx/5xxエラーが正しくHTTPステータスへマッピングされるか
delete後のGET/DELETE削除済みリソースが404になるか
isolation key不一致情報漏えいを避ける404になるか

ログと監視で見直すべき設計

今回の更新では、SDK側から出るログが増えます。ここで大切なのは、ログの量を増やすことではなく、障害調査で使う順番を決めることです。

ログの種類b2で得られる情報実務での使い方
起動時設定ログagent名、version、port、接続先、OTLP、Application Insights設定有無デプロイ直後の設定確認
インバウンドリクエストログmethod、path、status、duration、相関ヘッダーAPIレイテンシ、4xx/5xx、リクエスト追跡
Responses handlerログendpoint entry、success、response ID、status、output countResponses lifecycleの追跡
Orchestrator invocationログhandler function name、response IDどのハンドラーが呼ばれたかの確認
Foundry storageログstorage HTTP call、duration、相関ヘッダー、4xx/5xx上流ストレージの遅延や失敗の切り分け

FoundryStorageLoggingPolicy は、Foundry storageへのHTTP呼び出しについて、method、URI、status code、duration、correlation headersを azure.ai.agentserver loggerで記録します。4xx/5xxではWARNINGへ昇格し、x-request-id、apim-request-id、x-ms-client-request-id、x-ms-request-id などの相関ヘッダーも記録対象です。(GitHub)

監視ダッシュボードでは、次のように分けて見ると実用的です。

指標見る理由注意点
総リクエスト数デプロイ後のトラフィック変化を見るSDKログとプロキシログの二重計上に注意
4xx率クライアント起因、ID不正、分離キー不一致を見るすべてを障害扱いしない
5xx率サーバー側障害を検知する短時間でも強めに監視する
p95/p99 latency体感遅延やストレージ遅延を見るpath別、endpoint別に分ける
trace-id有無分散トレースとログの接続を見るgatewayがtraceparentを落としていないか確認

アップデート前の初動チェックリスト

Azure AI Agent Server SDK for Pythonのbeta waveを検証する場合、最初にやるべきことは依存関係の棚卸しです。requirements.txtだけでなく、constraints.txt、poetry.lock、uv.lock、Dockerfile、CIキャッシュ、ベースイメージのpip layerまで確認してください。

pip freeze | grep -E 'azure-ai-agentserver-(core|invocations|responses)'

検証環境では、対象バージョンを明示的に固定します。

azure-ai-agentserver-core==2.0.0b2
azure-ai-agentserver-invocations==1.0.0b2
azure-ai-agentserver-responses==1.0.0b2

ただし、実際に固定するパッケージは使っているプロトコルに合わせます。Responsesだけを使う構成で、無理にInvocationsを追加する必要はありません。Invocationsパッケージはcoreを依存関係として自動的にインストールすると説明されていますが、検証時はロックファイル上で実際に入っているバージョンを確認する方が安全です。(Microsoft Learn)

ステージングで確認する順番

| 順番 | 確認内容 | 合格ライン |
| -: | ———————- | ———————————————- |
| 1 | パッケージバージョン | b2対象が明示的に入っている |
| 2 | 起動ログ | 想定したport、endpoint、protocol、tracing設定が出る |
| 3 | ヘルスチェック | /readiness が期待通り返る |
| 4 | インバウンドログ | method、path、status、duration、相関IDが出る |
| 5 | Invocations smoke test | POST /invocations と必要なGET/CANCELが動く |
| 6 | Responses smoke test | create、get、stream、cancel、delete、input_itemsが動く |
| 7 | チャット分離 | isolation keyあり/なし/不一致の挙動を確認する |
| 8 | エラー期待値 | 不正IDは400、存在しないIDは404などを確認する |
| 9 | SSE replay | ?stream=true の再取得が期待通り動く |
| 10 | 監視ルール | 4xx WARNING増加で誤検知しない |

失敗しやすいポイント

ベータ版をワイルドカードで上げる

>= や --pre を広く使っていると、意図したb2ではなく、より新しいプレビュー版を取り込む可能性があります。2026年4月20日時点のb2更新を検証するなら、まずは対象バージョンを固定して比較してください。

悪い例です。

azure-ai-agentserver-responses>=1.0.0b2

検証で使いやすい例です。

azure-ai-agentserver-responses==1.0.0b2

404をすべて「存在しない」と扱う

Responsesのチャット分離では、分離キーの不足や不一致でも404が返ります。これは情報漏えいを避けるための挙動です。クライアント側で「404なら新規作成すればよい」と単純に処理していると、分離キーの引き継ぎ漏れを見逃します。

404が増えた場合は、response ID、path、相関ID、クライアント種別、分離キーの有無を組み合わせて原因を見てください。

カスタムヘッダーをgatewayで落とす

x-agent-chat-isolation-key、x-request-id、x-ms-client-request-id、traceparent などのヘッダーは、セキュリティ、ログ、トレースに関わります。API gateway、ロードバランサー、BFF、リバースプロキシがこれらを落とすと、SDK側の改善を活かせません。

特にグローバルチームでフロントエンドとバックエンドの担当が分かれている場合、ヘッダー仕様をAPI contractに明記しておくとトラブルを防げます。

ログ増加を障害と誤認する

今回の更新後、WARNINGログが増えることがあります。ただし、4xxのWARNINGは必ずしもサーバー障害ではありません。不正なID、削除済みリソース、分離キー不一致、クライアント入力ミスなども含まれます。

初回導入では、いきなり本番アラートへ接続せず、ステージングで1日分のログを見てから、4xxと5xxの閾値を分けるのが安全です。

導入判断の目安

今回のbeta waveをすぐ検証すべきかどうかは、利用状況によって変わります。

状況判断
Azure AI Agent Server SDK for PythonをPoCで使っている早めにb2を試し、ログとテストを更新する
Responses protocolでSSEやinput_itemsを使っている優先度高。SSE replayとitem_referenceの回帰テストを行う
マルチチャット、マルチテナント構成優先度高。x-agent-chat-isolation-key の設計を確認する
Invocationsだけを使っているログとOpenAPI設定の確認を中心に進める
本番相当のワークロードで使っているbetaであることを前提に、ステージング、ロールバック、監視調整を必須にする
まだ1.x系の設計を使っているb2より前に2.0.0b1のパッケージ分割を確認する

ベータ版SDKは変更が続く可能性があります。実務では、「最新版を入れる」よりも「検証したバージョンを固定し、ログ・テスト・監視の差分を把握する」ことが重要です。

次に取るべき行動

Coordinated Azure AI Agent Server Python beta wave updates core, invocations, and responses packages を確認する際は、まず利用中のプロトコルを切り分けてください。coreだけのホスト基盤なのか、invocations中心なのか、responsesでSSEやストレージ連携まで使っているのかで、見るべき場所が変わります。

最初の作業は、次の4つで十分です。

  • 現在の azure-ai-agentserver-* パッケージバージョンを棚卸しする
  • ステージングでb2対象バージョンを固定して起動する
  • ログ、相関ID、4xx/5xx、trace-idの出方を確認する
  • Responses利用時は、チャット分離、ID検証、SSE replay、input_items を回帰テストに入れる

今回の更新は、アプリの見た目を大きく変えるものではありません。しかし、運用で「何が起きたか」を追う力を高め、チャット間の安全性やエラー処理の一貫性を改善する更新です。Azure AI Agent Server SDK for Pythonを継続利用するなら、コード変更だけでなく、監視、テスト、ヘッダー設計まで含めて確認するのが最短ルートです。

この記事を書いた人

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

コメント

コメントする

目次