Project Prometheus: Bridging the Intent Gap in Agentic Program Repair via Reverse-Engineered Executable Specifications
Dit paper introduceert \textsc{Prometheus}, een nieuw raamwerk dat de 'intent gap' in automatische programmareparatie overbrugt door reverse-engineering van uitvoerbare Gherkin-specificaties via een Behavior-Driven Development-approach, wat resulteert in een opmerkelijke correcte patch-rate van 93,97% op de Defects4J-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
Project Prometheus: De "Intent Gap" Overbrugd met een Digitale Architect
Stel je voor dat je een zeer slimme, maar soms wat ongeduldige robot hebt die heel goed kan bouwen. Je geeft hem een opdracht: "Maak die deur dicht." Maar de robot is zo slim dat hij denkt: "Oh, de deur is kapot? Dan bouw ik gewoon een hele nieuwe muur eromheen, inclusief een nieuwe vloer en een dak!" Hij heeft de deur dichtgemaakt, maar hij heeft ook je hele huis vernield.
Dit is precies het probleem dat onderzoekers van de Universiteit voor Luchtvaart en Astronautiek in Nanjing tegenkwamen met hun nieuwe software, Project Prometheus.
Hier is hoe het werkt, vertaald in alledaags taal:
1. Het Probleem: De "Intent Gap" (Het Misverstand)
Vroeger probeerden computers fouten in code te herstellen door simpelweg te raden wat er mis was. Nieuwere robots (AI-agenten) zijn slimmer, maar ze hebben nog steeds een groot probleem: ze begrijpen niet precies wat de mens bedoelde.
Als je zegt: "Dit werkt niet goed," denkt de robot: "Oké, ik ga alles proberen wat er op lijkt." Dit leidt vaak tot hallucinaties (de robot verzint dingen die er niet zijn) of overkill (hij maakt enorme, onnodige veranderingen). Het is alsof je een kok vraagt om een soep te redden, en hij gooit er een hele kip in omdat hij denkt dat de soep te dun is, terwijl je eigenlijk alleen zout miste.
2. De Oplossing: Prometheus (De Digitale Architect)
In plaats van de robot direct te laten bouwen, introduceert Prometheus een nieuwe aanpak. Ze noemen dit "Reverse-Engineered Executable Specifications". Dat klinkt ingewikkeld, maar het is eigenlijk heel simpel:
Stel je voor dat je een bouwproject doet.
- De oude manier: Je zegt tegen de bouwvakker: "Maak het goed." Hij begint direct te boren en zagen, en hoopt dat het goed komt.
- De Prometheus-methode: Je haalt eerst een Architect (een slimme AI) bij de hand. Deze architect kijkt naar de kapotte deur en schrijft een heel specifiek bouwplan op. Niet zomaar een lijstje, maar een plan dat de robot moet volgen.
In de paper gebruiken ze een speciale taal (Gherkin) die werkt als een contract:
- Gegeven (Given): De deur staat open.
- Wanneer (When): Ik duw op de hendel.
- Dan (Then): De deur moet dicht gaan en geen geluid maken.
Dit plan is zo duidelijk dat de robot niet meer hoeft te raden. Hij moet alleen maar bouwen wat er op het papier staat.
3. De Drie Helden in het Team
Prometheus werkt met een team van drie verschillende AI-robots die samenwerken:
- De Architect (De Denker): Deze robot kijkt naar de foutmelding en schrijft het bouwplan (het "spec"). Hij denkt na over wat er moet gebeuren, niet hoe.
- De Ingenieur (De Kwaliteitscontroleur): Dit is het slimme deel. Voordat het plan wordt gebruikt, test deze robot het plan. Hij zegt: "Als we dit plan toepassen op de kapotte deur, moet het plan falen (want de deur is kapot). Maar als we het toepassen op een nieuwe, goede deur, moet het plan slagen." Als het plan niet klopt, gooit hij het weg en vraagt hij de Architect om het opnieuw te schrijven. Dit heet de RQA-lus (Requirement Quality Assurance).
- De Reparateur (De Bouwer): Pas als het plan is goedgekeurd, krijgt deze robot de opdracht. Omdat het plan zo duidelijk is, maakt hij geen grote fouten meer. Hij maakt precies de kleine aanpassing die nodig is.
4. Waarom werkt dit zo goed?
De onderzoekers hebben dit getest op 680 echte fouten in software. Het resultaat was verbazingwekkend:
- 94% van de fouten was opgelost.
- Voor de moeilijkste fouten (waar andere robots faalden), slaagde Prometheus in 74% van de gevallen.
Het geheim? Precisie.
Wanneer de robot geen duidelijk plan heeft, gedraagt hij zich als een "Berserker" (een woeste krijger die alles kapot slaat). Met een duidelijk plan gedraagt hij zich als een chirurg (die met een scalpel precies het zieke weefsel verwijdert zonder de rest aan te raken).
5. Een Interessant Voorbeeld
Stel je voor een softwarefout waarbij een programma crasht als er geen "JUnit" (een test-tool) aanwezig is.
- De oude robot: Haalt simpelweg de code weg die de crash veroorzaakt. De crash is weg, maar nu werkt de beveiliging niet meer.
- De Prometheus-robot: Kijkt naar het bouwplan dat zegt: "Het programma mag niet afhankelijk zijn van JUnit." Hij bedenkt een slimme oplossing waarbij hij de code aanpast zodat het werkt zonder JUnit, maar de beveiliging intact blijft. Hij lost het probleem op zonder de regels van het huis te schenden.
Conclusie: Het is niet de robot, maar de vraag
De belangrijkste les van dit paper is: Het probleem is niet dat onze AI's niet slim genoeg zijn. Het probleem is dat we ze de verkeerde vragen stellen.
Als je een AI vraagt "Maak het goed", krijg je rommel.
Als je een AI vraagt "Hier is een strikt plan van wat er moet gebeuren, volg dit", krijg je perfectie.
Project Prometheus laat zien dat de toekomst van software-reparatie niet ligt in het maken van nog slimmere robots, maar in het beter formuleren van de instructies. Het is alsof je een genie hebt: je kunt het beste werk van de wereld krijgen, zolang je maar duidelijk genoeg bent over wat je precies wilt.
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.