← Nieuwste papers
💻 computer science

CODENS: Transforming Code Changes into Living, Accessible, and Queryable Documentation

CODENS is een systeem dat pull requests transformeert naar levende, doorvraagbare documentatie door incrementeel een getypeerde software-kennisgraaf op te bouwen om agent-gestuurde vraagbeantwoording op repository-niveau mogelijk te maken, zoals aangetoond door de succesvolle evaluatie op een productierijk Ruby on Rails-project.

Oorspronkelijke auteurs: Abdelhak Kelious, Chyrine Tahri, Eliot Bardet

Gepubliceerd 2026-07-22
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Abdelhak Kelious, Chyrine Tahri, Eliot Bardet

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je door een enorme, eeuwenoude bibliotheek loopt waar de boeken constant worden herschreven. Elke keer dat er een nieuw hoofdstuk wordt toegevoegd, een noot in de marge wordt gekrabbeld, of een pagina wordt uitgerukt en vervangen, verandert het verhaal. In de wereld van software is deze bibliotheek de "codebase", en de aantekeningen zijn "pull requests"—de digitale tickets die ontwikkelaars gebruiken om wijzigingen voor te stellen. Het probleem is dat het "verhaal" van hoe de software werkt (de documentatie) vaak verloren gaat in de chaos van deze wijzigingen. Ontwikkelaars eindigen ermee dat ze moeten gissen naar hoe alles in elkaar zit, omdat de instructies verspreid zijn over duizenden bestanden en oude chatlogs.

Om dit op te lossen, zijn wetenschappers begonnen met het bouwen van "knowledge graphs" (kennisgrafieken). Denk aan deze niet als een simpele lijst met feiten, maar als een gigantische, levende kaart waar elk stukje code een stad is, en de verbindingen tussen hen de wegen zijn. Als je één stad verandert, wordt de kaart automatisch bijgewerkt met de wegen die naar die stad leiden. Een ander kernidee is "Retrieval-Augmented Generation" (RAG), wat lijkt op het geven van een specifieke set boeken aan een superintelligente bibliothecaris om te lezen voordat hij je vraag beantwoordt, zodat hij niet zomaar iets gokt, maar daadwerkelijk de waarheid in de tekst vindt. De grote vraag die onderzoekers stellen is: Kunnen we een kaart bouwen die niet alleen laat zien hoe de bibliotheek er vandaag de dag uitziet, maar die ook elke enkele wijziging die ooit is gemaakt onthoudt, waardoor de geschiedenis van code-updates verandert in een levende, doorzoekbare gids?

Maak kennis met CODENS, een nieuw systeem dat precies dat voor ogen heeft. Stel je CODENS voor als een magische, hypergeorganiseerde archivaris die over een softwareproject waakt, zoals een Ruby on Rails webplatform. In plaats van alleen de definitieve versie van de code te lezen, kijelt CODENS de "film" van de geschiedenis van het project. Het begint met het scannen van de volledige codebase om een skeletkaart te bouwen, waarbij het 1.739 verschillende "kamers" (zoals controllers, models en views) identificeert op basis van de standaardregels van het framework.

Dan gebeurt de magie. CODENS speelt de geschiedenis van het project opnieuw af, één pull request per keer, als het kijken naar een time-lapse video van de constructie van een gebouw. Voor elke wijziging kijkt het niet alleen naar de nieuwe stenen; het vraat een krachtige AI (een LLM) om uit te leggen waarom de wijziging is doorgevoerd en hoe deze past bij wat er al was. Cruciaal is dat het niet alleen het oude verhaal overschrijft; het voegt de nieuwe details samen met de oude. Als een ontwikkelaar een nieuwe knop aan een pagina toevoegt, werkt CODENS de kaart bij om aan te geven dat de knop bestaat, maar het houdt ook de geschiedenis bij van hoe de pagina er vóórheen uitzag. Dit creëert een laag van "levende documentatie" die slimmer en gedetailleerder wordt bij elke update.

Zodra deze kaart is gebouwd, biedt CODENS drie manieren om deze te verkennen, als verschillende modi van reizen. Je kunt een snelle "vector search" doen, wat lijkt op het vragen aan de bibliothecaris naar boeken met vergelijkbare woorden. Je kunt "multi-hop retrieval" doen, wat lijkt op het volgen van een spoor van kruimels van de ene kamer naar de volgende om te zien hoe ze met elkaar verbonden zijn. Maar de krachtigste modus is "agent-guided traversal". Hier fungeert een AI-agent als een detective met een zaklamp. Het volgt niet een vast pad; het beslist welke deuren het opent, welke wegen het neemt, en schrijft zelfs zijn eigen aangepaste zoekopdrachten om het exacte antwoord te vinden. Het gebruikt tools om in specifieke nodes te kijken, de buren te controleren, of complexe zoekopdrachten uit te voeren om een volledig antwoord te construeren.

De onderzoekers testten dit systeem op een echt, industrieel project met meer dan 1.700 bestanden en honderden pull requests. Ze stelden het systeem 11 verschillende vragen die een echte ontwikkelaar zou kunnen hebben, zoals "Hoe werkt deze functie?" of "Wat gebeurt er als ik op deze knop klik?". De resultaten waren veelbelovend. Het systeem scoorde zeer hoog op nauwkeurigheid en "faithfulness" (getrouwheid), wat betekent dat de antwoorden gebaseerd waren op de werkelijke code en dat het geen dingen verzonnen. Op een schaal van 1 tot 5 beoordeelden menselijke experts de relevantie van de antwoorden met een gemiddelde van 4,09 en de volledigheid met 4,45. Het systeem was ook in staat om de kosten en tijd van elke query bij te houden, waarbij werd aangetoond dat hoewel de detective-modus (agent) meer tijd en tokens kostte, deze de meest grondige antwoorden bood.

Er is echter ook een klein struikelblok. Hoewel het systeem erg goed was in het vinden van de juiste informatie, voelde de manier waarop de antwoorden werden gepresenteerd soms wat te technisch aan. De menselijke beoordelaars merkten op dat sommige antwoorden "te gedetailleerd" of "te code-centrisch" waren, waarbij regel voor regel citaten werden vermeld terwijl een simpelere samenvatting beter was geweest. Het is alsof de bibliothecaris je wel de exacte paginanummer en paragraaf van een boek gaf, maar niet het verhaal voor je samenvatte. De auteurs suggereren dat de volgende stap niet noodzakelijkerwijs het vinden van betere informatie is, maar het leren aan het systeem om die informatie te synthetiseren tot duidelijkere, meer gebruiksvriendelijke verklaringen.

Kortom, CODENS suggereert dat we de rommelige, verspreide geschiedenis van codewijzigingen kunnen omzetten in een gestructureerd, doorzoekbaar geheugen voor software. Het bewijst dat door pull requests te behandelen als een continue stroom van kennis in plaats van slechts tijdelijke oplossingen, we een systeem kunnen bouwen dat ontwikkelaars helpt complexe codebases veel sneller te begrijpen. Hoewel het nog geen perfect, opgelost probleem is—vooral wat betreft hoe je de antwoorden meer als een behulpzame mens en minder als een robot die een handleiding voorleest laat klinken—biedt het een levendig vooruitzicht op een toekomst waarin softwaredocumentatie levend is, up-to-date en altijd klaar om je vragen te beantwoorden.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →