Loading...
    • 構築
    • 管理
    • モデルと価格
    • クライアントSDK
    • APIリファレンス
    Search...
    ⌘K
    最初のステップ
    Claudeの紹介クイックスタート
    Claudeで構築
    機能概要Messages APIの使用Claude APIスキル停止理由の処理
    モデル機能
    拡張思考適応的思考努力タスク予算(ベータ版)高速モード(ベータ版:研究プレビュー)構造化出力引用ストリーミングメッセージバッチ処理検索結果ストリーミング拒否多言語サポート埋め込み
    ツール
    概要ツール使用の仕組みウェブ検索ツールウェブ取得ツールコード実行ツールアドバイザーツールメモリツールBashツールコンピュータ使用ツールテキストエディタツール
    ツールインフラストラクチャ
    ツールリファレンスツール検索プログラマティックツール呼び出し細粒度ツールストリーミング
    コンテキスト管理
    コンテキストウィンドウ圧縮コンテキスト編集プロンプトキャッシングトークンカウント
    ファイルの操作
    Files APIPDFサポート画像とビジョン
    スキル
    概要クイックスタートベストプラクティスエンタープライズ向けスキルAPI内のスキル
    MCP
    リモートMCPサーバーMCPコネクタ
    プロンプトエンジニアリング
    概要プロンプティングのベストプラクティスConsoleプロンプティングツール
    テストと評価
    成功を定義して評価を構築ConsoleでEvaluation Toolを使用レイテンシの削減
    ガードレールの強化
    幻覚の削減出力の一貫性向上ジェイルブレイク対策プロンプトリークの削減
    リソース
    用語集
    リリースノート
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    モデル機能

    拡張思考を使用した構築

    Claude の拡張思考機能を使用して、複雑なタスクに対する推論能力を向上させ、段階的な思考プロセスへの透明性を提供する方法を学びます。

    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(claude-opus-4-7)以降のモデル: 手動拡張思考はサポートされなくなりました。代わりに アダプティブ思考(thinking: {type: "adaptive"})を effort パラメータと共に使用してください。
    • Claude Mythos Preview: アダプティブ思考がデフォルトです。thinking: {type: "enabled", budget_tokens: N} も受け入れられます。thinking: {type: "disabled"} はサポートされておらず、display は思考コンテンツを返すのではなく "omitted" がデフォルトです。要約を受け取るには display: "summarized" を渡してください。
    • Claude Opus 4.6(claude-opus-4-6): アダプティブ思考を推奨します。手動モード(type: "enabled")は非推奨ですがまだ機能しています。
    • Claude Sonnet 4.6(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:

    • You're charged for the full thinking tokens generated by the original request, not the summary tokens.
    • The billed output token count will not match the count of tokens you see in the response.
    • On Claude 4 models, the first few lines of thinking output are more verbose, providing detailed reasoning that's particularly helpful for prompt engineering purposes. Claude Mythos Preview summarizes from the first token, so its thinking blocks do not show this verbose preamble.
    • As Anthropic seeks to improve the extended thinking feature, summarization behavior is subject to change.
    • Summarization preserves the key ideas of Claude's thinking process with minimal added latency, enabling a streamable user experience and easy migration from Claude Sonnet 3.7 to Claude 4 and later models.
    • Summarization is processed by a different model than the one you target in your requests. The thinking model does not see the summarized output.

    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:

    • You're still charged for the full thinking tokens. Omitting reduces latency, not cost.
    • If you pass thinking blocks back in multi-turn conversations, pass them unchanged. The server decrypts the 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).
    • When using 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 ブロックが含まれます:

    Output
    {
      "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 を使用したストリーミングの詳細なドキュメントについては、ストリーミングメッセージ を参照してください。

    思考を使用したストリーミングの処理方法は以下の通りです:

    ストリーミング出力の例:

    Output
    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 イベントなしでブロックが閉じます。テキストストリーミングはその直後に開始されます:

    Output
    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 がツール選択と結果処理を通じて推論することができます。

    拡張思考とツール使用を一緒に使用する場合、以下の制限に注意してください:

    1. ツール選択の制限: 思考を伴うツール使用は tool_choice: {"type": "auto"} (デフォルト) または tool_choice: {"type": "none"} のみをサポートしています。tool_choice: {"type": "any"} または tool_choice: {"type": "tool", "name": "..."} を使用するとエラーが発生します。これらのオプションはツール使用を強制するため、拡張思考と互換性がありません。

    2. 思考ブロックの保持: ツール使用中に、最後のアシスタントメッセージの 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 はその既存の応答の構築を続けます。これにはいくつかの理由で、ツール使用中に思考ブロックを保持する必要があります:

    1. 推論の連続性:思考ブロックは、ツール要求につながった Claude のステップバイステップの推論をキャプチャします。ツール結果を投稿するとき、元の思考を含めることで、Claude は中断したところから推論を続けることができます。

    2. コンテキストの保持:ツール結果は API 構造ではユーザーメッセージとして表示されますが、それらは連続した推論フローの一部です。思考ブロックを保持することで、複数の API 呼び出しにわたってこの概念的なフローを維持します。コンテキスト管理の詳細については、コンテキストウィンドウに関するガイドを参照してください。

    重要:thinking ブロックを提供する場合、連続した thinking ブロックの全体シーケンスは、元のリクエスト中にモデルによって生成された出力と一致する必要があります。これらのブロックのシーケンスを再配置または変更することはできません。

    インターリーブされた思考

    Claude 4 モデルでのツール使用を伴う拡張思考は、インターリーブされた思考をサポートしており、Claude がツール呼び出し間で考え、ツール結果を受け取った後、より高度な推論を行うことができます。

    インターリーブされた思考により、Claude は以下を実行できます:

    • ツール呼び出しの結果について推論し、次に何をするかを決定する
    • 複数のツール呼び出しを推論ステップと組み合わせてチェーンする
    • 中間結果に基づいてより微妙な決定を下す

    モデルサポート:

    • Claude Mythos Preview:インターリーブされた思考は自動的に発生します。すべてのツール間推論ステップは、プレーンテキストの代わりに思考ブロックに移動し、思考ブロックはデフォルトでターン全体で保持されます。ベータヘッダーは必要ありません。
    • Claude Opus 4.7:適応的思考を使用する場合、インターリーブされた思考は自動的に有効になります(Opus 4.7 でサポートされている唯一の思考モード)。ベータヘッダーは必要ありません。
    • Claude Opus 4.6:適応的思考を使用する場合、インターリーブされた思考は自動的に有効になります。ベータヘッダーは必要ありません。interleaved-thinking-2025-05-14 ベータヘッダーは Opus 4.6 では廃止予定であり、含まれている場合は安全に無視されます。
    • Claude Sonnet 4.6:適応的思考を使用する場合、インターリーブされた思考は自動的に有効になります(推奨)。手動の拡張思考(thinking: {type: "enabled"})を使用した interleaved-thinking-2025-05-14 ベータヘッダーはまだ機能していますが、廃止予定です。
    • その他の Claude 4 モデル(Opus 4.5、Opus 4.1、Opus 4(廃止予定)、Sonnet 4.5、Sonnet 4(廃止予定)):API リクエストにベータヘッダー interleaved-thinking-2025-05-14 を追加して、インターリーブされた思考を有効にします。

    インターリーブされた思考に関する重要な考慮事項を以下に示します:

    • インターリーブされた思考では、budget_tokens は max_tokens パラメータを超える可能性があります。これは 1 つのアシスタントターン内のすべての思考ブロック全体の総予算を表します。
    • インターリーブされた思考は、Messages API を介して使用されるツールに対してのみサポートされています。
    • Claude API への直接呼び出しでは、interleaved-thinking-2025-05-14 をリクエストで任意のモデルに渡すことができます。効果はありません(Opus 4.7 と Opus 4.6 を除く。これらは廃止予定で、含まれている場合は安全に無視されます)。
    • サードパーティプラットフォーム(例えば、Amazon Bedrock および Vertex AI)では、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 4.6、Claude Opus 4.5、Claude Opus 4.1、Opus 4(廃止予定)、Sonnet 4.5、または Sonnet 4(廃止予定)以外のモデルに interleaved-thinking-2025-05-14 を渡すと、リクエストは失敗します。

    プロンプトキャッシングを使用した拡張思考

    プロンプトキャッシングと思考にはいくつかの重要な考慮事項があります:

    拡張思考タスクは完了するのに5分以上かかることがよくあります。1時間のキャッシュ期間を使用して、長い思考セッションとマルチステップワークフロー全体でキャッシュヒットを維持することを検討してください。

    思考ブロックのコンテキスト削除

    • 前のターンからの思考ブロックはコンテキストから削除されます。これはキャッシュブレークポイントに影響を与える可能性があります
    • ツール使用を伴う会話を続ける場合、思考ブロックはキャッシュされ、キャッシュから読み取られるときに入力トークンとしてカウントされます
    • これはトレードオフを生み出します。思考ブロックは視覚的にはコンテキストウィンドウスペースを消費しませんが、キャッシュされるときは入力トークン使用量にカウントされます
    • 思考が無効になり、現在のツール使用ターンで思考コンテンツを渡す場合、思考コンテンツは削除され、そのリクエストに対して思考は無効のままになります

    キャッシュ無効化パターン

    • 思考パラメータの変更(有効/無効またはバジェット割り当て)はメッセージキャッシュブレークポイントを無効化します
    • インターリーブ思考は複数のツール呼び出しの間に思考ブロックが発生する可能性があるため、キャッシュ無効化を増幅します
    • システムプロンプトとツールは、思考パラメータの変更またはブロック削除にもかかわらずキャッシュされたままです

    思考ブロックはキャッシングとコンテキスト計算のために削除されますが、ツール使用を伴う会話を続ける場合、特にインターリーブ思考を使用する場合は、保持する必要があります。

    シンキングブロックキャッシング動作の理解

    ツール使用を伴う拡張シンキングを使用する場合、シンキングブロックはトークンカウントに影響する特定のキャッシング動作を示します:

    動作方法:

    1. キャッシングは、ツール結果を含む後続リクエストを行う場合にのみ発生します
    2. 後続リクエストが行われると、以前の会話履歴(シンキングブロックを含む)をキャッシュできます
    3. これらのキャッシュされたシンキングブロックは、キャッシュから読み取られるときに使用メトリクスの入力トークンとしてカウントされます
    4. 非ツール結果ユーザーブロックが含まれる場合、すべての以前のシンキングブロックは無視され、コンテキストから削除されます

    詳細な例フロー:

    リクエスト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:

    • When streaming responses, the signature is added via a 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.
    • The 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.7Claude 4 Models(Opus 4.5より前)Claude Opus 4.5Claude Sonnet 4.6Claude 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.5以降(Claude Opus 4.6でも継続)から、前のアシスタントターンからの思考ブロックはデフォルトでモデルコンテキストに保持されます。これは、前のターンから思考ブロックを削除する以前のモデルとは異なります。

    思考ブロック保持の利点:

    • キャッシュ最適化:ツール使用時に、保持された思考ブロックはツール結果と共に返され、アシスタントターン全体でインクリメンタルにキャッシュされるため、キャッシュヒットが可能になり、マルチステップワークフローでトークンが節約されます
    • インテリジェンスへの影響なし:思考ブロックの保持はモデルのパフォーマンスに悪影響を与えません

    重要な考慮事項:

    • コンテキスト使用量:思考ブロックがコンテキストに保持されるため、長い会話はより多くのコンテキストスペースを消費します
    • 自動動作:これはClaude Opus 4.5以降のモデル(Claude Mythos PreviewおよびClaude Opus 4.6を含む)のデフォルト動作です。コード変更またはベータヘッダーは不要です
    • 後方互換性:この機能を活用するには、ツール使用の場合と同様に、完全で変更されていない思考ブロックをAPIに返し続けてください

    以前のモデル(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:

    • Tokens used during thinking (output tokens)
    • Thinking blocks from the last assistant turn included in subsequent requests (input tokens)
    • Standard text output tokens

    When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.

    When using summarized thinking:

    • Input tokens: Tokens in your original request (excludes thinking tokens from previous turns)
    • Output tokens (billed): The original thinking tokens that Claude generated internally
    • Output tokens (visible): The summarized thinking tokens you see in the response
    • No charge: Tokens used to generate the summary

    When using display: "omitted":

    • Input tokens: Tokens in your original request (same as summarized)
    • Output tokens (billed): The original thinking tokens that Claude generated internally (same as summarized)
    • Output tokens (visible): Zero thinking tokens (the 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.

    拡張思考機能のベストプラクティスと考慮事項

    思考予算の使用

    • 予算最適化: 最小予算は1,024トークンです。最小値から始めて、思考予算をインクリメンタルに増やし、ユースケースに最適な範囲を見つけてください。トークン数が多いほど、より包括的な推論が可能になりますが、タスクに応じて収益逓減があります。予算を増やすと、応答品質が向上しますが、レイテンシが増加するというトレードオフがあります。重要なタスクの場合、異なる設定をテストして最適なバランスを見つけてください。思考予算はターゲットであり、厳密な制限ではないことに注意してください。実際のトークン使用量はタスクに基づいて異なる場合があります。
    • 開始点: 複雑なタスクの場合は、より大きな思考予算(16k以上のトークン)から始めて、必要に応じて調整してください。
    • 大きな予算: 思考予算が32kを超える場合、ネットワーク問題を回避するためにバッチ処理を使用してください。モデルを32k以上のトークンで思考させるリクエストは、システムタイムアウトとオープン接続制限に達する可能性がある長時間実行されるリクエストを引き起こします。
    • トークン使用量の追跡: 思考トークン使用量を監視して、コストとパフォーマンスを最適化してください。

    パフォーマンスに関する考慮事項

    • 応答時間: 追加処理により応答時間が長くなることに備えてください。思考ブロックの生成は全体的な応答時間を増加させます。
    • ストリーミング要件: SDKは、長時間実行されるリクエストでHTTPタイムアウトを回避するために、max_tokensが21,333より大きい場合にストリーミングを必要とします。これはクライアント側の検証であり、API制限ではありません。イベントをインクリメンタルに処理する必要がない場合、.stream()を.get_final_message()(Python)または.finalMessage()(TypeScript)と共に使用して、個別のイベントを処理することなく完全なMessageオブジェクトを取得してください。詳細はメッセージのストリーミングを参照してください。ストリーミング時は、思考とテキストコンテンツブロックの両方が到着する準備をしてください。
    • レイテンシのための思考の省略: アプリケーションが思考コンテンツを表示しない場合、思考設定でdisplay: "omitted"を設定して、最初のテキストトークンまでの時間を短縮してください。思考表示の制御を参照してください。

    機能の互換性

    • 思考はtemperatureまたはtop_kの変更、および強制ツール使用と互換性がありません。
    • 思考が有効な場合、top_pを1から0.95の間の値に設定できます。
    • 思考が有効な場合、レスポンスを事前入力することはできません。
    • 思考予算への変更は、メッセージを含むキャッシュされたプロンプトプレフィックスを無効にします。ただし、キャッシュされたシステムプロンプトとツール定義は、思考パラメータが変更されても機能し続けます。

    使用ガイドライン

    • タスク選択: 数学、コーディング、分析など、段階的な推論から利益を得る特に複雑なタスクに拡張思考機能を使用してください。
    • コンテキスト処理: 前の思考ブロックを自分で削除する必要はありません。Claude APIは自動的に前のターンからの思考ブロックを無視し、コンテキスト使用量を計算する際に含まれません。
    • プロンプトエンジニアリング: Claudeの思考機能を最大限に活用したい場合は、拡張思考プロンプティングのヒントを確認してください。

    次のステップ

    拡張思考クックブックを試す

    クックブックで思考の実践的な例を探索してください。

    Was this page helpful?

    • Claude Opus 4.5以降での思考ブロック保持
    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}")
    Try in Console
    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の思考形式をサポートしないモデルで会話を続ける場合、ブロックは削除されます。
    拡張思考プロンプティングのヒント

    拡張思考機能のプロンプトエンジニアリングのベストプラクティスを学んでください。