Kąt Andersona
Kod Ludzki z 2020 roku pokonał agentów kodowanych wibacyjnie w testach agenckich

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: 

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. 
„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.












