← Nieuwste papers
💻 computer science

BLAgent: Agentic RAG for File-Level Bug Localization

BLAgent is een nieuw agentic Retrieval-Augmented Generation-framework dat bestandsniveau buglokalisatie verbetert door coderingsbewuste codering van codestructuur, querytransformatie vanuit twee perspectieven en twee-fase agentic herordening, waarmee state-of-the-art nauwkeurigheid op SWE-bench Lite wordt bereikt terwijl de kosten aanzienlijk worden verlaagd en het succes van downstream geautomatiseerde programmareparatie wordt verbeterd.

Oorspronkelijke auteurs: Md Afif Al Mamun, Gias Uddin

Gepubliceerd 2026-05-19
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Md Afif Al Mamun, Gias Uddin

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

Het Grote Probleem: Een Naald in een Hooiberg

Stel je voor dat je een monteur bent (een softwareontwikkelaar) die probeert een kapotte auto te repareren. Een klant geeft je een klacht: "De auto maakt een vreemd geluid als ik linksaf sla."

In de wereld van software is deze klacht een bug-rapport. De auto is een enorme code-repository met miljoenen regels code (het hooi). De specifieke regel code die het geluid veroorzaakt, is de naald.

Lange tijd hebben AI-tools die proberen deze bugs te repareren het moeilijk gehad, omdat ze de naald niet eerst konden vinden. Als de AI het verkeerde deel van de motor raadt (het verkeerde bestand), probeert hij het verkeerde ding te repareren en blijft de auto kapot. Dit heet Bug Localization (het lokaliseren van bugs).

De Oplossing: BLAgent (De Super-Detective)

De auteurs hebben een nieuw systeem gecreëerd dat BLAgent heet. Denk hierbij aan een super-detective die niet zomaar raadt; hij gebruikt een slim, stap-voor-stap onderzoekproces om het exacte bestand te vinden dat gerepareerd moet worden, voordat hij probeert het te herstellen.

BLAgent maakt gebruik van een techniek genaamd Agentic RAG (Retrieval-Augmented Generation). In gewone taal betekent dit dat de AI niet zomaar een antwoord "hallucineert"; hij gaat naar een bibliotheek (de code-repository), vindt de juiste boeken (code-bestanden), leest ze en denkt dan pas na over het antwoord.

Hier is hoe BLAgent werkt, opgesplitst in drie eenvoudige stappen:

1. De Bibliotheek Ordenen (Slimme Chunking)

Stel je voor dat je bibliotheek een puinhoop is. Boeken zijn in tweeën gescheurd en pagina's zijn willekeurig aan elkaar geplakt. Als je de bibliothecaris vraagt om een boek over "motoren", geeft hij je misschien een pagina waarop "motor" staat, maar die eigenlijk uit een kookboek komt.

  • Oude Manier: Traditionele AI splitst code op in willekeurige stukken tekst, alsof je een boek pagina voor pagina scheurt.
  • BLAgent Manier: BLAgent gebruikt een structurele kaart (een AST). Het weet dat een "functie" of een "klasse" als een compleet hoofdstuk is. Het snijdt de code pas aan het einde van deze hoofdstukken door.
  • Het Geheime Ingrediënt: Het stempelt ook het bestandspad (het adres van het boek) op elke pagina. Als het bug-rapport een specifieke mapnaam noemt, kan BLAgent dat adres direct koppelen aan het juiste boek.

2. Beter Vragen Stellen (Dubbel-Perspectief Queries)

Stel je voor dat je een bibliothecaris om hulp vraagt.

  • Slechte Vraag: "Mijn auto is kapot." (Te vaag).
  • BLAgent's Strategie: Het stelt twee verschillende vragen om de beste resultaten te krijgen:
    1. De Structurele Vraag: "Welk bestand bevat de turn_signal-functie?" (Op zoek naar specifieke namen en code-structuren).
    2. De Gedragsvraag: "Welk bestand behandelt de situatie waarin de auto een geluid maakt bij het draaien?" (Op zoek naar de symptomen en het gedrag).

Door beide te stellen, werpt BLAgent een breder net, zodat het het juiste bestand niet mist alleen omdat het bug-rapport andere woorden gebruikte dan de code.

3. Het Onderzoek van de Detective (Agentic Reranking)

Dit is het belangrijkste deel. De bibliotheek geeft BLAgent een lijst van de 15 meest waarschijnlijke boeken (bestanden). Maar welke is echt de dader?

  • Oude AI: Pakt het eerste boek op de lijst en probeert het te repareren.
  • BLAgent (De Agent): Het treedt op als een detective. Het leest niet alleen de kaft; het opent de boeken en kijkt naar het skelet (het inhoudsopgave en de hoofdstuktitels) van de topkandidaten.
    • Het vraagt zichzelf af: "Komt de structuur van dit bestand overeen met de misdaad?"
    • Het kiest een score (0 tot 10) toe aan elk bestand.
    • Vervolgens leest het voor de topverdachten de daadwerkelijke tekst van de relevante secties om een definitieve, op bewijs gebaseerde beslissing te nemen.

Deze "beperkte redenering" betekent dat de detective alleen de meest waarschijnlijke verdachten onderzoekt, wat tijd en geld bespaart, in plaats van de hele bibliotheek te doorzoeken.

Waarom Dit Belangrijk Is: De Reparatie-werkplaats

Het artikel testte BLAgent op een beroemde benchmark genaamd SWE-bench (een verzameling van bugs uit de echte wereld).

  • Het Resultaat: BLAgent vond het juiste bestand om te repareren 78% tot 86% van de tijd (afhankelijk van het gebruikte AI-model).
  • De Vergelijking: Eerdere methoden vonden het juiste bestand minder vaak.
  • De Kosten: BLAgent is 18 keer goedkoper dan de vorige beste methode. De oude methoden waren als het inhuren van een team van 100 mensen om de bibliotheek te doorzoeken; BLAgent is als het inhuren van één zeer slimme detective met een kaart.

De Impact op het Repareren van Bugs:
Toen BLAgent werd aangesloten op een geautomatiseerd reparatiesysteem, slaagde het systeem erin 20% meer bugs te repareren dan daarvoor.

  • Analogie: Als je een monteur het verkeerde motoronderdeel geeft, kan hij de auto niet repareren. Als je hem het juiste onderdeel geeft (accurate lokalisatie), kan hij het wel repareren. BLAgent zorgt ervoor dat de monteur het juiste onderdeel krijgt.

Wat het Artikel Niet Zegt

  • Het claimt niet om elke bug te repareren. Ongeveer 14% van de tijd was het juiste bestand zo verborgen of het bug-rapport zo vaag dat zelfs BLAgent het niet in de top-lijst kon vinden.
  • Het claimt niet een toverstaf te zijn voor alle software. Het werkt het beste op Python-projecten (zoals die in de test) en is afhankelijk van de kwaliteit van het bug-rapport.
  • Het zegt niet dat het vinden van het bestand de enige stap is. Zodra het bestand is gevonden, moet de AI nog steeds de daadwerkelijke code-reparatie schrijven, wat nog steeds kan mislukken. Maar het vinden van het bestand is het grootste obstakel.

Samenvatting

BLAgent is een slimmere manier voor AI om kapotte code te vinden. In plaats van willekeurig te raden, organiseert het de code-bibliotheek beter, stelt het slimmere vragen en gebruikt het een "detective"-stap om het bewijs te verifiëren voordat er actie wordt ondernomen. Dit maakt het veel sneller, goedkoper en nauwkeuriger in het vinden van de oorzaak van software-bugs.

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 →