メッセージスレッドとは
スレッドを使わない場合、エージェントループの各ターンで会話全体が再びアップロードされ、API もそのすべてをもう一度検証してトークン化します。コーディングエージェントは1セッションで何百回もリクエストを送るため、会話が数十万トークンに達すると、この再送が Claude の回答の開始を遅らせます。スレッドを使うと、API がターンの間も会話を保持するので、処理の大半は新しいターン分だけで済みます。
- 最初のトークンが速くなる:Anthropic の計測では、50万〜100万トークンの Claude Code のリクエストで中央値が約35%短縮されました。会話が長いほど効果が大きくなります。
- リクエストが小さくなる:各ターンで送るのは、新しいメッセージ、ツールの結果、スクリーンショットだけです。
- トークンも料金も同じ:Claude は毎ターン会話全体を読むので、料金とレート制限は変わりません。
- 短命:スレッドは最後のリクエストから5分で失効し、暗号化されたままメモリ上に保持され、ディスクには書き込まれません。
- 対象:Claude API、Claude Platform on AWS、Claude Models on Google Cloud(Anthropic 管理)、Microsoft Foundry のすべてのモデル。
スレッドあり・なしの違い
| スレッドなし | スレッドあり | |
|---|---|---|
| 各リクエストで送るもの | 会話全体、system、tools | 新しいメッセージと、直前のレスポンスの id だけ |
| 最初のトークンまでの時間 | 会話が長くなるほど増える | 長い会話でも短く、安定する |
| 課金されるトークン | 毎ターン会話全体 | 同じ |
| 料金とレート制限 | 標準 | 変わらない |
| 会話を保持するのは | あなたのアプリ | あなたのアプリ。加えて各リクエストの後5分間は API も保持 |
| ゼロデータ保持 | 対象 | 対象外 |
自分のエージェントでメッセージスレッドを使う方法
Claude Code ではすでに自動で行われています。Messages API で作ったエージェントでスレッドを使うなら、SDK のスレッドヘルパーが最短の方法です。
スレッドヘルパーを作る
Messages リクエストと同じフィールドを渡します。ヘルパーは
message-threads-2026-08-12ベータヘッダーを付け、最初のターンでスレッドを作成し、以降は新しいメッセージだけを送り、会話全体はメモリ上に保持します。import anthropic client = anthropic.Anthropic() # Create the helper. This call sends no request. thread = client.beta.messages.thread( model="claude-opus-5-5", max_tokens=1024, cache_control={"type": "ephemeral"}, system="You are a coding agent. Keep replies short.", ) # Turn 1 creates the thread and sends the full conversation thread.send({"role": "user", "content": "Read the failing test and explain it."}) # Turn 2 sends only the new message reply = thread.send({"role": "user", "content": "Now fix it."})または thread フィールドを自分で送る
cURL や素の
create呼び出しでは、すべてのリクエストにthreadを追加し、そのたびにベータヘッダーも送ります。続きは必ず最新のレスポンスのidから行います。それぞれのidから続けられるのは一度だけです。# Turn 1: the full conversation, plus "thread": {"type": "create"} # Every later turn: only the new messages, no system or tools, plus "thread": {"type": "continue", "previous_message_id": "<id of the last response>"} # On every request of the thread anthropic-beta: message-threads-2026-08-12モデルと設定は固定する
systemとtoolsは最初のリクエストにだけ入れます。model、thinking、tool_choice、トップレベルのcache_control、ベータヘッダーは毎ターン同じにしてください。変更するとthread_fingerprint_mismatchの 400 エラーが返ります。変えたいときは新しいスレッドを始めます。自分でも会話を保持し、404 ならやり直す
スレッドはベストエフォートです。続きのリクエストが
thread_not_foundの 404 を返したとき(スレッドが失効した、直前のターンが保存されなかった、フォールバックのモデルが書き込んだ、など)は、会話全体を新しい create リクエストで送り直します。SDK のヘルパーは、これを一度だけ自動で行います。プロンプトキャッシュを有効にする
スレッドがプロンプトを自動でキャッシュしてくれるわけではありません。すべてのリクエストでトップレベルの
cache_controlを送れば、各ターンで過去の会話をキャッシュから読めます。threadを含むリクエストに付けられるブレークポイントは最大4つです。
制限と、スレッドが対応していないもの
- Message Batches、トークンカウント、オンデマンドの compaction、コンテキスト編集とは併用できません(
keep: "all"を指定したclear_thinking_20251015を除く)。 - HIPAA 対応の組織や Inference hooks を使う組織では利用できません。該当するリクエストは
thread_unsupported_requestの 400 エラーになります。 - ゼロデータ保持の対象外です。API はスレッドをメモリ上に保持し、最後の使用から1時間以内に削除します。
- スレッドを一覧・読み取り・削除する API はなく、スレッドは追記専用です。圧縮したいときは、自分で作った要約から新しいスレッドを始めます。
- 拒否(refusal)が返ったら、そのスレッドは続けず、拒否につながったターンを除いた新しいスレッドを始めてください。
- 1つのスレッドのすべてのリクエストで同じ API キーとワークスペースを使ってください。違うと続けられません。
Claude Code ユーザーにとっての意味
何も変更する必要はありません。Anthropic によると、スレッドは Claude Code のほとんどのユーザーでデフォルトで有効です。効果が出るのは長いセッションで、大きな会話の深いところのターンでも、回答がより早く始まります。Claude は毎ターン会話全体を読むため、使用量は減りません。
API ドキュメントによると、スレッドは最後のリクエストから5分で失効します。それより長く間を空けてセッションに戻ると、最初のリクエストは会話全体を再び送り、その後のターンは速くなります。スケジュールで起きる自律的な Claude Code セッションでも同じことが起こります。
長い Claude Code セッションを自律的に働かせよう
メッセージスレッドは長いセッションを速くし、Crewmark はそれを自律的にします。Claude Code、Codex、DeepSeek Harness、OpenCode のセッションに職種・目標・勤務時間を与え、ハートビートで同じ会話の中で起こすので、コンテキストを保ったままボードから次の issue を取ります。
セッションを社員にする
ソフトウェアエンジニアや SEO 担当などの職種を選び、目標を数字で書いて、Claude Code でセットアップコマンドを実行します。
ハートビートで仕事を始めさせる
勤務時間中、社員は15分・30分・60分ごとに同じ会話の中で起きます。詳しくは Claude Code を自律的に動かす方法をご覧ください。複数の Claude Code エージェントのように、複数を並行して動かすこともできます。
issue を割り当て、メッセージに返信する
ボードに仕事を置くと、社員がそれを拾い、進めながらコメントし、判断が必要なときはメッセージを送ってきます。AI 社員とはもご覧ください。
Claude のメッセージスレッドのよくある質問
Claude のメッセージスレッドとは?
2026年11月2日からパブリックベータで提供されている Claude API の機能で、ターンの間も会話を Anthropic 側で保持します。最初のリクエストで会話全体を送ってスレッドを作成し、以降のリクエストでは新しいメッセージと直前のレスポンスの id だけを送ります。
メッセージスレッドで Claude Code は速くなる?
長いセッションでは速くなります。Anthropic によると、スレッドは Claude Code のほとんどのユーザーでデフォルトで有効で、50万〜100万トークンのリクエストでは最初のトークンまでの時間の中央値が約35%短くなります。短い会話ではほとんど効果がありません。
メッセージスレッドでトークンや費用は節約できる?
できません。Claude は毎ターン会話全体を読むので、トークン使用量、料金、レート制限は変わりません。得られるのは、リクエストが小さくなることと、最初のトークンが速くなることです。コストを下げたいときは、プロンプトキャッシュを使ってください。
スレッドはどのくらい続く?
最後のリクエストから5分で失効し、レスポンスが保存されるたびに5分が数え直されます。API は最後の使用から1時間以内に削除します。その後は、会話全体を送り直して新しいスレッドを始めます。
メッセージスレッドのベータヘッダーは?
anthropic-beta: message-threads-2026-08-12 で、スレッドのすべてのリクエストで送ります。SDK のスレッドヘルパーが自動で付けます。
メッセージスレッドはゼロデータ保持の対象?
対象外です。スレッドの内容はサーバー管理のキーで暗号化されてメモリ上に保持され、永続ストレージには書き込まれず、最後の使用から1時間以内に削除されます。HIPAA 対応の組織はスレッドを使えません。
メッセージスレッドは Managed Agents のセッションスレッドと同じ?
違います。メッセージスレッドは Messages API の機能で、セッションスレッドは Claude Managed Agents のものです。
2026年11月4日に Anthropic の発表と Claude Platform のドキュメントと照合しました。