Anthropicは2026年11月2日、Claude APIに「メッセージスレッド(message threads)」というベータ機能を追加した。対象はClaude API本体に加え、Claude Platform on AWS、Google Cloud上のAnthropic管理のClaudeモデル、Microsoft Foundry上のClaudeで、いずれもベータヘッダー「message-threads-2026-08-12」を付けて呼び出す。長い会話や、ツール呼び出しを繰り返すエージェントのループを組んでいる開発者向けの機能で、全モデルでベータとして利用できる。
仕組みはこうだ。最初のリクエストで会話全体・システムプロンプト・ツール定義を送り、リクエストに`thread: {"type": "create"}`を指定すると、Claude APIがその内容をサーバー側に一時保持する。以降のターンでは`thread: {"type": "continue", "previous_message_id": "<直前の応答ID>"}`を付けて新しいメッセージだけを送ればよく、systemやtoolsは省略してよい。公式ドキュメントは、スレッドを使わない場合は毎ターン会話全体をアップロードし直し、APIがその全体を検証・トークン化し直す必要があるのに対し、スレッドを使えば新しいターン分の処理だけで済むと説明している。会話が長くなっても応答が始まるまでの時間(Time to First Token)を安定して低く保ちやすくなるとしているが、具体的な短縮率や応答時間の実測値は公式記事に示されていない。
一方で制約も明記されている。スレッドは「ベストエフォート」な仕組みで、最後のリクエストから5分で継続できなくなり得て、最後に使われてから最大1時間でサーバー側から完全に削除される。継続できなくなった場合はエラーコード`thread_not_found`を伴う404エラーが返り、その際は自分のアプリ側で保持している会話全体を新しい作成リクエストとして送り直す必要がある。つまりAnthropicはスレッドを会話の正本(source of truth)として扱わず、アプリ側に自前の会話コピーを保持する運用を前提としている。また`model`や`tool_choice`、`thinking`など一部のパラメータはスレッド作成時の値で固定され、途中で変更すると400エラー(`thread_fingerprint_mismatch`)になる。Message Batches、トークンカウント、Compaction on demand(会話の要約による圧縮機能)とは併用できず、ゼロデータ保持(ZDR)やHIPAA対応、Inference Hooksを有効にしている組織では現時点で利用できない。料金体系とレート制限そのものはスレッド利用の有無で変わらない、と公式ドキュメントは明記している。
長い会話やエージェントのループほど、毎ターンの入力トークンが線形に増えていく問題は、レイテンシとコストの両面で開発者の負担になってきた。メッセージスレッドは単純なキャッシュとは異なり、サーバー側に会話状態そのものを一時的に保持させる発想で、プロンプトキャッシュ(`cache_control`を明示的に指定する必要がある)と組み合わせて使うことも想定されている。ただし保存期間が5分〜最大1時間と短く、スレッドを一覧・削除するAPIも用意されていないため、ユーザーの操作間隔が空きがちなチャットUIや長時間のバックグラウンドジョブでそのまま使うには、404エラー時に会話全体を再送する「リプレイ処理」を自前で実装する手間がかかる。Claude APIを使ってエージェントや長時間稼働のチャットボットを自社開発している担当者やチームにとっては、まずSDKが提供するスレッド用のヘルパー(リプレイ処理を自動で行う)を使って検証し、保存期間の短さが自社の利用パターンに合うかどうかを見極めるのが現実的だろう。



