When is Generated Code Difficult to Comprehend? Assessing AI Agent Python Code Proficiency in the Wild
Deze studie analyseert met behulp van het AIDev-dataset en de tool pycefr dat AI-agenten overwegend basisniveau Python-code genereren die qua complexiteit vergelijkbaar is met menselijke code, maar dat specifieke taken zoals bugfixing toch geavanceerde vaardigheden vereisen voor review en onderhoud.
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 softwareontwikkelaars niet langer alleen maar bouwers zijn die elke steen zelf leggen, maar steeds vaker bouwkundigen die controleren of een robot de muren wel recht heeft opgetrokken. Dit is wat er gebeurt met AI-coderingsassistenten (zoals GitHub Copilot of Cursor). Ze schrijven steeds meer code voor ons.
Maar hier zit de hak: als de robot een muur bouwt, moeten wij die nog steeds kunnen lezen en begrijpen. Wat als de robot een heel ingewikkeld, ondoorzichtig ontwerp gebruikt? Dan kunnen we de muur misschien niet meer repareren als er een steen losraakt.
Deze studie van onderzoekers uit Thailand, Japan en Nederland kijkt precies naar dit probleem. Ze hebben gekeken naar de "taalvaardigheid" van de Python-code die AI-agenten schrijven.
Hier is de uitleg, vertaald naar alledaagse taal:
1. De Maatlat: Het Taalcertificaat voor Code
Om te meten hoe moeilijk code is, gebruiken de onderzoekers een slim trucje. Ze kijken naar het CEFR, dat is hetzelfde systeem dat we gebruiken om te zeggen of iemand "beginner" (A1), "gemiddeld" (B2) of "meester" (C2) is in het leren van een taal, zoals Engels.
Ze hebben dit systeem vertaald naar Python-code:
- A1 & A2 (De Beginners): Dit is code die iedereen begrijpt. Denk aan simpele zinnen als "print iets" of "als dit gebeurt, doe dan dat". Het is als het leren van "Hallo" en "Hoe gaat het?".
- B1 & B2 (De Zelfstandigen): Iets complexer. Denk aan zinnen met bijvoeglijke naamwoorden of tijdsvoorwaarden. In code zijn dit dingen zoals lijsten met woordenboeken of speciale functies.
- C1 & C2 (De Meesters): Dit is de "grote literatuur". Zeer complexe zinsconstructies, metaforen en grammatica die alleen native speakers of experts snappen. In code zijn dit geavanceerde trucs die zelfs ervaren programmeurs soms even moeten bestuderen om te doorgronden.
2. Wat vonden ze? De "AI-Babysitter"
De onderzoekers keken naar duizenden code-aanpassingen (Pull Requests) die door AI-agenten zijn gemaakt.
De AI is een superleuke, maar simpele babysitter: De conclusie is verrassend simpel. AI-agenten schrijven voornamelijk simpele code.
- Meer dan 90% van de code die AI schrijft, valt in de categorie "Beginner" (A1 en A2).
- Minder dan 1% is "Meesterwerk" (C2).
- Het is alsof de AI alleen maar simpele zinnen schrijft. Het is makkelijk te lezen voor bijna elke programmeur.
Vergelijking met mensen: Mensen schrijven ook vooral simpele code! De verdeling tussen AI en mensen is bijna hetzelfde. Mensen gebruiken net iets meer van die "Meester"-trucs (C2), maar het verschil is klein.
- De les: Je hoeft geen universitair afgestudeerd programmeur te zijn om de code van een AI te begrijpen. Een beginner met basisvaardigheden kan het meestal wel volgen.
3. Wanneer wordt het lastig? (De "Bijzonderheden")
Hoewel de AI meestal simpel schrijft, zijn er uitzonderingen. De onderzoekers keken naar de code-aanpassingen die het meeste complexe werk bevatten.
- Wanneer is het moeilijk? Als de AI een nieuwe functie toevoegt (bijvoorbeeld: "voeg een knop toe die de foto's verkleurt") of als er een bug moet worden gefixt die hardnekkig is.
- De metafoor: Stel je voor dat de AI normaal gesproken alleen simpele wanden bouwt. Maar als je vraagt: "Bouw een ingewikkeld trapje met een glazen leuning", dan probeert de AI dat ook te doen. Dan schrijft hij ineens die moeilijke "C1/C2" code.
- Het gevaar: Als een AI zo'n ingewikkeld trapje bouwt, moet de menselijke programmeur die het controleert, wel echt weten hoe dat werkt. Als die programmeur niet goed genoeg is, kan hij het trapje niet veilig maken als er iets misgaat.
Samenvatting in één zin
AI-agenten schrijven over het algemeen code die net zo simpel is als die van een gemiddelde mens, maar als ze een moeilijke klus moeten klaren (zoals een nieuw systeem bouwen), kunnen ze soms code schrijven die alleen voor de "top-architecten" onder ons makkelijk te lezen is.
De boodschap voor bedrijven: Je hoeft je geen zorgen te maken dat AI code schrijft die niemand begrijpt. Maar zorg wel dat je team genoeg "meester-architecten" in huis heeft om die zeldzame, complexe klusjes van de AI te controleren.
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.