できること
会話をサーバーに保持
会話をサーバー側に短時間保持し、以降のターンでは新しいメッセージと前回レスポンスの id だけを送ります。API はモデルを呼び出す前に会話を組み立て直します。
小さなリクエストで継続
会話全体を毎回送らないため、リクエストが小さくなります。会話が長くなっても、最初のトークンまでの時間が短く安定します。
SDK ヘルパーで利用
SDK の thread ヘルパーがスレッド用のリクエストを組み立て、会話全体をメモリに保持します。SDK の beta tool runner も既定でスレッドを使います。
機能解説
概要
API が会話を保持するため、以降のリクエストでは新しいメッセージだけを送ります。リクエストが小さくなり、会話が長くなっても最初のトークンまでの時間(time to first token)が短く安定します。特に長いエージェントループに向いた機能です。
Messages API のリクエストに thread というパラメーターを 1 つ追加して使います。レスポンスは通常のメッセージと同じ形で返ります。2 回目以降のリクエストでは、新しいメッセージと前回レスポンスの id を送り、会話の組み立て直しは API 側で行います。
仕組みと制約
- スレッドは追記のみ(append-only)で、各レスポンスの
idから継続できるのは 1 回だけです。 - ストリーミングに対応しています。レスポンスの
idはmessage_startイベントで届きますが、継続するのはmessage_stopイベントを受け取った後にします。 - スレッドはプロンプトをキャッシュしません。プロンプトキャッシュはスレッドを使わない場合と同じ動作で、キャッシュのブレークポイントの位置は利用者が決めます。
- API がスレッドを継続できなくなった場合、continue リクエストは 404 エラーを返します。このときは会話全体を新しい create リクエストで送り直し、そのレスポンスの
idから続けます。
SDK ヘルパーの動作
SDK の thread ヘルパーを使う場合は、Messages リクエストと同じフィールドでヘルパーを作成し、1 ターンずつ送信します。ヘルパーはスレッド用のリクエストを組み立て、会話全体をメモリに保持します。
continue リクエストが thread_not_found、thread_already_continued、thread_continue_in_flight のいずれかを返した場合、ヘルパーは会話全体を新しい create リクエストで 1 回送り直します。SDK の beta tool runner も既定でスレッドを使い、runner の作成時にオフにできます。
提供状況の注意
Message threads はベータとして提供されており、スレッドのすべてのリクエストに message-threads-2026-08-12 ベータヘッダーを付けて送ります。対象プランについては、公式のリリースノートには記載がありません。
管理者・導入時に確認したい点
- スレッドは最後のリクエストから 5 分で期限切れになり、最後の使用から 1 時間以内に API が削除します。
- スレッドを一覧・参照・削除する API はありません。保存された会話をあとから取り出す用途には使えないため、会話全体は利用者側で保持する前提で設計します。
使い方
ベータ機能のため、message-threads-2026-08-12 ベータヘッダーを付けて使います。
- 最初のリクエストは、これまでどおり会話全体と
system、toolsを送り、"thread": {"type": "create"}を追加します。API は Claude の返答を含む会話を、レスポンスのidの下に保存します。 - 以降のターンでは、前回のレスポンス以降のメッセージだけを送り、
"thread": {"type": "continue", "previous_message_id": "<previous id>"}を追加します。systemとtoolsはリクエストに含めません。 - 次のターンには、毎回新しく返ったレスポンスの
idを使います。
利用シーン
ツール呼び出しを何度も重ねる長いエージェントループの実装に向いています。
Messages API で多くのターンを重ねる長い会話を扱うアプリケーションに使えます。
SDK の beta tool runner を使ったツール実行の実装では、既定でスレッドが使われます。
ChatGPT・OpenAI の対応する機能
比較の単位となる業務: API での会話履歴のサーバー側保持と差分送信による長い会話・エージェントループの高速化
OpenAI の Agents API は、永続的なセッション(durable sessions)でターンをまたいで作業を継続する仕組みで、セッションのオーケストレーション、コンテキスト圧縮、復旧は OpenAI が担います。Message threads は会話をサーバー側に短時間だけ保持する仕組みで、スレッドは最後のリクエストから 5 分で期限切れになります。継続できなくなった場合は、会話全体を新しい create リクエストで送り直します。
プロンプトキャッシュとの関係では、Message threads はプロンプトをキャッシュせず、キャッシュのブレークポイントは利用者が指定します。OpenAI 側では、ZDR が有効でない組織で prompt_cache_retention の既定値が 24h になり、extended prompt caching が既定で有効です。