Halaman ini mencakup prompt caching untuk definisi alat: di mana menempatkan breakpoint cache_control, bagaimana defer_loading menjaga cache Anda, dan apa yang membatalkannya. Untuk prompt caching umum, lihat Prompt caching.
Tempatkan cache_control: {"type": "ephemeral"} pada alat terakhir dalam array tools Anda. Ini melakukan cache pada seluruh prefix definisi alat, dari alat pertama melalui breakpoint yang ditandai:
{
"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" }
}
]
}Untuk mcp_toolset, breakpoint cache_control berada pada alat terakhir dalam set. Anda tidak mengontrol urutan alat dalam toolset MCP, jadi tempatkan breakpoint pada entri mcp_toolset itu sendiri dan API menerapkannya pada alat yang diperluas terakhir.
Alat yang ditunda tidak disertakan dalam prefix system-prompt. Ketika model menemukan alat yang ditunda melalui tool search, definisi ditambahkan inline sebagai blok tool_reference dalam riwayat percakapan. Prefix tetap tidak tersentuh, sehingga prompt caching dipertahankan.
Ini berarti menambahkan alat secara dinamis melalui tool search tidak merusak cache Anda. Anda dapat memulai percakapan dengan set kecil alat yang selalu dimuat (cached), membiarkan model menemukan alat tambahan sesuai kebutuhan, dan menjaga cache hit yang sama di setiap turn.
defer_loading juga bertindak secara independen dari konstruksi grammar untuk strict mode. Grammar dibangun dari toolset lengkap terlepas dari alat mana yang ditunda, sehingga prompt caching dan grammar caching keduanya dipertahankan ketika alat dimuat secara dinamis.
Cache mengikuti hierarki prefix (tools → system → messages), jadi perubahan pada satu level membatalkan level itu dan semuanya setelahnya:
| Perubahan | Membatalkan |
|---|---|
| Memodifikasi definisi alat | Seluruh cache (tools, system, messages) |
| Mengalihkan web search atau citations | Cache system dan messages |
Mengubah tool_choice | Cache messages |
Mengubah disable_parallel_tool_use | Cache messages |
| Mengalihkan kehadiran gambar | Cache messages |
| Mengubah parameter thinking | Cache messages |
Jika Anda perlu memvariasikan tool_choice di tengah percakapan, pertimbangkan untuk menempatkan breakpoint cache sebelum titik variasi.
| Alat | Pertimbangan Caching |
|---|---|
| Web search | Mengaktifkan atau menonaktifkan membatalkan cache system dan messages |
| Web fetch | Mengaktifkan atau menonaktifkan membatalkan cache system dan messages |
| Code execution | Status container independen dari prompt cache |
| Tool search | Alat yang ditemukan dimuat sebagai blok tool_reference, menjaga cache prefix |
| Computer use | Kehadiran screenshot mempengaruhi cache messages |
| Text editor | Alat klien standar, tidak ada interaksi caching khusus |
| Bash | Alat klien standar, tidak ada interaksi caching khusus |
| Memory | Alat klien standar, tidak ada interaksi caching khusus |
Pelajari model prompt caching lengkap, termasuk TTL dan pricing.
Muat alat sesuai permintaan tanpa merusak cache Anda.
Jelajahi semua alat yang tersedia dan parameternya.
Was this page helpful?