>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Beveiliging
C

Hoe je een AI-agent laat werken met een enorm legacy-codebase zonder context of geld te verliezen

16.677 sterren

Herkenbaar? Je vraagt Claude of ChatGPT om de logica van een oud project te achterhalen, en het begint te "hallucineren" of verbrandt simpelweg zijn volledige tokenlimiet door honderden bestanden te lezen met plain grep. Zelfs moderne agents zoals Claude Code gedragen zich vaak als blinde kittens als het gaat om diepe verbindingen tussen services of complexe call chains.

De andere dag stuitte ik op de codebase-emory-mcp repository. Het is een MCP (Model Context Protocol) server die je code transformeert naar een gestructureerde kennisgraaf. In plaats van rauwe tekst aan het neurale netwerk te voeren, bouwt het hulpmiddel een kaart van functies, klassen en afhankelijkheden die AI met een half woord begrijpt.

Wat is er mis met gewone zoekopdrachten

Wanneer een AI-agent probeert je code te begrijpen, doet het dat meestal op de brute-force manier. Het voert string-zoekopdrachten uit, opent bestanden één voor één, en probeert het allemaal in zijn hoofd te houden. Het probleem is dat het contextvenster niet oneindig is. Als het project groot is, vergeet de agent snel het begin van de call chain of begint het vergelijkbare methoden in verschillende modules door elkaar te halen.

De ontwikkelaars van DeusData claimen indrukwekkende cijfers: het gebruik van hun graaf vermindert tokenverbruik met 120 keer. Waar een gewone agent 400.000 tokens moet verwerken, heeft dit hulpmiddel maar drie tot vierduizend nodig. Dit gaat niet alleen om geld besparen op API-aanroepen—het gaat vooral om antwoordnauwkeurigheid.

Wat deze engine kan doen

Het project is geschreven in "puur" C en gebruikt SQLite voor gegevensopslag. Dit geeft ongelooflijke snelheid. Indexeren van de Linux-kernel (dat zijn 28 miljoen regels code) duurt maar drie minuten. Een typisch Django- of React-project wordt in een paar seconden "verzwolgen".

Hier zijn een paar dingen die mijn aandacht trokken:

  • Architectuurbegrip. Het hulpmiddel ziet niet alleen tekst, maar structuur. Het onderscheidt API-eindpunten, begrijpt welke functie welke aanroept, en vindt zelfs "dode" code die niemand gebruikt.
  • Ondersteuning voor 66 talen. Dankzij tree-sitter begrijpt de engine vrijwel alles—van Python en TypeScript tot Rust en COBOL. Bovendien kan het voor C, C++ en Go types infereren in LSP-stijl.
  • Visualisatie. Het wordt geleverd met een (optionele) 3D-graaf visualizer. Je kunt letterlijk je project ronddraaien in de browser op localhost:9749 en zien hoe de modules zijn verbonden.
  • Agent-integratie. Met één commando install configureert het hulpprogramma zich voor Claude Code, Zed, Aider en een dozijn andere populaire tools.

Project kennisgraaf visualisatie
Die 3D-graaf die je rond kunt draaien in de browser

Hoe het werkt onder de motorkap

Interessant is dat de auteurs ervoor kozen om hun eigen LLM niet in te bedden om queries te vertalen naar database-commando's. Zij redeneerden wijs: aangezien je al praat met een slimme agent (zoals Claude 3.5 Sonnet), laat die dan de vertaling afhandelen.

Je vraagt: "Wie roept de methode ProcessOrder aan?". De agent begrijpt de intentie en roept het hulpmiddel trace_call_path aan. De engine doorloopt de graaf in milliseconden en retourneert een gestructureerd antwoord. Als gevolg daarvan ziet de AI een duidelijke chain in plaats van te proberen deze te raden uit indirecte aanwijzingen.

SQLite in WAL-modus wordt gebruikt voor opslag, en gegevens worden gecomprimeerd met het LZ4-algoritme. Dit maakt het mogelijk om de index van zelfs zeer grote projecten direct in het geheugen te houden tijdens de operatie zonder de schijf te belasten.

Praktische voordelen voor ontwikkelaars

Het meest voor de hand liggende gebruik is onboarding naar een nieuw project of refactoren van een oud project. In plaats van handmatig diagrammen in je hoofd te bouwen, geef je de agent toegang tot codebase-memory-mcp.

Bijvoorbeeld, je kunt vragen: "Vind alle eindpunten die UserID accepteren maar geen toegangsrechten controleren". Het hulpmiddel zal de verbindingen tussen HTTP-routes en validatiemethoden vinden die gewone tekstzoekopdrachten zouden missen.

Een andere coole functie is detect_changes. Het analyseert je huidige git diff en toont de "blast radius": welke functies en modules je wijzigingen zullen beïnvloeden. Dit is geweldige verzekering voordat je commit.

Hoe het te proberen

Installatie is zo simpel als maar kan—geen Docker of extra afhankelijkheden. Voor macOS en Linux slechts één terminalcommando:

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

Als je visualisatie meteen wilt, voeg dan de vlag --ui toe. Na installatie hoef je alleen je AI-agent te herstarten en te zeggen: "Indexeer dit project".

Is het de moeite waard

Het project ziet er veelbelovend uit. Wat ik vooral leuk vind is dat het geen cloudservice is, maar een lokaal hulpprogramma. Al je code blijft op je machine—er worden geen gegevens naar externe servers verzonden voor indexering.

Natuurlijk zijn er nuances. De analysekwaliteit voor sommige talen zoals Haskell is nog lager dan voor mainstream Python of Go. Maar de lijst van ondersteunde technologieën en de verwerkingssnelheid maken deze ruwe randjes meer dan goed.

Als je actief AI gebruikt in je dagelijkse ontwikkeling en het gevoel hebt dat het begint te "haperen" op complexe taken, zou dit hulpmiddel die ontbrekende schakel kunnen zijn. Tenminste, de mogelijkheid om je project als 3D-graaf te zien is zeker de moeite van tien minuten installatietijd waard.

Gerelateerde projecten