# Agent cost per task: the formula and where it leaks

Cost per task is the sum of every call, not the price per token: ten steps and two retries are twelve prompts paid again. Here is the sum with the list pages.

> Page: https://ui.eneawork.it/blog/agent-costi-per-task
> Markdown: https://ui.eneawork.it/blog/agent-costi-per-task.md

*2026-11-01*

Il costo per task di un agente è la somma di ogni chiamata del task, non il prezzo del modello per token: dieci passi con due retry sono dodici prompt che ripagano il contesto dodici volte.

I prezzi vengono dai listini ufficiali, letti il 1 novembre 2026: deepseek-flash a 0,15 $ di input senza cache, 0,003 $ con cache e 0,60 $ di output per milione di token fuori orario di punta, da api-docs.deepseek.com/quick_start/pricing; gpt-5.3-codex a 1,75 $ di input e 14 $ di output in modalità standard, 3,50 $ e 28 $ in modalità fast, da platform.openai.com/docs/pricing. Il costo per task della tabella è aritmetica su uno scenario dichiarato, non una misura di produzione: 12 chiamate, cioè 10 passi più 2 retry, 30.000 token di input e 800 di output per chiamata. L'endpoint EneUI ha risposto a tools/list con 3.655 byte in 218 ms, misurati il 1 novembre 2026, e ogni chiamata a /mcp scrive una riga di telemetria mcp_call con nome del tool e piano, verificata in backend/mcp.js lo stesso giorno. Il catalogo dietro conta 111.985 componenti, 1.556 blocchi e 12.808 icone da 1.472 librerie, letti da /api/stats.

## La formula in una riga

node -e "const u={input:360000,output:9600,cached:0};const p={in:0.15,out:0.60,cache:0.003};const c=(u.input-u.cached)/1e6*p.in+u.cached/1e6*p.cache+u.output/1e6*p.out;console.log(c.toFixed(4),'USD per task')"

Il comando stampa 0.0598 USD per task: 360.000 token di input a 0,15 $ per milione più 9.600 di output a 0,60 $. I tre addendi sono sempre gli stessi: input non in cache, input in cache e output. Il campo usage della risposta API porta i primi due separati, e senza quella separazione il conto sbaglia di un ordine di grandezza.

## Quattro scenari, stesso task

La riga con cache hit assume che tutto l'input sia in cache: è il massimo dello sconto, non la norma. Nella pratica una parte del prompt cambia a ogni passo, quindi il risparmio sta fra le due righe. La colonna dei 1.000 task è il costo del task moltiplicato: serve a vedere che una differenza di centesimi diventa una fattura.

## Dove si perde il budget

## Misurare, non stimare

Il conto si fa sui log, non sui preventivi: per ogni chiamata registra modello, token di input, token in cache, token di output, numero di passi e identificativo del task. In EneUI la riga mcp_call porta nome del tool e piano, quindi il costo si attribuisce a un account senza ricostruirlo dagli access log. Se la telemetria non ha l'identificativo del task, il cliente paga una media e tu non sai quale funzione costa.

## Attribuire e preventivare

Con il costo per task misurato, la previsione è una moltiplicazione: costo medio per task per numero di task al mese, più una quota per i task che falliscono. Un agente che chiude il 70% dei task al primo tentativo ha un costo per task riuscito più alto del costo per task, e la differenza è esattamente ciò che si paga per gli errori. Per scegliere il modello con questa metrica la procedura è in un altro articolo; qui interessa il conto di esercizio.

## La limitazione

I listini cambiano e il tasso di cache reale non è quello della tabella: le due righe deepseek-flash sono un limite superiore e inferiore, non due misure. Il conteggio ignora il costo umano della revisione, che su un task di codice può superare quello dei token, e ignora il tempo di attesa, che non è gratis per l'utente. Un conto onesto tiene separati token, revisione e latenza.

## Dove continuare

La scelta del modello con costo per attività riuscita è in valutare un modello per il codice, l'aritmetica delle fasce di prezzo in contesto lungo: costi reali, l'ordine dei passi in orchestrare agenti multi-step. Il catalogo che alimenta gli esempi è in 111.985 componenti e 1.556 blocchi; un record con licenza MIT dichiarata a monte è agent dock di dqnamo.

## FAQ

### Come calcolo il costo di un singolo task?

Somma input e output di ogni chiamata del task, leggendo il campo usage di ogni risposta. Con 12 chiamate da 30.000 token di input e 800 di output, deepseek-flash costa 0,0598 $ senza cache e 0,0068 $ con tutta la cache, ai listini del 1 novembre 2026.

### Perché i retry costano così tanto?

Perché ogni tentativo rimanda il contesto completo, non solo la parte che ha fallito. Un retry su un task da dieci passi aggiunge un passo intero, quindi il 20% di retry non aggiunge il 20% ma circa un quinto del costo totale.

### Posso assumere che tutta l'input sia in cache?

No. La cache colpisce solo il prefisso identico, e basta una data o un elenco in ordine casuale per invalidarla. La riga con cache hit della tabella è il massimo dello sconto, non la norma.

### Il modello più economico costa sempre meno per task?

No. Un modello che sbaglia al primo colpo paga un retry completo, e uno che scrive tre volte tanto sposta il conto sull'output. Il confronto va fatto per task riuscito, non per prezzo per token.

### Come attribuisco il costo a un cliente?

Con una riga di telemetria per chiamata che porta identificativo dell'account, del task e del tool. In EneUI la riga mcp_call registra nome del tool e piano: senza identificativo del task il costo resta una media, non un'attribuzione.
