Home / Documentazione / Caching dei prompt

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

AdattoMotivo
Prompt di sistemaIdentico byte per byte a ogni chiamata in una sessione
Definizioni di strumenti / funzioniStabili per l'intera esecuzione di un agente e spesso voluminose
Un documento su cui si pongono ripetutamente domandeUn caricamento, molte domande
Esempi few-shotFisso e spesso lungo
Non adattoMotivo
L'ultimo messaggio dell'utenteDiverso ogni volta: mai una corrispondenza nella cache
Qualsiasi contenuto con un timestamp o un ID della richiesta vicino all'inizioUn solo byte modificato all'inizio del prefisso invalida tutto ciò che segue
Prompt breviAl 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.

Serializza in modo deterministico i contenuti memorizzati nella cache. 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.