Azure REST API documentation updateとは?code-based agent deploy routes v1対応の変更点

2026年5月5日に公開された「Azure REST API documentation update: Spec: include code-based agent deploy routes in v1」の要点は、Azure AI Foundryのコードベースエージェント関連操作が、v1のREST API仕様面に含まれる方向で更新されたことです。すぐ確認すべきなのは、createAgentFromCodeなど5つの操作、CodeAgents=V1Previewの扱い、SDK生成時のメソッド名、そしてCI/CDでのzipアップロード・ハッシュ検証です。対象は、Azure REST APIでエージェントをコードからデプロイしている開発者、SDK生成やOpenAPI仕様を参照しているチーム、エージェントの自動デプロイを組んでいる運用担当者です。(GitHub)

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

Azure REST API documentation updateで何が変わったのか

今回の更新は、Azure REST APIそのものの一般的な使い方変更ではなく、Azure REST API仕様リポジトリ内のMicrosoft Foundry / Azure AI Projects系エージェント仕様に関する変更です。AzureのREST API仕様は、Azure REST API Specificationsリポジトリがカノニカルな仕様ソースとして扱われており、ここでの変更はドキュメント生成、SDK生成、APIレビューに影響する可能性があります。(GitHub)

PRの説明では、createAgentFromCodeupdateAgentFromCodecreateAgentVersionFromCodedownloadAgentCodedownloadAgentVersionCodeから@removed(Versions.v1)を外し、関連するcode_agents_v1_previewのv1除外状態も外すことで、v1 surfaceで利用できるようにする意図が示されています。さらにレビュー後、openapi3/v1/microsoft-foundry-openapi3.jsonが再生成され、これらの操作がv1側に反映される形になりました。(GitHub)

ただし、ここで重要なのは「v1に入った=完全にプレビュー要素がなくなった」と早合点しないことです。OpenAPI上では、コードベースエージェント関連の操作やモデルにCodeAgents=V1Previewが紐づいています。つまり、v1のAPI仕様で参照できるようになった一方で、機能フラグやプレビュー扱いの確認は引き続き必要です。(GitHub)

確認項目今回の変更実務上の意味
対象操作コードベースエージェントの作成、更新、バージョン作成、コード取得がv1仕様に反映RESTクライアントやSDK生成で参照対象になる可能性がある
リクエスト形式アップロード系はmultipart/form-dataJSONだけで呼ぶ既存実装では対応できない
ハッシュx-ms-code-zip-sha256でzipのSHA-256を渡す変更検知、重複排除、整合性確認に使われる
ダウンロードapplication/zipのバイナリとして返るJSONパーサーではなくバイナリ保存処理が必要
プレビューキーCodeAgents=V1Previewが仕様メタデータに残るFoundry-Featuresヘッダーの扱いを環境ごとに確認する
SDK生成APIViewでTypeSpec、Python、JavaScriptのAPIレビューが作成SDKのメソッド名や公開形が変わる可能性がある

影響を受ける人、受けにくい人

このAzure REST API documentation updateの影響は、Azure REST APIを直接呼んでいるか、OpenAPI/TypeSpecからSDKやクライアントコードを生成しているかで大きく変わります。

立場影響度確認すべきこと
REST APIを直接呼んでエージェントをデプロイしている開発者v1で対象ルートを使えるか、ヘッダー・multipart・api-versionを確認する
Azure AI FoundryのコードベースエージェントをCI/CDで更新しているチームzip作成、SHA-256計算、バージョン作成、ダウンロード検証をパイプラインに組み込む
OpenAPIからクライアントを生成しているSDK担当者operationId、メソッド名、リクエストモデル、バイナリレスポンスの生成結果を確認する
既存のプレビューAPIで同ルートを使っていたチームvirtual-public-preview側は既にルートを持っていたため、v1移行時の差分を中心に確認する
通常のエージェント作成・取得・削除だけを使う利用者既存のcreateAgentdeleteAgent中心なら影響は限定的
Azure Resource Managerなど管理プレーンAPIだけを使う利用者今回はFoundryのデータプレーン仕様が中心

本稿執筆時点で、PRはOpenの状態で、Swagger BreakingChangeチェックの失敗や、APIレビューの作成も確認されています。つまり、本番移行の判断では「PRの内容を確認した」だけで終わらせず、最新のマージ状況、Microsoft Learn上のリファレンス反映、利用SDKのリリース状況まで確認する必要があります。(GitHub)

v1に含まれるコードベースエージェント操作

今回の中心は、コードをzipとしてアップロードし、エージェントやエージェントバージョンを作成・更新・取得する操作です。OpenAPI v1では、POST /agentsPOST /agents/{agent_name}のように既存操作とルートを共有する形もあり、生成されるoperationIdが結合された名前になる点にも注意が必要です。(GitHub)

