Home / Documentazione / Controllo dei costi

Controllo dei costi

Dove vengono effettivamente consumati i token in un carico di lavoro con agenti e le quattro leve che incidono sui costi.

Se hai usato un agente di programmazione per un'intera giornata lavorativa, hai visto il conto. I cicli agentici consumano token in un modo che non si verifica mai nelle normali chat: ogni file letto, ogni risultato degli strumenti e ogni diff entra nel contesto e viene reinviato al turno successivo.

I token di output sono quelli costosi

Per ogni modello di punta, l'output costa 4–5 volte l'input. Un modello che ragiona ad alta voce nella risposta finale consuma denaro più rapidamente di uno che risponde in modo conciso. Limita max_tokens in modo consapevole e preferisci modelli concisi per le attività di routine.

Modello$/M in ingresso$/M in uscitaRapporto
claude-opus-4-8$3$155×
claude-sonnet-4-6$0.90$4.505×
claude-haiku-4-5$0.40$25×
gemini-3-flash$0.20$1.206×

Le quattro leve

  1. Instrada in base all'attività. Classificazione, estrazione e instradamento non richiedono Opus: Haiku li esegue a circa un settimo del prezzo. Riserva il modello di punta alle attività che richiedono molto ragionamento.
  2. Caching dei prompt. I prompt di sistema stabili e le definizioni degli strumenti vengono riletti dalla cache a una frazione del prezzo dell'input. Per gli agenti, questa è la leva più importante: vedi Caching dei prompt.
  3. Riduci il contesto a ogni turno. Non reinviare l'intera trascrizione; conserva i turni recenti insieme a un riepilogo aggiornato. La crescita illimitata del contesto è ciò che trasforma una sessione da $2 in una da $20.
  4. Limita il ciclo. Imposta un limite rigido al numero di passaggi nelle esecuzioni autonome, in modo che un agente bloccato non possa continuare all'infinito.

Stimare prima dell'esecuzione

IN_RATE  = {class="s">"claude-opus-4-8": 3.0,  class="s">"claude-sonnet-4-6": 0.9, class="s">"claude-haiku-4-5": 0.4}
OUT_RATE = {class="s">"claude-opus-4-8": 15.0, class="s">"claude-sonnet-4-6": 4.5, class="s">"claude-haiku-4-5": 2.0}

def cost(model, tok_in, tok_out):
    return tok_in / 1e6 * IN_RATE[model] + tok_out / 1e6 * OUT_RATE[model]

print(cost(class="s">"claude-opus-4-8",   20_000, 2_000))   class=class="s">"c"># 0.09
print(cost(class="s">"claude-sonnet-4-6", 20_000, 2_000))   class=class="s">"c"># 0.027
print(cost(class="s">"claude-haiku-4-5",  20_000, 2_000))   class=class="s">"c"># 0.012

La stessa attività con 20K in input e 2K in output costa 7.5 volte di più con Opus che con Haiku. Se l'attività è la classificazione, quel costo aggiuntivo non offre alcun vantaggio.

Misurare dopo

Ogni risposta contiene un usage oggetto. Registralo associandolo a un ID della richiesta e a un tipo di attività: senza questi dati, l'ottimizzazione dei costi si basa su supposizioni. La dashboard del gateway mostra l'utilizzo per modello, ma solo i tuoi log sanno *perché* è stata effettuata una richiesta.

L'errore costoso più comune non è la scelta del modello: è reinviare una trascrizione sempre più lunga a ogni turno di una lunga sessione dell'agente. Risolvi prima la crescita del contesto, poi ottimizza i modelli.