Azure AI Foundry の新 Foundry Agent Service 移行ガイド:Assistants API 廃止前に確認すべき変更点

Azure AI Foundry で Assistants API や classic agents を使っている場合、今回の「Migrate to the new Foundry Agent Service」で最も重要なのは、Thread / Run / Assistant 前提の実装を、Conversation / Response / Agent Version 前提へ移行する必要があるという点です。単なる SDK の差し替えではなく、会話状態、実行管理、エージェント定義、権限、リージョン、運用監視まで見直す移行になります。

特に注意すべき期限は、Azure OpenAI Assistants API が 2026年8月26日 に廃止予定であること、Foundry Agent Service の classic agents が 2027年3月31日 に廃止予定であることです。Microsoft Learn では、Assistants API の移行先として一般提供済みの Microsoft Foundry Agents Service を使うよう案内されています。(Microsoft Learn)

目次

Azure AI Foundry の「Migrate to the new Foundry Agent Service」とは何か

「Migrate to the new Foundry Agent Service」は、Azure AI Foundry で従来使われてきた Assistants API や classic agents から、新しい Foundry Agent Service へ移行するための Microsoft 公式ガイドです。

新しい Foundry Agent Service は、従来の Assistants API ではなく Responses API を土台にしたエージェント実行基盤です。Microsoft Learn では、新しい API により、SDK の近代化、エンタープライズ向け機能、ID・ガバナンス・可観測性の継承が提供されると説明されています。(Microsoft Learn)

今回の更新ポイントは、次の3つに集約できます。

変更前変更後実務上の意味
ThreadsConversations会話履歴は「スレッド」ではなく、メッセージ・ツール呼び出し・ツール出力などを含む「アイテム」として管理する
RunsResponses非同期 Run を作成してポーリングする実装から、responses.create() を中心にした応答生成へ変える
Assistants / classic agentsNew agents / Agent versionsエージェント定義をバージョン管理し、create_agent() ではなく create_version() 系の API を使う

この変更は、アプリケーションの表面だけを直す作業ではありません。チャット履歴、ツール呼び出し、状態管理、エージェント定義、SDK バージョン、リソースリージョンまで含めて棚卸しする必要があります。

影響を受ける環境

影響を受けるのは、主に次のような環境です。

利用状況影響優先度
Azure OpenAI Assistants API を利用している2026年8月26日までに移行が必要高
Foundry classic agents を利用している2027年3月31日までに移行が必要高
threads / messages / runs を前提にしたコードがあるAPI 設計の変更が必要高
create_agent() を使っているcreate_version() 系への置き換えが必要高
azure-ai-projects 1.x のサンプルを使っている2.x SDK への見直しが必要中〜高
Azure Functions ツールを classic agents で使っている新 Foundry Agent Service では同等の扱いにならないため代替設計が必要高
Foundry リソースが Responses API 非対応リージョンにある新ポータルでエージェントを作成・実行できない可能性がある高

Microsoft Learn では、Responses API と Foundry Agent Service はすべての Azure リージョンで利用できるわけではなく、サポートされていないリージョンでは現在の Foundry ポータルでエージェントを作成または実行できないと説明されています。移行前にリージョン対応を確認することが重要です。(Microsoft Learn)

まず確認すべき移行期限

Azure AI Foundry の移行計画では、期限の違いを正しく分けて考える必要があります。

対象期限管理者が取るべき対応
azure-ai-inference パッケージ2026年5月30日openai パッケージへの移行状況を確認する
Azure OpenAI Assistants API2026年8月26日Foundry Agent Service または Responses API へ移行する
Foundry classic agents2027年3月31日新しい Microsoft Foundry Agents Service へ移行する

Microsoft のクラシックポータル移行ガイドでは、Assistants API は 2026年8月26日に sunset とされ、一般提供済みの Microsoft Foundry Agents Service を使うよう案内されています。また、azure-ai-inference パッケージの廃止日も 2026年5月30日として示されています。(Microsoft Learn)

ここで混同しやすいのは、Assistants API の期限と classic agents の期限が同じではないことです。Assistants API を直接使っているアプリは、2027年まで待てるとは考えない方が安全です。

API 設計の最大の変更は「Thread から Conversation」への移行

従来の Assistants API や classic agents では、会話状態は Thread と Message を中心に扱っていました。新しい Foundry Agent Service では、Thread ではなく Conversation を使います。

Microsoft Learn では、従来の Thread はサーバー側にメッセージを格納していた一方、新しい Conversation はメッセージだけでなく、ツール呼び出し、ツール出力、その他のデータを含むアイテムを格納できると説明されています。(Microsoft Learn)

