← Nieuwste papers
💻 computer science

Agentic Generation of AST Transformation Rules for Fixing Breaking Updates

Het artikel presenteert BigBag, een agentisch framework dat herbruikbare, API-niveau AST-transformatieregels genereert om breaking dependency-updates automatisch te herstellen over meerdere softwareprojecten, waarbij hoge compilatie- en fix-percentages worden behaald terwijl een aanzienlijke cross-project overdraagbaarheid wordt aangetoond.

Oorspronkelijke auteurs: Frank Reyes, Benoit Baudry, Martin Monperrus

Gepubliceerd 2026-06-24
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Frank Reyes, Benoit Baudry, Martin Monperrus

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 de manager bent van een enorme bouwplaats (jouw softwareproject). Je bent afhankelijk van een specifieke leverancier (een third-party library) voor je bakstenen, cement en gereedschap. Jarenlang werkte alles perfect.

Dan, op een dag, stuurt de leverancier een nieuwe versie van hun catalogus. Ze hebben niet alleen de prijs aangepast; ze hebben de vorm van de bakstenen veranderd, de gereedschappen hernoemd en de leveringswagens naar een andere straat verplaatst. Plotseling kan je bouwploeg niets meer bouwen. De blauwdrukken komen niet meer overeen met de nieuwe materialen, en de hele bouwplaats komt stil te liggen. Dit is wat programmeurs een "breaking dependency update" noemen.

Normaal gesproken moet er dan een menselijke ontwikkelaar naar elke individuele bouwplaats gaan die de nieuwe catalogus van de leverancier gebruikt, om de wijzigingen uit te zoeken en de blauwdrukken voor elke locatie handmatig te herschrijven. Als 100 bouwplaatsen worden getroffen, zijn dat 100 aparte, tijdrovende klussen.

De Nieuwe Oplossing: BIGBAG

Het paper introduceert een nieuw systeem genaamd BIGBAG. In plaats van een mens naar elke bouwplaats te sturen om de boel individueel te repareren, fungeert BIGBAG als een super-slimme, geautomatiseerde architect.

Zo werkt het, met behulp van eenvoudige analogieën:

1. De "Detective"-fase

Wanneer de nieuwe catalogus van de leverancier arriveert en de bouw stil komt te liggen, kijkt de "detective" van BIGBAG (een coding agent aangedreven door geavanceerde AI) naar de foutmeldingen. Het vraagt zich af: "Waarom past de baksteen niet meer?" Het leest de nieuwe catalogus (API-documentatie) om te begrijpen precies wat er is veranderd.

2. De "Universele Blauwdruk"-fase

Dit is het magische deel. In plaats van een nieuwe blauwdruk te tekenen die alleen voor jouw specifieke bouwplaats is, tekent de AI een Universele Reparatieregel.

  • De oude manier: "Verplaats de deur aan de linkerwand van jouw huis."
  • De BIGBAG-manier: "Als je een deur aan de linkerwand ziet, verplaats deze dan naar het midden, ongeacht in welk huis je bent."

Deze "Universele Reparatieregel" is een klein computerprogramma (een AST-transformatie) dat zegt: "Zoek elke instantie van dit oude gereedschap en vervang het door dit nieuwe gereedschap."

3. De "Proefrit"-fase

Voordat deze regel wordt verzonden, test BIGBAG de regel op de oorspronkelijke kapotte bouwplaats. Het voert de regel uit, controleert of het gebouw blijft staan en of de tests slagen. Als het mislukt, probeert de AI-detective het opnieuw en past de regel aan totdat deze perfect werkt.

4. De "Massale Distributie"-fase

Zodra de regel bewezen heeft te werken op de eerste bouwplaats, stuurt BIGBAG die exact dezelfde regel naar alle andere bouwplaatsen die getroffen zijn door dezelfde wijziging van de leverancier. Het is alsof je een enkele "Fix-It"-sticker uitdeelt die op elk auto van hetzelfde model werkt, in plaats van elke auto één voor één te repareren.

Wat hebben ze ontdekt?

De onderzoekers hebben dit systeem getest op 157 echte rampen waarbij software kapot ging door library-updates. Ze gebruikten vier verschillende "super-intelligente" AI-breinen en twee verschillende "tekeninstrumenten" (software engines) om deze regels te creëren.

  • Succespercentage: De beste combinatie van AI en tekeninstrument was in staat om 94% van de tijd een werkende "Universele Reparatieregel" te maken.
  • Het repareren van de breuk: Zodra de regel was gemaakt, repareerde deze de kapotte software in 78% van de gevallen succesvol.
  • De "Universele" test: Het meest opwindende deel was kijken of de regel ook werkte op andere locaties.
    • Over het algereen werkten de regels op 33% van de andere locaties.
    • Echter, als alle locaties het kapotte gereedschap op exact dezelfde manier gebruikten (uniform), werkten de regels in 80% of meer van de gevallen.

Het nadeel (Waarom het niet 100% perfect is)

Het paper vond twee belangrijke redenen waarom de "Universele Regel" soms faalt:

  1. Het tekeninstrument maakt uit: Sommige AI-modellen zijn beter in het gebruiken van bepaalde "tekeninstrumenten" (software engines) dan andere. Het is alsof je een schilder een penseel geeft die hij nog nooit heeft gebruikt; hij kan er een puinhoop van maken. De onderzoekers ontdekten dat een simpeler instrument (JavaParser) vaak beter werkte dan een complexer instrument (Spoon), omdat het makkelijker voor de AI te begrijpen was.
  2. Het "One-Size-Fits-All"-probleem: De AI leert de regel door naar één kapotte locatie te kijken. Als die locatie het kapotte gereedschap op een vreemde, unieke manier gebruikte, schrijft de AI een regel voor die vreemdheid. Wanneer de AI vervolgens probeert die regel toe te passen op een andere locatie waar het gereedschap normaal werd gebruikt, past de regel mogelijk niet. Het is also kind een maatpak maken voor één persoon en dat vervolgens proberen te dwingen aan iemand anders die een normale lichaamsbouw heeft; het werkt alleen als ze exact dezelfde lichaamsvorm hebben.

De Kern van het Verhaal

BIGBAG bewijst dat we kunnen stoppen met het repareren van software-updates per project. In plaats daarvan kunnen we een enkel, herbruikbaar "reparatiescript" genereren dat het probleem voor iedereen die door dezelfde update wordt getroffen, oplost. Hoewel het nog niet alles perfect oplost, verandert het een enorme, handmatige hoofdpijn in een grotendeels geautomatiseerd proces, waardoor ontwikkelaars niet langer steeds opnieuw dezelfde code hoeven te herschrijven.

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 →