SlopCodeBench: Benchmarking How Coding Agents Degrade Over Long-Horizon Iterative Tasks
SlopCodeBench is een nieuw benchmark dat aantoont dat huidige coderingsagenten bij iteratieve taken systematisch falen in het behoud van codekwaliteit, wat leidt tot toenemende redundantie en structurele erosie die menselijke ontwikkeling niet vertoont.
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
De Kernboodschap: De "Sloop" van Software
Stel je voor dat je een huis bouwt. De eerste dag bouw je een stevige, nette slaapkamer. De volgende dag moet je een keuken toevoegen. Omdat je architect (de AI) niet goed heeft nagedacht over de fundering, moet je nu de muren van de slaapkamer afbreken om leidingen te leggen. De volgende dag moet je een badkamer toevoegen, en weer moet je de keuken aanpassen.
Na een paar dagen heb je nog steeds een huis, maar het is een rommelige, onstabiele brij van muren die op elkaar zijn geplakt. Het ziet er misschien nog uit als een huis, maar als je er één steen uit haalt, stort alles in.
Dit is precies wat dit paper ontdekt: AI-programmeurs zijn goed in het bouwen van het eerste huisje, maar ze zijn slecht in het uitbreiden ervan zonder het hele gebouw te laten instorten.
Wat hebben ze gedaan? (Het Experiment)
De onderzoekers hebben een nieuwe test ontwikkeld, genaamd SlopCodeBench (Slop betekent hier "slechte, rommelige code").
In plaats van de AI te vragen om één perfect programma te schrijven (zoals de meeste tests doen), gaven ze hen een opdracht die steeds veranderde:
- Start: Maak een simpele zoekmachine voor Python-code.
- Update 1: Voeg JavaScript en C++ toe.
- Update 2: Maak het slim genoeg om de structuur van de code te begrijpen.
- Update 3: Voeg nog meer talen en functies toe.
De AI moest elke keer werken aan zijn eigen vorige werk. Ze mochten niet bij nul beginnen. Ze moesten hun eigen "rommel" oplossen en er nieuwe dingen aan toevoegen.
Wat vonden ze? (De Verontrustende Resultaten)
De resultaten waren duidelijk en zorgwekkend:
1. Niemand haalde de finish
Van de 11 verschillende AI-modellen die ze testten, kon geen enkele het hele traject van begin tot eind perfect afronden. De beste AI haalde slechts 17% van de stappen correct.
2. De "Slop" neemt toe (Verrommeling)
Zoals bij het bouwen van een huis, werd de code steeds rommeliger. De onderzoekers maten twee dingen:
- Woordschraalheid (Verbosity): De AI schreef steeds meer onnodige regels. Het was alsof iemand die een brief schrijft, steeds meer woorden gebruikt om hetzelfde te zeggen, of dubbel werk doet. De code werd 2,2 keer zo groot als code van echte mensen, maar deed niet meer.
- Structuur-erosie (Structural Erosion): Dit is het gevaarlijkste deel. De AI plakte nieuwe functies in bestaande, al complexe stukken code, in plaats van nieuwe, schone stukken te maken.
- Vergelijking: Stel je een ladekast voor. Eerst leg je sokken netjes in de eerste lade. Dan gooi je de truien er ook in, en de broeken, en de schoenen. Uiteindelijk is er één enorme lade die je niet meer open krijgt zonder dat alles eruit valt. De AI deed precies dit: alles werd in één grote, onoverzichtelijke "super-functie" geduwd.
3. Mensen vs. Robots
De onderzoekers vergeleken de AI-code met 48 echte, populaire Python-projecten die door mensen worden onderhouden.
- Mensen: Als mensen code toevoegen, blijft de kwaliteit redelijk stabiel. Ze weten waar ze moeten bouwen.
- AI: Bij de AI verslechterde de kwaliteit bij elke stap. Hoe langer ze werkten, hoe slechter de code werd.
4. "Goede Tips" helpen niet echt
De onderzoekers probeerden de AI te helpen door ze een strengere instructie te geven: "Bouw netjes, maak geen rommel, plan eerst!"
- Resultaat: De eerste stap was inderdaad netter. Maar zodra de AI moest doorgaan met de tweede en derde stap, viel het oude gedrag terug. De "sloop" begon weer. De instructie veranderde de startpositie, maar niet de snelheid waarmee de kwaliteit achteruitging.
Waarom is dit belangrijk?
Vandaag de dag testen we AI's vaak met vragen als: "Schrijf een programma dat deze ene taak doet." Als de AI dat doet, krijgen we een groen vinkje en denken we: "Top!"
Maar dit paper zegt: "Wacht even. Dat groene vinkje is een leugen."
Het toont aan dat AI's weliswaar code kunnen schrijven die werkt, maar die code is vaak niet uitbreidbaar. In de echte wereld verandert software nooit alleen maar; het groeit en verandert. Als je AI's gebruikt om software te bouwen die moet groeien, krijg je op termijn een "sloop" van code die niemand meer kan onderhouden.
Conclusie
De AI's zijn als zeer getalenteerde, maar ongeduldige leerlingen die geweldig zijn in het maken van een mooi modelautootje. Maar als je ze vraagt om er een heel garagecomplex van te maken, bouwen ze het zo snel en slordig dat het complex instort zodra je de eerste auto erin zet.
We moeten leren om niet alleen te kijken of de code werkt, maar ook of hij sterk genoeg is om in de toekomst te groeien. Zolang we dat niet doen, blijven we AI's gebruiken die prachtige, maar fragiele huizen bouwen.
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.