Azure SDK更新:agentserver-core 2.0.0b4・invocations 1.0.0b4の影響と対応

Azure SDK documentation update: [Release] azure-ai-agentserver-core 2.0.0b4, azure-ai-agentserver-invocations 1.0.0b4 の要点は、Azure AI Agent Server系パッケージのトレーシング基盤が microsoft-opentelemetry に寄せられたことです。公開APIや通常のエンドポイント挙動は変わらないとされていますが、Azure Monitor、OTLP、OpenTelemetry関連の依存関係を管理しているチームは、ロックファイル・環境変数・テレメトリ出力を確認すべき更新です。

特に対応が必要なのは、azure-ai-agentserver-core または azure-ai-agentserver-invocations を使って Azure AI Hosted Agent コンテナーを構築している開発者、CI/CDでPython依存関係を固定している担当者、Application InsightsやOpenTelemetry Collectorでトレースを監視している運用担当者です。PR上のRelease packagesでは2026年5月1日リリース扱いとして、core 2.0.0b4 と invocations 1.0.0b4 の変更が整理されています。(GitHub)

目次

Azure SDK documentation updateの変更点

今回の更新は、新機能追加やAPI破壊的変更というより、監視・トレーシングまわりの実装整理として捉えるのが適切です。

対象パッケージバージョン主な変更実務上の確認ポイント
azure-ai-agentserver-core2.0.0b4トレーシングのエクスポート処理を、従来の azure-monitor-opentelemetry-exporter と opentelemetry-exporter-otlp-proto-grpc から、統合ディストリビューションである microsoft-opentelemetry へ移行Azure Monitor、OTLP、OpenTelemetry関連の依存関係と環境変数を確認する
azure-ai-agentserver-invocations1.0.0b4azure-ai-agentserver-core>=2.0.0b4 から継承する形で、トレーシング基盤を microsoft-opentelemetry に更新invocations だけを直接使っている場合でも、依存先の core 更新による影響を確認する
公開API・挙動変更なしと記載PR上では public API / behavior の変更なしAPIコードの全面改修ではなく、依存関係・監視設定・検証が中心

PRの差分では、core のCHANGELOGに「unified microsoft-opentelemetry distro への移行」と「環境変数によるexporter自動検出」が記載されています。invocations 側も、core>=2.0.0b4 から継承する形でトレーシング基盤が更新されています。(GitHub)

なお、当初のPR概要では azure-ai-agentserver-responses 1.0.0b6 も候補に含まれていましたが、最終的なタイトルでは core と invocations に絞られています。影響範囲を確認する際は、responses まで一律に対象と決めつけないようにしてください。(GitHub)

そもそも対象パッケージは何に使われるのか

azure-ai-agentserver-core は、Azure AI Hosted Agent コンテナーを構築するための基盤パッケージです。ヘルスチェック、グレースフルシャットダウン、OpenTelemetryトレーシング、ASGIサーバー実行など、エージェントサーバーの土台になる処理を担います。(PyPI)

一方、azure-ai-agentserver-invocations は、POST /invocations、GET /invocations/{id}、POST /invocations/{id}/cancel など、エージェント呼び出しのライフサイクルを扱うプロトコルパッケージです。invocations は core のホストフレームワークに組み込まれるため、core を直接importしていないアプリでも、依存関係として影響を受ける可能性があります。(PyPI)

対応すべき人と対応不要な人

利用状況対応優先度取るべき行動
azure-ai-agentserver-core を直接使っている高2.0.0b4 の取得可否、依存関係、トレース出力をステージングで確認する
azure-ai-agentserver-invocations を使っている高core>=2.0.0b4 が入る前提で、呼び出しAPIとテレメトリを確認する
Azure Monitor / Application Insights にトレースを送っている高APPLICATIONINSIGHTS_CONNECTION_STRING、Cloud Role名、サンプリング設定を確認する
OpenTelemetry CollectorやOTLP endpointを使っている中〜高OTEL_EXPORTER_OTLP_ENDPOINT などの環境変数と二重送信を確認する
Agent Server系パッケージを使っていない低今回の更新による直接対応は基本的に不要
本番でベータ版SDKを使わない方針の組織中すぐ更新せず、正式版または社内検証済みバージョンまで待つ判断も妥当

Microsoft LearnのAzure SDKパッケージインデックスでは、Python SDKのバージョン番号に b が付くものはベータリリースとして扱われると説明されています。2.0.0b4 や 1.0.0b4 は正式安定版ではないため、本番適用前の検証は必須です。(Microsoft Learn)

