← Nieuwste papers
🤖 AI

RepoRepair: Leveraging Code Documentation for Repository-Level Automated Program Repair

RepoRepair is een innovatieve aanpak voor automatische programmareparatie op repository-niveau die gebruikmaakt van door LLM's gegenereerde hiërarchische documentatie om context te begrijpen en complexe fouten kosteneffectief te lokaliseren en te herstellen.

Oorspronkelijke auteurs: Zhongqiang Pan, Chuanyi Li, Wenkang Zhong, Yi Feng, Bin Luo, Vincent Ng

Gepubliceerd 2026-03-03
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Zhongqiang Pan, Chuanyi Li, Wenkang Zhong, Yi Feng, Bin Luo, Vincent Ng

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 enorme, oude bibliotheek bent binnengegaan. Deze bibliotheek is niet gewoon een gebouw met boeken; het is een levend, ademend universum van miljoenen pagina's die allemaal met elkaar verbonden zijn. Iemand roept je: "Er is een fout in deze bibliotheek! Ergens staat een verkeerde zin die ervoor zorgt dat de deur naar de tuin niet opent."

Het probleem? Je hebt geen kaart, geen index, en geen idee waar je moet zoeken. Als je gewoon begint met bladeren in willekeurige boeken, duurt het eeuwen voordat je die ene zin vindt. En als je die zin vindt, moet je hem ook nog kunnen repareren zonder per ongeluk andere belangrijke deuren dicht te doen.

Dit is precies wat RepoRepair doet, maar dan voor computercode in plaats van boeken. Hier is hoe het werkt, vertaald naar alledaags taal:

1. Het Probleem: De "Naakte" Bibliotheek

Vroeger probeerden computers (AI) fouten in software te vinden door simpelweg door de code te "lezen". Maar code is als een bibliotheek zonder titels op de rug van de boeken. Het is een wirwar van technische details. Als een AI probeert een fout te vinden in een project met duizenden bestanden, raakt het snel verdwaald. Het kan de context niet begrijpen, net zoals jij niet zou weten welke van de duizend boeken over "tuindeuren" gaat als je alleen de inhoudsopgave ziet.

2. De Oplossing: De "Super-Gids" (RepoRepair)

RepoRepair bedenkt een slimme truc: Het maakt eerst een perfecte gids voor de hele bibliotheek.

In plaats van direct te zoeken in de code, gebruikt RepoRepair een slimme AI (een "schrijver") om voor elk bestand en elke functie in het project een samenvatting te schrijven.

  • Functie-niveau: "Dit stukje code is de sleutel die de tuinpoort opent."
  • Bestands-niveau: "Dit bestand bevat alle regels voor hoe de poort werkt en hoe het licht erin werkt."

Deze samenvattingen zijn de "hierarchical code documentation" uit de titel. Ze zijn geschreven in mensentaal, niet in moeilijke programmeertaal.

3. Hoe het Werkt: Drie Stappen

Stap 1: De Gids Schrijven (Documentatie Genereren)
Stel je voor dat je een team van super-snelle bibliothecarissen hebt die de hele bibliotheek in één nacht doorlopen en voor elk boek een duidelijke samenvatting schrijven. Ze zeggen niet alleen wat er in staat, maar ook waarom het er staat en hoe het met andere boeken samenwerkt. Dit kost even tijd, maar het maakt de rest van het werk veel makkelijker.

Stap 2: De Fout Vinden (Locatie Bepalen)
Nu komt de klacht: "De tuinpoort gaat niet open."
De AI leest de samenvattingen van de boeken (de documentatie) in plaats van de hele boeken zelf.

  • Omdat de samenvattingen duidelijk zeggen: "Dit boek regelt de poort", springt de AI direct naar dat specifieke boek.
  • Vervolgens kijkt hij in de samenvatting van de specifieke pagina's binnen dat boek en zegt: "Ah, hier staat de sleutel die vastzit."
  • Het geheim: Omdat de AI de "gids" leest, hoeft hij niet door duizenden pagina's te bladeren. Hij zoekt in de samenvattingen, wat veel sneller en slimmer is.

Stap 3: De Reparatie (De Fout Maken)
Als de AI weet waar de fout zit, maakt hij een kleine, precieze correctie. Hij knipt niet de hele pagina eruit en plakt er een nieuwe; hij maakt alleen een klein "vouwje" in de tekst (een zogenaamde patch).

  • Slimme truc: De AI kijkt eerst welke andere regels in dat boek afhankelijk zijn van de regel die hij gaat veranderen. Hij houdt die regels veilig en verwijdert alleen het onnodige "ruis" (de rest van het boek) zodat hij zich kan focussen op de echte fout.

Waarom is dit zo goed? (De Resultaten)

In de proefjes die ze deden (met echte softwareprojecten van GitHub), was RepoRepair een kampioen:

  • Snelheid en Kosten: Het was veel goedkoper dan andere methoden. Terwijl andere AI's duizenden dollars kosten om één fout te vinden, kostte RepoRepair slechts een paar centen ($0,44).
  • Succes: Het loste meer dan 45% van de problemen op in de simpele tests en 37% in de heel moeilijke tests (waar ook plaatjes bij betrokken waren).
  • Slimmer zoeken: Andere methoden vonden vaak het verkeerde boek. RepoRepair vond het juiste boek in bijna 60% van de gevallen, zelfs als de fout in een heel complex project zat.

De Metafoor Samengevat

Stel je voor dat je een auto moet repareren.

  • Andere methoden proberen de motor uit elkaar te halen, alle onderdelen te bekijken en hopen dat ze de kapotte bout vinden.
  • RepoRepair pakt eerst de handleiding van de auto. In de handleiding staat precies geschreven: "De bout die de motor vasthoudt zit onder de kap, links van de brandstofpomp." De monteur kijkt alleen daar, draait de bout los en is klaar.

Conclusie:
RepoRepair leert computers om niet blindelings door code te bladeren, maar eerst een "verhaal" (documentatie) te schrijven over hoe de code werkt. Door dat verhaal te lezen, vinden ze de fout veel sneller, slimmer en goedkoper. Het is alsof je van een zoektocht in een donker bos verandert in een wandeling met een heldere kaart en een lantaarn.

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 →