>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Sicurezza
C

Come Far Lavorare un Agente AI con un Massiccio Codebase Legacy Senza Perdere Contesto o Spendere Troppo

16.677 stelle

Ti suona familiare? Chiedi a Claude o ChatGPT di capire la logica di un vecchio progetto, e inizia a "allucinare" oppure brucia l'intero limite di token cercando di leggere centinaia di file con un semplice grep. Anche agenti moderni come Claude Code spesso si comportano come gattini ciechi quando si tratta di connessioni profonde tra servizi o catene di chiamate complesse.

L'altro giorno mi sono imbattuto nel repository codebase-emory-mcp. È un server MCP (Model Context Protocol) che trasforma il tuo codice in un grafo di conoscenza strutturato. Invece di fornire testo grezzo alla rete neurale, lo strumento costruisce una mappa di funzioni, classi e dipendenze che l'AI può comprendere con mezza parola.

Cosa Non Va nella Ricerca Tradizionale

Quando un agente AI cerca di capire il tuo codice, di solito lo fa in modo brute-force. Esegue ricerche di stringhe, apre i file uno per uno e cerca di tenere tutto a mente. Il problema è che la finestra di contesto non è infinita. Se il progetto è grande, l'agente dimentica rapidamente l'inizio della catena di chiamate o inizia a confondere metodi simili in moduli diversi.

Gli sviluppatori di DeusData sostengono numeri impressionanti: l'uso del loro grafo riduce il consumo di token di 120 volte. Dove un agente normale ha bisogno di elaborare 400.000 token, questo strumento ne richiede solo tremila-quattromila. Non si tratta solo di risparmiare sulle chiamate API—è principalmente una questione di precisione delle risposte.

Cosa Può Fare Questo Motore

Il progetto è scritto in C "puro" e usa SQLite per l'archiviazione dei dati. Questo garantisce una velocità incredibile. L'indicizzazione del kernel Linux (28 milioni di righe di codice) richiede solo tre minuti. Un tipico progetto Django o React viene "digerito" in un paio di secondi.

Ecco alcune caratteristiche che hanno attirato la mia attenzione:

  • Comprensione dell'architettura. Lo strumento vede non solo il testo, ma la struttura. Distingue gli endpoint API, capisce quale funzione chiama quale, e trova persino codice "morto" che nessuno usa.
  • Supporto per 66 linguaggi. Grazie a tree-sitter, il motore comprende quasi tutto—da Python e TypeScript a Rust e COBOL. Inoltre, per C, C++ e Go può inferire i tipi in stile LSP.
  • Visualizzazione. Include un visualizzatore di grafi 3D (opzionale). Puoi letteralmente ruotare il tuo progetto nel browser a localhost:9749 e vedere come sono connessi i moduli.
  • Integrazione con agenti. Con un solo comando install l'utility si configura per Claude Code, Zed, Aider e una dozzina di altri strumenti popolari.

Project knowledge graph visualization
Quel grafo 3D che puoi ruotare nel browser

Come Funziona Sotto il Cofano

Interessantemente, gli autori hanno deciso di non incorporare un LLM proprietario per tradurre le query in comandi di database. Hanno ragionato saggiamente: dal momento che stai già parlando con un agente intelligente (come Claude 3.5 Sonnet), lascia che sia lui a gestire la traduzione.

Chiedi: "Chi chiama il metodo ProcessOrder?". L'agente capisce l'intento e chiama lo strumento trace_call_path. Il motore attraversa il grafo in millisecondi e restituisce una risposta strutturata. Di conseguenza, l'AI vede una catena chiara invece di dover indovinare da indizi indiretti.

SQLite in modalità WAL viene utilizzato per l'archiviazione e i dati vengono compressi con l'algoritmo LZ4. Questo permette di mantenere l'indice di progetti anche molto grandi direttamente in memoria durante il funzionamento senza stressare il disco.

Vantaggi Pratici per gli Sviluppatori

Il caso d'uso più ovvio è l'onboarding a un nuovo progetto o il refactoring di uno esistente. Invece di costruire manualmente diagrammi nella tua testa, dai all'agente accesso a codebase-memory-mcp.

Per esempio, puoi chiedere: "Trova tutti gli endpoint che accettano UserID ma non controllano i diritti di accesso". Lo strumento troverà le connessioni tra le route HTTP e i metodi di validazione che una ricerca testuale normale perderebbe.

Un'altra funzionalità interessante è detect_changes. Analizza il tuo git diff corrente e mostra il "blast radius": quali funzioni e moduli saranno interessati dalle tue modifiche. È un'ottima assicurazione prima di fare commit.

Come Provarlo

L'installazione è semplicissima—niente Docker o dipendenze extra. Per macOS e Linux, basta un solo comando da terminale:

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash

Se vuoi la visualizzazione subito, aggiungi il flag --ui. Dopo l'installazione, riavvia semplicemente il tuo agente AI e digli: "Indicizza questo progetto".

Ne Vale la Pena?

Il progetto sembra molto promettente. Quello che mi piace particolarmente è che non è un altro servizio cloud, ma un'utility locale. Tutto il tuo codice resta sulla tua macchina—nessun dato viene inviato a server esterni per l'indicizzazione.

Certo, ci sono delle sfumature. La qualità dell'analisi per alcuni linguaggi come Haskell è ancora inferiore rispetto a Python o Go mainstream. Ma l'elenco delle tecnologie supportate e la velocità di elaborazione compensano ampiamente questi inconvenienti.

Se usi attivamente l'AI nel tuo sviluppo quotidiano e senti che sta iniziando a "inciampare" su compiti complessi, questo strumento potrebbe essere quell'anello mancante. Come minimo, la possibilità di vedere il tuo progetto come un grafo 3D vale sicuramente dieci minuti di tempo di installazione.

Progetti correlati