public API変更なしでも確認が必要な理由

「public APIやbehaviorに変更なし」と書かれている場合でも、実務では何もしなくてよいとは限りません。今回の変更は、アプリの呼び出しコードよりも、依存関係・監視・環境変数・テレメトリ出力先に影響しやすい内容です。

microsoft-opentelemetry は、Azure Monitor、OTLP互換バックエンド、Microsoft Agent 365連携に向けた観測性の統合的な導入体験を提供するPythonパッケージとして説明されています。また、Azure Monitor接続文字列、OTLP endpoint、A365関連設定など、複数の出力先や環境変数を扱います。(Microsoft Learn)

特に注意したいのは、既存アプリ側で独自に azure-monitor-opentelemetry-exporter や opentelemetry-exporter-otlp-proto-grpc を使っているケースです。SDK内部のトレーシング基盤が移行されたからといって、アプリ側の明示的な exporter 設定まで自動で整理されるわけではありません。古い依存関係を削除する前に、自分のコードで直接importしていないか確認してください。

移行前に確認するコマンド

まず、現在の環境でAgent Server系パッケージとOpenTelemetry関連パッケージがどのように入っているか確認します。

python -m pip freeze | grep -E "azure-ai-agentserver|opentelemetry|azure-monitor|microsoft-opentelemetry"

Windows PowerShellの場合は、次のように確認できます。

python -m pip freeze | Select-String "azure-ai-agentserver|opentelemetry|azure-monitor|microsoft-opentelemetry"

次に、対象バージョンがパッケージインデックスやPyPIで取得可能か確認します。ベータ版を扱うため、--pre を付けて確認するのが実務上安全です。

python -m pip index versions --pre azure-ai-agentserver-core
python -m pip index versions --pre azure-ai-agentserver-invocations

取得可能であることを確認できたら、ステージング環境でバージョンを固定して更新します。

python -m pip install --upgrade --pre \
  azure-ai-agentserver-core==2.0.0b4 \
  azure-ai-agentserver-invocations==1.0.0b4

requirements.txt や pyproject.toml、ロックファイルを使っている場合は、次のようにバージョンを明示して、CIで同じ依存関係が再現されるようにします。

azure-ai-agentserver-core==2.0.0b4
azure-ai-agentserver-invocations==1.0.0b4

ただし、invocations だけを使っているプロジェクトでは、core が依存関係として入る構成もあります。両方を明示的に固定するか、依存解決に任せるかは、チームのロックファイル運用に合わせて判断してください。

環境変数と監視設定のチェックポイント

今回の更新で最も確認すべきなのは、トレースの送信先が意図どおりになっているかです。

確認項目主な環境変数・設定確認内容
Azure Monitor / Application InsightsAPPLICATIONINSIGHTS_CONNECTION_STRING接続文字列が本番・ステージングで混在していないか
OTLP出力OTEL_EXPORTER_OTLP_ENDPOINT、OTEL_EXPORTER_OTLP_TRACES_ENDPOINTCollectorや外部バックエンドへ二重送信していないか
サービス名・ロール名OTEL_SERVICE_NAME、OTEL_RESOURCE_ATTRIBUTESApplication Map上のCloud Role Nameが期待どおり表示されるか
サンプリングOTEL_TRACES_SAMPLER、OTEL_TRACES_SAMPLER_ARGトレース量が急増・急減しないか
Agent 365連携を使う場合ENABLE_A365_OBSERVABILITY_EXPORTER、ENABLE_OBSERVABILITY利用していない環境で誤って有効化していないか
独自exporter設定アプリ内のOpenTelemetry初期化コードSDK側とアプリ側で二重にspan processorを登録していないか

Azure Monitorの設定では、Application Insights接続文字列を APPLICATIONINSIGHTS_CONNECTION_STRING で指定する方法が案内されています。また、Cloud Role NameやCloud Role Instanceに関わる情報は、OTEL_SERVICE_NAME や OTEL_RESOURCE_ATTRIBUTES で調整できます。(Microsoft Learn)

OTLPについては、microsoft-opentelemetry のドキュメントで OTEL_EXPORTER_OTLP_ENDPOINT などの環境変数が説明されています。環境変数で自動検出される仕組みは便利ですが、古い設定が残っていると、意図しない送信先へテレメトリが流れる可能性があります。(GitHub)

ステージングで実施すべき動作確認

更新後は、単にアプリが起動するかではなく、エージェント呼び出しとトレース出力をセットで確認します。