実務で見直すべきポイント

移行時は、次の観点でコードを確認してください。

確認項目旧実装でありがちな例新実装での考え方
会話 IDthread_id を DB に保存conversation_id を保存
メッセージ追加messages.create(thread_id=...)conversations.items.create(conversation_id=...)
会話履歴Thread に紐づく Message 一覧を取得Conversation 内の item と Response 出力を扱う
ツール結果Run step や Message の一部として確認Response の output item と tool call を確認
監査ログThread / Run ID をログに出すConversation ID / Response ID をログに出す

単純に変数名を thread_id から conversation_id に変えるだけでは不十分です。新しい Conversation は「メッセージの入れ物」ではなく、エージェント実行に関係する複数種類の item を扱う構造です。ログ設計やデバッグ画面も合わせて見直す必要があります。

Run から Response へ:ポーリング前提の処理を見直す

従来の Runs は、Thread に対して非同期で処理を開始し、queued や in_progress の状態をポーリングして完了を待つ設計でした。新しい Foundry Agent Service では、responses.create() を中心に入力を渡し、出力 item を受け取る設計に変わります。Microsoft Learn でも、従来はポーリングを伴う非同期 Run だった一方、現在は OpenAI クライアントで responses.create() を呼び出す形になると説明されています。(Microsoft Learn)

移行で削れる処理と、残すべき処理

処理移行後の扱い
Run 作成responses.create() へ置き換える
Run status のポーリング多くのケースで不要になる
Run step の確認Response の output item / tool call の確認へ変更
タイムアウト制御アプリ側の HTTP タイムアウト、バックグラウンド処理、再試行設計として再定義
長時間処理background mode や durable stream の利用可否を検討

注意したいのは、「Run がなくなるから非同期処理が不要になる」と短絡しないことです。画像生成、外部ツール呼び出し、社内 API 連携など、処理時間が長くなる用途では、アプリケーション側のタイムアウト、ジョブ管理、再試行、ユーザー通知を再設計する必要があります。

エージェント定義は create_agent() から create_version() へ

classic agents では、create_agent() のようなメソッドでエージェントを作成する実装が使われていました。新しい Foundry Agent Service では、エージェント定義をバージョンとして作成する設計になります。

Microsoft Learn では、以前の SDK の client.agents.create_agent() を使っている場合は client.agents.create_version() に移行し、明示的な kind、model、instructions フィールドを含む構造化されたエージェント定義を使うと説明されています。(Microsoft Learn)

移行時の見直し例

見直す項目旧設計新設計での確認ポイント
エージェント名name を直接指定agent_name と version の管理ルールを決める
モデルmodel="gpt-4.1" など対象リージョンで利用可能か確認する
指示文instructions に直接指定バージョン管理し、変更履歴を残す
ツールtools=[...]新サービスで利用可能なツールか確認する
デプロイアプリ内で agent ID を参照agent name / version をどう固定・更新するか決める

本番運用では、エージェント定義を「コードの一部」として扱うか、「運用設定」として扱うかを決めておくことが重要です。たとえば、プロンプトやツール構成を頻繁に変更する場合は、Git 管理、レビュー、承認、ロールバック手順を用意しておくと事故を減らせます。

ツールの互換性は必ず確認する

新しい Foundry Agent Service では、利用できるツールが classic agents と完全には一致しません。

Microsoft Learn の比較では、Azure AI Search、Code Interpreter、File Search、Function、Bing Search grounding、OpenAPI などは classic と new の両方で利用可能とされています。一方で、Azure Functions は classic 側では GA ですが new 側では「No」となっており、Connected Agents は A2A tool 推奨、Deep Research は Web Search tool を使った Deep Research model 推奨とされています。(Microsoft Learn)

ツール / 機能新 Foundry Agent Service での扱い移行時の判断
Azure AI SearchGARAG 系用途は比較的移行しやすい
File SearchGAファイル管理とインデックス移行を確認
Code InterpreterGA出力ファイルや実行時間の扱いを確認
FunctionGAツール呼び出しの入出力スキーマを確認
MCPGA外部ツール接続の標準化候補
Web SearchGAclassic で未使用でも新規活用を検討可能
Image GenerationPublic Preview本番利用はプレビュー条件を確認
Azure Functions新側では非対応Function tool や OpenAPI、MCP など代替設計を検討
Connected Agents新側では非対応A2A tool への置き換えを検討
Deep Research新側では非対応Deep Research model + Web Search tool を検討

既存のエージェントがどのツールを使っているかを最初に一覧化してください。特に Azure Functions、Connected Agents、Deep Research を classic 側で使っている場合、API の置き換えだけでは移行できない可能性があります。

