Dwa systemy AI sprawdzały swój kod. Człowiek wykrył błąd w 5 minut

Wielu przedsiębiorców uważa, że rozwój sztucznej inteligencji całkowicie zmienił zasady gry w branży technologicznej. Pojawiają się głosy, że nowoczesne modele językowe są już w stanie samodzielnie tworzyć, testować i wdrażać zaawansowane systemy informatyczne. Właściciele małych firm, skuszeni wizją redukcji kosztów, coraz częściej zastanawiają się, czy zatrudnianie specjalistów do budowy stron internetowych, sklepów online czy automatyzacji procesów ma jeszcze jakikolwiek sens.
Rzeczywistość bywa jednak znacznie bardziej skomplikowana, o czym świadczy niezwykle ciekawy eksperyment opisany niedawno w społeczności DEV Community. Autor badania postanowił sprawdzić, co się stanie, jeśli całkowicie wykluczymy człowieka z procesu weryfikacji kodu i powierzymy to zadanie dwóm współpracującym ze sobą systemom sztucznej inteligencji. Wyniki tego 30-dniowego testu przynoszą niezwykle cenne wnioski dla każdego, kto planuje wdrożenie rozwiązań cyfrowych w swoim biznesie.
Choć technologia AI wykazała się ogromną skutecznością przy wykrywaniu prostych, powtarzalnych błędów, to w kluczowym momencie zawiodła na całej linii. Jeden poważny błąd logiczny, który mógł doprowadzić do utraty pieniędzy przez klientów, został bezkrytycznie zaakceptowany przez sztucznego recenzenta. Ostatecznie to ludzki programista potrzebował zaledwie pięciu minut, aby podczas końcowej analizy dostrzec i naprawić krytyczne niedopatrzenie.
Eksperyment: Dwa systemy AI na straży jakości kodu
Autor eksperymentu przez 30 dni testował bardzo konkretne założenie. Miesiąc wcześniej pozwolił sztucznej inteligencji pisać sto procent swojego kodu. Najważniejsza lekcja, jaką z tego wyciągnął, sprowadzała się do jednego zdania: narzędzie, które pisze kod, nigdy nie powinno być tym samym narzędziem, które go ocenia. Model sprawdzający własną pracę domową zawsze wystawi sobie ocenę celującą, bezkrytycznie akceptując wszelkie niedociągnięcia.
Aby rozwiązać ten problem, w kolejnym miesiącu wdrożył nowy schemat działania. Zamiast jednego modelu, zaangażował dwa niezależne agenty AI, którym celowo przydzielił zupełnie inne role. Pierwszy z nich, nazwany agentem-autorem, miał za zadanie budować nowe funkcjonalności i dbać o to, aby wszystkie testy przechodziły pomyślnie. Drugi agent, nazwany sceptykiem, pełnił rolę bezwzględnego recenzenta, którego jedynym celem było znalezienie słabych punktów w kodzie stworzonym przez autora.
Kluczem do sukcesu było odpowiednie zdefiniowanie roli sceptyka. Nie otrzymał on standardowego, łagodnego polecenia przejrzenia zmian. Jego instrukcja była wybitnie konfrontacyjna: "Załóż, że ten kod jest uszkodzony. Wygeneruj dane wejściowe, które spowodują, że klient straci pieniądze. Znajdź elementy, które już istnieją, a ten kod próbuje je napisać na nowo. Znajdź stan, którego nikt nie przewidział". Taka zmiana perspektywy sprawiła, że sceptyk szukał powodów do odrzucenia kodu, a nie do jego bezkrytycznego zaakceptowania.
Co sztuczna inteligencja potrafi wykryć bez pomocy człowieka?
Przez 30 dni autor eksperymentu skrupulatnie rejestrował każde zdarzenie: błędy wykryte przez sceptyka, błędy przeoczone przez maszynę oraz fałszywe alarmy. W tym okresie w kodzie pojawiło się 41 rzeczywistych problemów, które kompetentny programista powinien bez trudu zauważyć. Wynik sztucznej inteligencji okazał się zaskakująco wysoki – sceptyk wykrył aż 38 z 41 błędów.
Maszyna doskonale poradziła sobie z następującymi obszarami:
- Rozjazd architektury (architecture drift): Gdy agent-autor napisał nową funkcję formatCurrency, nie wiedząc, że taka funkcja już istnieje w projekcie, sceptyk natychmiast to wychwycił. Podobnie stało się z powieloną weryfikacją uprawnień (auth check), która dublowała istniejące oprogramowanie pośredniczące (middleware), oraz z nieznacznie różniącym się typem użytkownika (User type) w nowym module.
- Połknięte błędy (swallowed errors): Twórcy kodu mają naturalną tendencję do zabezpieczania wszystkiego blokami try/catch i przechodzenia do kolejnych zadań. Sceptyk, dzięki instrukcji nakazującej szukanie ukrytych awarii, bezbłędnie wskazywał bloki catch, które jedynie zapisywały błąd w logach i kontynuowały działanie programu, jakby nic się nie stało.
- Warunki wyścigu (race conditions): Sceptyk potrafił przeanalizować sytuację, w której dwa współbieżne żądania odwoływały się do jednego licznika bez odpowiedniej blokady (lock). Wykrył to, ponieważ kazano mu szukać najgorszych możliwych scenariuszy, a najgorszym scenariuszem w tym przypadku były dwa żądania wysłane w tym samym czasie.
Gdyby eksperyment zakończył się w tym miejscu, można by ogłosić pełen sukces technologii AI i stwierdzić, że ludzki nadzór nad kodem jest już całkowicie zbędny. Jednak trzy błędy, których sztuczna inteligencja nie zauważyła, dotyczyły kwestii o fundamentalnym znaczeniu dla stabilności biznesu.
Krytyczny błąd, który umknął maszynie
Wszystkie trzy przeoczone przez sceptyka błędy należały do tej samej kategorii: były to ciche błędy spójności danych na tzw. ścieżce nieoptymistycznej (unhappy path). Najpoważniejszy z nich dotyczył integracji z systemem płatności Stripe.
Agent-autor napisał kod obsługujący webhooki Stripe (powiadomienia o płatnościach), który wysyłał potwierdzenie odbioru (HTTP 200) do Stripe przed zapisaniem informacji o transakcji w bazie danych. W środowisku testowym wszystko działało bez zarzutu. Jednak w warunkach produkcyjnych pojawia się poważne ryzyko: jeśli w ułamku sekundy między wysłaniem potwierdzenia a zapisem do bazy danych nastąpi chwilowy błąd bazy (database blip), transakcja zostanie przerwana.
Dla systemu Stripe płatność została pomyślnie dostarczona i rozliczona. Jednak w bazie danych firmy nie ma po niej śladu. Klient zapłacił, ale nie otrzymał dostępu do usługi, a system nie zarejestrował transakcji. Kiedy autor eksperymentu przekazał dokładnie ten fragment kodu sceptykowi i poprosił o znalezienie luki, która może narazić klienta na utratę pieniędzy, AI zatwierdziło kod bez wahania. Co więcej, pochwaliło rozwiązanie za "szybkie potwierdzanie odbioru w celu zminimalizowania opóźnień".
Dlaczego sztuczna inteligencja nie zauważyła błędu?
Powodem, dla którego sceptyk przeoczył ten krytyczny błąd, nie był brak mocy obliczeniowej czy niska inteligencja modelu. Klucz tkwi w pochodzeniu obu agentów. Zarówno autor, jak i sceptyk należeli do tej samej rodziny modeli językowych. Oznacza to, że zostali przeszkoleni na tym samym zbiorze danych, posiadali te same nawyki i to samo wyobrażenie o tym, jak powinien wyglądać "czysty kod obsługi webhooków".
Skoro agent-autor uznał, że schemat "potwierdź przed zapisem" jest poprawny, to sceptyk – dzieląc z nim ten sam model mentalny – również uznał to za doskonałe rozwiązanie. Maszyna nie potrafiła wyjść poza ramy swoich założeń treningowych. Dopiero człowiek, dysponujący innym doświadczeniem i krytycznym spojrzeniem, potrzebował zaledwie 5 minut na wykrycie tej kosztownej luki podczas ostatecznej weryfikacji.
Co to oznacza dla małej firmy?
Dla właścicieli małych przedsiębiorstw – również tych działających lokalnie na Śląsku, w miastach takich jak Czechowice-Dziedzice, Bielsko-Biała czy Katowice – ten eksperyment niesie niezwykle ważną lekcję. Budując stronę internetową, sklep online czy wdrażając automatyzacje procesów biznesowych, nie można bezkrytycznie ufać rozwiązaniom generowanym w 100% przez sztuczną inteligencję.
Wyobraźmy sobie lokalny sklep internetowy ze Śląska, który wdraża automatyczne płatności. Jeśli system zostanie napisany przez AI i wdrożony bez rzetelnego, ludzkiego nadzoru, opisany wyżej błąd ze Stripe może doprowadzić do paraliżu obsługi klienta. Kupujący z Bielska-Białej czy Katowic zapłacą za towar, pieniądze wpłyną na konto, ale system nie odnotuje zamówienia. Efektem będą dziesiątki reklamacji, utrata zaufania i straty finansowe.
Sztuczna inteligencja jest potężnym narzędziem wspierającym pracę, ale nie zastąpi doświadczonego programisty. Profesjonalne wdrożenia, jakie realizuje prowebcrafting.com, opierają się na zasadzie ograniczonego zaufania do kodu generowanego automatycznie. Każda linijka kodu, każda automatyzacja i integracja z systemami zewnętrznymi musi zostać zweryfikowana przez człowieka, który potrafi przewidzieć nietypowe scenariusze biznesowe i techniczne, wykraczające poza standardowe schematy AI.
Podsumowanie
Wykorzystanie sztucznej inteligencji do weryfikacji kodu może przynieść znakomite rezultaty przy wykrywaniu powtarzalnych błędów, takich jak powielone funkcje czy nieprawidłowo obsłużone błędy w blokach try/catch. Jednak w kluczowych momentach, gdy decyduje się bezpieczeństwo transakcji i spójność danych, AI wykazuje systemowe luki wynikające z tych samych schematów myślowych. Doświadczenie człowieka i jego zdolność do nieszablonowego myślenia pozostają niezastąpione, gwarantując, że Twoja firma uniknie kosztownych błędów wizerunkowych i finansowych.
Zdjęcie: Jakub Zerdzicki / Pexels
Źródła
Najczęstsze pytania
Usługi powiązane z tym tematem
- Automatyzacje AI dla firm — chatbot, auto-odpowiadacz e-mail, rezerwacje i formularz do CRM
Chcesz stronę, która pracuje na Twój biznes?
Zaprojektujemy Ci nowoczesny serwis WWW lub sklep internetowy — z SEO, dobrą konwersją i wsparciem AI.