テスト確認方法期待する結果
ヘルスチェックGET /readiness200 OK が返る
基本呼び出しPOST /invocationsエージェント処理が実行され、想定したレスポンスが返る
状態取得GET /invocations/{id}長時間処理を使う場合、状態や結果を取得できる
キャンセルPOST /invocations/{id}/cancelキャンセル対応を実装している場合、期待どおり中断される
トレース確認Application Insights、Azure Monitor、OTLP Collectorなどで確認invoke_agent などのspanが記録され、サービス名・セッションIDが追跡できる
依存関係確認pip freeze、ロックファイル差分、CIログ予期しないOpenTelemetry関連パッケージの競合がない

azure-ai-agentserver-invocations のドキュメントでは、POST /invocations、状態取得、キャンセル、OpenAPI spec提供などのエンドポイントが説明されています。更新後の確認では、実際に使っているエンドポイントだけでなく、運用監視に必要なspan属性やエラータグが記録されているかも確認してください。(PyPI)

失敗しやすいポイント

「API変更なし」だけを見て検証を省略する

今回の変更はAPI互換性よりも、トレーシング基盤の移行が中心です。アプリコードがそのままでも、依存関係やテレメトリ送信先が変わる可能性があります。最低限、ステージングで起動、呼び出し、トレース確認まで実施してください。

古いexporter依存関係をすぐ削除する

azure-monitor-opentelemetry-exporter や opentelemetry-exporter-otlp-proto-grpc を自分のアプリで直接使っている場合、SDK側の移行だけを理由に削除すると、独自の監視処理が壊れる可能性があります。削除する前に、import、初期化コード、CIの依存関係チェックを確認しましょう。

OTLPとAzure Monitorへ二重送信してしまう

環境変数による自動検出は便利ですが、古い OTEL_EXPORTER_OTLP_ENDPOINT が残っていると、Azure Monitorに加えてOTLP Collectorにも送信される場合があります。意図した二重送信であれば問題ありませんが、そうでない場合はコスト、ログ量、トラブルシュートの複雑さが増えます。

ベータ版を本番へ自動適用する

2.0.0b4 や 1.0.0b4 はベータ版です。社内で「ベータSDKは本番禁止」「ベータはステージングのみ」「特定サービスだけ例外」といったルールがある場合は、リリースノートよりも社内ポリシーを優先してください。

Cloud Role Nameが変わったことに気づかない

監視ダッシュボードでサービス名やロール名が変わると、障害時に「トレースが消えた」と誤認しやすくなります。OTEL_SERVICE_NAME と OTEL_RESOURCE_ATTRIBUTES を使って、ステージング・本番で識別しやすい名前に固定しておくと、運用時の混乱を防げます。

更新判断の目安

すぐに試すべきケースは、すでにAgent Server系ベータパッケージを使っており、Azure MonitorやOTLPでトレースを収集している場合です。今回の変更は監視基盤に関わるため、早めにステージングで差分を見ておく価値があります。

一方で、本番環境で安定版SDKのみを使う方針なら、無理に導入する必要はありません。PRやPyPIで対象バージョンが確認できるか、Azure SDKのリリース一覧に反映されているか、既存のCIで依存関係が解決できるかを確認してから進めるのが安全です。Azure SDKのPythonパッケージはPyPIに公開され、最新バージョンやリリース履歴はAzure SDKリリース情報で確認する流れが案内されています。(Microsoft Learn)

まずやるべきこと

今回のAzure SDK documentation updateで最初にやるべきことは、コード修正ではなく現状把握です。以下の順で確認すると、影響範囲を短時間で切り分けられます。

  1. pip freeze やロックファイルで、azure-ai-agentserver-* とOpenTelemetry関連パッケージを確認する
  2. APPLICATIONINSIGHTS_CONNECTION_STRING、OTEL_EXPORTER_OTLP_ENDPOINT、OTEL_SERVICE_NAME などの環境変数を棚卸しする
  3. core 2.0.0b4 と invocations 1.0.0b4 が取得可能であることを確認してから、ステージングで更新する
  4. /readiness と /invocations の動作、Application InsightsまたはOTLP Collectorへのトレース出力を確認する
  5. 問題がなければ、ロックファイル、監視ダッシュボード、ロール名、サンプリング設定を含めて本番反映手順を固める

公開APIに変更がない更新ほど、影響を軽く見積もりがちです。今回のようにトレーシング基盤が変わる場合は、アプリのレスポンスだけでなく「正しい場所に、正しい名前で、必要なトレースが出ているか」まで確認することが、実運用での失敗を防ぐポイントです。

この記事を書いた人

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

コメント

コメントする

目次