SDK とクライアントの設定変更

移行では SDK のバージョン合わせが重要です。Microsoft Learn では、Python では azure-ai-projects>=2.0.0、JavaScript では @azure/[email protected]、Java では azure-ai-agents 2.0.0 などが例示されています。(Microsoft Learn)

また、新しい API では、エージェントの作成とバージョン管理には project client を使い、会話と応答には OpenAI クライアントまたは言語ごとの同等クライアントを使います。Microsoft Learn では、Python では project.get_openai_client()、JavaScript では projectClient.getOpenAIClient()、C# では agent 向けの Project Responses Client を使う形が案内されています。(Microsoft Learn)

SDK 移行のチェック表

項目確認内容
SDK バージョンazure-ai-projects 1.x と 2.x を混在させていないか
クライアントConversation / Response を project client で直接呼んでいないか
認証DefaultAzureCredential や Azure CLI ログインが使えるか
エンドポイントproject endpoint 形式になっているか
API バージョン古い月次 api-version 前提の実装が残っていないか
CI/CDビルド環境に新しい SDK が入っているか
サンプルコードclassic 向けサンプルを new 向け環境で使っていないか

クラシックポータル移行ガイドでも、2.x SDK サンプルを 1.x セットアップで使う、またはその逆を行うとエラーになると警告されています。(Microsoft Learn)

移行ツールでできること、できないこと

Microsoft は、Assistants API から Agents への移行を支援する migration tool を用意しています。公式ガイドでは、このツールがエージェント定義、スレッド作成、メッセージ作成、実行作成などのコード構造の移行を支援する一方、過去の実行、スレッド、メッセージなどの状態データは移行しないと説明されています。(Microsoft Learn)

GitHub 上の移行ツール README では、Docker Desktop と Azure CLI を使った実行方法、--list による読み取り専用の事前確認、特定 item だけの移行、ツール付き assistant のみの移行、クロスプロジェクト移行などが案内されています。(AKA.ms)

移行ツール利用時の現実的な進め方

フェーズ実施内容失敗しやすい点
棚卸し--list で移行対象を確認表示されない item を「影響なし」と誤判断する
権限確認Foundry User など必要ロールを確認401 / 403 を SDK エラーと誤解する
テスト移行開発用プロジェクトへ移行本番 project に直接実行して差分管理できなくなる
コード確認生成・変更されたコードをレビュー状態データまで移行されたと勘違いする
動作検証Conversation / Response / tool call をテスト旧 Thread の履歴が使える前提でテストしてしまう
本番移行リリース手順とロールバック手順を用意旧 API と新 API のログが追えなくなる

移行ツールは便利ですが、完全自動移行の仕組みではありません。特に、会話履歴をどこまで保持するか、既存ユーザーのセッションをどう切り替えるか、ログや監査証跡をどう残すかは、アプリケーション側で設計が必要です。

管理者が確認すべきポイント

移行は開発チームだけで完結しません。Azure 管理者、セキュリティ管理者、運用担当者も次の項目を確認してください。

確認項目なぜ重要か具体的な確認内容
リージョンResponses API 非対応リージョンでは新エージェントが動かない可能性がある対象 Foundry リソースのリージョンとサポート状況
RBAC新 Foundry ではロール名・管理場所が変わるFoundry User、Foundry Project Manager、Foundry Owner など
エンドポイント旧 Azure OpenAI endpoint から project endpoint へ変わる環境変数、Key Vault、アプリ設定
認証方式API キー依存から Entra ID 認証へ寄せるケースがあるDefaultAzureCredential、Managed Identity、条件付きアクセス
ネットワーク社内制限や private endpoint 利用時に影響が出るDNS、Firewall、Private Link、送信許可
クォータモデル・リージョン・ツール利用で制限が異なるOperate > Quota の確認
監視Thread / Run 前提のログが使えなくなるConversation ID、Response ID、tool call の記録
データ保持移行ツールは過去状態データを移行しない旧履歴の参照期間、削除方針、監査要件
ツール権限Web Search や MCP など外部接続の扱いが変わる外部通信、データ持ち出し、承認フロー

Microsoft Learn では、現在の Foundry ポータルでは「ホーム」「発見」「ビルド」「動作」「ドキュメント」のようにナビゲーションが再構成され、クォータ管理、ユーザーとアクセス許可、トレースなどの場所も classic から変わっています。(Microsoft Learn)

よくある移行トラブルと対処法

