>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Sicurezza
Python

Come Smettere di Nutrire gli LLM e Insegnare agli Agent a Comprendere il Tuo Codice

Situazione familiare: colleghi un agente AI a un progetto e inizia a "allucinare" o a rileggere ripetutamente gli stessi file, bruciando il tuo budget di token. Anche strumenti avanzati come Cursor a volte perdono il filo delle connessioni tra i moduli quando un progetto cresce fino a migliaia di file. Recentemente mi sono imbattuto in Memtrace — un progetto che cerca di risolvere questo problema in modo fondamentale trasformando un codebase in un knowledge graph vivente.

Memtrace — structural memory for AI coding agents

Perché gli agent hanno bisogno di "memoria strutturale"

La maggior parte degli assistenti AI moderni funzionano secondo il principio RAG (Retrieval-Augmented Generation). Cercano frammenti di codice per keyword o similarità vettoriale. Il problema è che il codice non è solo testo — è una gerarchia complessa di chiamate, import e dipendenze. Se un agente non vede il quadro completo, potrebbe fare il refactoring di una funzione in modo tale da rompere i test in un microservizio vicino di cui l'agente non era nemmeno a conoscenza.

Memtrace crea quello che gli sviluppatori chiamano un "knowledge graph bi-temporale". Non si limita a indicizzare il testo — comprende la struttura: quale funzione chiama quale, quali interfacce vengono implementate e come tutto questo è cambiato nel tempo.

Cosa può fare questo strumento

La caratteristica principale del progetto è la velocità e la località. Mentre strumenti simili spendono decine di dollari in chiamate API e ore per l'indicizzazione, Memtrace fa tutto in pochi secondi sulla tua macchina.

Indicizzazione senza LLM

Gli sviluppatori hanno usato Rust e Tree-sitter. Questo permette di parsare 15.000 file in circa 1,5 secondi. Allo stesso tempo, i costi API sono zero perché le reti neurali non vengono usate per costruire il grafo — solo analisi statica deterministica. L'intero processo avviene localmente, quindi il tuo codice non vola sui server di qualcun altro.

Comprensione del contesto tramite MCP

Lo strumento supporta il Model Context Protocol (MCP). Questo significa che può essere "collegato" a Claude Code, Cursor, Windsurf o VS Code con letteralmente un comando. L'agente ottiene accesso a più di 25 strumenti: dalla ricerca di codice "morto" all'analisi del blast radius per le modifiche.

Timeline delle modifiche

Memtrace memorizza la cronologia delle versioni per ogni simbolo. Un agente può chiedere: "Cosa è cambiato nell'ultima settimana?" oppure "Quali funzioni sono diventate troppo complesse dopo l'ultimo merge?" Il sistema usa sei algoritmi di valutazione, inclusi analisi della novità e intensità delle modifiche, per evidenziare le cose più importanti per l'agente.

Confronto con le alternative

Il README contiene una tabella di benchmark interessante. Ad esempio, Mem0 o Graphiti si affidano a chiamate LLM per l'estrazione di entità durante l'indicizzazione. Questo è lento e costoso. Memtrace a confronto sembra una macchina da corsa:

| Operazione | Memtrace | Alternative (Mem0/GitNexus) | |---|---|---| | Indicizzazione 15.000 file | 1,5 sec | Da 30 min a 2 ore | | Costi API | $0 | $10–50 | | Consumo di memoria | 26 MB | ~1 GB |

Ovviamente, vale la pena notare che Memtrace è focalizzato strettamente sul codice, mentre altri sistemi possono lavorare con conversazioni arbitrarie. Ma per i task di sviluppo, questa specializzazione è un enorme vantaggio.

Interni tecnici

Sotto il cofano, il progetto ha uno stack piuttosto serio. Oltre a Rust, usa Tantivy per la ricerca full-text (BM25) e embedding vettoriali per la ricerca semantica. Tutto questo è combinato attraverso Reciprocal Rank Fusion (RRF) per fornire i risultati più rilevanti.

Il supporto per i linguaggi è implementato in modo interessante. Oltre al set standard (TypeScript, Python, Go, Rust), Memtrace comprende il codice infrastrutturale: Terraform, GitHub Actions e persino le policy RLS in PostgreSQL. Vede le connessioni tra lo schema del database e il codice ORM nell'applicazione.

Come usare questo nella pratica

Immagina di dover fare modifiche a una classe base in un enorme monorepo. Di solito, esegui una ricerca in tutto il progetto e speri di non aver perso nulla.

Con Memtrace, l'agente può eseguire il comando get_impact e vedere immediatamente l'albero delle dipendenze. Dirà: "Se cambi questo campo, questi tre endpoint e un worker in un altro modulo si romperanno." Questo elimina il refactoring "alla cieca".

Per iniziare, basta installare il pacchetto globalmente:

npm install -g memtrace

Dopo di che, lo strumento configurerà automaticamente le impostazioni necessarie per Claude o Cursor. Se sei paranoico sulla privacy, puoi disabilitare la telemetria con una variabile d'ambiente MEMTRACE_TELEMETRY=off.

Chi dovrebbe provarlo

Il progetto è attualmente in beta privata, ma l'accesso si sta aprendo gradualmente a gruppi. Secondo me, Memtrace sarà più utile per chi:

  1. Lavora con codebase grandi dove è difficile tenere tutte le connessioni a mente.
  2. Usa attivamente agent AI e vuole ridurre la spesa di token.
  3. È esitante nell'inviare codice sorgente a servizi cloud per l'indicizzazione.

L'unica avvertenza è che la licenza è proprietaria (EULA), anche se promettono di mantenere l'accesso gratuito per gli sviluppatori individuali. Se non riesci ad aspettare per mettere le mani sulla "memoria strutturale" per i tuoi agent, vale la pena controllare il loro Discord o inviare una richiesta sul sito web.

Finora, il progetto sembra un tentativo molto energico per rendere lo sviluppo assistito da AI più prevedibile e più economico. Almeno, la velocità di indicizzazione di 1,5 secondi è qualcosa che ci mancava da molto tempo.

Progetti correlati