API

OpenAI Assistants APIとは|使い方・料金と2026年8月終了・Responses API移行

OpenAIのAssistants APIは、会話の状態管理とツール実行をOpenAI側に任せてAIアシスタントを組む開発者向けAPIです。Chat Completions APIが1回のやり取りで完結するのに対し、Assistants APIはThread(会話)を作ってメッセージを積み、Runで実行する「状態を持つ」設計が特徴でした。ただし現在は重要な前提が変わっています。OpenAIは2025年8月26日にAssistants APIの廃止を告知し、2026年8月26日にシャットダウンする予定です。後継はResponses API(+Conversations API)で、新規開発はそちらが推奨されます。この記事では、Assistants APIの仕組み・Pythonでの使い方・料金を押さえたうえで、終了スケジュールと移行の実務までをまとめます。

まとめ:Assistants APIの要点と移行判断

  • 正体:Assistant・Thread・Message・Runの4オブジェクトで会話状態をサーバー側に保持し、Code Interpreter・File Search・Function callingを組み込みで扱えるAIアシスタント構築API。現行はv2(ベータ)。
  • 終了スケジュール:2025年8月26日に廃止告知、2026年8月26日にシャットダウン。以降はAPIが動かなくなる。
  • 後継Responses API+Conversations API。2025年3月11日公開で、機能パリティ達成後にAssistants APIの廃止が決まった。
  • 料金:モデルの入出力トークン課金+ツール課金。Code Interpreterは$0.03/セッション、File Searchは保存$0.10/GB/日(最初の1GB無料)+呼び出し$2.50/1,000コール
  • 判断:これから新規で採用する理由はほぼない。既存実装は移行が必要で、ThreadからConversationへの自動移行ツールは提供されない。

Assistants APIの仕組み:4つの構成要素とツール

Assistants APIの本質は、会話履歴とツール実行の状態をOpenAI側が保持する点にあります。開発者はDBで会話履歴を持ち回る必要がなく、オブジェクトのIDを渡すだけで文脈が続きます。この仕組みが後継のResponses API/Conversations APIにも引き継がれています。

Assistant・Thread・Message・Runの関係

4つのオブジェクトは役割が分かれています。

  • Assistant:モデル(例:gpt-4o)・指示(instructions)・利用ツールを束ねた設定オブジェクト。一度作れば複数の会話で使い回す。
  • Thread:1人のユーザーとの会話セッション。メッセージを時系列で保持する入れ物で、履歴管理はThreadが担う。
  • Message:Threadに積むユーザー/アシスタントの発話。テキストのほかファイルも添付できる。
  • Run:AssistantをThreadに対して実行する処理。queuedin_progress→(必要なら)requires_actioncompletedと非同期に状態遷移するため、完了までポーリングか待機が要る。実行の内訳はRun Stepとして記録される。

この「Assistantを作り、Threadに積み、Runで回す」流れが、Chat Completions APIの1リクエスト完結との最大の違いです。

3つの組み込みツール

Assistants APIは、AIに実務を行わせるためのツールを標準搭載しています。

  • Code Interpreter:サンドボックス環境でPythonを実行し、計算・データ処理・グラフ生成・ファイル出力を行う。
  • File Search:アップロードした文書をベクトルストアに取り込み、質問に関連する箇所を検索して回答に使う(RAG)。
  • Function calling:自前で定義した関数(外部API呼び出しやDB参照など)をモデルに選ばせて実行させる。仕組みの詳細はFunction Callingの解説を参照。

使い方:Assistant作成からRun実行まで(Pythonコード)

公式のopenai Pythonライブラリを使うと、SDKがv2ベータのヘッダ(OpenAI-Beta: assistants=v2)を自動付与します。以下はCode Interpreterを持つアシスタントを作り、1問を解かせる最小例です。事前準備(APIキーの設定など)はPythonでのChatGPT API連携と同じ流れです。

from openai import OpenAI

client = OpenAI()  # 環境変数 OPENAI_API_KEY を参照

# 1. Assistant を作成(モデル・指示・ツールを束ねる)
assistant = client.beta.assistants.create(
    name="数学チューター",
    instructions="あなたは数学の質問に答えるアシスタントです。",
    model="gpt-4o",
    tools=[{"type": "code_interpreter"}],
)

# 2. Thread(会話)を作成
thread = client.beta.threads.create()

# 3. ユーザーメッセージを Thread に追加
client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="3x + 11 = 14 を解いて。",
)

# 4. Run を実行し、完了までポーリング
run = client.beta.threads.runs.create_and_poll(
    thread_id=thread.id,
    assistant_id=assistant.id,
)

# 5. 応答メッセージを取得
if run.status == "completed":
    messages = client.beta.threads.messages.list(thread_id=thread.id)
    print(messages.data[0].content[0].text.value)

ポイントは、AssistantとThreadを分けて管理する点です。Assistantは使い回し、ユーザーごと・会話ごとにThreadを作ります。create_and_pollはRunの完了までSDK側で待ちますが、Function callingを使う場合はrequires_actionで止まるので、関数の実行結果を返して再開する処理を挟みます。