症状主な原因対処
AIProjectClient に conversations がないproject client で Conversation API を呼んでいるproject.get_openai_client() などで OpenAI クライアントを取得する
getOpenAIClient is not a function@azure/ai-projects が古い@azure/[email protected] 以降へ更新
create_agent() が使えないSDK v2.0.0 で削除済みcreate_version() 系に置き換える
古い Thread の履歴が見えない移行ツールは状態データを移行しない新しい Conversation を開始し、必要なら旧履歴参照を別設計にする
responses.create() でモデルエラーモデル名またはリージョン非対応Foundry project のモデル名とリージョン対応を確認
404 / MethodNotAllowedAssistants API 呼び出しを Responses API エンドポイントへ送っているAPI パスとクライアントを Responses API 前提に修正
新ポータルに project がないhub-based project が現在のポータルに表示されないclassic portal に戻るか、Foundry project へ移行する

公式ガイドでも、AIProjectClient で conversations.create() を呼んだ場合のエラー、古い SDK、create_agent() の削除、旧 Thread データが移行されない点などがトラブルシューティングとして示されています。(Microsoft Learn)

移行を進める実務手順

Azure AI Foundry の移行は、次の順序で進めると手戻りを減らせます。

| 手順 | 作業 | 成果物 |
| -: | ——————————————- | —————————————— |
| 1 | Assistants API / classic agents の利用箇所を棚卸しする | 対象アプリ、対象 API、利用ツール一覧 |
| 2 | 期限を分類する | 2026年8月26日対応分、2027年3月31日対応分 |
| 3 | リージョンとモデル対応を確認する | 移行可否、必要な新リソース |
| 4 | SDK と依存パッケージを更新する | azure-ai-projects 2.x、OpenAI クライアント構成 |
| 5 | Thread / Run / Assistant の設計を置き換える | Conversation / Response / Agent Version 設計 |
| 6 | ツール互換性を確認する | 継続利用、代替設計、廃止対象 |
| 7 | 移行ツールを --list で試す | 移行対象リスト、権限確認 |
| 8 | 開発環境で新エージェントを作成する | agent version、conversation、response の動作確認 |
| 9 | 監視・ログ・権限・ネットワークを検証する | 運用チェックリスト |
| 10 | 段階的に本番切り替えする | リリース手順、ロールバック手順 |

最初から本番コードを一括置換するのではなく、まずは代表的なエージェントを1つ選び、Conversation と Response の新しい流れを小さく検証するのがおすすめです。その後、ツール付きエージェント、長時間実行、外部 API 連携、監査ログが必要なユースケースへ広げると、移行リスクを抑えられます。

新しい Foundry Agent Service へ移行するメリット

今回の移行は廃止対応だけではありません。新しい Foundry Agent Service には、今後のエージェント開発を見据えたメリットがあります。

Microsoft Learn では、新しいエージェントの利点として、より多くの Foundry モデル、Web Search、File Search、Code Interpreter、MCP tool calling、画像生成、reasoning summaries、background mode、シングルテナントストレージ、権限制御、エージェントのエンドポイント公開などが挙げられています。(Microsoft Learn)

特に企業利用では、次の観点が重要です。

観点メリット
開発Responses API ベースになり、今後の新機能を取り込みやすい
運用Conversation / Response 単位で実行結果を追いやすい
ガバナンスエージェント定義の実行・変更権限を制御しやすい
拡張性MCP、Web Search、A2A など新しい連携パターンを検討できる
本番化Hosted agents や deployable agents を使った運用設計に進みやすい

つまり、移行を「仕方なくやる廃止対応」と捉えるより、エージェント基盤を本番運用向けに作り直す機会として扱う方が効果的です。

まとめ:最初にやるべきこと

Azure AI Foundry の「Migrate to the new Foundry Agent Service」で最初にやるべきことは、自社環境が Assistants API の期限に該当するのか、classic agents の期限に該当するのかを切り分けることです。

Assistants API を使っている場合は、2026年8月26日までの移行が必要です。classic agents を使っている場合も、2027年3月31日の廃止を見据えて、新しい Foundry Agent Service への移行計画を始めるべきです。

次に、コード内の threads、messages、runs、create_agent()、旧 SDK、旧 endpoint を検索し、Conversation、Response、Agent Version、project endpoint、OpenAI クライアントへ置き換える範囲を確認してください。あわせて、リージョン、RBAC、ツール互換性、ログ、データ保持を管理者と一緒に確認することが重要です。

移行の成否は、API の置き換えだけでなく、運用設計まで見直せるかで決まります。まずは移行対象の棚卸しと期限分類から始め、開発環境で新しい Conversation / Response の流れを検証するところから進めましょう。

この記事を書いた人

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

コメント

コメントする

目次