操作メソッド・パス主な用途実装時の確認ポイント
createAgentFromCodePOST /agentsコードzipをアップロードして新規エージェントを作成x-ms-agent-namex-ms-code-zip-sha256multipart/form-dataを確認
updateAgentFromCodePOST /agents/{agent_name}コードベースエージェントを更新し、新しいバージョンを作成同じコード・定義なら既存バージョンが返る可能性を考慮
createAgentVersionFromCodePOST /agents/{agent_name}/versions既存エージェントに新しいコード版を追加バージョン管理、ロールバック、リリース履歴と紐づける
downloadAgentCodeGET /agents/{agent_name}/code:download最新バージョンのコードzipを取得application/zipとして保存し、ハッシュ検証を行う
downloadAgentVersionCodeGET /agents/{agent_name}/versions/{agent_version}/code:download指定バージョンのコードzipを取得監査、差分確認、復元用に使いやすい

アップロード系の説明では、メタデータJSONパートとバイナリコードパートを含むmultipart/form-dataを使い、最大アップロードサイズは250MBとされています。また、x-ms-code-zip-sha256は、アップロードするzipそのもののSHA-256ダイジェストとして扱われます。(GitHub)

ダウンロード系は、以前アップロードしたzipをapplication/zipとして返し、返却バイト列のSHA-256がエージェントバージョンのcode_configurationにあるcontent_hashと一致する前提で説明されています。監査やリリース確認のために、ダウンロード後のハッシュ検証を自動化しておくと安全です。(GitHub)

移行前に確認すべき設定

api-versionは「v1で見えるか」だけでなく実行環境で確認する

Azure REST APIでは、要求URI、HTTPメソッド、ヘッダー、要求本文、応答本文などを組み合わせて呼び出します。多くのAzure REST APIではapi-versionなどのクエリパラメーターや、Authorizationヘッダー、Content-Typeヘッダーを正しく指定する必要があります。(Microsoft Learn)

今回の仕様ではOpenAPIのinfo.versionv1になっており、各操作にもapi-versionクエリパラメーターが定義されています。ただし、実際に指定すべき値や公開タイミングはサービスの最新リファレンスで確認してください。仕様PRだけを根拠に、本番コードのapi-versionを一斉変更するのは避けるべきです。(GitHub)

Foundry-Featuresヘッダーを安易に削除しない

OpenAPI上では、コードベースエージェント関連操作にCodeAgents=V1Previewが紐づいています。生成された仕様内のFoundry-Featuresヘッダーは必ずしも全操作でrequired: trueとして表現されているわけではありませんが、説明上はプレビュー操作やプレビューリソース利用時の機能フラグとして扱われています。(GitHub)

そのため、既存の呼び出しで次のようなヘッダーを使っている場合は、v1対応後もステージング環境で成功・失敗を比較してから変更してください。

Foundry-Features: CodeAgents=V1Preview

特に「ドキュメント上はv1に見えるから、プレビュー用ヘッダーは不要」と判断するのは危険です。サービス側の実行時検証、テナント設定、リージョン展開状況によって挙動が変わる可能性があります。

multipart/form-dataの作り方を見直す

アップロード系の操作は、通常のJSON POSTとは違います。メタデータ部分はJSON、コード本体はzipのバイナリとして送る必要があります。

実装で失敗しやすいのは次の点です。

失敗しやすい点原因対策
Content-Type: application/jsonで送ってしまう既存のエージェント作成処理を流用しているコードアップロード時はmultipart/form-dataに分岐する
SHA-256が一致しないzip化前のフォルダやソースファイル単位で計算している実際に送信するzipファイルのバイト列に対して計算する
境界文字列が壊れるmultipart/form-dataのboundaryを手書きしているHTTPクライアントライブラリにboundary生成を任せる
250MBを超える.git、テストデータ、ログ、キャッシュを含めているデプロイ対象だけをzip化し、除外ルールをCIに入れる
秘密情報をzipに含めるローカル設定ファイルをまとめてアップロードしているシークレットはKey Vaultや環境変数に分離する

agent_nameとバージョン管理を整理する

createAgentFromCodeでは、POST /agentsのURLにエージェント名が入らないため、x-ms-agent-nameヘッダーでエージェント名を渡します。一方、更新やバージョン作成、ダウンロードでは/agents/{agent_name}のようにパスで指定します。エージェント名は最大63文字で、英数字で始まり英数字で終わり、途中にハイフンを含められるという制約が示されています。(GitHub)

CI/CDでは、エージェント名を環境別に明確に分けるのが安全です。

環境命名例目的
開発support-agent-dev動作検証用
ステージングsupport-agent-stg本番前の統合テスト用
本番support-agent-prod実運用用

