この機能はZero Data Retention(ZDR)の対象です。組織がZDR契約を締結している場合、この機能を通じて送信されたデータは、APIレスポンスが返された後に保存されることはありません。
「adaptive thinking」(適応的思考)は、Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、およびClaude Sonnet 4.6で拡張思考を使用する際の推奨方法です。Claude Fable 5およびClaude Mythos 5では、思考は常に有効であり無効化できません。適応的思考が唯一の思考モードです。Claude Mythos Previewでは、適応的思考がデフォルトモードであり、thinkingが未設定の場合は常に自動的に適用されます。思考トークンの予算を手動で設定する代わりに、適応的思考では各リクエストの複雑さに基づいて、Claudeが拡張思考をいつ、どの程度使用するかを動的に判断します。Claude Opus 4.8およびClaude Opus 4.7では、適応的思考が唯一サポートされている思考モードです。手動のthinking: {type: "enabled", budget_tokens: N}は受け付けられなくなりました。
適応的思考は、多くのワークロード、特に二峰性のタスクや長期的なエージェントワークフローにおいて、固定のbudget_tokensを使用した拡張思考よりも優れたパフォーマンスを発揮できます。ベータヘッダーは不要です。
ワークロードで予測可能なレイテンシや思考コストの正確な制御が必要な場合、budget_tokensを使用した拡張思考はClaude Opus 4.6およびClaude Sonnet 4.6で引き続き機能しますが、非推奨となっており推奨されません。以下の警告を参照してください。
適応的思考は以下のモデルでサポートされています。
claude-fable-5)およびClaude Mythos 5(claude-mythos-5):適応的思考は常にオンです。thinking: {type: "disabled"}はサポートされていませんthinking: {type: "disabled"}はサポートされていませんthinking: {type: "adaptive"}を設定しない限り、思考はオフです。手動のthinking: {type: "enabled"}は400エラーで拒否されます。thinking: {type: "adaptive"}を設定しない限り、思考はオフです。手動のthinking: {type: "enabled"}は400エラーで拒否されます。thinking.type: "enabled"およびbudget_tokensは、Opus 4.6およびSonnet 4.6で非推奨となっており、将来のモデルリリースで削除される予定です。代わりにeffortパラメータを指定したthinking.type: "adaptive"を使用してください。既存のbudget_tokens設定は引き続き機能しますが、推奨されなくなりました。移行を計画してください。
古いモデル(Sonnet 4.5、Opus 4.5など)は適応的思考をサポートしておらず、budget_tokensを指定したthinking.type: "enabled"が必要です。
適応モードでは、思考はモデルにとってオプションです。Claudeは各リクエストの複雑さを評価し、拡張思考を使用するかどうか、およびどの程度使用するかを判断します。デフォルトのeffortレベル(high)では、Claudeはほぼ常に思考します。より低いeffortレベルでは、Claudeはより単純な問題に対して思考をスキップする場合があります。
適応的思考は、インターリーブ思考も自動的に有効にします。これにより、Claudeはツール呼び出しの間に思考できるため、エージェントワークフローで特に効果的です。
APIリクエストでthinking.typeを"adaptive"に設定します。
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{
"role": "user",
"content": "Explain why the sum of two even numbers is always even.",
}
],
)
for block in response.content:
if block.type == "thinking":
print(f"\nThinking: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")適応的思考をeffortパラメータと組み合わせることで、Claudeがどの程度思考するかをガイドできます。effortレベルは、Claudeの思考割り当てに対するソフトなガイダンスとして機能します。
| effortレベル | 思考の動作 |
|---|---|
max | Claudeは常に思考し、思考の深さに制約はありません。Claude Fable 5、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、およびClaude Sonnet 4.6で利用可能です。 |
xhigh | Claudeは常に深く思考し、拡張された探索を行います。Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、およびClaude Opus 4.7で利用可能です。 |
high(デフォルト) | Claudeはほぼ常に思考します。複雑なタスクに対して深い推論を提供します。 |
medium | Claudeは中程度の思考を使用します。非常に単純なクエリでは思考をスキップする場合があります。 |
low | Claudeは思考を最小限に抑えます。速度が最も重要な単純なタスクでは思考をスキップします。 |
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "medium"},
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
print(response.content[0].text)適応的思考はストリーミングとシームレスに連携します。思考ブロックは、手動思考モードと同様にthinking_deltaイベントを介してストリーミングされます。
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
) as stream:
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
print(event.delta.text, end="", flush=True)| モード | 設定 | 利用可能性 | 使用する場面 |
|---|---|---|---|
| 適応 | thinking: {type: "adaptive"} | Claude Fable 5(常にオン)、Claude Mythos 5(常にオン)、Claude Mythos Preview(デフォルト)、Claude Opus 4.8(唯一のモード)、Opus 4.7(唯一のモード)、Opus 4.6、Sonnet 4.6 | Claudeが拡張思考をいつ、どの程度使用するかを判断します。ガイドにはeffortを使用します。 |
| 手動 | thinking: {type: "enabled", budget_tokens: N} | Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、およびClaude Opus 4.7を除くすべてのモデル(これらでは400エラーで拒否されます)。Opus 4.6およびSonnet 4.6では非推奨(代わりに適応モードを検討してください)。 | 思考トークンの消費を正確に制御する必要がある場合。 |
| 無効 | thinkingパラメータを省略するか、{type: "disabled"}を渡す | Claude Fable 5、Claude Mythos 5、およびClaude Mythos Previewを除くすべてのモデル | 拡張思考が不要で、最も低いレイテンシが必要な場合。 |
適応的思考は、Claude Fable 5、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.8、Claude Opus 4.7、Opus 4.6、およびSonnet 4.6で利用可能です。Claude Fable 5およびClaude Mythos 5では、適応的思考は常にオンです。thinkingが未設定の場合は常に適用され、無効化できません。Mythos Previewでは、適応的思考がデフォルトであり、thinkingが未設定の場合は常に自動的に適用されます。Claude Opus 4.8では、適応的思考が唯一サポートされているモードです。明示的にthinking: {type: "adaptive"}を設定しない限り思考はオフであり、budget_tokensを指定した手動のtype: "enabled"は400エラーで拒否されます。Claude Opus 4.7では、適応的思考が唯一サポートされているモードであり、budget_tokensを指定したtype: "enabled"は拒否されます。古いモデルはbudget_tokensを指定したtype: "enabled"のみをサポートしています。Opus 4.6およびSonnet 4.6では、budget_tokensを指定したtype: "enabled"は引き続き機能しますが、非推奨です。
モード別のインターリーブ思考の利用可能性:
interleaved-thinking-2025-05-14ベータヘッダーを通じて機能します。適応的思考を使用する場合、以前のアシスタントターンが思考ブロックで始まる必要はありません。これは、思考が有効なターンが思考ブロックで始まることをAPIが強制する手動モードよりも柔軟です。
adaptive思考を使用する連続したリクエストは、プロンプトキャッシュのブレークポイントを保持します。ただし、adaptiveとenabled/disabledの思考モード間を切り替えると、メッセージのキャッシュブレークポイントが無効になります。システムプロンプトとツール定義は、モードの変更に関係なくキャッシュされたままです。
適応的思考のトリガー動作はプロンプトで制御可能です。Claudeが期待よりも頻繁に、または少なく思考している場合は、システムプロンプトにガイダンスを追加できます。
Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality — typically for problems
that require multi-step reasoning. When in doubt, respond directly.逆に思考を促すには、次のようなフレーズを使用します。
This task involves multi-step reasoning. Think carefully before responding.ステアリングの効果は正確な表現に敏感な場合があります。ある表現で期待する動作が得られない場合は、より直接的な表現を試してください。
ユーザーターンからメッセージごとに思考をステアリングすることもできます。ユーザーメッセージに"Please think hard before responding."を追加すると、そのターンでClaudeが思考するよう促されます。"Answer directly without deliberating."は思考を抑制します。これはシステムプロンプトとは独立して機能し、会話内の一部のリクエストのみが拡張推論を必要とする場合に便利です。
Claudeに思考の頻度を減らすようステアリングすると、推論が有益なタスクで品質が低下する可能性があります。プロンプトベースのチューニングを本番環境にデプロイする前に、特定のワークロードへの影響を測定してください。まず、より低いeffortレベルでテストすることを検討してください。
max_tokensを総出力(思考 + レスポンステキスト)のハードリミットとして使用します。effortパラメータは、Claudeが割り当てる思考量に対する追加のソフトガイダンスを提供します。これらを組み合わせることで、コストを効果的に制御できます。
highおよびmaxのeffortレベルでは、Claudeはより広範囲に思考する可能性があり、max_tokensの予算を使い果たす可能性が高くなります。レスポンスでstop_reason: "max_tokens"が観察される場合は、モデルにより多くの余裕を与えるためにmax_tokensを増やすか、effortレベルを下げることを検討してください。
以下の概念は、適応モードと手動モードのどちらを使用するかに関係なく、拡張思考をサポートするすべてのモデルに適用されます。
拡張思考を有効にすると、Claude 4モデルのMessages APIはClaudeの完全な思考プロセスの要約を返します。要約された思考は、拡張思考の知能面での利点を完全に提供しながら、悪用を防止します。これは、思考設定のdisplayフィールドが未設定または"summarized"に設定されている場合のClaude 4モデルのデフォルト動作です。Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Opus 4.7、およびClaude Mythos Previewでは、displayのデフォルトは"omitted"となるため、要約された思考を受け取るにはdisplay: "summarized"を明示的に設定する必要があります。
要約された思考に関する重要な考慮事項は以下のとおりです。
まれに、Claude 4モデルの完全な思考出力へのアクセスが必要な場合は、Anthropicの営業担当にお問い合わせください。
thinking設定のdisplayフィールドは、APIレスポンスで思考コンテンツがどのように返されるかを制御します。次の2つの値を受け付けます。
"summarized":思考ブロックには要約された思考テキストが含まれます。詳細については要約された思考を参照してください。これはClaude Opus 4.6、Claude Sonnet 4.6、およびそれ以前のClaude 4モデルでのデフォルトです。"omitted":思考ブロックは空のthinkingフィールドとともに返されます。signatureフィールドには、マルチターンの継続性のために暗号化された完全な思考が引き続き含まれます(思考の暗号化を参照)。これはClaude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Opus 4.7、およびClaude Mythos Previewでのデフォルトです。display: "omitted"の設定は、アプリケーションが思考コンテンツをユーザーに表示しない場合に便利です。主な利点は、ストリーミング時の最初のテキストトークンまでの時間が短縮されることです。サーバーは思考トークンのストリーミングを完全にスキップし、署名のみを配信するため、最終的なテキストレスポンスのストリーミングがより早く開始されます。
省略された思考に関する重要な考慮事項は次のとおりです。
signatureを復号してプロンプト構築のために元の思考を再構成します(思考ブロックの保持を参照)。ラウンドトリップされた省略ブロックのthinkingフィールドに配置したテキストはすべて無視されます。displayはthinking.type: "disabled"と組み合わせて使用することはできません(表示するものがないため)。thinking.type: "adaptive"を使用していて、モデルが単純なリクエストに対して思考をスキップした場合、displayの値に関係なく思考ブロックは生成されません。signatureフィールドは、displayが"summarized"でも"omitted"でも同一です。会話のターン間でdisplayの値を切り替えることはサポートされています。
Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、およびClaude Opus 4.7では、thinking.displayのデフォルトは"omitted"です。思考ブロックはレスポンスストリームに引き続き表示されますが、明示的にオプトインしない限り、そのthinkingフィールドは空です。これは、デフォルトが"summarized"であったClaude Opus 4.6からのサイレントな変更です。displayは表示のみを制御します。思考はすべての設定で同様に実行され、課金されます。これらのモデルで要約された思考テキストを受け取るには、thinking.displayを明示的に"summarized"に設定してください。
thinking = {
"type": "adaptive",
"display": "summarized",
}display: "omitted"を使用したコード例とストリーミング動作については、拡張思考ページの思考表示の制御を参照してください。そこでの例はtype: "enabled"を使用しています。適応的思考では、次のように使用します。
thinking = {"type": "adaptive", "display": "omitted"}思考の完全な内容は暗号化され、signatureフィールドで返されます。このフィールドは、思考ブロックがAPIに渡し戻された際に、それらがClaudeによって生成されたものであることを検証するために使用されます。
思考ブロックを送り返すことが厳密に必要なのは、拡張思考でツールを使用する場合のみです。それ以外の場合は、以前のターンの思考ブロックを省略できます。思考ブロックを渡し戻した場合、APIがそれらを保持するか削除するかはモデルによって異なります。Opus 4.5以降およびSonnet 4.6以降はデフォルトでコンテキストに保持しますが、それより前のOpus/SonnetモデルおよびすべてのHaikuモデルは削除します。この動作を設定するには、コンテキスト編集を参照してください。
思考ブロックを送り返す場合は、一貫性を保ち、潜在的な問題を回避するために、受け取ったとおりにすべてを渡し戻してください。
思考の暗号化に関する重要な考慮事項は以下のとおりです。
content_block_stopイベントの直前に、content_block_deltaイベント内のsignature_deltaを通じて追加されます。signature値は、以前のモデルよりも大幅に長くなっています。signatureフィールドは不透明なフィールドであり、解釈や解析を行うべきではありません。signature値はプラットフォーム間(Claude API、Amazon Bedrock、Vertex AI)で互換性があります。あるプラットフォームで生成された値は、別のプラットフォームでも互換性があります。Claude Fable 5およびClaude Mythos 5では、生の思考の連鎖は決して返されません。受け取る思考ブロックはredacted_thinkingではなく通常のthinkingブロックであり、thinking.displayは他のモデルと同様に機能します。"summarized"は推論の読みやすい要約を返し、"omitted"(これらのモデルのデフォルト)では、レスポンスには引き続きthinkingブロックが含まれますが、thinkingフィールドは空文字列です。思考ブロックのレスポンス形式については、Messages APIリファレンスを参照してください。
同じモデルで会話を継続する場合は、thinkingフィールドが空のブロックも含め、各思考ブロックを受け取ったとおりにAPIに渡してください。編集や再構築は行わないでください。表示のために要約テキストを読むことは問題ありません。APIは、内容が変更されたブロックを拒否しますが、読み取っただけのブロックは拒否しません。
思考ブロックは、それを生成したモデルに紐付けられています。他のモデルはリクエストを拒否するのではなく、それらを暗黙的に無視しますが、無視されたブロックも入力トークンに加算されます。そのため、たとえば分類器による拒否のフォールバックの後などにモデルを切り替える場合は、以前のアシスタントターンからthinkingおよびredacted_thinkingブロックを削除してください。例外は、フォールバッククレジットで説明されているフォールバッククレジットの再試行(拒否されたリクエストボディを変更せずにエコーする必要があります)と、出力途中のフォールバックからのfallbackブロック(出現した位置にそのまま残します)です。
Claude Fable 5では、モデルの内部推論をレスポンステキストの一部として引き出そうとするリクエストは、stop_details.category: "reasoning_extraction"で拒否される場合があります。推論の可視性が必要なアプリケーションは、レスポンスで推論を求めるプロンプトを使用するのではなく、このセクションで説明されているthinkingブロックを読み取る必要があります。フィールドリファレンスと処理ガイダンスについては、拒否カテゴリを参照してください。
ベースレート、キャッシュ書き込み、キャッシュヒット、出力トークンを含む完全な料金情報については、料金ページを参照してください。
思考プロセスでは以下に対して料金が発生します:
拡張思考が有効になっている場合、この機能をサポートするための専用のシステムプロンプトが自動的に含まれます。
要約された思考を使用する場合:
display: "omitted"を使用する場合:
thinkingフィールドは空)課金対象の出力トークン数は、レスポンスに表示されるトークン数と一致しません。課金されるのは、レスポンスに表示される思考内容ではなく、完全な思考プロセスに対してです。
内部推論に費やされた課金対象の出力トークン数を確認するには、レスポンスのusage.output_tokens_details.thinking_tokensを読み取ってください。この値は、モデルが生成した生の推論(本文で返される要約テキストではありません)を反映しており、常にoutput_tokens以下になります。出力のうち推論以外の部分を概算するには、output_tokensからこの値を引いてください。
{
"usage": {
"input_tokens": 25,
"output_tokens": 348,
"output_tokens_details": {
"thinking_tokens": 312
}
}
}output_tokensは、課金に使用される包括的で正式な合計値のままです。output_tokens_detailsは、可観測性のための読み取り専用の内訳です。
拡張思考ページでは、モード固有のコード例とともに、いくつかのトピックをより詳細に説明しています。
tool_choiceの制限に注意してください。adaptiveとenabled/disabledモード間を切り替えると、メッセージのキャッシュブレークポイントが無効になります(システムプロンプトとツール定義はキャッシュされたままです)。max_tokensおよびコンテキストウィンドウの制限とどのように相互作用するか。Was this page helpful?