Andersons hoek
Menselijke Code Van 2020 Versloeg Vibe-Gecodeerde Agents in Agente-Tests

ChatGPT en andere vibe-coding-tools werden getest in bijna 40.000 wedstrijden – en verloren van code geschreven door een masterstudent voordat de uitvinding van Large Language Models.
In een nieuwe studie uit het VK hebben onderzoekers menselijke gecodeerde agents tegenover vibe-gecodeerde agents ontwikkeld met de nieuwste Large Language Models (LLM’s), zoals ChatGPT-5 en Claude, en ontdekt dat de agents die zonder de hulp van AI zijn gemaakt, de AI-gefaciliteerde versies gemakkelijk versloegen.
Beide sets van agents zijn ontwikkeld door verschillende generaties studenten van het Artificial Intelligence Laboratory van de Zwitserse Federale Technische Universiteit van Lausanne. De niet-AI-agents zijn ontwikkeld als onderdeel van een cursus in 2020, twee jaar voordat de invoering van ChatGPT en het begin van de LLM-revolutie, terwijl de nieuwe agents zijn ontwikkeld door huidige studenten, geholpen door de nieuwste en beste LLM’s die beschikbaar zijn.
Selfs met een oneerlijke wedstrijd, konden de vibe-gecodeerde oplossingen niet winnen, en de top vijf posities werden consistent bezet door ‘ruwe’ agents, met de meerderheid van de LLM-agents (33 van de 40) gemakkelijk verslagen door ‘zeer eenvoudige’ baseline-agents, over 38.304 uitdagingen in een toernooi, over een breed aantal variabelen en omstandigheden.
Het artikel zegt:
‘Ons werk toont aan dat, hoewel state-of-the-art LLM’s code kunnen genereren die draait (d.w.z. vrij van syntaxisfouten), de gegenereerde oplossing niet concurrerend is met menselijk ontworpen oplossingen op dimensies zoals strategisch plannen, optimalisatie of multi-agent competitie.
‘Dus, dit werk brengt deze nieuwe grens in codegeneratie naar voren en heeft als doel het ontwikkelen van benchmarks, datasets en open-source baselines die redenering-gedreven code-synthese benadrukken.’
De uitdaging die werd bedacht, was om creatief deel te nemen aan veilingen, over een variatie aan strategieën, en om de logistiek van het leveren van gewonnen artikelen aan de winnaars te regelen.
De auteurs merken op dat een aantal voordelen werd gegeven aan LLM’s, zoals het ingrijpen in hun code om hun prestaties te verbeteren – een voordeel dat niet werd toegestaan aan de code van 2020; zelfs met deze voordelen konden de LLM’s niet winnen:
‘[In] onze benchmark, zelfs als we een goede oplossing in-context blootstellen, kan de LLM deze nog steeds niet gebruiken.
‘Dit resultaat roept ook interessante toekomstige onderzoeksvragen op over de beperkingen van in-context leren en retrieval-versterkt probleemoplossen in complexe scenario’s.’
De LLM’s die in de test werden gebruikt, waren GPT-5 Thinking, Gemini 2.5 Pro, Claude Opus 4.1, en DeepSeek R1*.
Het nieuwe artikel heeft als titel Kunnen Vibe-Coding Graduate CS-Studenten Verslaan? Een LLM vs. Menselijke Coding Toernooi op Markt-Gedreven Strategisch Plannen, en komt van een auteur aan de Universiteit van Southampton en een andere aan de Universiteit van Oxford en het Alan Turing Institute. De benchmark zal, volgens de auteurs, kort worden vrijgegeven.
Methode
De auteurs merken op dat traditionele tests in deze sfeer zich richten op uitdagingen met duidelijk gedefinieerde binaire oplossingen (correct of onjuist), geverifieerd door unit tests. Ze beweren dat dit niet de ideale manier is om de beperkingen van LLM-gefaciliteerde code te onderzoeken, en hebben in plaats daarvan een complexere uitdagingsscenario bedacht, met meerdere interne benchmarks en mijlpalen, waarin overwinning mogelijk is, maar verre van eenvoudig:
![Vergelijking van standaard, unit-test-gebaseerde benaderingen (boven), en het meer open-eindige uitdagingsscenario dat door de auteurs is bedacht (in blauw, onder). Bron [ https://arxiv.org/pdf/2511.20613 ]](https://www.unite.ai/wp-content/uploads/2025/11/figure-1-2.jpg)
Vergelijking van standaard, unit-test-gebaseerde benaderingen (boven), en het meer open-eindige uitdagingsscenario dat door de auteurs is bedacht (in blauw, onder). Bron
De Veiling, Ophalen en Bezorgprobleem (APDP) dat voor de studie van de auteurs werd gebruikt, was gedeeltelijk zelfgekozen, vanwege de beschikbaarheid van een corpus van studentenwerk van 2020 van de Zwitserse universiteit; werk dat was gericht op het creëren van geautomatiseerde agents voor de APDP-taak, voordat er enige mogelijkheid was om de ontwikkeling te ondersteunen met AI. Daarom was het relatief eenvoudig om moderne studenten op te dragen met dezelfde opdracht, maar met de beschikking over huidige tools.
De auteurs zochten naar manieren om populaire testkaders te vermijden, zoals HumanEval, BigCodeBench en WebDev Arena (onder andere), omdat deze klasse van testprocedures lijdt aan gegevensverontreiniging (d.w.z. gevallen waarin het systeem getraind kan zijn op testgegevens in plaats van een split te respecteren).
De APDP is een twee-fase logistiek probleem gebaseerd op omgekeerde veilingen en voertuigrouteplanning. In de eerste fase concurreren agents om leveringstaken te winnen door biedingen in te dienen voor hoeveel ze betaald zouden moeten krijgen om elke taak te voltooien. Te hoog bieden betekent het verlies van de taak; te laag bieden kan betekenen dat er geld verloren gaat.
In de tweede fase moet elke agent een efficiënt plan creëren om alleen de taken te voltooien die ze hebben gewonnen, door taken toe te wijzen aan voertuigen met verschillende capaciteiten en kosten, onder tijds- en bronbeperkingen:

In de APDP concurreren bedrijven in omgekeerde veilingen voor leveringstaken, en optimaliseren ze voertuigroutes om alleen de taken te voltooien die ze winnen, met als doel de winst te maximaliseren.
Het doel is niet alleen om de taken te voltooien, maar om de totale winst te maximaliseren door te anticiperen welke bundels van taken het beste samen zullen werken, en door de strategieën van concurrerende agents te voorspellen die allemaal proberen hetzelfde te doen.
De APDP-benchmark verhoogt de moeilijkheid van codegeneratie-taken door strategisch plannen over een reeks van onderling afhankelijke veilingen in te voeren, waarbij elke bieding het landschap van toekomstige keuzes herschikt; en vereist dus dat agents redeneren, niet alleen over onmiddellijke kosten, maar over positionering, timing en langetermijngevolgen.
Het kernleveringsprobleem is NP-hard, d.w.z. geen algoritme kan betrouwbaar de beste oplossing vinden in een redelijke tijd als het aantal taken toeneemt. Dit maakt brute force een onwerkbaar benadering, en dwingt agents om precisie in te ruilen voor snelheid.
De Wedstrijd Is Aan
De auteurs hebben 40 LLM-gecodeerde agents vergeleken met 17 menselijk gecodeerde agents in een reeks van tête-à-tête-toernooien. Elk van de 12 toernooien gebruikte een andere combinatie van vier wegennetwerktopologieën, en bestond uit all-play-all koppelingen, waarbij agents elke andere tegenstander twee keer tegenkwamen: eenmaal als controle over twee bedrijven, met verschillende voertuigspecificaties.
Dit leverde 3.192 wedstrijden per toernooi op, in totaal 38.304 wedstrijden. In elke wedstrijd werden 50 leveringstaken geveild, gedefinieerd door hun ophaal- en afleverpunten en gewicht, en willekeurig getrokken over weglay-outs gemodelleerd naar Zwitserland, Frankrijk, Groot-Brittannië en Nederland:

Vereenvoudigde wegennetwerken gebruikt in het toernooi: Groot-Brittannië (boven links), Zwitserland (boven rechts), Nederland (onder links) en Frankrijk (onder rechts). Blauwe en rode vierkanten markeren ophaal- en leveringstaken. Gekleurde driehoeken laten de huidige posities van voertuigen van agents zien.
Studenten-agents werden geselecteerd uit een toernooi van 2020. Acht kwamen uit de top-presteerders in een enkele eliminatie-finale, en vier meer werden gekozen voor hun sterke prestatie tegen de baseline-agents in tête-à-tête-wedstrijden.
De baseline-agents volgden vaste heuristieken. Naïef berekende de totale afstand en bood dienovereenkomstig, met behulp van slechts één voertuig en het negeren van batchverwerking; ExpCostFixedBid simuleerde 10 willekeurige taken, en bood de gemiddelde marginale kosten; Honest berekende de daadwerkelijke marginale kosten van het invoegen van de taak in de planning; ModelOpponent deed hetzelfde, maar voegde een schatting van de kosten van de tegenstander toe, en bood het maximum; en RiskSeeking combineerde een tijd-afnemende prioriteit met live-kostenraming en tegenstandermodellering – en bood opnieuw het hogere van de twee.
De evaluatie omvatte 40 LLM-gecodeerde agents die zijn gebouwd met (de eerder genoemde) GPT-5 Thinking, Claude Opus 4.1, Gemini 2.5 Pro en DeepSeek R1. Elk model werd geprompt met vijf verschillende strategieën, toegepast tweemaal per model.
Twee strategieën gebruikten statische prompts geschreven door verschillende auteurs, terwijl een derde de model vroeg om zelf te reflecteren en zijn eigen output te herzien; een andere betrof kritiek en herziening door een apart LLM. De laatste strategie gebruikte GPT-4 om een nieuwe prompt te synthetiseren door alle vier eerdere benaderingen te bekijken.
De basisprompt weerspiegelde de oorspronkelijke studentenopdracht, die de leveringsomgeving beschreef en het model instrueerde om te bieden en te plannen om de winst te maximaliseren, zonder te vertrouwen op methoden met hoge complexiteit.
Alle LLM-agents werden getest in zowel zelfspel als toernooi-instellingen totdat alle waarneembare bugs waren verholpen. Bugfixing werd autonoom afgehandeld door de LLM’s zelf, met prompts die foutinformatie bevatten.
Gemeenschappelijke LLM-fouten, zoals vermeld in het artikel, omvatten overtredingen van tijdlimieten, falen om toegewezen taken op te halen of te leveren, en schendingen van voertuigcapaciteitsbeperkingen – fouten die vaak voortkwamen uit het negeren van expliciete instructies, of uit defecte herplanningslogica†:
‘Een ander veelvoorkomend probleem dat we vonden (vooral met Gemini, Claude en DeepSeek, en niet zozeer met GPT) is dat de LLM vaak consistent faalde om een fout op te lossen.
‘Bijvoorbeeld, een agent zou consistent tijdens de tijd limiet overschrijden, ondanks meerdere (bijv. 5 − 15) cycli van het LLM te prompten met de fout en de bijgewerkte versie van de code te ontvangen.
‘De enige oplossing die we voor dergelijke situaties vonden (waar het LLM herhaaldelijk faalt om dezelfde fout op te lossen) is om opnieuw te beginnen. Over het algemeen hebben we de noodzaak vastgesteld van aanzienlijke handmatige inspanning om foutvrije code te bereiken. We moesten aanzienlijk meer agents genereren om de 40 foutvrije agents te krijgen die we hebben geëvalueerd.’
De resultaten die hieronder worden weergegeven, samenvatten de uitkomsten van 12 dubbele ronde-robin-toernooien, die vier netwerktopologieën en drie toernooien per topologie omvatten, met in totaal bijna 40.000 wedstrijden:
| Agent | Avg #Wins / Toernooi | SD #Wins / Toernooi | Avg #Losses / Toernooi | SD #Losses / Toernooi | Totaal Wins | Totaal Losses | Winrate |
|---|---|---|---|---|---|---|---|
| Student 1 | 108.167 | 1.193 | 3.833 | 1.193 | 1298 | 46 | 0.9658 |
| Student 2 | 104.917 | 2.539 | 7.083 | 2.539 | 1259 | 85 | 0.9368 |
| Student 3 | 103.917 | 2.466 | 8.083 | 2.466 | 1247 | 97 | 0.9278 |
| Student 4 | 103.25 | 1.815 | 8.75 | 1.815 | 1239 | 105 | 0.9219 |
| Student 5 | 96.5 | 2.908 | 15.5 | 2.908 | 1158 | 186 | 0.8616 |
| LLM(O, IR, 1) | 95.417 | 2.314 | 16.583 | 2.314 | 1145 | 199 | 0.8519 |
| LLM(O, A2, 1) | 94.583 | 2.314 | 17.417 | 2.314 | 1135 | 209 | 0.8445 |
| Student 6 | 93.167 | 1.899 | 18.833 | 1.899 | 1118 | 226 | 0.8318 |
| Student 7 | 93.167 | 3.563 | 18.833 | 3.563 | 1118 | 226 | 0.8318 |
| LLM(O, A1, 1) | 86.083 | 3.029 | 25.917 | 3.029 | 1033 | 311 | 0.7686 |
| LLM(O, GEN, 2) | 84.083 | 6.947 | 27.917 | 6.947 | 1009 | 335 | 0.7507 |
| LLM(O, CR, 2) | 83.5 | 4.442 | 28.5 | 4.442 | 1002 | 342 | 0.7455 |
| Student 8 | 83.417 | 4.122 | 28.583 | 4.122 | 1001 | 343 | 0.7448 |
| RiskSeeking | 82.417 | 3.343 | 29.583 | 3.343 | 989 | 355 | 0.7359 |
| LLM(O, GEN, 1) | 80.667 | 4.355 | 31.25 | 4.372 | 968 | 375 | 0.7208 |
| ModelOpponent | 80.583 | 3.26 | 31.417 | 3.26 | 967 | 377 | 0.7195 |
| LLM(D, A1, 1) | 79.417 | 3.965 | 32.583 | 3.965 | 953 | 391 | 0.7091 |
| ExpCostFixedBid | 77.167 | 4.951 | 34.833 | 4.951 | 926 | 418 | 0.689 |
| LLM(O, IR, 2) | 73.917 | 3.502 | 38 | 3.618 | 887 | 456 | 0.6605 |
| LLM(O, A1, 2) | 72.417 | 2.193 | 39.583 | 2.193 | 869 | 475 | 0.6466 |
| LLM(G, A1, 2) | 68.5 | 3.555 | 43.5 | 3.555 | 822 | 522 | 0.6116 |
| LLM(A, GEN, 2) | 67.917 | 2.968 | 44.083 | 2.968 | 815 | 529 | 0.6064 |
| LLM(G, IR, 2) | 65.917 | 2.314 | 46.083 | 2.314 | 791 | 553 | 0.5885 |
| Student 9 | 64.167 | 11.044 | 47.833 | 11.044 | 770 | 574 | 0.5729 |
| LLM(G, A1, 1) | 64 | 4.243 | 47.917 | 4.316 | 768 | 575 | 0.5719 |
| LLM(G, IR, 1) | 60.333 | 3.725 | 51.667 | 3.725 | 724 | 620 | 0.5387 |
| LLM(O, A2, 2) | 59.333 | 4.499 | 52.667 | 4.499 | 712 | 632 | 0.5298 |
| LLM(D, CR, 1) | 55.083 | 6.694 | 56.833 | 6.59 | 661 | 682 | 0.4922 |
| LLM(G, GEN, 2) | 53.167 | 3.664 | 58.833 | 3.664 | 638 | 706 | 0.4747 |
| LLM(D, GEN, 2) | 52.083 | 9.06 | 59.917 | 9.06 | 625 | 719 | 0.465 |
| Honest | 50.583 | 3.848 | 61.417 | 3.848 | 607 | 737 | 0.4516 |
| Student 10 | 48.833 | 2.98 | 63.167 | 2.98 | 586 | 758 | 0.436 |
| LLM(D, IR, 1) | 48.583 | 10.211 | 63.417 | 10.211 | 583 | 761 | 0.4338 |
| LLM(A, A1, 1) | 48 | 4.69 | 64 | 4.69 | 576 | 768 | 0.4286 |
| LLM(G, A2, 1) | 47.25 | 3.864 | 64.75 | 3.864 | 567 | 777 | 0.4219 |
| LLM(A, CR, 1) | 43.833 | 4.609 | 68.167 | 4.609 | 526 | 818 | 0.3914 |
| LLM(A, A1, 2) | 43.75 | 2.05 | 68.25 | 2.05 | 525 | 819 | 0.3906 |
| Student 11 | 42.083 | 5.664 | 69.917 | 5.664 | 505 | 839 | 0.3757 |
| LLM(A, IR, 1) | 39.5 | 2.541 | 72.5 | 2.541 | 474 | 870 | 0.3527 |
| Naive | 36.75 | 1.712 | 75.25 | 1.712 | 441 | 903 | 0.3281 |
| Student 12 | 36.333 | 1.775 | 75.667 | 1.775 | 436 | 908 | 0.3244 |
| LLM(D, A2, 1) | 33.917 | 2.193 | 78.083 | 2.193 | 407 | 937 | 0.3028 |
| LLM(A, GEN, 1) | 30.167 | 1.749 | 81.833 | 1.749 | 362 | 982 | 0.2693 |
| LLM(D, A2, 2) | 29.833 | 2.038 | 82.167 | 2.038 | 358 | 986 | 0.2664 |
| LLM(G, A2, 2) | 27 | 2.256 | 85 | 2.256 | 324 | 1020 | 0.2411 |
| LLM(A, A2, 1) | 26.333 | 0.985 | 85.667 | 0.985 | 316 | 1028 | 0.2351 |
| LLM(O, CR, 1) | 25 | 3.411 | 87 | 3.411 | 300 | 1044 | 0.2232 |
| LLM(A, IR, 2) | 24.333 | 8.542 | 87.667 | 8.542 | 292 | 1052 | 0.2173 |
| LLM(A, A2, 2) | 24 | 1.809 | 88 | 1.809 | 288 | 1056 | 0.2143 |
| LLM(A, CR, 2) | 23.333 | 1.557 | 88.667 | 1.557 | 280 | 1064 | 0.2083 |
| LLM(D, GEN, 1) | 22.5 | 1.784 | 89.5 | 1.784 | 270 | 1074 | 0.2009 |
| LLM(D, A1, 2) | 13.333 | 1.826 | 98.667 | 1.826 | 160 | 1184 | 0.119 |
| LLM(G, CR, 1) | 9.5 | 1.087 | 102.5 | 1.087 | 114 | 1230 | 0.0848 |
| LLM(G, GEN, 1) | 9.167 | 0.937 | 102.833 | 0.937 | 110 | 1234 | 0.0818 |
| LLM(D, IR, 2) | 7.75 | 0.622 | 104.25 | 0.622 | 93 | 1251 | 0.0692 |
| LLM(G, CR, 2) | 7.25 | 1.422 | 104.75 | 1.422 | 87 | 1257 | 0.0647 |
| LLM(D, CR, 2) | 5.667 | 0.985 | 106.333 | 0.985 | 68 | 1276 | 0.0506 |
Om context te geven, speelde elke agent 112 wedstrijden per toernooi, dus het maximale mogelijke gemiddelde voor winst of verlies per agent is 112. De standaarddeviatie (SD) weerspiegelt de variabiliteit over toernooien. Menselijk gecodeerde agents worden weergegeven in het vet. LLM-gecodeerde agents worden gelabeld met het model (O = GPT-5 Thinking, G = Gemini 2.5 Pro, A = Claude Opus 4.1, D = DeepSeek R1), gevolgd door een twee-letterige promptstrategiecode en een cijfer dat aangeeft of de agent de eerste of tweede is die met die prompt is gegenereerd. Bron
Met betrekking tot de resultaten die hierboven worden weergegeven, verklaren de auteurs†:
‘LLM’s genereren geen verwachte/concurrerende code, zelfs niet in eenvoudigere varianten van het APDP-probleem (ondanks dat de code grotendeels vrij is van syntaxisfouten). Dit onderstreept het belang van redenering-gedreven code-evaluatiebenchmarks die verder gaan dan auto-complete en nieuwe zwakheden van LLM’s identificeren.’
‘Onze resultaten demonstreren een duidelijke superioriteit van menselijk gecodeerde agents: (i) De top 5 posities worden consistent bezet door studenten-agents, en (ii) de meerderheid van de LLM-agents (33 van de 40) wordt gemakkelijk verslagen door zeer eenvoudige baseline-agents (zoals de verwachte vaste biedprijs).
‘Belangrijk is dat we de studentencode niet hebben gedebugeerd (terwijl we de LLM-code grondig hebben getest en gedebugeerd, zowel in zelfspel als in toernooi-instellingen). Elke keer dat een studenten-agent crashte, gaven we automatisch de overwinning aan de LLM. Een groot aantal van deze crashes zou eenvoudig te verhelpen zijn (bijv. agents die tijdens de tijd limiet overschreden), dus studenten-agents zouden potentieel hoger kunnen scoren.’
Als een verdere experiment werd GPT-5 Thinking geprompt om de code van de best presterende menselijke agent, Student 1, te verbeteren; maar de nu LLM-gemodificeerde agent zakte vervolgens naar de tiende plaats, nu de slechtste van alle menselijke scores. In plaats van de oplossing te verbeteren, verslechterden de LLM’s de veranderingen met bijna 20%.
De auteurs concluderen:
‘[Onze] resultaten benadrukken belangrijke beperkingen van LLM-codegeneratie, met name hun beperkte redenerings- en planningscapaciteiten bij het genereren van . Moderne LLM's kunnen syntaxisfoutvrije code leveren die draait, maar dat is niet de benchmark die we moeten gebruiken om vooruitgang te meten naar geavanceerde algemene AI.'
Conclusie
De auteurs zelf merken op het einde van het artikel op dat vibe-coding mensen met alle technische achtergronden heeft geëmancipeerd, en karakteriseren de praktijk in een positief licht, als een gelijkmaker. Ze impliceren echter ook dat, omdat vibe-coding pas net is aangekomen, de grenzen ervan nog niet bekend zijn en mogelijk hoger zijn dan men realistisch kan verwachten.
Ze sluiten hun aanbod af door op te roepen tot een doelverschuiving 'van code die compileert naar code die concurreert'.
Een vraag die de gewone lezer van dit interessante nieuwe artikel kan hebben, is of de auteurs boven of onder hun gewicht slaan, aangezien de agente-taak in kwestie aanzienlijk complexer en ingewikkelder is dan het produceren van PowerShell-scripts en andere vormen van kleine functionaliteit en fixes waarvoor vibe-coding goed geschikt is.
* Let op dat het artikel voortdurend naar 'DeepThink R1' verwijst, wat niet bestaat, en slechts een handvol verwijzingen op internet oplevert (vermoedelijk van andere auteurs die 'DeepSeek R1' verkeerd hebben geschreven). Als dit mijn fout is, neem dan contact met me op via mijn profielgegevens, en ik zal het aanpassen.
† Auteursbenadrukking, niet de mijne.
Eerst gepubliceerd op woensdag 26 november 2025. Aangepast 17:35 est voor opmaak.












