Kąt Andersona

Kod Ludzki z 2020 roku pokonał agentów kodowanych wibacyjnie w testach agenckich

mm
Dodaj Unite.AI do preferowanych źródeł w Google
AI-generated image: a Victorian coach and horses winning formula 1 against modern race car competitors. gpt-image-1.

ChatGPT i inne narzędzia do vibe coding przetestowano w niemal 40 000 meczów. Przegrały z kodem studentów studiów magisterskich napisanym przed powstaniem dużych modeli językowych.W nowym brytyjskim badaniu agenci napisani przez ludzi zmierzyli się z agentami stworzonymi metodą vibe coding przy użyciu najnowszych dużych modeli językowych — m.in. GPT-5 i Claude. Agenci bez pomocy AI łatwo wygrali. Obie grupy stworzyły różne roczniki studentów laboratorium AI na EPFL. Agenci bez AI powstali na zajęciach w 2020 r., dwa lata przed ChatGPT, a nowych agentów zbudowali obecni studenci z pomocą najlepszych LLM. Nawet przy przewadze przyznanej AI rozwiązania vibe-coded nie zwyciężyły. Pierwsze pięć miejsc zajęli agenci napisani ręcznie, a 33 z 40 agentów LLM przegrało z prostymi agentami bazowymi w 38 304 pojedynkach. Autorzy piszą:

„Nasza praca pokazuje, że choć najnowocześniejsze LLM potrafią generować działający kod bez błędów składni, rozwiązania te nie konkurują z projektami ludzi pod względem planowania strategicznego, optymalizacji ani rywalizacji wielu agentów.”

„Badanie wskazuje nową granicę generowania kodu i ma wspierać rozwój benchmarków, zbiorów danych i otwartych punktów odniesienia wymagających syntezy kodu opartej na rozumowaniu.”

Zadanie polegało na kreatywnym udziale w aukcjach według różnych strategii i planowaniu logistyki dostawy wygranych zleceń. LLM otrzymały przywileje, w tym możliwość poprawiania kodu, której nie miały rozwiązania z 2020 r. Nawet gdy pokazano im kod, który poprawiłby wyniki, nie potrafiły go wykorzystać:

„W naszym benchmarku LLM nadal nie potrafi wykorzystać dobrego rozwiązania, nawet gdy pokazujemy je w kontekście.”

„Wynik rodzi pytania o granice uczenia kontekstowego i rozwiązywania złożonych problemów wspomaganego wyszukiwaniem.”

Testowano GPT-5 Thinking, Gemini 2.5 Pro, Claude Opus 4.1 oraz DeepSeek R1*. Nowa publikacja nosi tytuł Can Vibe Coding Beat Graduate CS Students? An LLM vs. Human Coding Tournament on Market-driven Strategic Planning i pochodzi od autorów z University of Southampton oraz University of Oxford i Alan Turing Institute. Benchmark ma zostać wkrótce udostępniony.

Metoda

