Passa al contenuto principale

Riduci il consumo di token (e i costi)

Intermedio

Paghi per ogni token in ingresso e per ogni token in uscita. La buona notizia: la maggior parte dei carichi di lavoro reali porta con sé peso morto — system prompt gonfi, contesto rinviato di continuo, risposte prolisse, il modello sbagliato per un compito facile. Eliminalo e il conto cala senza intaccare la qualità. Questa pagina è il toolkit per power user, ordinato grossomodo per leva.

What you'll learn
  • Dove i token si disperdono davvero — input vs output vs contesto riutilizzato
  • Lo stile stringato / 'caveman': cosa risparmia davvero, e dove si ritorce contro
  • Prompt caching e batching per risparmi strutturali a parità di dollaro
  • Dimensionare correttamente il modello (Haiku per i compiti economici) e l'output strutturato al posto della prosa
  • Misurare prima di andare in produzione con l'endpoint di conteggio dei token

Prima di tutto, trova dove finiscono i token

Prima di ottimizzare, suddividi la spesa in tre secchi — ognuno ha un rimedio diverso:

I tre secchi dei token
Premi Invio o Spazio per girare la carta. Usa le frecce sinistra e destra per spostarti tra le carte.Termine mostrato.
1 / 3

I rimedi si allineano in modo pulito: metti in cache il contesto riutilizzato, sfoltisci l'input, accorcia l'output, dimensiona correttamente il modello e raggruppa in batch ciò che non è urgente.