料金体系:トークン課金+ツール課金

Assistants APIの費用は「モデルのトークン料金」と「使ったツールの料金」の合算です。ツール料金は次のとおりで、モデルの入出力トークンは各モデルの通常API料金に準拠します(モデル料金は改定が入るため公式の料金ページで確認してください)。

項目 料金 補足
モデル入出力トークン 各モデルのAPI料金に準拠 gpt-4o等、モデルごとに単価が異なる
Code Interpreter $0.03 / セッション セッションは既定で1時間有効。同一Thread内の連続利用は1回分
File Search(保存) $0.10 / GB / 日 ベクトルストアの保存量に課金。最初の1GBは無料
File Search(呼び出し) $2.50 / 1,000コール 検索の実行回数に課金

File Searchは保存量が積み上がると日割りで効いてくるため、使わないベクトルストアは削除する運用が費用を左右します。

【2026年8月26日終了】Responses APIへの移行

Assistants APIを新規採用しない最大の理由が、この終了スケジュールです。ここは他の解説記事が手薄なので、移行判断に必要な点を具体的にまとめます。

廃止スケジュールと背景

OpenAIは2025年3月11日にResponses APIを公開し、Assistants APIの機能をより簡潔なResponses APIへ集約する方針を示しました。機能パリティが整ったのち、2025年8月26日にAssistants APIの廃止を告知し、その1年後の2026年8月26日をシャットダウン日としています。シャットダウン後は当該エンドポイントが利用できなくなるため、それまでに移行を完了させる必要があります。

概念の対応(Assistants → Responses/Conversations)

移行は単なるメソッド置換ではなく、オブジェクトの考え方が変わります。公式ガイドが示す対応は次のとおりです。

Assistants API(旧) 後継 違い
Assistant Prompt モデル・指示・ツールの設定。ダッシュボードでバージョン管理する
Thread Conversation メッセージだけでなくツール呼び出し・出力などItemを保持
Run Response 入力Itemを渡して出力Itemを受け取る同期的な実行
Message / Run Step Item メッセージ・ツール呼び出し・出力を汎用化した単位

移行の実務と注意点

ThreadからConversationへの自動移行ツールは提供されません。公式は、新しい会話からConversationに載せ替え、既存Threadは必要に応じてバックフィルする方針を推奨しています。実装面では、Responses APIがWeb検索・File Search・Code Interpreter・Computer use・リモートMCP接続などの組み込みツールを持ち、Assistants APIより広い範囲をカバーします。詳しい違いと移行判断はOpenAI Responses APIの解説にまとめています。結論として、2026年8月に消えるAPIを新規プロジェクトの土台に据えるのは避け、最初からResponses API+Conversations APIで組むのが妥当です。

Assistants API利用時の制限と注意点

  • ベータ扱い:現行はv2ベータで、REST直叩き時はヘッダOpenAI-Beta: assistants=v2が必要。仕様変更や廃止の対象になりやすい。
  • 非同期実行:Runは即時に結果が返らず状態遷移する。requires_action時はFunction callingの結果を返して再開する制御が要る。
  • レート制限:利用階層(ティア)ごとにリクエスト・トークンの上限があり、Runの多重実行で詰まりやすい。
  • Azure OpenAI:AzureのAssistants APIはクラシック(プレビュー)扱いで、本家の終了に合わせた計画の確認が必要。

よくある質問

Assistants APIの料金はいくらですか?

モデルの入出力トークン料金に、使ったツールの料金が加算されます。ツールはCode Interpreterが$0.03/セッション(1時間有効)、File Searchが保存$0.10/GB/日(最初の1GB無料)と呼び出し$2.50/1,000コールです。モデル単価は改定されるため、実費は公式の料金ページで確認してください。

Assistants APIはいつ終了しますか?終了したらどうなりますか?

2025年8月26日に廃止が告知され、2026年8月26日にシャットダウンされます。以降は該当エンドポイントが動かなくなるため、それまでにResponses API(+Conversations API)への移行が必要です。

Chat Completions APIやResponses APIとの違いは?

Chat Completions APIは状態を持たない1回完結型です。Assistants APIはThreadで会話状態を保持しツールを組み込みで扱えますが、終了予定です。Responses APIは両者を統合した後継で、状態管理(Conversations)と組み込みツールを備えつつ実行はシンプルな入出力型です。

Azure OpenAIのAssistants APIはどうなりますか?

Azure OpenAI版のAssistants APIはクラシック(プレビュー)として提供されています。本家の終了方針に連動する可能性があるため、Azure側の最新の提供計画・移行案内を確認してください。

今から新規で使い始めてよいですか?

推奨しません。2026年8月に終了するAPIを新規に採用すると、まもなく移行コストが発生します。新規開発は最初からResponses API+Conversations APIで設計するのが合理的です。

関連記事

資料請求

RELATED POSTS 関連記事