ARISE: A Repository-level Graph Representation and Toolset for Agentic Fault Localization and Program Repair
ARISE is een repository-niveau framework dat LLM-gebaseerde agenten verbetert voor foutlocatie en programmareparatie door een multi-granulariteits programmagraaf met intra-procedurele data-flow-edges en een bevraagbare slicing-API in te voeren, wat aanzienlijke verbeteringen oplevert in de nauwkeurigheid van de lokalisatie en de succespercentages van reparatie op de SWE-bench Lite-benchmark.
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 een detective bent die probeert een misdaad op te lossen in een enorme, uitgestrekte stad (de software-repository). De stad heeft duizenden gebouwen (bestanden), elk met honderden kamers (functies), en in die kamers staan talloze meubels en documenten (regels code).
Jouw taak is om het één specifieke document te vinden dat de leugen (de bug) bevat die ervoor zorgt dat het stroomnet van de stad uitvalt, en dat document vervolgens te herschrijven om het te repareren.
Het Probleem: Verdwalen in de Stad
In het verleden hadden detectives (AI-agenten) die deze zaken probeerden op te lossen, twee hoofdproblemen:
- Ze hadden alleen een plattegrond van de gebouwen: Ze wisten welk gebouw naast welk lag, en welk gebouw een deur had die naar een ander leidde. Maar ze wisten niet hoe informatie binnen de kamers bewoog.
- Ze moesten alles lezen: Om de leugen te vinden, moesten ze vaak hele boeken lezen of elke enkele pagina in een gebouw scannen, in de hoop toevallig op de aanwijzing te stuiten. Dit was traag, duur en leidde hen vaak naar de verkeerde kamer.
De Oplossing: ARISE (Het Gereedschapskistje van de Super-Detective)
De auteurs hebben een nieuw systeem ontwikkeld dat ARISE heet. Denk aan ARISE als het geven van een superkrachtige, interactieve 3D-kaart van de stad aan de detective, die niet alleen gebouwen toont, maar ook precies laat zien hoe een specifiek bewijsstuk (een variabele) van het ene document naar het andere beweegt binnen een kamer.
Hier is hoe ARISE werkt, opgesplitst in drie eenvoudige hulpmiddelen:
1. De Structurele Kaart (Niveau 1)
Dit is de "gebouwkaart". Hij vertelt de detective: "Dit bestand bevat deze klasse, die die functie aanroept." Het is alsof je weet dat de Bibliotheek verbonden is met de School. Dit helpt de detective om in te schatten welk gebouw ze moeten zoeken, maar het vertelt hen niet welke pagina in het boek verkeerd is.
2. Het "Volg het Geld"-Gereedschap (Niveau 2 - De Grote Innovatie)
Dit is het magische deel. In de oude tijden, als een detective een verdacht getal in een document vond, moest hij handmatig elke pagina ervoor en ernaar ombladeren om te zien waar dat getal vandaan kwam of waar het naartoe ging.
ARISE introduceert een hulpmiddel genaamd Data-Flow Slicing (Data-stroom snijden). Stel je een magische vergrootglas voor. Je richt het op een specifiek getal in een document en zegt: "Laat me alles zien dat dit getal heeft aangeraakt."
- Terugwaartse Snede: Het glas markeert direct elke zin die dat getal heeft gegenereerd of gewijzigd.
- Voorwaartse Snede: Het markeert elke zin die dat getal later heeft gebruikt.
In plaats van 50 pagina's te lezen, krijgt de detective een enkele, gemarkeerde lijst met slechts de 5 of 6 zinnen die echt belangrijk zijn. Dit is alsof je in staat bent om direct een specifieke waterdruppel van een kraan tot aan de gootsteen te volgen, en de rest van de leidingen te negeren.
3. Het Bewijsmapje (Niveau 3)
Zodra de detective de verdachte zinnen heeft gevonden, moet hij ze samenvoegen tot een rapport om de bug te repareren. Soms wordt het rapport te lang en raakt het brein van de detective (het AI-model) overbelast.
Dit hulpmiddel fungeert als een slimme bibliothecaris. Het neemt alle gemarkeerde zinnen, rangschikt ze op belangrijkheid en pakt ze in een net, beknopt "Bewijsmapje" dat perfect in de rugzak van de detective past (het geheugenlimiet). Dit zorgt ervoor dat de detective eerst de belangrijkste aanwijzingen ziet.
De Resultaten: Heeft Het Gewerkt?
De onderzoekers hebben dit nieuwe systeem getest op 300 echte "misdaden" (bugs) uit populaire softwareprojecten. Ze vergeleken ARISE met een standaarddetective (de SWE-agent) die alleen de basisgereedschappen had.
- De Misdaadplek Vinden: De standaarddetective kon ongeveer 57% van de tijd het juiste gebouw (bestand) raden. ARISE had het 67% van de tijd goed.
- De Exacte Kamer Vinden: De standaarddetective raakte de juiste kamer (functie) 43% van de tijd goed. ARISE steeg naar 60%.
- De Exacte Zin Vinden: De standaarddetective vond de juiste regel code 26% van de tijd. ARISE verbeterde dit tot 41%.
Het allerbelangrijkste is dat, omdat de detective het exacte probleem sneller en nauwkeuriger kon vinden, ze de bug succesvol konden repareren in 22% van de gevallen, vergeleken met slechts 17% voor de standaarddetective.
Belangrijkste Leerpunten uit het Artikel
- Structuur is niet genoeg: Alleen weten hoe bestanden verbonden zijn, is niet voldoende; je moet weten hoe data binnen de code beweegt.
- Het "Magische Glas" is de sleutel: De grootste verbetering kwam van het Data-Flow Slicing-gereedschap. Het stelde de AI in staat om het giswerk over te slaan en direct naar de bron van het probleem te gaan.
- Geen vertaler nodig: De onderzoekers probeerden een stap toe te voegen waarbij een kleinere AI de data samenvatte in gewoon Engels voor de hoofddetective. Ze ontdekten dat dit onnodig was. De hoofddetective (een groot AI-model) kon de ruwe, gestructureerde data prima lezen. Het toevoegen van de samenvattingsstap kostte alleen maar tijd en geld.
- De Limiet: Het systeem is geweldig in het vinden van problemen binnen een enkele kamer. Echter, als het probleem begint in één kamer, wordt doorgegeven aan de kamer van een buur, en daar een crash veroorzaakt, raakt de detective soms in de war. Dit is het ene gebied dat de auteurs zeggen dat in de toekomst meer werk nodig heeft.
Kortom, ARISE geeft AI-agenten een manier om de "draad" van een variabele door code te volgen, en verandert een zoektocht naar een speld in een hooiberg in een rechtstreeks pad naar de oplossing.
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.