Lo stile stringato / "caveman" (risparmi sull'output)

La mossa virale è dire a Claude di eliminare il riempitivo e rispondere a frammenti — resa popolare dalla skill open-source per Claude Code caveman (con licenza MIT, di Julius Brussee), il cui slogan è "why use many token when few token do trick". Impone frasi brevi, verbi all'infinito e zero convenevoli.

La conclusione onesta dai test indipendenti: lo stile non costa nulla sul contenuto (codice, termini tecnici, JSON restano esatti) ma i risparmi dipendono interamente dalla tua baseline. Se i tuoi prompt dicono già "sii conciso", gran parte del guadagno è già incassata. Le riduzioni grosse (40–65%) si vedono nelle risposte ricche di spiegazioni; l'estrazione strutturata si muove a malapena.

Blocco di istruzioni snello — incollalo nel tuo system prompt

Answer terse. Cut filler, hedging, and pleasantries.
Drop articles (a/an/the) and softeners (just, really, basically, actually).
No preamble, no restating the question, no "happy to help."
Fragments are fine. Keep technical terms and code blocks exact.
Pattern per point: [thing] [action] [reason]. Next step if any.
Pro tip
  • Metti la regola stringata una sola volta nel system prompt, non in ogni turno dell'utente — ripeterla ti fa ripagare il costo dell'input a ogni chiamata.
  • Non comprimere mai codice, identificatori, JSON o numeri. Comprimi solo la prosa.
  • 'Be concise. Return JSON only.' è di per sé circa il 60% del risparmio di output ottenibile — scrivilo prima di ricorrere a trucchi più sofisticati.
Watch out
  • Lo stile stringato riduce solo l'OUTPUT. Non fa nulla per un system prompt da 20k token che rinvii a ogni chiamata — quello è un problema di input/caching.
  • Sui task con extended thinking, i token di ragionamento non sono toccati; riduci solo la risposta finale visibile.

Comprimi l'output dei tool prima che rientri nel contesto (RTK)

Caveman riduce ciò che Claude scrive. La perdita speculare nelle sessioni agentiche è ciò che Claude rilegge: ogni git status, npm test, ls -la o log di build che un coding agent esegue viene incanalato — header, barre di progresso e tutto il resto — dritto nella finestra di contesto come token di input al turno successivo. In una sessione lunga di Claude Code quel rumore di osservazione spesso supera il system prompt.

rtk ("Rust Token Killer", Apache-2.0, presente in homebrew-core) è un proxy CLI mirato esattamente a questo. rtk init -g installa un hook PreToolUse di Claude Code sul tool Bash (rtk hook claude) che riscrive in modo trasparente ogni comando in rtk <command> e comprime il suo output — eliminando header e rumore visivo, raggruppando righe simili, deduplicando le ripetizioni con contatori e troncando la ridondanza — prima che raggiunga il modello.

Installa RTK e collega l'hook globale (macOS)

brew install rtk          # see the repo for cargo / other installers
rtk init -g --hook-only   # PreToolUse(Bash) hook only, no RTK.md file
# undo anytime: rtk init -g --uninstall

Il flag --hook-only conta per il budget dei token: il rtk init di default scrive anche un file di istruzioni RTK.md che viene caricato in ogni sessione — un costo di input fisso che in parte combatte i risparmi. Hook-only mantiene la compressione dell'output e non aggiunge nulla al prefisso. Riavvia Claude Code dopo rtk init -g perché l'hook venga caricato.

Pro tip
  • RTK e caveman sono complementari, non ridondanti: caveman comprime l'OUTPUT del modello, RTK comprime l'INPUT dei risultati dei tool (le osservazioni reimmesse a ogni turno). Impilarli copre entrambe le direzioni.
  • L'hook scatta a ogni chiamata Bash e riscrive in modo trasparente — non cambi il modo in cui scrivi i prompt.
  • Misura con la bolletta reale, non con il README. Se le tue sessioni sono povere di comandi shell, RTK ha poco da comprimere — il suo guadagno scala con quanto è rumoroso l'output dei tuoi tool.

Metti in cache il prefisso riutilizzato (risparmi sull'input)

Se molte chiamate condividono un grande blocco immutabile — un system prompt lungo, un catalogo di tool, un documento di riferimento — il prompt caching lo elabora una volta e lo riutilizza a una frazione del prezzo dell'input a ogni chiamata successiva. È il singolo cambiamento strutturale a più alta leva per i carichi di lavoro di chat e agent, perché ripaga a ogni turno.

L'unica regola: il prefisso in cache deve essere identico byte per byte tra le chiamate. Un timestamp vagante o una lista di tool riordinata vicino all'inizio fa silenziosamente crollare a zero il tuo hit rate. La meccanica completa, lo snippet cache_control da copiaincollare e come verificare gli hit si trovano in Prompt Caching e ottimizzazione dei costi.

Guided walkthrough1 of 3
  1. Sposta il system prompt, i tool e i documenti in cima; tieni alla fine il turno mutevole dell'utente.

Sfoltisci il contesto che invii

La cache riutilizza il contesto a basso costo, ma il token più economico è quello che non invii mai. Verifica cosa c'è davvero nella finestra:

  • Sfoltisci il system prompt. I blocchi di istruzioni lunghi accumulano scorie. Taglia gli esempi che non si guadagnano più i loro token; tieni un esempio forte invece di cinque mediocri.
  • Recupera, non scaricare. Invece di incollare un intero documento, recupera solo i passaggi pertinenti (RAG). Inviare un PDF di 50 pagine per rispondere a una sola domanda è lo spreco più comune.
  • Compatta le sessioni lunghe. Quando una conversazione cresce, sostituisci i turni vecchi con un breve riepilogo progressivo invece di trascinarti dietro ogni messaggio per sempre. La cronologia è fatta di token di input che ripaghi a ogni chiamata.
  • Dimensiona correttamente il catalogo dei tool. Ogni definizione di tool è fatta di token di input a ogni richiesta. Esponi solo i tool di cui il compito attuale ha bisogno.
  • Comprimi i file di memoria statici. CLAUDE.md e le note di memoria sono input riutilizzato che ripaghi a ogni sessione. Riscriverli in prosa "caveman" stringata (per esempio con il comando caveman-compress del plugin caveman) taglia una fetta — ma aspettati cifre a singola cifra su file già snelli: una passata pratica su un CLAUDE.md compatto di ~350 parole ha tagliato solo circa il 10%. La leva è reale ma piccola; non sacrificare la chiarezza delle istruzioni nella tua configurazione globale per inseguirla.

Dimensiona correttamente il modello

Non pagare le tariffe di Opus per un compito da Haiku. Classificazione, estrazione, formattazione semplice e routing di solito girano benissimo sul modello più piccolo a una frazione del prezzo per token. Riserva i modelli più grandi per i ragionamenti davvero difficili e valuta il routing: un modello economico gestisce la maggioranza facile, scalando solo i casi difficili. Vedi Scegliere un modello e Token, contesto e prezzi per i compromessi.

Preferisci l'output strutturato alla prosa

Chiedere JSON (o un altro schema stretto) invece di un paragrafo esplicativo taglia i token di output e elimina le congetture di parsing a valle. Dire a Claude di restituire solo un oggetto compatto come {"label": ..., "score": ...} genera una frazione dei token di una risposta chiacchierona — e salti del tutto il preambolo "Ecco il risultato:". Dettagli in Output strutturato.

Raggruppa in batch ciò che non è urgente

Per il lavoro offline in cui non ti serve una risposta in pochi secondi — eval, classificazione di massa, etichettatura di dataset, riassunto di un archivio — la Message Batches API di Anthropic esegue le richieste in modo asincrono con uno sconto del 50% sia sui token di input che di output, con risultati restituiti tipicamente entro 24 ore.

Combina questo con il caching e un modello dimensionato correttamente e lo sconto complessivo su un grande lavoro offline è drastico.

Misura — non tirare a indovinare

Ottimizza contro i numeri, non contro le sensazioni. L'endpoint di conteggio dei token di Anthropic restituisce il conteggio esatto dei token di input per una richiesta prima di inviarla — stessa forma di una chiamata Messages, ed è gratuito (con rate limit). Usalo per confrontare un prompt gonfio con uno sfoltito, per prendere decisioni di routing del modello e per tenere i prompt entro la finestra di contesto.

Conta i token prima di inviare (SDK Python)

import anthropic

client = anthropic.Anthropic()

resp = client.messages.count_tokens(
  model="claude-opus-4-8",
  system="You are a scientist",
  messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(resp.input_tokens)  # exact input count, no charge for counting
Pro tip
  • Non usare il tokenizer di un altro modello (es. tiktoken) — i conteggi differiscono per famiglia di modelli. Usa l'endpoint di Anthropic.
  • I tokenizer più recenti possono produrre circa il 30% di token in più per lo stesso testo rispetto ai modelli più vecchi — riconta quando migri, non riutilizzare vecchie stime.
  • Leggi input_tokens, cache_read_input_tokens e output_tokens dal campo usage della risposta per confermare che i risparmi siano arrivati in produzione.

Vedi Token, contesto e prezzi per le regole di conteggio e la formula di stima dei costi.

Un prima/dopo, dall'inizio alla fine

Un assistente di triage del supporto esegue lo stesso system prompt da 4.000 token + catalogo di tool su ogni ticket e scrive una risposta chiacchierona da 600 token.

Guided walkthrough1 of 4
  1. ~4.000 token di input rinviati a prezzo pieno a ogni chiamata + ~600 token di output prolisso, su un modello grande. Niente in cache, sincrono, risposte in prosa.

Ogni leva è moltiplicativa: input in cache × modello più piccolo × output più stringato × sconto batch si compone in una riduzione totale ampia — mentre la qualità della risposta su questo compito facile resta invariata. Misura ogni passo con count_tokens così puoi dimostrare il guadagno invece di darlo per scontato.

Mettiti alla prova

0/4
  1. Lo stile 'caveman' / stringato riduce principalmente quali token?
  2. Rinvii lo stesso system prompt da 10k token a ogni chiamata. Il rimedio migliore?
  3. Quale carico di lavoro è il più adatto allo sconto del 50% della Message Batches API?
  4. Come dovresti verificare che una modifica al prompt abbia davvero risparmiato token?
Key takeaways
  • Suddividi la spesa in input, output e contesto riutilizzato — ogni secchio ha un rimedio diverso.
  • Lo stile stringato/'caveman' taglia solo l'output; i guadagni sono grossi sulla prosa, piccoli sui task strutturati già concisi.
  • Metti in cache il prefisso stabile (identico byte per byte) per risparmi sull'input a parità di dollaro a ogni chiamata.
  • Sfoltisci il contesto, dimensiona correttamente il modello e preferisci JSON alla prosa — guadagni economici e cumulativi.
  • Raggruppa in batch il lavoro non urgente per uno sconto del 50%, e misura sempre con count_tokens invece di tirare a indovinare.

Fonti e approfondimenti

Avanti