Chiunque stia portando in produzione agenti AI e soluzioni basate su LLM si scontra quotidianamente con lo stesso, enorme ostacolo: la gestione, la ridondanza e il costo dei token.
Mandare in loop un agente nel terminale o gestire contesti complessi significa spesso sprecare risorse in prompt logorroici, ripetizioni e finestre di contesto sature. La filosofia qui diventa pragmatica:
“Why use many token when few token do trick.”
È esattamente questo il problema che risolve Caveman (getcaveman.dev), uno stack open-source focalizzato sull’efficienza dei token per lo sviluppo agent-native.
Parliamo di uno strumento in grado di tagliare fino al 65% dei token senza sacrificare le capacità del modello, lavorando su cinque livelli architetturali strategici:
L’ecosistema Caveman smontato pezzo per pezzo:
- Caveman Code & Compression: Un terminal agent nativo pensato per lavorare con un “token budget” stringente (compatibile con Claude Code e oltre 30 agenti). Meno parole superflue, stessa efficacia nel codice generato.
- Cavemem (Memory Layer): Un livello di memoria persistente per gli agenti che si interfaccia direttamente tramite MCP (Model Context Protocol). Sfrutta un database SQLite locale con FTS5 e indici vettoriali per richiamare solo ciò che serve davvero, evitando di rinfrescare continuamente l’intero contesto.
- Caveman Proxy (LLM Gateway): Un gateway byte-safe trasparente per comprimere il traffico LLM e ottimizzare il caching dei prefissi e lo spend del calcolo.
- CaveGemma: La dimostrazione di come la compressione possa essere integrata direttamente persino nei pesi dei modelli open-weights (come Gemma).
L’impatto sull’Architettura del Software
Da architetti e sviluppatori, il nostro compito non è solo far funzionare l’AI, ma renderla sostenibile, scalabile ed economicamente efficiente. Strumenti come Caveman dimostrano che il futuro dello sviluppo AI-native non sta nel consumare finestre di contesto sempre più gigantesche, ma nel saper orchestrare, filtrare e comprimere le informazioni in modo intelligente.
Meno overhead, meno latenza, più controllo sui costi di inferenza.
Esempio di utilizzo: Ottimizzazione di un agente di refactoring su una codebase .NET
Ecco un esempio pratico e concreto di come configurare e utilizzare lo stack Caveman nel flusso di lavoro quotidiano, sfruttando il terminale, l’agente di coding e il sistema di memoria (Cavemem) basato su protocollo MCP.
Scenario: Ottimizzazione di un agente di refactoring su una codebase .NET
Immaginiamo di voler utilizzare l’agente del terminale per analizzare e fare il refactoring di una porzione di codice in una codebase complessa, evitando di mandargli ogni volta centinaia di righe di contesto inutile.
1. Installazione globale dei tool
Per prima cosa, installiamo l’agente di sviluppo e il layer di memoria direttamente da npm:
# Installa il terminal coding agent ottimizzato per i token npm install -g @juliusbrussee/caveman-code # Installa il layer di memoria persistente (MCP) npm install -g cavemem
2. Inizializzazione della memoria locale (Cavemem)
Cavemem crea un indice vettoriale e un database SQLite locale (con supporto FTS5) per indicizzare la tua codebase o la documentazione. Invece di inviare intere classi all’LLM in ogni prompt, l’agente interrogherà questo layer tramite MCP per estrarre solo i frammenti pertinenti.
# Indicizza la cartella di progetto corrente (es. i tuoi file C# o React) cavemem index ./src
3. Utilizzo di Caveman Code nel Terminale
Ora possiamo avviare un ciclo di sviluppo autonomo ma con un “token budget” controllato.
Invece di usare i classici client che inviano un flood di dati sul contesto, lanciamo l’interfaccia di pianificazione ed esecuzione di Caveman:
# Avvia l'agente chiedendogli un task specifico caveman-code "Ottimizza le query Entity Framework nel UserRepository eliminando i caricamenti superflui"
Cosa succede dietro le quinte (I 5 layer all’opera):
- Pianificazione (Cave Plan): L’agente non scrive subito codice. Propone prima una serie di “mosse” e ne stima il costo in token/dollari.
- Recupero via MCP: L’agente chiede a Cavemem solo lo schema del database e i metodi specifici del
UserRepository, lasciando il resto dei file fuori dal prompt. - Compressione dell’output: La risposta restituita nel terminale viene ridotta all’osso (sintassi compressa, rimozione di boilerplate e logorrea tipica di modelli come Claude o GPT).
4. Integrazione nel codice (Caveman Proxy / Gateway)
Se invece stai scrivendo una tua applicazione (es. in Node.js/TypeScript) che interroga le API di OpenAI o Anthropic e vuoi tagliare i costi di fatturazione del 65%, ti basta cambiare l’endpoint di base puntando al proxy di Caveman:
import { OpenAI } from 'openai';
const client = new OpenAI({
// Sostituisci l'URL standard con il gateway locale/cloud di Caveman
baseURL: "http://localhost:8080/gateway/openai/v1",
defaultHeaders: {
"x-cave-agent": "support-bot" // Identifica l'agente per il tracciamento dei token
}
});
// Le tue chiamate rimangono identiche, ma il traffico viene compresso a livello di byte
const response = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Aiuta l'utente con l'ordine #1234" }],
});
Il Risultato nel Control Panel:
Se controlli il terminale o la dashboard dopo aver eseguito l’agente, noterai una scomposizione di questo tipo:
- Prompt Tokens totali analizzati: 4,210
- Prefix Caching riutilizzato dal proxy: 2,890
- Token effettivamente fatturati (Billed): 1,320 (-69% di spesa)