このページでは、ツール定義のプロンプトキャッシングについて説明します。cache_controlブレークポイントの配置場所、defer_loadingがキャッシュを保持する方法、および無効化するものについてです。一般的なプロンプトキャッシングについては、プロンプトキャッシングを参照してください。
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はそれを最終的に展開されたツールに適用します。
遅延ツールはシステムプロンプトプレフィックスに含まれません。モデルがツール検索を通じて遅延ツールを発見すると、定義は会話履歴内の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?