Caching dei prompt
Rileggi un prefisso stabile a una frazione del prezzo di input: cosa memorizzare nella cache, cosa escludere e come verificare che abbia funzionato.
Il caching dei prompt memorizza un prefisso della richiesta, così le chiamate successive che lo condividono vengono fatturate a una tariffa di input ridotta. Per qualsiasi richiesta con un ampio preambolo stabile — un prompt di sistema, schemi degli strumenti, un documento su cui si pongono domande — è la modifica che offre il maggior beneficio.
Cosa si presta bene al caching
| Adatto | Motivo |
|---|---|
| Prompt di sistema | Identico byte per byte a ogni chiamata in una sessione |
| Definizioni di strumenti / funzioni | Stabili per l'intera esecuzione di un agente e spesso voluminose |
| Un documento su cui si pongono ripetutamente domande | Un caricamento, molte domande |
| Esempi few-shot | Fisso e spesso lungo |
| Non adatto | Motivo |
|---|---|
| L'ultimo messaggio dell'utente | Diverso ogni volta: mai una corrispondenza nella cache |
| Qualsiasi contenuto con un timestamp o un ID della richiesta vicino all'inizio | Un solo byte modificato all'inizio del prefisso invalida tutto ciò che segue |
| Prompt brevi | Al di sotto della lunghezza minima memorizzabile nella cache, quindi non offrono alcun vantaggio |
Contrassegnare un prefisso
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": [{
"type": "text",
"text": "<long stable instructions...>",
"cache_control": {"type": "ephemeral"}
}],
"messages": [{"role": "user", "content": "Question that changes every call"}]
}
Tutto ciò che precede il blocco contrassegnato, incluso il blocco stesso, diventa il prefisso memorizzato nella cache. L'ordine conta: inserisci prima i contenuti stabili e per ultimi quelli variabili.
Verificare che funzioni
Controlla usage oggetto. Una corrispondenza nella cache riporta i token tra quelli letti dalla cache anziché tra i normali token di input. Se il conteggio dei token letti dalla cache rimane a zero nelle chiamate ripetute, il prefisso non è realmente identico: una causa comune è un timestamp, un ID di sessione o un ordinamento non deterministico delle chiavi JSON nel preambolo.
json.dumps(obj) senza sort_keys=True può riordinare le chiavi tra un'esecuzione e l'altra, modificando i byte e facendoti perdere ogni riscontro nella cache senza alcun avviso.Dove conta di più
Gli strumenti agentici inviano nuovamente lo stesso prompt di sistema e gli stessi schemi degli strumenti a ogni turno. In una sessione di 50 turni, quel preambolo viene addebitato 50 volte senza caching e circa una volta con il caching.