This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
拡張思考により、Claude は複雑なタスクに対して強化された推論能力を備え、最終的な回答を提供する前に段階的な思考プロセスへのさまざまなレベルの透明性を提供します。
Claude Opus 4.7 以降のモデルの場合、アダプティブ思考(thinking: {type: "adaptive"})を effort パラメータと共に使用してください。手動拡張思考(thinking: {type: "enabled", budget_tokens: N})は Claude Opus 4.7 以降のモデルではサポートされなくなり、400 エラーが返されます。Claude Opus 4.6 および Claude Sonnet 4.6 の場合、アダプティブ思考も推奨されます。手動設定はこれらのモデルではまだ機能していますが、非推奨であり、将来のモデルリリースで削除される予定です。
手動拡張思考(thinking: {type: "enabled", budget_tokens: N})は、Claude Opus 4.7 以降のモデルを除くすべての現在の Claude モデルでサポートされており、これらのモデルではサポートされなくなり、400 エラーが返されます。いくつかのモデルにはモード固有の動作があります:
claude-opus-4-7)以降のモデル: 手動拡張思考はサポートされなくなりました。代わりに アダプティブ思考(thinking: {type: "adaptive"})を effort パラメータと共に使用してください。thinking: {type: "enabled", budget_tokens: N} も受け入れられます。thinking: {type: "disabled"} はサポートされておらず、display は思考コンテンツを返すのではなく "omitted" がデフォルトです。要約を受け取るには display: "summarized" を渡してください。claude-opus-4-6): アダプティブ思考を推奨します。手動モード(type: "enabled")は非推奨ですがまだ機能しています。claude-sonnet-4-6): アダプティブ思考を推奨します。手動モード(type: "enabled")と インターリーブモードは非推奨ですがまだ機能しています。API の動作は Claude Sonnet 3.7 および Claude 4 モデル間で異なりますが、API の形状は完全に同じです。
詳細については、モデルバージョン間の思考の違いを参照してください。
拡張思考がオンになると、Claude は内部推論を出力する thinking コンテンツブロックを作成します。Claude はこの推論からの洞察を組み込んでから、最終的な応答を作成します。
API レスポンスには thinking コンテンツブロックが含まれ、その後に text コンテンツブロックが続きます。
デフォルトのレスポンス形式の例を次に示します:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}拡張思考のレスポンス形式の詳細については、Messages API リファレンスを参照してください。
Messages API で拡張思考を使用する例を次に示します:
拡張思考をオンにするには、type パラメータを enabled に設定し、budget_tokens を拡張思考の指定されたトークン予算に設定した thinking オブジェクトを追加します。Claude Opus 4.6 および Claude Sonnet 4.6 の場合は、代わりに type: "adaptive" を使用してください。詳細については、アダプティブ思考を参照してください。type: "enabled" と budget_tokens はこれらのモデルではまだ機能していますが、非推奨であり、将来のリリースで削除される予定です。
budget_tokens パラメータは、Claude が内部推論プロセスに使用できる最大トークン数を決定します。Claude 4 以降のモデルでは、この制限は完全な思考トークンに適用され、要約出力には適用されません。より大きな予算は、複雑な問題に対してより徹底的な分析を可能にすることで、応答品質を向上させることができます。ただし、Claude は割り当てられた予算全体を使用しない場合があります。特に 32k を超える範囲では使用しない場合があります。
budget_tokens は Claude Opus 4.6 および Claude Sonnet 4.6 で非推奨であり、将来のモデルリリースで削除される予定です。アダプティブ思考を effort パラメータと共に使用して、思考の深さを制御してください。
Claude Mythos Preview、Claude Opus 4.7、および Claude Opus 4.6 は最大 128k の出力トークンをサポートしています。Claude Sonnet 4.6 および Claude Haiku 4.5 は最大 64k をサポートしています。レガシーモデルの制限については、モデル概要を参照してください。Message Batches APIでは、output-300k-2026-03-24 ベータヘッダーにより、Opus 4.7、Opus 4.6、および Sonnet 4.6 の出力制限が 300k に引き上げられます。
budget_tokens は max_tokens より小さい値に設定する必要があります。ただし、ツールを使用したインターリーブ思考を使用する場合、トークン制限がコンテキストウィンドウ全体になるため、この制限を超えることができます。
With extended thinking enabled, the Messages API for Claude 4 models returns a summary of Claude's full thinking process. Summarized thinking provides the full intelligence benefits of extended thinking, while preventing misuse. This is the default behavior on Claude 4 models when the display field on the thinking configuration is unset or set to "summarized". On Claude Opus 4.7 and Claude Mythos Preview, display defaults to "omitted" instead, so you must set display: "summarized" explicitly to receive summarized thinking.
Here are some important considerations for summarized thinking:
Claude Sonnet 3.7 continues to return full thinking output.
In rare cases where you need access to full thinking output for Claude 4 models, contact our sales team.
The display field on the thinking configuration controls how thinking content is returned in API responses. It accepts two values:
"summarized": Thinking blocks contain summarized thinking text. See Summarized thinking for details. This is the default on Claude Opus 4.6, Claude Sonnet 4.6, and earlier Claude 4 models."omitted": Thinking blocks are returned with an empty thinking field. The signature field still carries the encrypted full thinking for multi-turn continuity (see Thinking encryption). This is the default on Claude Opus 4.7 and Claude Mythos Preview.Setting display: "omitted" is useful when your application doesn't surface thinking content to users. The primary benefit is faster time-to-first-text-token when streaming: The server skips streaming thinking tokens entirely and delivers only the signature, so the final text response begins streaming sooner.
No SDK currently includes display in its type definitions. The Python SDK forwards unrecognized dict keys to the API at runtime; passing display in the thinking dict works transparently. The TypeScript SDK requires a type assertion. The C#, Go, Java, PHP, and Ruby SDKs require a direct HTTP request until native support lands.
Here are some important considerations for omitted thinking:
signature to reconstruct the original thinking for prompt construction (see Preserving thinking blocks). Any text you place in the thinking field of a round-tripped omitted block is ignored.display is invalid with thinking.type: "disabled" (there is nothing to display).thinking.type: "adaptive" and the model skips thinking for a simple request, no thinking block is produced regardless of display.The signature field is identical whether display is "summarized" or "omitted". Switching display values between turns in a conversation is supported.
Claude Mythos Previewでは、display は "omitted" がデフォルトです。このセクションの例は display を明示的に渡すため、すべてのモデルに適用されますが、Mythos Preview では設定を解除したままにして同じ動作を受け取ることができます。Mythos Preview で要約された思考を受け取るには、display: "summarized" を明示的に設定してください。
思考コンテンツをエンドユーザーに表示しない自動パイプラインは、ワイヤ上で思考トークンを受け取るオーバーヘッドをスキップできます。レイテンシに敏感なアプリケーションは、最終応答が開始される前に思考テキストがストリーミングされるのを待つことなく、同じ推論品質を取得します。
display: "omitted" が設定されている場合、レスポンスには空の thinking フィールドを持つ thinking ブロックが含まれます:
{
"content": [
{
"type": "thinking",
"thinking": "",
"signature": "EosnCkYICxIMMb3LzNrMu..."
},
{
"type": "text",
"text": "The answer is 12,231."
}
]
}display: "omitted" でストリーミングする場合、thinking_delta イベントは発行されません。イベントシーケンスについては、以下の思考のストリーミングを参照してください。
サーバー送信イベント (SSE) を使用して、拡張思考レスポンスをストリーミングできます。
拡張思考でストリーミングが有効になっている場合、thinking_delta イベントを通じて思考コンテンツを受け取ります。
display: "omitted" が設定されている場合、thinking_delta イベントは発行されません。思考表示の制御 を参照してください。
Messages API を使用したストリーミングの詳細なドキュメントについては、ストリーミングメッセージ を参照してください。
思考を使用したストリーミングの処理方法は以下の通りです:
ストリーミング出力の例:
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-6", "stop_reason": null, "stop_sequence": null}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": "", "signature": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n462 = 3 × 147 + 21\n147 = 7 × 21 + 0\n\nSo GCD(1071, 462) = 21"}}
// Additional thinking deltas...
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
event: content_block_stop
data: {"type": "content_block_stop", "index": 0}
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "The greatest common divisor of 1071 and 462 is **21**."}}
// Additional text deltas...
event: content_block_stop
data: {"type": "content_block_stop", "index": 1}
event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
event: message_stop
data: {"type": "message_stop"}display: "omitted" が設定されている場合、思考ブロックが開き、単一の signature_delta が到着し、thinking_delta イベントなしでブロックが閉じます。テキストストリーミングはその直後に開始されます:
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EosnCkYICxIMMb3LzNrMu..."}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: content_block_start
data: {"type":"content_block_start","index":1,"content_block":{"type":"text","text":""}}思考が有効になっているストリーミングを使用する場合、テキストが時々より大きなチャンクで到着し、その後トークンごとの配信と交互になることに気付くかもしれません。これは予想される動作であり、特に思考コンテンツの場合です。
ストリーミングシステムは最適なパフォーマンスのためにコンテンツをバッチで処理する必要があり、この「ぎくしゃく」した配信パターンになる可能性があり、ストリーミングイベント間に遅延が生じる可能性があります。Anthropic は継続的にこのエクスペリエンスを改善するために取り組んでおり、将来のアップデートは思考コンテンツをより滑らかにストリーミングすることに焦点を当てています。
拡張思考は ツール使用 と一緒に使用でき、Claude がツール選択と結果処理を通じて推論することができます。
拡張思考とツール使用を一緒に使用する場合、以下の制限に注意してください:
ツール選択の制限: 思考を伴うツール使用は tool_choice: {"type": "auto"} (デフォルト) または tool_choice: {"type": "none"} のみをサポートしています。tool_choice: {"type": "any"} または tool_choice: {"type": "tool", "name": "..."} を使用するとエラーが発生します。これらのオプションはツール使用を強制するため、拡張思考と互換性がありません。
思考ブロックの保持: ツール使用中に、最後のアシスタントメッセージの thinking ブロックを API に戻す必要があります。推論の連続性を維持するために、完全な未修正ブロックを API に戻してください。
アシスタントターンの途中(ツール使用ループ中を含む)で思考を切り替えることはできません。アシスタント全体のターンは単一の思考モードで動作する必要があります:
モデルの観点から、ツール使用ループはアシスタントターンの一部です。アシスタントターンは、Claude が複数のツール呼び出しと結果を含む可能性のある完全な応答を完了するまで完了しません。
例えば、このシーケンス全体は単一のアシスタントターンの一部です:
User: "What's the weather in Paris?"
Assistant: [thinking] + [tool_use: get_weather]
User: [tool_result: "20°C, sunny"]
Assistant: [text: "The weather in Paris is 20°C and sunny"]複数の API メッセージがありますが、ツール使用ループは概念的には 1 つの連続したアシスタント応答の一部です。
ターン途中の思考の競合が発生した場合(ツール使用ループ中に思考をオンまたはオフに切り替えるなど)、API は自動的にそのリクエストの思考を無効にします。モデルの品質を保持し、分布内に留まるために、API は以下を行う可能性があります:
これは、ターン途中に思考を切り替えようとしてもエラーが発生しないことを意味しますが、そのリクエストの思考は静かに無効になります。思考がアクティブであったかどうかを確認するには、応答内の thinking ブロックの存在を確認してください。
ベストプラクティス:ターン途中に切り替えようとするのではなく、各ターンの開始時に思考戦略を計画してください。
例:ターン完了後の思考の切り替え
User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
Assistant: [text: "It's sunny"]
User: "What about tomorrow?"
Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)アシスタントターンを完了してから思考を切り替えることで、新しいリクエストに対して思考が実際に有効になることを確認できます。
思考モードの切り替えは、メッセージ履歴のプロンプトキャッシングも無効にします。詳細については、プロンプトキャッシングを使用した拡張思考セクションを参照してください。
ツール使用中に、thinking ブロックを API に渡す必要があり、完全な未修正ブロックを API に渡す必要があります。これはモデルの推論フローと会話の整合性を維持するために重要です。
以前の assistant ロールターンから thinking ブロックを省略することはできますが、マルチターン会話の場合は常にすべての思考ブロックを API に渡してください。API は:
会話中に思考モードを切り替える場合、アシスタント全体のターン(ツール使用ループを含む)は単一の思考モードで動作する必要があることを忘れないでください。詳細については、会話内での思考モードの切り替えを参照してください。
Claude がツールを呼び出すとき、それは応答の構築を一時停止して外部情報を待機しています。ツール結果が返されると、Claude はその既存の応答の構築を続けます。これにはいくつかの理由で、ツール使用中に思考ブロックを保持する必要があります:
推論の連続性:思考ブロックは、ツール要求につながった Claude のステップバイステップの推論をキャプチャします。ツール結果を投稿するとき、元の思考を含めることで、Claude は中断したところから推論を続けることができます。
コンテキストの保持:ツール結果は API 構造ではユーザーメッセージとして表示されますが、それらは連続した推論フローの一部です。思考ブロックを保持することで、複数の API 呼び出しにわたってこの概念的なフローを維持します。コンテキスト管理の詳細については、コンテキストウィンドウに関するガイドを参照してください。
重要:thinking ブロックを提供する場合、連続した thinking ブロックの全体シーケンスは、元のリクエスト中にモデルによって生成された出力と一致する必要があります。これらのブロックのシーケンスを再配置または変更することはできません。
Claude 4 モデルでのツール使用を伴う拡張思考は、インターリーブされた思考をサポートしており、Claude がツール呼び出し間で考え、ツール結果を受け取った後、より高度な推論を行うことができます。
インターリーブされた思考により、Claude は以下を実行できます:
モデルサポート:
interleaved-thinking-2025-05-14 ベータヘッダーは Opus 4.6 では廃止予定であり、含まれている場合は安全に無視されます。thinking: {type: "enabled"})を使用した interleaved-thinking-2025-05-14 ベータヘッダーはまだ機能していますが、廃止予定です。interleaved-thinking-2025-05-14 を追加して、インターリーブされた思考を有効にします。インターリーブされた思考に関する重要な考慮事項を以下に示します:
budget_tokens は max_tokens パラメータを超える可能性があります。これは 1 つのアシスタントターン内のすべての思考ブロック全体の総予算を表します。interleaved-thinking-2025-05-14 をリクエストで任意のモデルに渡すことができます。効果はありません(Opus 4.7 と Opus 4.6 を除く。これらは廃止予定で、含まれている場合は安全に無視されます)。interleaved-thinking-2025-05-14 を渡すと、リクエストは失敗します。プロンプトキャッシングと思考にはいくつかの重要な考慮事項があります:
拡張思考タスクは完了するのに5分以上かかることがよくあります。1時間のキャッシュ期間を使用して、長い思考セッションとマルチステップワークフロー全体でキャッシュヒットを維持することを検討してください。
思考ブロックのコンテキスト削除
キャッシュ無効化パターン
ツール使用を伴う拡張シンキングを使用する場合、シンキングブロックはトークンカウントに影響する特定のキャッシング動作を示します:
動作方法:
詳細な例フロー:
リクエスト1:
User: "What's the weather in Paris?"レスポンス1:
[thinking_block_1] + [tool_use block 1]リクエスト2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]レスポンス2:
[thinking_block_2] + [text block 2]リクエスト2は、リクエストコンテンツ(レスポンスではない)のキャッシュを書き込みます。キャッシュには、元のユーザーメッセージ、最初のシンキングブロック、ツール使用ブロック、およびツール結果が含まれます。
リクエスト3:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]Claude Opus 4.5以降(Claude Opus 4.6を含む)の場合、すべての以前のシンキングブロックはデフォルトで保持されます。古いモデルの場合、非ツール結果ユーザーブロックが含まれているため、すべての以前のシンキングブロックは無視されます。このリクエストは以下と同じように処理されます:
User: ["What's the weather in Paris?"],
Assistant: [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [text block 2],
User: [Text response, cache=True]重要なポイント:
cache_controlマーカーがなくても発生します古いClaudeモデル(Claude Sonnet 3.7より前)では、プロンプトトークンとmax_tokensの合計がモデルのコンテキストウィンドウを超える場合、システムは自動的にmax_tokensをコンテキスト制限内に収まるように調整していました。つまり、大きなmax_tokens値を設定でき、システムは必要に応じて自動的にそれを削減していました。
Claude 3.7および4モデルでは、max_tokens(思考が有効な場合は思考予算を含む)は厳密な制限として強制されます。プロンプトトークン + max_tokensがコンテキストウィンドウサイズを超える場合、システムは検証エラーを返すようになりました。
コンテキストウィンドウに関するガイドを読むと、より詳細な説明が得られます。
思考が有効な場合のコンテキストウィンドウ使用量を計算する際には、注意すべき点があります:
max_tokens制限にカウントされます以下の図は、拡張思考機能が有効な場合の特殊なトークン管理を示しています:
有効なコンテキストウィンドウは以下のように計算されます:
context window =
(current input tokens - previous thinking tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)トークンカウントAPIを使用して、特に思考を含むマルチターン会話を扱う場合に、特定のユースケースの正確なトークン数を取得してください。
拡張思考機能とツール使用を組み合わせて使用する場合、思考ブロックは明示的に保持され、ツール結果と共に返される必要があります。
拡張思考機能とツール使用を組み合わせた場合の有効なコンテキストウィンドウ計算は以下のようになります:
context window =
(current input tokens + previous thinking tokens + tool use tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)以下の図は、拡張思考機能とツール使用を組み合わせた場合のトークン管理を示しています:
Claude 3.7および4モデルの拡張思考機能を使用する場合のコンテキストウィンドウとmax_tokensの動作を考慮すると、以下の対応が必要になる可能性があります:
max_tokens値を調整するこの変更は、特に最大トークン制限が大幅に増加したため、より予測可能で透明性の高い動作を提供するために行われました。
Full thinking content is encrypted and returned in the signature field. This field is used to verify that thinking blocks were generated by Claude when passed back to the API.
It is only strictly necessary to send back thinking blocks when using tools with extended thinking. Otherwise you can omit thinking blocks from previous turns, or let the API strip them for you if you pass them back.
If sending back thinking blocks, we recommend passing everything back as you received it for consistency and to avoid potential issues.
Here are some important considerations on thinking encryption:
signature_delta inside a content_block_delta event just before the content_block_stop event.signature values are significantly longer in Claude 4 models than in previous models.signature field is an opaque field and should not be interpreted or parsed.signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.通常のthinkingブロックに加えて、APIはredacted_thinkingブロックを返す場合があります。redacted_thinkingブロックは、dataフィールドに暗号化された思考内容を含み、読み取り可能なサマリーはありません:
{
"type": "redacted_thinking",
"data": "..."
}dataフィールドは不透明で暗号化されています。通常の思考ブロックのsignatureフィールドと同様に、ツールを使用してマルチターン会話を続ける場合、redacted_thinkingブロックを変更せずにAPIに返す必要があります。
コンテンツブロックをタイプでフィルタリングするコード(例えば、block.type == "thinking")がツール使用時にレスポンスをラウンドトリップする場合、redacted_thinkingブロックも含めてください。block.type == "thinking"のみでフィルタリングすると、redacted_thinkingブロックが静かに削除され、上記で説明したマルチターンプロトコルが破損します。
redacted_thinkingブロックは、思考の一部が安全上の理由で削除された場合にAPIが返す個別のコンテンツブロックタイプです。これは、通常のthinkingブロックを空のthinkingフィールドで返すdisplay: "omitted"オプションとは別のものです。
Messages APIは、Claude Sonnet 3.7およびClaude 4モデル間で思考を異なる方法で処理します。主にサマリー化の動作が異なります。
以下の表で簡潔な比較を参照してください:
| 機能 | Claude Sonnet 3.7 | Claude 4 Models(Opus 4.5より前) | Claude Opus 4.5 | Claude Sonnet 4.6 | Claude Opus 4.6(適応的思考) | Claude Mythos Preview(適応的思考) |
|---|---|---|---|---|---|---|
| 思考出力 | 完全な思考出力を返す | サマリー化された思考を返す | サマリー化された思考を返す | サマリー化された思考を返す | サマリー化された思考を返す | デフォルトでは省略されます。display: "summarized"を設定してサマリー化された思考を受け取ります。生の思考トークンは返されません。 |
| インターリーブされた思考 | サポートされていません | interleaved-thinking-2025-05-14ベータヘッダーでサポート | interleaved-thinking-2025-05-14ベータヘッダーでサポート | interleaved-thinking-2025-05-14ベータヘッダーでサポート、またはで自動 |
Claude Opus 4.5以降(Claude Opus 4.6でも継続)から、前のアシスタントターンからの思考ブロックはデフォルトでモデルコンテキストに保持されます。これは、前のターンから思考ブロックを削除する以前のモデルとは異なります。
思考ブロック保持の利点:
重要な考慮事項:
以前のモデル(Claude Sonnet 4.5、Opus 4.1など)の場合、前のターンからの思考ブロックはコンテキストから削除され続けます。拡張思考とプロンプトキャッシングセクションで説明されている既存の動作がこれらのモデルに適用されます。
For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.
The thinking process incurs charges for:
When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.
When using summarized thinking:
When using display: "omitted":
thinking field is empty)The billed output token count will not match the visible token count in the response. You are billed for the full thinking process, not the thinking content visible in the response.
max_tokensが21,333より大きい場合にストリーミングを必要とします。これはクライアント側の検証であり、API制限ではありません。イベントをインクリメンタルに処理する必要がない場合、.stream()を.get_final_message()(Python)または.finalMessage()(TypeScript)と共に使用して、個別のイベントを処理することなく完全なMessageオブジェクトを取得してください。詳細はメッセージのストリーミングを参照してください。ストリーミング時は、思考とテキストコンテンツブロックの両方が到着する準備をしてください。display: "omitted"を設定して、最初のテキストトークンまでの時間を短縮してください。思考表示の制御を参照してください。temperatureまたはtop_kの変更、および強制ツール使用と互換性がありません。top_pを1から0.95の間の値に設定できます。Was this page helpful?
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[
{
"role": "user",
"content": "Are there an infinite number of prime numbers such that n mod 4 == 3?",
}
],
)
# The response contains summarized thinking blocks and text blocks
for block in response.content:
if block.type == "thinking":
print(f"\nThinking summary: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")client = anthropic.Anthropic()
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
) as stream:
thinking_started = False
response_started = False
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
# Reset flags for each new block
thinking_started = False
response_started = False
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
if not thinking_started:
print("Thinking: ", end="", flush=True)
thinking_started = True
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
if not response_started:
print("Response: ", end="", flush=True)
response_started = True
print(event.delta.text, end="", flush=True)
elif event.type == "content_block_stop":
print("\nBlock complete.")| 適応的思考で自動(ベータヘッダーはサポートされていません) |
| 適応的思考で自動(ベータヘッダーはサポートされていません)。ツール間の推論はこのモデルの思考ブロックに移動します。 |
| 思考ブロック保持 | ターン間で保持されません | ターン間で保持されません | デフォルトで保持されます | デフォルトで保持されます | デフォルトで保持されます | デフォルトで保持されます。 Mythosの思考形式をサポートしないモデルで会話を続ける場合、ブロックは削除されます。 |
拡張思考機能のプロンプトエンジニアリングのベストプラクティスを学んでください。