Autorzy zauważają, że tradycyjne testy opierają się na binarnych odpowiedziach: poprawne lub niepoprawne, sprawdzanych przez testy jednostkowe. Aby lepiej badać ograniczenia kodu wspomaganego LLM, zaprojektowali złożone zadanie z wieloma etapami, w którym zwycięstwo jest możliwe, lecz trudne: Porównanie standardowych testów jednostkowych z otwartym scenariuszem autorów Porównanie standardowego podejścia opartego na testach jednostkowych (u góry) z bardziej otwartym wyzwaniem autorów (na niebiesko, u dołu). Źródło Problem Auction, Pickup and Delivery Problem (APDP) wybrano m.in. dlatego, że dostępny był korpus prac studentów z 2020 r. dotyczących agentów automatycznych. Obecni studenci dostali ten sam opis zadania, lecz mogli używać nowych narzędzi. Autorzy unikali popularnych benchmarków, takich jak HumanEval, BigCodeBench i WebDev Arena, ponieważ mogą być zanieczyszczone danymi, gdy system uczył się na danych testowych zamiast przestrzegać prawidłowego podziału danych.Aukcjach odwrotnych i wyznaczaniu tras pojazdów opiera się dwuetapowy APDP. Najpierw agenci licytują kwotę za realizację dostaw: zbyt wysoka oferta przegrywa, zbyt niska grozi stratą. Następnie planują wydajne wykonanie tylko wygranych zadań, przydzielając je pojazdom o różnych pojemnościach i kosztach oraz przestrzegając ograniczeń czasu i zasobów. W APDP firmy licytują zadania dostawcze w aukcjach odwrotnych, a następnie optymalizują trasy dla wygranych zadań, maksymalizując zysk. W APDP firmy licytują zadania dostawcze w aukcjach odwrotnych, a następnie optymalizują trasy pojazdów, aby zrealizować tylko wygrane zadania i zmaksymalizować zysk. Celem nie jest samo wykonanie dostaw, lecz maksymalizacja zysku dzięki przewidywaniu korzystnych pakietów zadań i strategii rywali. Kolejne aukcje są współzależne, więc każdy zakład zmienia przyszłe możliwości, a agent musi rozumować o kosztach, pozycji, czasie i długofalowych skutkach. Główny problem dostaw jest NP-trudny: wraz ze wzrostem liczby zadań nie istnieje algorytm niezawodnie znajdujący najlepsze rozwiązanie w rozsądnym czasie. Brutalna siła odpada, a agenci równoważą precyzję i szybkość.

Wyścig się rozpoczyna

Autorzy porównali 40 agentów LLM z 17 agentami napisanymi przez ludzi. Każdy z 12 turniejów używał innego zestawu czterech sieci drogowych i systemu każdy z każdym, w którym każda para grała dwukrotnie, raz jako każda z dwóch firm. Dawało to 3 192 mecze na turniej i 38 304 łącznie. W każdym meczu aukcja obejmowała 50 dostaw losowanych na mapach Szwajcarii, Francji, Wielkiej Brytanii i Niderlandów. Uproszczone sieci drogowe Wielkiej Brytanii, Szwajcarii, Niderlandów i Francji; kwadraty oznaczają zadania, a trójkąty pozycje pojazdów. Uproszczone sieci drogowe użyte w turnieju: Wielka Brytania, Szwajcaria, Niderlandy i Francja. Niebieskie i czerwone kwadraty oznaczają odbiory i dostawy, a kolorowe trójkąty pozycje pojazdów. Agenci studenccy pochodzili z turnieju kursowego z 2020 r.: ośmiu finalistów i czterech kolejnych skutecznych przeciwko agentom bazowym. Agenci bazowi stosowali stałe heurystyki. Naive obliczał całkowity dystans i licytował na tej podstawie, używając jednego pojazdu; ExpCostFixedBid symulował 10 losowych zadań i oferował średni koszt krańcowy; Honest liczył rzeczywisty koszt wstawienia zadania do harmonogramu; ModelOpponent dodawał szacunek kosztu przeciwnika i wybierał wyższą ofertę; RiskSeeking łączył malejące z czasem założenie z bieżącym kosztem i modelem rywala. Oceniono też 40 agentów z GPT-5 Thinking, Claude Opus 4.1, Gemini 2.5 Pro i DeepSeek R1. Każdy model otrzymał pięć strategii promptowania, po dwa razy. Dwa prompty napisali różni autorzy, trzeci wymagał autorefleksji, czwarty krytyki innego LLM, a piąty GPT-4 zsyntetyzował z poprzednich. Prompt bazowy odtwarzał zadanie studentów: licytować i planować dla maksymalnego zysku bez metod o wysokiej złożoności. Agenci LLM byli testowani i poprawiani przez same modele aż do usunięcia widocznych błędów. Typowe awarie obejmowały przekroczenia czasu, brak odbioru lub dostawy oraz naruszenia pojemności pojazdów, często wskutek ignorowania instrukcji lub wadliwego przeplanowania†:

„Częstym problemem, zwłaszcza Gemini, Claude i DeepSeek, było uporczywe niewyjaśnianie błędu.”

