Loading...
  • ビルド
  • 管理
  • モデルと料金
  • クライアントSDK
  • APIリファレンス
Search...
⌘K
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
ビルド/ツール

プロンプトキャッシングでのツール使用

ツール定義をターン間でキャッシュし、キャッシュを無効化するものを理解します。

このページでは、ツール定義のプロンプトキャッシングについて説明します。cache_controlブレークポイントの配置場所、defer_loadingがキャッシュを保持する方法、および無効化するものについてです。一般的なプロンプトキャッシングについては、プロンプトキャッシングを参照してください。

ツール定義の cache_control

cache_control: {"type": "ephemeral"}をtools配列の最後のツールに配置します。これにより、最初のツールからマークされたブレークポイントまでのツール定義プレフィックス全体がキャッシュされます。

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Get the current weather in a given location",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        },
        "required": ["location"]
      }
    },
    {
      "name": "get_time",
      "description": "Get the current time in a given time zone",
      "input_schema": {
        "type": "object",
        "properties": {
          "timezone": { "type": "string" }
        },
        "required": ["timezone"]
      },
      "cache_control": { "type": "ephemeral" }
    }
  ]
}

mcp_toolsetの場合、cache_controlブレークポイントはセット内の最後のツールに配置されます。MCPツールセット内のツール順序は制御できないため、ブレークポイントをmcp_toolsetエントリ自体に配置すると、APIはそれを最終的に展開されたツールに適用します。

defer_loading とキャッシュ保持

遅延ツールはシステムプロンプトプレフィックスに含まれません。モデルがツール検索を通じて遅延ツールを発見すると、定義は会話履歴内のtool_referenceブロックとしてインラインで追加されます。プレフィックスは変更されないため、プロンプトキャッシングは保持されます。

これは、ツール検索を通じてツールを動的に追加してもキャッシュが破損しないことを意味します。常にロードされるツールの小さなセット(キャッシュ済み)で会話を開始し、モデルが必要に応じて追加ツールを発見させ、すべてのターンで同じキャッシュヒットを保つことができます。

defer_loadingはストリクトモードの文法構築とは独立して機能します。文法は、どのツールが遅延しているかに関わらず、完全なツールセットから構築されるため、ツールが動的にロードされるときもプロンプトキャッシングと文法キャッシングの両方が保持されます。

キャッシュを無効化するもの

キャッシュはプレフィックス階層(tools → system → messages)に従うため、1つのレベルでの変更はそのレベルとそれ以降のすべてを無効化します。

変更無効化
ツール定義の変更キャッシュ全体(tools、system、messages)
ウェブ検索または引用の切り替えシステムおよびメッセージキャッシュ
tool_choiceの変更メッセージキャッシュ
disable_parallel_tool_useの変更メッセージキャッシュ
画像の有無の切り替えメッセージキャッシュ
思考パラメータの変更メッセージキャッシュ

会話の途中でtool_choiceを変更する必要がある場合は、変更ポイントの前にキャッシュブレークポイントを配置することを検討してください。

ツール別相互作用表

ツールキャッシング上の考慮事項
ウェブ検索有効化または無効化するとシステムおよびメッセージキャッシュが無効化されます
ウェブフェッチ有効化または無効化するとシステムおよびメッセージキャッシュが無効化されます
コード実行コンテナ状態はプロンプトキャッシュとは独立しています
ツール検索発見されたツールはtool_referenceブロックとしてロードされ、プレフィックスキャッシュを保持します
コンピュータ使用スクリーンショットの有無がメッセージキャッシュに影響します
テキストエディタ標準クライアントツール、特別なキャッシング相互作用なし
Bash標準クライアントツール、特別なキャッシング相互作用なし
メモリ標準クライアントツール、特別なキャッシング相互作用なし

次のステップ

プロンプトキャッシング

TTLと価格設定を含む、完全なプロンプトキャッシングモデルについて学びます。

ツール検索

キャッシュを破損させずにオンデマンドでツールをロードします。

ツールリファレンス

利用可能なすべてのツールとそのパラメータを参照します。

Was this page helpful?

  • ツール定義の cache_control
  • defer_loading とキャッシュ保持