同じエージェント名に対して更新を続ける場合は、バージョン番号、GitコミットID、zipのSHA-256、デプロイ日時をセットで記録しておくと、問題発生時に特定バージョンのコードをダウンロードして確認できます。

CI/CDパイプラインでの実装イメージ

コードベースエージェントをAzure REST APIでデプロイする場合、手作業でzipを作ってアップロードするより、CI/CDに組み込む方が安全です。最小構成では次の流れにします。

手順やること確認ポイント
ソース取得Gitの対象ブランチやタグをチェックアウト本番はタグや承認済みコミットに限定する
zip作成デプロイ対象コードだけをzip化.git、ローカル設定、不要なログを除外
ハッシュ計算zipファイルのSHA-256を計算x-ms-code-zip-sha256に渡す値と一致させる
アップロードPOST /agentsまたはPOST /agents/{agent_name}/versionsを呼ぶapi-version、認証、機能フラグ、multipartを確認
応答保存返却されたエージェント・バージョン情報を記録GitコミットID、ビルド番号、ハッシュと紐づける
検証downloadAgentCodeまたはdownloadAgentVersionCodeでzipを取得取得したzipのハッシュを再計算する
リリース記録どのバージョンを本番利用しているか保存ロールバック判断に使える形にする

この流れにすると、「API呼び出しは成功したが、実際にどのコードがデプロイされたか分からない」という運用上の問題を避けやすくなります。

SDK利用者が注意すべき点

今回のPRでは、APIViewがTypeSpec、Python、JavaScript向けのAPIレビューを作成しています。これは、OpenAPIやTypeSpecの変更がSDKの公開APIに影響し得ることを示します。(GitHub)

特に注意したいのは、POST /agentsPOST /agents/{agent_name}が通常のエージェント作成・更新とコードベース作成・更新でルートを共有している点です。OpenAPI v1では、operationIdAgents_createAgent_Agents_createAgentFromCodeAgents_updateAgent_Agents_updateAgentFromCodeのように結合された形で表現されています。レビューコメントでも、このoperationIdがドキュメントの目次や生成コードに使われる可能性があるため、理由や修正方法を確認すべきという指摘があり、@operationIdデコレーターで修正できる可能性にも触れられています。(GitHub)

SDKで実装する場合は、次の順に確認してください。

確認対象見るべきポイント
SDKのリリースノート対象操作が正式に含まれているか
生成されたメソッド名期待する名前で呼び出せるか、破壊的変更がないか
multipart対応SDKがzipアップロードを正しく扱えるか
バイナリダウンロードapplication/zipをストリームまたはバイト列として扱えるか
プレビュー機能ヘッダーSDKがFoundry-Featuresを指定できるか
エラー型ApiErrorResponseなどの既定エラーを処理できるか

SDKの対応が遅れている場合は、無理に自作ラッパーでSDKを改造するより、当面はREST APIを直接呼ぶ小さなデプロイ用モジュールを作る方が安全な場合があります。

本番反映前のチェックリスト

本番環境でこの更新に対応する前に、次の項目を確認してください。

チェック合格条件
PR・公式ドキュメントの状態PRがマージ済み、または公式リファレンスに対象操作が反映済み
APIバージョン対象環境で指定すべきapi-versionが明確
認証Microsoft Entra IDのトークン取得と権限が確認済み
機能フラグCodeAgents=V1Previewの要否をステージングで検証済み
zipサイズ250MB以下に収まる
ハッシュアップロード前後でSHA-256が一致する
ロールバック特定バージョンのコードzipをダウンロードして復元できる
SDK生成メソッド名、multipart、バイナリレスポンスの扱いを確認済み
監査誰が、いつ、どのコミットを、どのエージェントバージョンに反映したか記録できる

今回の更新でやるべきこと

今回のAzure REST API documentation updateは、コードベースエージェントをv1仕様の中で扱いやすくするための重要な変更です。一方で、PRの状態、Swaggerチェック、operationIdのレビュー、CodeAgents=V1Previewの残存を考えると、すぐに本番コードを全面移行するより、まずは検証環境で5つの操作を個別に確認するのが現実的です。(GitHub)

次に取るべき行動は明確です。OpenAPI v1に対象ルートが反映されているかを確認し、createAgentFromCodeupdateAgentFromCodecreateAgentVersionFromCodedownloadAgentCodedownloadAgentVersionCodeをステージングで試します。そのうえで、CI/CDにzip作成、SHA-256計算、multipartアップロード、バージョン記録、ダウンロード検証を組み込んでください。SDKを使う場合は、メソッド名とバイナリ処理が安定してから本番へ進めるのが安全です。

この記事を書いた人

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

コメント

コメントする

目次