OpenAI Assistants APIが8月26日に停止|自社コードの棚卸しと移行の実務手順

OpenAIのAssistants APIが2026年8月26日に停止します。公式の廃止カレンダーの本文には、2025年8月26日に開発者へ通知し、その1年後にAPIから削除すると記載されています(同ページの該当セクションの見出しは2025-08-20表記で、ページ内に表記ゆれがあります)。本記事を書いている2026年8月3日から数えると、残りは3週間ほどしかありません。値下げや新モデルの話題とは性質が違い、対応しなければ動いているものが止まる種類のニュースです。そこでこの記事は、自社のコードが該当するかをどう洗い出し、何から手を付けるか、間に合わない場合に何ができるかという実務手順に絞ります。あわせて2026年後半に続く他の停止予定も「引退カレンダー」としてまとめます。
何が止まるのか
まず事実関係です。OpenAIの公式Deprecationsページには、2025年8月26日にAssistants APIの利用者へ廃止を通知し、その1年後の2026年8月26日にAPIから削除する、と記載されています。推奨される代替は「Responses APIとConversations API」です。
同ページの説明によれば、OpenAIは2025年3月にResponses APIを公開した時点で、Assistants APIの機能をResponses APIへ移していく計画と2026年中のサンセットを予告していました。今回の停止はその予告どおりの着地で、公式の移行ガイドの冒頭にも「Responses APIで機能パリティを達成したうえでAssistants APIを非推奨にした」という趣旨の説明があります。
注意
まず棚卸し:自社のコードは該当するか
意外と多いのが「うちはChat Completions APIだけのはずだが、断言はできない」というケースです。数年前のプロトタイプがそのまま本番に残っていたり、一部の機能だけAssistantsで作られていたりします。棚卸しは次の3方向から行うと漏れにくくなります。
- 1
コードをgrepする
HTTPを直接叩いているなら、パスで探すのがいちばん確実です。公式のAPIリファレンスで確認できるエンドポイントは/v1/assistants、/v1/threads、/v1/threads/runs、/v1/threads/{thread_id}/messages、/v1/threads/{thread_id}/runs、/v1/threads/{thread_id}/runs/{run_id}/steps、/v1/threads/{thread_id}/runs/{run_id}/submit_tool_outputsなどです。加えて、Assistants v2ではOpenAI-Beta: assistants=v2ヘッダーがリクエスト例に現れるため、このヘッダー名も有効な検索キーになります。 - 2
SDKの呼び出し箇所を探す
公式SDK経由なら、Assistants関連はbeta名前空間の下にあります。公式移行ガイドのサンプルコードではopenai.beta.threads.create()、openai.beta.threads.messages.create()、openai.beta.threads.runs.create()、openai.beta.threads.messages.list()といった呼び出しが使われています。beta.threadsとbeta.assistantsという文字列でリポジトリ全体を検索すれば、SDK経由の利用はほぼ拾えます。 - 3
設定値と外部フレームワークを確認する
asst_で始まるAssistant IDやthread_で始まるThread IDが、環境変数・設定ファイル・DBのカラムに保存されていないかを確認します。公式ガイドのサンプルでもOPENAI_ASSISTANT_IDやOPENAI_THREAD_IDという環境変数名が使われています。また、エージェント系のフレームワークやノーコードツールを介して間接的にAssistants APIを呼んでいる場合、自社コードにはパスもSDK呼び出しも現れません。この場合は使用しているツール側のリリースノートや移行アナウンスを確認してください。
コードから追えない場合は、実際の通信から確認します。プロキシやAPIゲートウェイを経由しているならアクセスログのパスを集計する、直接OpenAIを叩いているならダッシュボードで利用状況を見る、といった方法です。「grepで見つからなかった」だけを根拠に該当なしと結論づけず、ログ側からも裏を取っておくと安心です。
あわせて読みたい
LLMアプリのオブザーバビリティ|トレーシングとログ設計で「なぜこの出力になったか」を後から追えるようにする
概念の対応表
公式の移行ガイドには、旧APIと新APIの対応が表で示されています。ガイドに記載がある範囲では、次のとおりです。
| 旧(Assistants API) | 新 | 公式ガイドの説明 |
|---|---|---|
| Assistants | Prompts | 設定(モデル・ツール・instructions)を保持し、バージョン管理と更新がしやすい |
| Threads | Conversations | メッセージだけでなくitemsのストリームを扱える |
| Runs | Responses | input itemsを送るかconversationオブジェクトを使い、output itemsを受け取る。ツール呼び出しループは明示的に管理する |
| Run steps | Items | メッセージ・ツール呼び出し・その出力などを表せる汎用的なオブジェクト |
ツールについては、Responses APIの側にfile search・code interpreterがホスト型ツールとして用意されています。file searchはvector storeにファイルをアップロードして使う形式、code interpreterはtoolsに{"type": "code_interpreter", "container": ...}を指定する形式で、いずれも公式ガイドにサンプルがあります。名前と役割は引き継がれていますが、設定の渡し方は変わるため、置き換え作業は必要です。
ここで一つ、素直に読むと落とし穴になる箇所があります。移行ガイドが示す「Assistants -> Prompts」というルートです。同じガイドの中に、再利用可能なprompt objectも廃止対象であり、長期運用する統合で採用する前に廃止のタイムラインを確認するように、という注意書きがあります。Deprecationsページで確認すると、v1/promptsと再利用可能なprompt objectは2026年11月30日に停止予定です。つまり、Assistantsの設定をダッシュボード上のPromptオブジェクトへ移すと、3か月余りで二度目の移行が発生する可能性があります。公式には、prompt objectの中身をアプリケーションコード側へ移す移行ガイドも別途用意されています。今から着手するなら、Promptオブジェクトを経由せず、最初からコード側に設定を持たせる形を検討する価値があります。
メモ
自動移行ツールは無い:既存Threadをどうするか
公式ガイドは「ThreadsからConversationsへの移行の自動ツールは提供しない」と明言しています。推奨されているのは、新しいユーザーの会話からConversationsへ移し、古いThreadは必要に応じて移していく段階的な進め方です。ガイドには、Thread内のメッセージを取得してitemsの配列に変換し、conversations.create(items=...)でConversationを作るPythonのサンプルが掲載されています。サンプルが扱うのはテキストと画像のコンテンツで、それ以外のコンテンツ型をどう移すかは自分で決める必要があります。
実務上の判断は次の3択になります。
- 全件バックフィルする:履歴の連続性が重要なプロダクト(継続的な相談・サポート履歴など)向け。件数が多いとAPIコールとコストがかさむため、対象期間で区切るのが現実的です。
- 直近だけ移す:過去N日以内に更新のあったThreadだけ移し、それ以前は読み取り専用のアーカイブとして自社DBに保存する折衷案。多くのケースではこれで足ります。
- 移さない:新規会話のみ新APIで作り、既存の会話は停止日までに自然に終了させる。会話が短命なプロダクトなら成立します。
いずれを選ぶにせよ、Thread側のデータを自社のデータベースへエクスポートする作業は、移行方針とは独立に済ませておくことをおすすめします。停止後のデータ取り扱いが公式に明示されていない以上、手元にコピーがある状態を先に作っておくほうが安全です。
オーケストレーションを自前で持つことになる
これがコード量としてはいちばん影響の大きい変化です。公式ガイドはPromptsへの移行の利点として「関心の分離」を挙げ、アプリケーションコードが履歴の刈り込み・ツールループ・リトライといったオーケストレーションを担当し、プロンプト側は高レベルの振る舞いと制約に集中する、と説明しています。裏を返せば、これまでAssistants APIが引き受けていた部分を自分で書くことになります。
とくに文脈長の管理は要注意です。Microsoft LearnのAzure OpenAI Assistants(classic)の解説では、Threadがモデルのコンテキスト長に収まるよう自動的に切り詰められること、max_prompt_tokensやtruncation_strategyで挙動を調整できることが説明されています。新しい構成では、会話が長くなったときにどこを削るか、要約して圧縮するかを自分で決める必要があります。ここは移行前後で最も挙動が変わりやすく、テストで最初に確認すべき箇所です。
一方で、Runsのポーリングループは不要になります。公式ガイドの比較例では、Assistants API版がRun作成後にステータスがqueuedかin_progressの間ずっと1秒ごとにポーリングするコードなのに対し、Responses API版はresponses.create()を1回呼んでoutput_textを読むだけです。減るコードもある点は、見積もりに織り込んでよいところです。
あわせて読みたい
LLMのTool Use(関数呼び出し)とは|仕組みと精度を上げるツール設計
移行の優先順位とテスト観点
残り3週間で全部を完璧に、というのは多くの場合現実的ではないので、優先順位を付けます。
- 1
止まると業務が止まるものから
顧客向けのプロダクション経路が最優先です。社内ツール、検証環境、放置されたPoCの順に後ろへ回します。停止日を過ぎて壊れても業務影響がないものは、いっそ止める判断も含めて検討します。 - 2
ツールを使っていない経路から手を付ける
単純な会話往復だけの実装は、Responses APIへの置き換えが最も軽く済みます。file searchやcode interpreter、function callingを多用している経路は設定の移し替えと検証に時間がかかるため、着手を早める代わりに完了は後になる前提で計画します。 - 3
共通レイヤを先に作る
複数箇所でAssistants APIを呼んでいるなら、呼び出しを一つのモジュールに集約してから中身を差し替えるほうが、結果的に速く安全です。次の廃止が来たときにも同じ場所だけ直せばよくなります。 - 4
切り戻せる状態で段階的に流す
環境変数などで新旧を切り替えられるようにし、一部のトラフィックから移します。停止日までに時間があるうちは、旧APIへ戻せる状態を保っておきます。
テストで見るべき観点は、単に「エラーが出ないこと」ではありません。
移行後に確認すること
- 長い会話でコンテキスト長を超えたときの挙動(どこが削られるか、エラーになるか)を意図どおりに制御できている
- ツール呼び出しが複数回連続するケースで、ループが正しく終了し無限ループにならない
- ツール実行が失敗したときのリトライとエラー返却の経路が旧実装と同等になっている
- file searchの検索結果と引用(どのファイルのどこを参照したか)が、旧実装と同等の品質で返っている
- code interpreterが生成したファイルの受け取りと保存が動作している
- ストリーミング応答のイベント形式の変更に、フロントエンド側が追随できている
- 会話IDの保存先(DBのカラム・キャッシュ)が新しいID体系に対応している
- トークン使用量とレイテンシを移行前後で比較し、コストの変化を把握している
あわせて読みたい
LLMのコスト管理|トークン課金の考え方と削減の定石
間に合わない場合の緩和策
正直に書くと、8月26日までに完了しない現場は出ます。取りうる手は限られますが、次の3つは現実的です。
第一に、機能を削った暫定版を先に出すこと。Assistants API依存の機能を一時的に無効化し、単純なResponses API呼び出し(会話履歴はアプリ側で配列として持つだけ)へ置き換えます。file searchやcode interpreterまで含めた完全移行は後追いにして、少なくとも会話が止まらない状態を作る、という順番です。
第二に、既存データの退避を最優先にすること。移行が間に合わなくても、Thread内の会話履歴を自社側へエクスポートしてあれば、後から新APIへ載せ替える道が残ります。ここを落とすと取り返しがつかない可能性があります。
第三に、利用者への事前告知です。会話履歴が引き継がれない、一部機能が一時的に使えないといった変化がある場合、事後に説明するより事前に伝えたほうが穏当に済みます。
注意
2026年後半の引退カレンダー
Assistants APIの停止は単発の出来事ではありません。公式Deprecationsページで確認できる範囲で、今後の停止予定を並べると次のようになります(執筆時点=2026年8月3日に同ページで確認できたもの)。
| 停止予定日 | 対象 | 推奨される代替 |
|---|---|---|
| 2026年8月10日 | gpt-5.2-chat-latest、gpt-5.3-chat-latest | gpt-5.6-sol |
| 2026年8月26日 | Assistants API | Responses API + Conversations API |
| 2026年9月24日 | Videos APIとSora 2系モデル | 記載なし |
| 2026年9月28日 | gpt-3.5-turbo-instruct、babbage-002、davinci-002、gpt-3.5-turbo-1106 | gpt-5.4-miniまたはgpt-5-mini |
| 2026年10月23日 | レガシーGPTスナップショット群(gpt-3.5-turbo-0125、gpt-4-0613、gpt-4-turbo、gpt-4.1-nano、gpt-4o-2024-05-13、gpt-image-1、o1、o1-pro、o3-mini、o4-miniなど)とファインチューニング版 | gpt-5.6-sol/terra/luna、gpt-image-2ほか |
| 2026年10月31日 | 既存のevalsが読み取り専用に | - |
| 2026年11月30日 | v1/promptsと再利用可能prompt object、Agent Builder、EvalsのダッシュボードとAPI | プロンプトはコード側へ移行、Agent BuilderはAgents SDKまたはChatGPT Workspace Agents |
| 2026年12月1日 | gpt-image-1-mini、gpt-image-1.5、chatgpt-image-latest | gpt-image-2 |
| 2026年12月11日 | gpt-5系・o3系のスナップショット(gpt-5-2025-08-07ほか) | gpt-5.6-sol/terra/luna |
| 2027年1月6日 | 既存顧客も新規ファインチューニングジョブの作成が不可に | - |
| 2027年1月20日 | レガシーの音声・realtime・transcriptionモデル群 | gpt-realtime-2.1、gpt-audio-1.5ほか |
この表を眺めると、移行と同時に確認しておくべきことが見えてきます。Assistants APIのAPIリファレンスで指定できるモデルとして挙がっているのはgpt-4oやo1、o3-miniといった世代で、これらの多くは10月23日にも停止が控えています。移行先で使うモデルを選ぶ際、そのモデル自体の引退予定も一緒に確認しておかないと二重の作業になります。
もう一点、Evals(評価)のダッシュボードとAPIが11月30日に停止予定である点も今回の移行と直接絡みます。移行前後で品質が落ちていないかを確かめる評価を組もうとしている場合、その評価基盤自体が数か月後に無くなる可能性を織り込んでおく必要があります。公式ページには外部ツールへの移行例を紹介するCookbookへのリンクもあります。
あわせて読みたい
LLMアプリの評価(eval)の作り方|「動いた気がする」で止めないための実務手順
Azure OpenAIを使っている場合
Microsoft Learnの「Azure OpenAI Assistants API concepts (classic)」のページには、Assistants APIが非推奨であり2026年8月26日に廃止されること、一般提供されているMicrosoft Foundry Agentsサービスを使い、移行ガイドに従ってワークロードを更新することが記載されています。日付はOpenAI本体と同じです。
移行先の考え方は少し異なります。Microsoft Learnの移行ガイドの対応表でも、ThreadsはConversationsへ、RunsはResponsesへという点はOpenAI本体と共通ですが、AssistantsおよびクラシックなagentsはPromptsではなく「新しいAgents」に対応づけられています。同ガイドにはクラシック環境と新環境のツール提供状況を比較する表もあり、Azure Functionsツールなど新環境で提供されないものや、Connected AgentsからA2Aツールへの読み替えが推奨されるものが示されています。Azureで運用している場合は、OpenAI本体のガイドではなくMicrosoft側の移行ガイドを基準にしてください。
もう一点、Azure側には移行を補助するツールがあります。同ガイドには、GitHubで提供されるmigration toolがagent定義・thread作成・message作成・run作成といったコード構造の移行を自動化すること、一方で過去のrun・thread・messageといった状態データは移行しないことが記載されています。前述の「自動移行ツールは無い」はOpenAI本体のThreads->Conversationsの話であり、Azure利用者はこのツールでコード側の書き換え負荷を下げられる可能性があります。ただし履歴の移行は結局自前で設計する必要がある点は変わりません。
Assistants APIの停止日(2026年8月26日)・告知日(2025年8月26日)・推奨代替、および引退カレンダーの各日付はOpenAI公式のDeprecationsページで確認しました。概念の対応表・自動移行ツールが提供されない点・Promptsがダッシュボードからのみ作成できる点・オーケストレーションの担当範囲・コード比較例は公式のAssistants migration guideによります。v1/promptsの停止日は同ページおよびMigrate from prompt objectsガイドで確認しました。file search/code interpreterの記述は各公式ガイド、エンドポイントのパスとOpenAI-Beta: assistants=v2ヘッダーは公式APIリファレンスによります。Azureの停止日・移行先・対応表・migration toolの機能範囲はMicrosoft Learnの該当ページによります。なお告知日については、公式Deprecationsページの本文が2025年8月26日と記載する一方、同項目の見出しは2025-08-20表記になっており、ページ内で表記が揺れています。本記事は本文の記載に従いました。停止後の旧エンドポイントの挙動や既存データの保持については、確認できた公式ページには記載がありません。
恒久対策:引退は定期的に起きる
今回いちばん持ち帰るべき教訓は、移行手順そのものより「モデルやAPIの引退は定期的に起きる」という前提を運用に組み込むことだと思います。上の引退カレンダーを見れば、これが例外的な出来事ではないことは明らかです。
OpenAIのDeprecationsページには、モデル引退の最低通知期間も明記されています。一般提供モデルは最低6か月、その特殊バリアント(chat系・Codex系・deep research系など)は最低3か月、モデル名にpreviewが付くプレビューモデルは2週間程度という短い通知で引退することがある、という内容です。同ページには、短期間で移行できる体制がない限りプレビューモデルを業務クリティカルな本番ワークロードに使うことは推奨しない、とも書かれています。プレビューを本番に載せるかどうかの判断基準として、そのまま使える記述です。
そのうえで、次の廃止に備える恒久対策としては次のあたりが実務的です。
次の引退に備える
- モデル名とAPIの呼び出しを1つの抽象化レイヤに集約し、アプリ側のコードから直接SDKを叩かない
- モデル名を設定・環境変数から注入し、コードに直書きしない
- 使っているモデル・エンドポイントの一覧を、どのサービスのどの機能が使っているかとセットで台帳化する
- 廃止カレンダーを定点観測する担当と頻度を決める(月1回など)。公式の通知メールの受信先が個人アドレスのままになっていないか確認する
- 移行判断に使える評価データセット(契約テストに相当するもの)を、少数でよいので用意しておく
- 利用しているフレームワークやゲートウェイのリリースノートも監視対象に含める(間接的に旧APIを使っている場合があるため)
台帳と定点観測は地味ですが効きます。今回のように「該当するか分からない」状態から棚卸しを始めるコストは、台帳を維持するコストよりずっと高くつきます。
あわせて読みたい
AIエージェントとは何か|従来の自動化との違いと任せてよい仕事
よくある質問
Assistants APIを使っているかどうか、手早く確認する方法はありますか
既存のThreadは自動でConversationsに移りますか
移行ガイドどおりにAssistantsをPromptsへ移して問題ありませんか
file searchやcode interpreterは使えなくなりますか
Chat Completions APIは大丈夫ですか
Azure OpenAIでAssistantsを使っています。何をすればよいですか
停止日を過ぎたらどうなりますか
まとめ
今週やること
- リポジトリとログの両面から、Assistants APIの利用箇所を洗い出した
- 洗い出した経路を、業務影響の大きい順に並べた
- 既存Threadの会話履歴を自社側へエクスポートする作業に着手した
- 移行先の設定をPromptオブジェクトに置くかコード側に持つかを、v1/promptsの停止日(2026年11月30日)を踏まえて決めた
- コンテキスト長の管理・ツールループ・リトライを、自分たちで実装する範囲として見積もった
- 移行先で使うモデルの引退予定日を、公式Deprecationsページで確認した
- 間に合わない経路について、機能を絞った暫定版と利用者への告知を検討した
Assistants APIの停止は、2025年8月に告知されてから1年の猶予があったものです。それでも直前になって「うちは該当するのか」から始まる現場は珍しくありません。まずは棚卸しを終わらせて、該当なしなら安心し、該当するなら業務影響の大きい順に手を付ける。この順番さえ守れば、残り3週間でも打てる手はあります。そして今回の作業のついでに、モデルとエンドポイントの台帳を1枚作っておくことをおすすめします。引退カレンダーを見れば分かるとおり、次は数か月後にまたやってきます。
出典・参考
- Deprecations - OpenAI API(公式・一次。廃止カレンダーとAssistants APIの停止日)
- Assistants migration guide - OpenAI API(公式・一次。概念の対応表と移行手順)
- Migrate to the Responses API - OpenAI API(公式)
- Conversation state - OpenAI API(公式。Conversations APIと文脈管理)
- Migrate from prompt objects - OpenAI API(公式。v1/promptsの廃止時期)
- File search - OpenAI API(公式。Responses APIのfile searchツール)
- Code Interpreter - OpenAI API(公式。Responses APIのcode interpreterツール)
- Azure OpenAI Assistants API concepts (classic) - Microsoft Learn(公式。Azure側の停止日と移行先)
- Migrate to the new Foundry Agent Service - Microsoft Learn(公式。Azure側の移行ガイド)
関連する記事
LLMのTool Use(関数呼び出し)とは|仕組みと精度を上げるツール設計
LLMが外部のツールやAPIを呼び出す「Tool Use(関数呼び出し/function calling)」の仕組みを、実務目線で解説します。tool_useとtool_resultの往復、クライアントツールとサーバーツールの違い、いつ呼ぶかの制御、そして呼び出し精度を上げるためのツール定義のコツまでを整理します。
AIエージェントとは何か|従来の自動化との違いと任せてよい仕事
生成AIの活用で注目されるAIエージェントを冷静に解説します。チャットボットやRPAとの違い、自律性がもたらす利点とリスク、実務でエージェントに任せてよい仕事と任せるべきでない仕事の線引きをまとめます。
MCP(Model Context Protocol)とは何か|AIと社内システムをつなぐ標準と業務での使いどころ
MCP(Model Context Protocol)は、AIと社内システムやツールをつなぐための共通規格です。連携のNxM問題をどう解くのか、ホスト・クライアント・サーバーという基本構成、既製サーバーを選んで繋ぐ導入の仕方、そして権限や監査ログといった業務導入時の注意点を、冷静に整理します。


