Uso degli strumenti con la cache dei prompt
Memorizza nella cache le definizioni degli strumenti tra i turni e comprendi cosa invalida la tua cache.
Questa pagina tratta il "prompt caching" (cache 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 la cache dei prompt in generale, consulta Cache dei prompt.
cache_control sulle definizioni degli strumenti
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 fino al 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 viene applicato all'ultimo strumento del 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 all'ultimo strumento espanso.
Le voci dei toolset computer use e browser use seguono la stessa regola: posiziona cache_control sulla voce del toolset stessa, e il breakpoint viene applicato dopo la definizione del toolset. Non è accettato all'interno della voce configs di un membro, perché i membri del toolset vengono caricati come un'unica definizione. All'interno di una azione batch, un marcatore cache_control su uno qualsiasi dei blocchi tool_use o tool_result dei membri del turno è accettato e ha effetto alla fine di quel batch, quindi più marcatori in un unico batch agiscono come un singolo breakpoint. Ogni marcatore conta comunque ai fini del limite di quattro breakpoint per richiesta, quindi usane uno per turno.
defer_loading e preservazione della cache
Gli strumenti differiti non sono inclusi nel prefisso del prompt di sistema. Quando il modello scopre uno strumento differito tramite la ricerca degli strumenti, la definizione viene aggiunta inline come blocco tool_reference nella cronologia della conversazione. Il prefisso rimane intatto, quindi la cache dei prompt viene preservata.
Ciò significa che aggiungere strumenti dinamicamente tramite la ricerca degli strumenti non invalida 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 inoltre indipendentemente dalla costruzione della grammatica per la modalità strict. La grammatica viene costruita a partire dal toolset completo indipendentemente da quali strumenti siano differiti, quindi sia la cache dei prompt sia la cache della grammatica vengono preservate quando gli strumenti vengono caricati dinamicamente.
Cosa invalida la tua cache
La cache segue una gerarchia di prefissi (tools → system → messages), quindi una modifica a un livello invalida quel livello e tutto ciò che segue:
| Modifica | Invalida |
|---|---|
| Modifica delle definizioni degli strumenti | Intera cache (tools, system, messages) |
| Attivazione o disattivazione della ricerca web o delle citazioni | Cache di system e messages |
Modifica di tool_choice | Cache di messages |
Modifica di disable_parallel_tool_use | Cache di messages |
| Attivazione o disattivazione della presenza di immagini | Cache di messages |
| Modifica dei parametri di thinking | Sempre la cache di messages; anche le cache di tools e system sui modelli che elaborano la configurazione del thinking prima di esse (dettagli) |
Modifica di output_config.effort | Come per i parametri di thinking; impostare esplicitamente il valore predefinito del modello equivale a ometterlo |
I risultati degli strumenti server vengono memorizzati nella cache automaticamente
Quando la tua richiesta ha la cache dei prompt abilitata e Claude usa uno strumento server come la ricerca web, il web fetch o l'esecuzione di codice, l'API posiziona automaticamente un breakpoint della cache sul risultato dello strumento server prima di eseguire l'iterazione successiva del ciclo agentico. Questo consente alle iterazioni successive all'interno della stessa richiesta di leggere il prefisso crescente dalla cache invece di rielaborarlo.
Questo breakpoint automatico usa sempre il TTL predefinito di 5 minuti, indipendentemente da qualsiasi TTL impostato sui tuoi marcatori cache_control. Nel campo usage della risposta, queste scritture compaiono sotto cache_creation.ephemeral_5m_input_tokens, quindi potresti vedere scritture nella cache da 5 minuti anche quando ogni cache_control che imposti usa un TTL di 1 ora.
Questo comportamento si applica solo quando la tua richiesta ha già almeno un marcatore cache_control. Le richieste senza cache dei prompt non ricevono il breakpoint automatico.
Tabella delle interazioni per strumento
| Strumento | Considerazioni sulla cache |
|---|---|
| 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 |
| Ricerca degli strumenti | Gli strumenti scoperti vengono caricati come blocchi tool_reference, preservando la cache del prefisso |
| Computer use | La presenza di screenshot influisce sulla cache di messages; cache_control va sulla voce del toolset (vedi cache_control sulle definizioni degli strumenti) |
| Browser use | La presenza di screenshot influisce sulla cache di messages; cache_control va sulla voce del toolset (vedi cache_control sulle definizioni degli strumenti) |
| Editor di testo | Strumento client standard, nessuna interazione speciale con la cache |
| Bash | Strumento client standard, nessuna interazione speciale con la cache |
| Memory | Strumento client standard, nessuna interazione speciale con la cache |
Prossimi passi
Scopri il modello completo della cache dei prompt, inclusi TTL e prezzi.
Carica gli strumenti su richiesta senza invalidare la tua cache.
Esplora tutti gli strumenti disponibili e i loro parametri.
Was this page helpful?