Questa pagina copre il caching dei prompt per le definizioni degli strumenti: dove posizionare i breakpoint cache_control, come defer_loading preserva la tua cache e cosa la invalida. Per il caching generale dei prompt, vedi Caching dei prompt.
Posiziona cache_control: {"type": "ephemeral"} sull'ultimo strumento nel tuo array tools. Questo memorizza nella cache l'intero prefisso delle definizioni degli strumenti, dal primo strumento attraverso il breakpoint contrassegnato:
{
"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" }
}
]
}Per mcp_toolset, il breakpoint cache_control si posiziona sull'ultimo strumento nel set. Non controlli l'ordine degli strumenti all'interno di un toolset MCP, quindi posiziona il breakpoint sulla voce mcp_toolset stessa e l'API lo applica allo strumento finale espanso.
Gli strumenti differiti non sono inclusi nel prefisso del prompt di sistema. Quando il modello scopre uno strumento differito attraverso tool search, la definizione viene aggiunta inline come blocco tool_reference nella cronologia della conversazione. Il prefisso rimane intatto, quindi il caching dei prompt è preservato.
Questo significa che l'aggiunta dinamica di strumenti attraverso tool search non interrompe la tua cache. Puoi iniziare una conversazione con un piccolo set di strumenti sempre caricati (memorizzati nella cache), lasciare che il modello scopra strumenti aggiuntivi secondo necessità e mantenere lo stesso cache hit in ogni turno.
defer_loading agisce anche indipendentemente dalla costruzione della grammatica per la modalità ristretta. La grammatica si costruisce dal set completo di strumenti indipendentemente da quali strumenti sono differiti, quindi il caching dei prompt e il caching della grammatica sono entrambi preservati quando gli strumenti si caricano dinamicamente.
La cache segue una gerarchia di prefissi (tools → system → messages), quindi una modifica a un livello invalida quel livello e tutto ciò che viene dopo:
| Modifica | Invalida |
|---|---|
| Modifica delle definizioni degli strumenti | Intera cache (tools, system, messages) |
| Attivazione/disattivazione della ricerca web o citazioni | Cache di system e messages |
Modifica di tool_choice | Cache di messages |
Modifica di disable_parallel_tool_use | Cache di messages |
| Attivazione/disattivazione della presenza di immagini | Cache di messages |
| Modifica dei parametri di thinking | Cache di messages |
Se hai bisogno di variare tool_choice a metà conversazione, considera di posizionare breakpoint della cache prima del punto di variazione.
| Strumento | Considerazioni di caching |
|---|---|
| Ricerca web | L'abilitazione o la disabilitazione invalida le cache di system e messages |
| Web fetch | L'abilitazione o la disabilitazione invalida le cache di system e messages |
| Esecuzione di codice | Lo stato del container è indipendente dalla cache dei prompt |
| Tool search | Gli strumenti scoperti si caricano come blocchi tool_reference, preservando la cache del prefisso |
| Utilizzo del computer | La presenza dello screenshot influisce sulla cache di messages |
| Editor di testo | Strumento client standard, nessuna interazione di caching speciale |
| Bash | Strumento client standard, nessuna interazione di caching speciale |
| Memoria | Strumento client standard, nessuna interazione di caching speciale |
Scopri il modello completo di caching dei prompt, inclusi TTL e prezzi.
Carica gli strumenti su richiesta senza interrompere la tua cache.
Sfoglia tutti gli strumenti disponibili e i loro parametri.
Was this page helpful?