Il Drenaggio Nascosto di Token di Claude Code: il 20% della Spesa per Riepiloghi di Stato
Il Drenaggio Nascosto di Token di Claude Code: la Riga di Stato di 3 Parole che Costa agli Sviluppatori il 20% del Loro Budget AI
Nel mondo dello sviluppo assistito dall'AI, ogni token conta. Ecco perché una recente scoperta di Flamerix AI ha suscitato onde nella comunità degli sviluppatori: Claude Code, il potente agente di codifica di Anthropic, sta silenziosamente consumando fino al 20% del suo budget di token per una funzionalità apparentemente innocua: gli aggiornamenti di stato di 3 parole che appaiono nel pannello degli agenti in background.
Non si tratta di una piccola inefficienza. Secondo dati di telemetria dettagliati, il sistema `agent_summary` ora supera persino la conversazione principale in termini di costo, consumando più richieste API delle interazioni principali che gli sviluppatori vedono effettivamente. Per i team che eseguono automazione pesante o più agenti in background, questo rappresenta un drenaggio significativo e invisibile sia sui limiti di velocità dell'abbonamento che sulla spesa API.
Il Problema: un Timer che Costa una Fortuna
Ogni 30 secondi, per ogni agente in background, Claude Code invia la trascrizione completa di quell'agente al proprio modello, tipicamente il premium Opus, con una singola istruzione: "descrivi la tua azione più recente in 3-5 parole." Il risultato è una piccola riga di stato nel pannello degli agenti, che non raggiunge mai l'utente né la conversazione principale. È puramente estetico.
L'anomalia è stata rilevata per la prima volta tramite esportazioni OpenTelemetry, dove raggruppando le richieste API per `query_source` è emerso che `agent_summary` costa più della conversazione principale stessa. I dati sono chiari:
- 16,4% di tutta la spesa di Claude Code attribuita ai riepiloghi degli agenti (contro il 15,7% per le conversazioni principali)
- 19,7% di tutte le richieste API, circa 1 su 5
- Un sorprendente rapporto 9.000:1 di token in input rispetto a token in output, il che significa che il modello legge una trascrizione enorme per produrre quasi nulla
Dalla versione 2.1.232 (agosto 2026), questa funzionalità è abilitata per impostazione predefinita senza alcuna impostazione ufficiale per disabilitarla. L'opzione documentata dell'SDK `agentProgressSummaries` è un falso indizio: il suo valore predefinito è `false` ma viene sovrascritto da un'espressione OR nel codice, con ogni percorso che lo imposta a `true`.
La Soluzione: un Hook di Preload per Bun
Flamerix AI ha rilasciato una soluzione non ufficiale ma efficace: uno script di preload per Bun che intercetta il timer responsabile dell'attivazione di queste costose richieste di riepilogo. Lo script di circa 80 righe funziona avvolgendo le funzioni `setTimeout` e `setInterval`.
Quando il testo sorgente di un callback contiene la stringa di ancoraggio del riepilogatore, la riga di log `[AgentSummary] Timer fired`, l'hook restituisce un handle di timer inerte invece di armare quello reale. Ogni altro timer passa attraverso senza modifiche, garantendo che non ci siano danni collaterali alle operazioni normali.
La scelta di un hook per timer rispetto a metodi più semplici è intenzionale. Il modulo riepilogatore viene fornito come bytecode Bun precompilato, rendendo impossibile la modifica diretta del codice. Tuttavia, `Function.prototype.toString` restituisce ancora il sorgente di un callback anche dal bytecode, fornendo il punto di hook necessario.
Come Implementare la Soluzione
Per gli sviluppatori che desiderano recuperare il loro budget di token, l'implementazione è semplice:
- Scarica lo script `no-agent-summary.js` in una posizione stabile
- Imposta la variabile d'ambiente `BUN_OPTIONS` a livello globale per includere `--preload /percorso/assoluto/no-agent-summary.js`
- Riavvia il demone di Claude Code con `claude daemon stop --any`
Lo script supporta diverse opzioni di configurazione tramite variabili d'ambiente. `CC_AGENT_SUMMARY_MODE` ha valore predefinito `off` ma può essere impostato a `pass` per test A/B. `CC_AGENT_SUMMARY_LOG` abilita la registrazione, e `CC_AGENT_SUMMARY_MARKER` scrive un file marker al caricamento per verifica.
Perché Non Esiste un'Impostazione Ufficiale
Le scelte progettuali di Anthropic rendono particolarmente frustrante l'assenza di un interruttore di spegnimento. L'azienda ha implementato diversi livelli di offuscamento:
- L'interruttore documentato lo accende solo: l'opzione dell'SDK è di fatto un no-op per la disabilitazione
- L'intervallo è controllato dal server, bloccato tra 30 e 240 secondi senza alcun valore che disabiliti il timer
- Variabili d'ambiente ovvie non funzionano: `DISABLE_NON_ESSENTIAL_MODEL_CALLS` non esiste nel binario, mentre `CLAUDE_CODE_FORK_SUBAGENT=0` uccide la funzionalità solo disabilitando completamente i subagenti fork
- La memorizzazione nella cache delle richieste la rende più economica, non economica: il 98% delle chiamate legge dalla cache, ma il 2% di cache fredda comporta un terzo del costo
- Gli strumenti di costo la perdono: queste richieste non vengono scritte nei log di sessione, apparendo solo nelle esportazioni OpenTelemetry
È interessante notare che la versione 2.1.310 include una modalità `short` più economica (circa 2k token di note invece della trascrizione completa), ma è disattivata per impostazione predefinita e solo i flag del server possono abilitarla.
Il Quadro Più Ampio: Efficienza degli Agenti di Codifica AI
Questa scoperta arriva in un momento di crescente attenzione all'efficienza degli strumenti di codifica AI. Uno studio recente ha scoperto che l'infrastruttura di un agente di codifica può triplicare il suo costo senza migliorare l'accuratezza. La ricerca ha mostrato Claude Code che invia 16.581 token di contesto fisso nei prompt di sistema e negli schemi degli strumenti alla prima chiamata API, rispetto a 7.025 per OpenCode e solo 829 per mini-SWE-agent.
Poiché gli agenti reinviano le trascrizioni delle conversazioni a ogni turno, quel sovraccarico iniziale si moltiplica attraverso i passaggi. Il problema di agent_summary aggrava questo aspetto aggiungendo un altro livello di chiamate ridondanti che non servono a nessuno scopo funzionale.
Implicazioni per la Sicurezza e la Strada da Percorrere
Lo spreco di token ha anche implicazioni per la sicurezza. Il Threat Hunter Team di Symantec ha recentemente identificato servizi di relay non autorizzati che riutilizzano Claude Code e OpenAI Codex, spesso riscrivendo le configurazioni per disabilitare completamente il sandboxing. Sebbene non direttamente correlato, la complessità del comportamento runtime di Claude Code rende più difficile rilevare tali manipolazioni.
Per ora, la soluzione della comunità funziona bene. Flamerix AI segnala zero richieste `agent_summary` dall'implementazione dell'hook, senza che altre query collaterali crescano per sostituirle. Il cambiamento visibile è limitato al fatto che lo stato del pannello per agente smette di aggiornarsi: un piccolo prezzo per recuperare il 15-20% del tuo budget di codifica AI.
In Conclusione
Il drenaggio nascosto di token di Claude Code è una storia ammonitrice sull'opacità dei costi degli strumenti AI. Mentre lo script di preload per Bun offre una soluzione efficace, il problema di fondo rimane: gli sviluppatori meritano trasparenza su ciò che i loro strumenti AI fanno con i loro token. Fino a quando Anthropic non fornirà un interruttore ufficiale, la soluzione della comunità è la migliore difesa contro questo silenzioso killer del budget.
Testato su Linux con le versioni di Claude Code da 2.1.257 a 2.1.312, la soluzione è affidabile ma dovrebbe essere riverificata dopo ogni aggiornamento, poiché Anthropic potrebbe cambiare le stringhe di ancoraggio o l'implementazione del timer in qualsiasi momento.
Related News

Primo umanista ottiene esenzione religiosa dall'IA in Kentucky

Vulnerabilità SSH di Tailscale Espongono Rischi di Escalation dei Privilegi, Patch Imminenti

La Legge di Brooks nell'Era dell'AI: Perché Più Agenti Significa Fallimento Più Veloce

Cloudflare risolve la perdita della cache KV GLM-5.3 che esponeva 155 risposte

Anthropic presenta il Modulo S-1 per l'IPO, punta alla quotazione al Nasdaq con il ticker 'ANT'

