Loading...
    • 開発者ガイド
    • APIリファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    最初のステップ
    Claude入門クイックスタート
    モデルと価格
    モデル概要モデルの選択Claude 4.5の新機能Claude 4.5への移行モデルの廃止予定価格
    Claudeで構築
    機能概要Messages APIの使用コンテキストウィンドウプロンプトのベストプラクティス
    機能
    プロンプトキャッシングコンテキスト編集拡張思考エフォートストリーミングメッセージバッチ処理引用多言語対応トークンカウントエンベディングビジョンPDF対応Files API検索結果構造化出力Google Sheetsアドオン
    ツール
    概要ツール使用の実装方法トークン効率的なツール使用細粒度ツールストリーミングBashツールコード実行ツールプログラマティックツール呼び出しコンピュータ使用ツールテキストエディタツールWebフェッチツールWeb検索ツールメモリツールツール検索ツール
    エージェントスキル
    概要クイックスタートベストプラクティスAPIでスキルを使用
    エージェントSDK
    概要TypeScript SDKPython SDK移行ガイド
    ガイド
    ストリーミング入力権限の処理セッション管理SDKの構造化出力エージェントSDKのホスティングシステムプロンプトの変更SDKのMCPカスタムツールSDKのサブエージェントSDKのスラッシュコマンドSDKのエージェントスキルコストと使用状況の追跡TodoリストSDKのプラグイン
    APIのMCP
    MCPコネクタリモートMCPサーバー
    サードパーティプラットフォームのClaude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータプロンプトテンプレートの使用プロンプト改善ツール明確で直接的に例を使用する(マルチショットプロンプティング)Claudeに考えさせる(CoT)XMLタグを使用Claudeに役割を与える(システムプロンプト)Claudeの応答を事前入力複雑なプロンプトをチェーン長いコンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準の定義テストケースの開発評価ツールの使用レイテンシの削減
    ガードレールの強化
    ハルシネーションの削減出力の一貫性を向上ジェイルブレイクの軽減ストリーミング拒否プロンプト漏洩の削減Claudeをキャラクターのままに
    管理とモニタリング
    Admin API概要使用状況とコストAPIClaude Code Analytics API
    Console
    Log in
    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
    • Catalog
    • 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
    • Catalog
    • 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に複雑なタスク向けの強化された推論機能を提供し、最終的な回答を提供する前のステップバイステップの思考プロセスへのさまざまなレベルの透明性を提供する方法について学びます。
    • 拡張思考でのmax_tokensとコンテキストウィンドウサイズ
    • 拡張思考でのmax_tokensとコンテキストウィンドウサイズ
    • 拡張思考でのmax_tokensとコンテキストウィンドウサイズ
    • 拡張思考でのmax_tokensとコンテキストウィンドウサイズ
    • Claude Opus 4.5での思考ブロック保持
    • Claude Opus 4.5での思考ブロック保持

    拡張思考により、Claudeは複雑なタスク向けの強化された推論機能を備え、最終的な回答を提供する前のステップバイステップの思考プロセスへのさまざまなレベルの透明性を提供します。

    拡張思考により、Claudeは複雑なタスク向けの強化された推論機能を備え、最終的な回答を提供する前のステップバイステップの思考プロセスへのさまざまなレベルの透明性を提供します。

    サポートされているモデル

    拡張思考は以下のモデルでサポートされています:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (廃止予定)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    APIの動作はClaude Sonnet 3.7とClaude 4モデル間で異なりますが、APIの形状は完全に同じです。

    詳細については、モデルバージョン間の思考の違いを参照してください。

    拡張思考により、Claudeは複雑なタスク向けの強化された推論機能を備え、最終的な回答を提供する前のステップバイステップの思考プロセスへのさまざまなレベルの透明性を提供します。

    サポートされているモデル

    拡張思考は以下のモデルでサポートされています:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (廃止予定)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    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リファレンスを参照してください。

    拡張思考により、Claudeは複雑なタスク向けの強化された推論機能を備え、最終的な回答を提供する前のステップバイステップの思考プロセスへのさまざまなレベルの透明性を提供します。

    サポートされているモデル

    拡張思考は以下のモデルでサポートされています:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (廃止予定)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    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で拡張思考を使用する例を以下に示します:

    拡張思考を有効にするには、thinkingオブジェクトを追加し、typeパラメータをenabledに設定し、budget_tokensを拡張思考の指定されたトークン予算に設定します。

    budget_tokensパラメータは、Claudeが内部推論プロセスに使用できるトークンの最大数を決定します。Claude 4モデルでは、この制限は完全な思考トークンに適用され、要約された出力には適用されません。より大きな予算は、複雑な問題に対してより徹底的な分析を可能にすることで応答品質を向上させることができますが、Claudeは割り当てられた予算全体を使用しない場合があります。特に32k以上の範囲では使用しない場合があります。

    budget_tokensはmax_tokensより小さい値に設定する必要があります。ただし、ツールとのインターリーブ思考を使用する場合、トークン制限がコンテキストウィンドウ全体(200kトークン)になるため、この制限を超えることができます。

    拡張思考により、Claudeは複雑なタスク向けの強化された推論機能を備え、最終的な回答を提供する前のステップバイステップの思考プロセスへのさまざまなレベルの透明性を提供します。

    サポートされているモデル

    拡張思考は以下のモデルでサポートされています:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (廃止予定)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    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で拡張思考を使用する例を以下に示します:

    拡張思考を有効にするには、thinkingオブジェクトを追加し、typeパラメータをenabledに設定し、budget_tokensを拡張思考の指定されたトークン予算に設定します。

    budget_tokensパラメータは、Claudeが内部推論プロセスに使用できるトークンの最大数を決定します。Claude 4モデルでは、この制限は完全な思考トークンに適用され、要約された出力には適用されません。より大きな予算は、複雑な問題に対してより徹底的な分析を可能にすることで応答品質を向上させることができますが、Claudeは割り当てられた予算全体を使用しない場合があります。特に32k以上の範囲では使用しない場合があります。

    budget_tokensはmax_tokensより小さい値に設定する必要があります。ただし、ツールとのインターリーブ思考を使用する場合、トークン制限がコンテキストウィンドウ全体(200kトークン)になるため、この制限を超えることができます。

    要約された思考

    拡張思考が有効になると、Claude 4モデルのMessages APIはClaudeの完全な思考プロセスの要約を返します。要約された思考は、拡張思考の完全なインテリジェンス利点を提供しながら、悪用を防ぎます。

    要約された思考に関する重要な考慮事項を以下に示します:

    • 要約トークンではなく、元のリクエストによって生成された完全な思考トークンに対して課金されます。
    • 請求される出力トークン数は、レスポンスに表示されるトークン数と一致しません。
    • 思考出力の最初の数行はより詳細で、プロンプトエンジニアリング目的で特に役立つ詳細な推論を提供します。
    • Anthropicが拡張思考機能を改善しようとしているため、要約動作は変更される可能性があります。
    • 要約は、Claudeの思考プロセスの主要なアイデアを最小限の追加レイテンシで保持し、ストリーム可能なユーザーエクスペリエンスとClaude Sonnet 3.7からClaude 4モデルへの簡単な移行を実現します。
    • 要約は、リクエストでターゲットにしたモデルとは異なるモデルによって処理されます。思考モデルは要約された出力を見ません。

    Claude Sonnet 3.7は引き続き完全な思考出力を返します。

    Claude 4モデルの完全な思考出力へのアクセスが必要な稀なケースでは、営業チームにお問い合わせください。

    ストリーミング思考

    サーバー送信イベント(SSE)を使用して拡張思考レスポンスをストリーミングできます。

    拡張思考に対してストリーミングが有効になると、thinking_deltaイベント経由で思考コンテンツを受け取ります。

    Messages API経由のストリーミングに関する詳細なドキュメントについては、ストリーミングメッセージを参照してください。

    思考を使用したストリーミングの処理方法を以下に示します:

    コンソールで試す

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

    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-5", "stop_reason": null, "stop_sequence": null}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}
    
    // 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": "27 * 453 = 12,231"}}
    
    // 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"}

    思考を有効にしてストリーミングを使用する場合、テキストが時々より大きなチャンクで到着し、その後トークンごとの配信と交互に行われることに気付くかもしれません。これは予想される動作です。特に思考コンテンツの場合です。

    ストリーミングシステムは最適なパフォーマンスのためにコンテンツをバッチで処理する必要があり、この「ぎくしゃくした」配信パターンが生じる可能性があり、ストリーミングイベント間に遅延が生じる可能性があります。私たちは継続的にこのエクスペリエンスを改善するために取り組んでおり、将来の更新は思考コンテンツをより滑らかにストリーミングすることに焦点を当てています。

    拡張思考により、Claude は複雑なタスクに対して強化された推論機能を備え、最終的な回答を提供する前に段階的な思考プロセスへのさまざまなレベルの透明性を提供します。

    サポートされているモデル

    拡張思考は以下のモデルでサポートされています:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (非推奨)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    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 で拡張思考を使用する例を以下に示します:

    拡張思考を有効にするには、thinking オブジェクトを追加し、type パラメータを enabled に設定し、budget_tokens を拡張思考の指定されたトークン予算に設定します。

    budget_tokens パラメータは、Claude が内部推論プロセスに使用できるトークンの最大数を決定します。Claude 4 モデルでは、この制限は完全な思考トークンに適用され、要約された出力には適用されません。より大きな予算は、複雑な問題に対してより徹底的な分析を可能にすることで応答品質を向上させることができますが、Claude は特に 32k を超える範囲では割り当てられた予算全体を使用しない場合があります。

    budget_tokens は max_tokens より小さい値に設定する必要があります。ただし、ツールを使用したインターリーブ思考を使用する場合、トークン制限がコンテキストウィンドウ全体(200k トークン)になるため、この制限を超えることができます。

    要約された思考

    拡張思考が有効になると、Claude 4 モデルの Messages API は Claude の完全な思考プロセスの要約を返します。要約された思考は、拡張思考の完全なインテリジェンス利点を提供しながら、悪用を防ぎます。

    要約された思考に関する重要な考慮事項を以下に示します:

    • 要約トークンではなく、元のリクエストによって生成された完全な思考トークンに対して課金されます。
    • 請求される出力トークン数は、レスポンスに表示されるトークン数と一致しません。
    • 思考出力の最初の数行はより詳細で、プロンプトエンジニアリング目的に特に役立つ詳細な推論を提供します。
    • Anthropic が拡張思考機能の改善を進めるにつれて、要約動作は変更される可能性があります。
    • 要約は Claude の思考プロセスの重要なアイデアを最小限の追加レイテンシで保持し、ストリーム可能なユーザーエクスペリエンスと Claude Sonnet 3.7 から Claude 4 モデルへの簡単な移行を実現します。
    • 要約は、リクエストで対象とするモデルとは異なるモデルによって処理されます。思考モデルは要約された出力を見ません。

    Claude Sonnet 3.7 は引き続き完全な思考出力を返します。

    Claude 4 モデルの完全な思考出力へのアクセスが必要な稀なケースでは、営業チームにお問い合わせください。

    ストリーミング思考

    サーバー送信イベント (SSE) を使用して拡張思考レスポンスをストリーミングできます。

    拡張思考でストリーミングが有効になると、thinking_delta イベント経由で思考コンテンツを受け取ります。

    Messages API 経由のストリーミングに関する詳細なドキュメントについては、ストリーミングメッセージを参照してください。

    思考でストリーミングを処理する方法を以下に示します:

    Try in Console

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

    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-5", "stop_reason": null, "stop_sequence": null}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}
    
    // 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": "27 * 453 = 12,231"}}
    
    // 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"}

    思考が有効になっているストリーミングを使用する場合、テキストが時々大きなチャンクで到着し、小さなトークンごとの配信と交互になることに気付くかもしれません。これは予想される動作であり、特に思考コンテンツの場合です。

    ストリーミングシステムは最適なパフォーマンスのためにコンテンツをバッチで処理する必要があり、この「チャンキー」な配信パターンが生じる可能性があり、ストリーミングイベント間に遅延が生じる可能性があります。私たちは継続的にこのエクスペリエンスを改善するために取り組んでおり、将来の更新は思考コンテンツをより滑らかにストリーミングすることに焦点を当てています。

    ツール使用を伴う拡張思考

    拡張思考はツール使用と一緒に使用でき、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 つの継続的なアシスタント応答の一部です。

    一般的なエラーシナリオ

    このエラーが発生する可能性があります:

    Expected `thinking` or `redacted_thinking`, but found `tool_use`.
    When `thinking` is enabled, a final `assistant` message must start
    with a thinking block (preceding the lastmost set of `tool_use` and
    `tool_result` blocks).

    これは通常、以下の場合に発生します:

    1. ツール使用シーケンス中に思考が無効でした
    2. 再度思考を有効にしたい
    3. 最後のアシスタントメッセージに思考ブロックなしのツール使用ブロックが含まれている

    実践的なガイダンス

    ✗ 無効: ツール使用直後に思考を切り替える

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    // Cannot enable thinking here - still in the same assistant turn

    ✓ 有効: 最初にアシスタントターンを完了する

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    Assistant: [text: "It's sunny"] 
    User: "What about tomorrow?" (thinking disabled)
    Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)

    ベストプラクティス: ターン中に切り替えようとするのではなく、各ターンの開始時に思考戦略を計画します。

    思考モードの切り替えはメッセージ履歴のプロンプトキャッシングも無効にします。詳細については、プロンプトキャッシングを伴う拡張思考セクションを参照してください。

    会話内での思考モードの切り替え

    アシスタントターンの途中(ツール使用ループ中を含む)で思考を切り替えることはできません。アシスタントターン全体は単一の思考モードで動作する必要があります:

    • 思考が有効な場合、最終的なアシスタントターンは思考ブロックで始まる必要があります。
    • 思考が無効な場合、最終的なアシスタントターンは思考ブロックを含んではいけません

    モデルの観点からは、ツール使用ループはアシスタントターンの一部です。アシスタントターンは、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つの連続したアシスタント応答の一部です。

    一般的なエラーシナリオ

    このエラーが発生する場合があります:

    Expected `thinking` or `redacted_thinking`, but found `tool_use`.
    When `thinking` is enabled, a final `assistant` message must start
    with a thinking block (preceding the lastmost set of `tool_use` and
    `tool_result` blocks).

    これは通常、以下の場合に発生します:

    1. ツール使用シーケンス中に思考が無効だった
    2. 再度思考を有効にしたい
    3. 最後のアシスタントメッセージにツール使用ブロックが含まれているが、思考ブロックがない

    実践的なガイダンス

    ✗ 無効:ツール使用直後に思考を切り替える

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    // Cannot enable thinking here - still in the same assistant turn

    ✓ 有効:まずアシスタントターンを完了する

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    Assistant: [text: "It's sunny"] 
    User: "What about tomorrow?" (thinking disabled)
    Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)

    ベストプラクティス:ターン中に切り替えようとするのではなく、各ターンの開始時に思考戦略を計画してください。

    思考モードの切り替えはメッセージ履歴のプロンプトキャッシングも無効にします。詳細については、プロンプトキャッシング付き拡張思考セクションを参照してください。

    思考ブロックの保持

    ツール使用中に、thinkingブロックをAPIに渡す必要があり、完全な未修正ブロックをAPIに含める必要があります。これはモデルの推論フローと会話の整合性を維持するために重要です。

    前のアシスタントロールターンからthinkingブロックを省略することはできますが、マルチターン会話ではすべての思考ブロックをAPIに渡すことをお勧めします。APIは以下を実行します:

    • 提供された思考ブロックを自動的にフィルタリングする
    • モデルの推論を保持するために必要な関連する思考ブロックを使用する
    • Claudeに表示されるブロックの入力トークンのみを請求する

    会話中に思考モードを切り替える場合、アシスタントターン全体(ツール使用ループを含む)は単一の思考モードで動作する必要があることに注意してください。詳細については、会話内での思考モードの切り替えを参照してください。

    Claudeがツールを呼び出すと、応答の構築を一時停止して外部情報を待ちます。ツール結果が返されると、Claudeはその既存の応答の構築を続けます。これにより、ツール使用中に思考ブロックを保持する必要があります。理由は以下の通りです:

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

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

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

    インターリーブ思考

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

    インターリーブ思考により、Claude は以下のことができます:

    • ツール呼び出しの結果について推論し、次に何をするかを決定する
    • 複数のツール呼び出しを推論ステップで連鎖させる
    • 中間結果に基づいてより微妙な決定を下す

    インターリーブ思考を有効にするには、ベータヘッダー interleaved-thinking-2025-05-14 を API リクエストに追加します。

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

    • インターリーブ思考では、budget_tokens が max_tokens パラメータを超える可能性があります。これは、1 つのアシスタント ターン内のすべての思考ブロック全体の予算を表しているためです。
    • インターリーブ思考は、Messages API 経由で使用されるツールに対してのみサポートされています。
    • インターリーブ思考は Claude 4 モデルのみでサポートされており、ベータヘッダー interleaved-thinking-2025-05-14 が必要です。
    • Claude API への直接呼び出しでは、interleaved-thinking-2025-05-14 をリクエストで任意のモデルに渡すことができ、効果はありません。
    • 3 番目のプラットフォーム(例:Amazon Bedrock および Vertex AI)では、Claude Opus 4.5、Claude Opus 4.1、Opus 4、または Sonnet 4 以外のモデルに interleaved-thinking-2025-05-14 を渡すと、リクエストが失敗します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    動作方法:

    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以降の場合、すべての前の思考ブロックはデフォルトで保持されます。古いモデルの場合、ツール結果以外のユーザーブロックが含まれたため、すべての前の思考ブロックは無視されます。このリクエストは以下と同じように処理されます:

    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マーカーがなくても自動的に発生します
    • この動作は、通常の思考またはインターリーブ思考のどちらを使用しているかに関係なく一貫しています

    拡張思考でのmax_tokensとコンテキストウィンドウサイズ

    古いClaudeモデル(Claude Sonnet 3.7より前)では、プロンプトトークンとmax_tokensの合計がモデルのコンテキストウィンドウを超えた場合、システムは自動的にmax_tokensをコンテキスト制限内に収まるように調整していました。これは、大きなmax_tokens値を設定でき、システムが必要に応じて自動的に削減することを意味していました。

    Claude 3.7および4モデルでは、max_tokens(思考が有効な場合は思考バジェットを含む)は厳密な制限として適用されます。プロンプトトークン + max_tokensがコンテキストウィンドウサイズを超える場合、システムは検証エラーを返すようになりました。

    コンテキストウィンドウについてのより詳細な説明は、コンテキストウィンドウガイドをご覧ください。

    拡張思考でのmax_tokensとコンテキストウィンドウサイズ

    古い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を使用して、特定のユースケースの正確なトークンカウントを取得することをお勧めします。

    拡張思考でのmax_tokensとコンテキストウィンドウサイズ

    古い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)

    以下の図は、拡張思考とツール使用でのトークン管理を示しています:

    拡張思考とツール使用を使用したコンテキストウィンドウ図

    拡張思考でのmax_tokensとコンテキストウィンドウサイズ

    古い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値を調整する
    • トークンカウントエンドポイントをより頻繁に使用する可能性がある
    • 前の思考ブロックがコンテキストウィンドウに蓄積しないことに注意する

    この変更は、特に最大トークン制限が大幅に増加したため、より予測可能で透明性のある動作を提供するために行われました。

    拡張思考を使用した最大トークン数とコンテキストウィンドウサイズ

    古い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値を調整する
    • トークンカウントエンドポイントをより頻繁に使用する可能性がある
    • 前の思考ブロックがコンテキストウィンドウに蓄積されないことに注意する

    この変更は、特に最大トークン制限が大幅に増加したため、より予測可能で透明性の高い動作を提供するために行われました。

    思考の暗号化

    完全な思考内容は暗号化され、signatureフィールドで返されます。このフィールドは、思考ブロックがClaudeによって生成されたことを確認するために使用されます。

    思考ブロックを返すことが厳密に必要なのは、ツール付き拡張思考を使用する場合のみです。それ以外の場合は、前のターンからの思考ブロックを省略するか、APIに削除させることができます。

    思考ブロックを返す場合は、一貫性を保ち、潜在的な問題を回避するために、受け取ったとおりにすべてを返すことをお勧めします。

    思考の暗号化に関する重要な考慮事項は以下の通りです:

    • ストリーミング応答の場合、署名はcontent_block_stopイベントの直前にcontent_block_deltaイベント内のsignature_deltaを介して追加されます。
    • signature値はClaude 4モデルでは以前のモデルよりも大幅に長くなります。
    • signatureフィールドは不透明なフィールドであり、解釈または解析されるべきではなく、検証目的でのみ存在します。
    • signature値はプラットフォーム間で互換性があります(Claude API、Amazon Bedrock、およびVertex AI)。1つのプラットフォームで生成された値は別のプラットフォームと互換性があります。

    思考の編集

    時々、Claudeの内部推論は安全システムによってフラグが立てられます。これが発生すると、thinkingブロックの一部またはすべてを暗号化し、redacted_thinkingブロックとして返します。redacted_thinkingブロックはAPIに返されるときに復号化され、Claudeが文脈を失うことなく応答を続けることができます。

    拡張思考を使用する顧客向けアプリケーションを構築する場合:

    • 編集された思考ブロックには、人間が読める形式ではない暗号化されたコンテンツが含まれていることに注意してください
    • 「Claudeの内部推論の一部は安全上の理由から自動的に暗号化されています。これは応答の品質に影響しません。」のような簡単な説明を提供することを検討してください
    • 思考ブロックをユーザーに表示する場合、通常の思考ブロックを保持しながら編集されたブロックをフィルタリングできます
    • 拡張思考機能を使用すると、推論の一部が暗号化される可能性があることを透過的に伝えてください
    • 編集された思考をUIを壊さずに適切に処理するための適切なエラーハンドリングを実装してください

    通常の思考ブロックと編集された思考ブロックの両方を示す例を以下に示します:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "redacted_thinking",
          "data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    応答に編集された思考ブロックが表示されるのは予想される動作です。モデルは、安全ガードレールを維持しながら、この編集された推論を使用して応答に情報を提供することができます。

    アプリケーションで編集された思考処理をテストする必要がある場合は、この特別なテスト文字列をプロンプトとして使用できます:ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB

    複数ターンの会話でAPIにthinkingおよびredacted_thinkingブロックを返す場合、最後のアシスタントターンについて、完全で変更されていないブロックをAPIに返す必要があります。これはモデルの推論フローを維持するために重要です。すべての思考ブロックをAPIに返すことをお勧めします。詳細については、上記の思考ブロックの保持セクションを参照してください。

    モデルバージョン間での思考の違い

    Messages APIは、主に編集と要約の動作において、Claude Sonnet 3.7およびClaude 4モデル間で思考を異なる方法で処理します。

    以下の表で簡潔な比較を参照してください:

    機能Claude Sonnet 3.7Claude 4モデル(Opus 4.5以前)Claude Opus 4.5以降
    思考出力完全な思考出力を返す要約された思考を返す要約された思考を返す
    インターリーブ思考サポートされていないinterleaved-thinking-2025-05-14ベータヘッダーでサポートinterleaved-thinking-2025-05-14ベータヘッダーでサポート
    思考ブロック保持ターン間で保持されないターン間で保持されないデフォルトで保持(キャッシュ最適化、トークン節約を有効にする)

    Claude Opus 4.5での思考ブロック保持

    Claude Opus 4.5は新しいデフォルト動作を導入します:前のアシスタントターンからの思考ブロックはデフォルトでモデルコンテキストに保持されます。これは、前のターンからの思考ブロックを削除する以前のモデルとは異なります。

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

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

    重要な考慮事項:

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

    以前のモデル(Claude Sonnet 4.5、Opus 4.1など)の場合、前のターンからの思考ブロックは引き続きコンテキストから削除されます。プロンプトキャッシング付き拡張思考セクションで説明されている既存の動作がこれらのモデルに適用されます。

    思考の編集

    時々、Claudeの内部推論が当社のセーフティシステムによってフラグが立てられることがあります。これが発生すると、thinkingブロックの一部またはすべてが暗号化され、redacted_thinkingブロックとして返されます。redacted_thinkingブロックはAPIに戻されるときに復号化され、Claudeがコンテキストを失わずに応答を続けることができます。

    拡張思考を使用する顧客向けアプリケーションを構築する場合:

    • redacted_thinkingブロックには人間が読める形式ではない暗号化されたコンテンツが含まれていることに注意してください
    • 「Claudeの内部推論の一部がセーフティ上の理由から自動的に暗号化されています。これは応答の品質には影響しません。」のような簡単な説明を提供することを検討してください
    • ユーザーに思考ブロックを表示する場合、redactedブロックをフィルタリングして除外しながら、通常の思考ブロックを保持できます
    • 拡張思考機能を使用すると、推論の一部が暗号化される可能性があることを透明に伝えてください
    • redactedされた思考をUIを壊さずに適切に処理するための適切なエラーハンドリングを実装してください

    通常のredactedされた思考ブロックの両方を示す例を次に示します:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "redacted_thinking",
          "data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    出力にredactedされた思考ブロックが表示されるのは予想される動作です。モデルはセーフティガードレールを維持しながら、このredactedされた推論を使用して応答に情報を提供することができます。

    アプリケーションでredactedされた思考処理をテストする必要がある場合、プロンプトとしてこの特別なテスト文字列を使用できます:ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB

    マルチターン会話でAPIにthinkingとredacted_thinkingブロックを戻す場合、最後のアシスタントターンの完全な未修正ブロックをAPIに含める必要があります。これはモデルの推論フローを維持するために重要です。すべての思考ブロックをAPIに戻すことをお勧めします。詳細については、上記の思考ブロックの保持セクションを参照してください。

    モデルバージョン間での思考の違い

    Messages APIは、Claude Sonnet 3.7とClaude 4モデル間で思考を異なる方法で処理し、主にredactionと要約動作が異なります。

    以下の表で簡潔な比較を参照してください:

    機能Claude Sonnet 3.7Claude 4モデル(Opus 4.5前)Claude Opus 4.5以降
    思考出力完全な思考出力を返す要約された思考を返す要約された思考を返す
    インターリーブされた思考サポートされていないinterleaved-thinking-2025-05-14ベータヘッダーでサポートinterleaved-thinking-2025-05-14ベータヘッダーでサポート
    思考ブロック保持ターン間で保持されないターン間で保持されないデフォルトで保持(キャッシュ最適化、トークン節約を有効化)

    Claude Opus 4.5での思考ブロック保持

    Claude Opus 4.5は新しいデフォルト動作を導入しています:前のアシスタントターンからの思考ブロックはデフォルトでモデルコンテキストに保持されます。これは前のターンからの思考ブロックを削除する以前のモデルとは異なります。

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

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

    重要な考慮事項:

    • コンテキスト使用量:思考ブロックがコンテキストに保持されるため、長い会話はより多くのコンテキストスペースを消費します
    • 自動動作:これはClaude Opus 4.5のデフォルト動作です。コード変更またはベータヘッダーは必要ありません
    • 後方互換性:この機能を活用するには、ツール使用の場合と同様に、完全で未修正の思考ブロックをAPIに戻し続けてください

    以前のモデル(Claude Sonnet 4.5、Opus 4.1など)の場合、前のターンからの思考ブロックはコンテキストから削除され続けます。プロンプトキャッシング付き拡張思考セクションで説明されている既存の動作がこれらのモデルに適用されます。

    価格

    基本レート、キャッシュ書き込み、キャッシュヒット、出力トークンを含む完全な価格情報については、価格ページを参照してください。

    思考プロセスは以下に対して料金が発生します:

    • 思考中に使用されるトークン(出力トークン)
    • 後続のリクエストに含まれる最後のアシスタントターンからの思考ブロック(入力トークン)
    • 標準テキスト出力トークン

    拡張思考が有効になると、この機能をサポートするための特別なシステムプロンプトが自動的に含まれます。

    要約された思考を使用する場合:

    • 入力トークン:元のリクエスト内のトークン(前のターンからの思考トークンを除外)
    • 出力トークン(請求対象):Claudeが内部的に生成した元の思考トークン
    • 出力トークン(表示):応答に表示される要約された思考トークン
    • 請求なし:要約を生成するために使用されるトークン

    請求された出力トークン数は、応答に表示される可視トークン数と一致しません。要約ではなく、完全な思考プロセスに対して請求されます。

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

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

    思考予算の操作

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

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

    思考予算の操作

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

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

    • 応答時間:推論プロセスに必要な追加処理のため、応答時間が長くなる可能性があることに備えてください。思考ブロックの生成が全体的な応答時間を増加させる可能性があることを考慮してください。
    • ストリーミング要件:max_tokensが21,333より大きい場合、ストリーミングが必要です。ストリーミング時は、思考とテキストコンテンツブロックの両方が到着するときに処理する準備をしてください。

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

    思考予算の操作

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

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

    • 応答時間:推論プロセスに必要な追加処理のため、応答時間が長くなる可能性があることに備えてください。思考ブロックの生成が全体的な応答時間を増加させる可能性があることを考慮してください。
    • ストリーミング要件:max_tokensが21,333より大きい場合、ストリーミングが必要です。ストリーミング時は、思考とテキストコンテンツブロックの両方が到着するときに処理する準備をしてください。

    機能互換性

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

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

    思考予算の操作

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

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

    • 応答時間:推論プロセスに必要な追加処理のため、応答時間が長くなる可能性があることに備えてください。思考ブロックの生成が全体的な応答時間を増加させる可能性があることを考慮してください。
    • ストリーミング要件:max_tokensが21,333より大きい場合、ストリーミングが必要です。ストリーミング時は、思考とテキストコンテンツブロックの両方が到着するときに処理する準備をしてください。

    機能互換性

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

    使用ガイドライン

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

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

    思考予算の操作

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

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

    • 応答時間:推論プロセスに必要な追加処理のため、応答時間が長くなる可能性があることに備えてください。思考ブロックの生成が全体的な応答時間を増加させる可能性があることを考慮してください。
    • ストリーミング要件:max_tokensが21,333より大きい場合、ストリーミングが必要です。ストリーミング時は、思考とテキストコンテンツブロックの両方が到着するときに処理する準備をしてください。

    機能互換性

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

    使用ガイドライン

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

    次のステップ

    拡張思考クックブックを試す
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "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?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "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?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "stream": true,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "What is 27 * 453?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "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?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "stream": true,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "What is 27 * 453?"
            }
        ]
    }'

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

    拡張思考プロンプティングのヒント

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