„Agent wielokrotnie przekraczał limit czasu mimo 5–15 cykli przekazywania modelowi błędu i otrzymywania poprawionej wersji kodu.”

„Jedynym rozwiązaniem było rozpoczęcie od zera. Uzyskanie kodu bez błędów wymagało znacznej pracy ręcznej; aby otrzymać 40 sprawnych agentów, trzeba było wygenerować ich o wiele więcej.”

Tabela podsumowuje 12 podwójnych turniejów każdy-z-każdym na czterech topologiach, łącznie niemal 40 000 meczów:

Agent Śr. wygranych / turniej SD wygranych / turniej Śr. porażek / turniej SD porażek / turniej Łącznie wygranych Łącznie porażek Współczynnik wygranych
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

Dla kontekstu każdy agent rozgrywał 112 meczów na turniej, więc maksymalna średnia wygranych lub porażek wynosi 112. Odchylenie standardowe (SD) pokazuje zmienność między turniejami. Agenci ludzi są pogrubieni. Agenci LLM mają oznaczenie modelu (O = GPT-5 Thinking, G = Gemini 2.5 Pro, A = Claude Opus 4.1, D = DeepSeek R1), dwuliterową strategię promptu i numer pierwszej lub drugiej generacji. ŹródłoW odniesieniu do wyników autorzy stwierdzają†:

„LLM nie tworzyły oczekiwanego, konkurencyjnego kodu nawet w prostszych odmianach APDP, mimo że kod był w większości wolny od błędów składni. Pokazuje to potrzebę benchmarków opartych na rozumowaniu, wykraczających poza autouzupełnianie.”

„Wyniki pokazują wyraźną przewagę agentów ludzi: pięć pierwszych miejsc stale zajmują studenci, a większość agentów LLM — 33 z 40 — przegrywa z bardzo prostymi agentami bazowymi.”

„Nie debugowaliśmy kodu studentów, choć dokładnie testowaliśmy i poprawialiśmy kod LLM. Każda awaria studenta dawała automatyczną wygraną LLM. Wiele awarii łatwo byłoby naprawić, więc studenci mogliby uplasować się jeszcze wyżej.”

W dodatkowym eksperymencie GPT-5 Thinking miał ulepszyć najlepszego agenta Student 1; zmodyfikowany agent spadł jednak na dziesiąte miejsce, najgorsze wśród ludzi. Zmiany pogorszyły wynik o niemal 20%. Autorzy podsumowują:

„Wyniki ujawniają ważne ograniczenia generowania kodu przez LLM, zwłaszcza słabe rozumowanie i planowanie. Nowoczesne LLM tworzą działający kod bez błędów składni, ale nie jest to właściwy miernik postępu ku zaawansowanej ogólnej AI.”

Wnioski

Pod koniec publikacji autorzy zauważają, że vibe coding daje możliwości ludziom o różnym zapleczu technicznym i może wyrównywać szanse. Jednocześnie jego granice są jeszcze nieznane i prawdopodobnie niższe, niż często się zakłada. Apelują o zmianę celu: „od kodu, który się kompiluje, do kodu, który konkuruje”. Czytelnik może zapytać, czy porównanie jest sprawiedliwe, ponieważ zadanie agentowe było znacznie bardziej złożone niż proste skrypty PowerShell i drobne funkcje, do których vibe coding dobrze się nadaje. * Uwaga: publikacja stale używa nazwy „DeepThink R1”, która najwyraźniej nie istnieje i prawdopodobnie jest błędnym zapisem „DeepSeek R1”. Jeśli to mój błąd, proszę o kontakt przez profil, a poprawię tekst.† Wyróżnienia pochodzą od autorów, nie ode mnie.Pierwotnie opublikowano w środę 26 listopada 2025 r. Poprawiono formatowanie o 17:35 czasu wschodniego.

Pisarz zajmujący się uczeniem maszynowym, specjalista w dziedzinie syntezy ludzkich obrazów. Były szef ds. treści badawczych w Metaphysic.ai, aż do jej rozwiązania w Brahma.ai firmy DNEG.
Strona internetowa: martinanderson.ai
Kontakt: martin@martinanderson.ai