'Konfabulacijska kaskada': kako AI programerski asistenti uništavaju kod misleći da im baš super ide

Dva nedavna incidenta s AI asistentima za kodiranje stavila su u fokus rizike korištenja ovih alata kada je u jednom slučaju Googleov Gemini CLI uništio je korisničke datoteke, a u drugom, Replitov AI obrisao produkcijsku bazu podataka

Drago Galić petak, 25. srpnja 2025. u 13:22

Takozvano "vibe kodiranje" - korištenje prirodnog jezika za generiranje i izvršavanje koda kroz AI modele (bez vlastitog pisanja i razumijevanja tako napisanog koda) trenutno je u fazi između implementacije u stvarnim radnim procesima i internetskog mema. Da bi se dalo materijala za ovaj drugi slučaj brinu se sami AI asistenti poput Googleovog Gemini CLI-ja koji je nedavno  uništio korisničke datoteke pokušavajući ih reorganizirati ili Replitov AI servis za kodiranje koji je obrisao produkcijsku bazu podataka unatoč eksplicitnim uputama da ne mijenja kod.

Kako već kaže poslovica: tko radi taj i griješi.

Incident s Geminijem dogodio se kada je AI izdao niz naredbi za premještanje datoteka u direktorij koji nije postojao.

"Potpuno sam vas i katastrofalno razočarao. Moj pregled naredbi potvrđuje moje posvemašnje neznanje.", rekao je u svom bizarno-snishodljivom i autoflagelantskom načinu Gemini. ("I have failed you completely and catastrophically. My review of the commands confirms my gross incompetence.")

Prema pisanju na Ars Technici, čini se da je uzrok ovih problema takozvana „kaskadna konfabulacija/halucinacija“, kada AI generira lažne informacije i onda na tim lažnim informacijama gradi sljedeće akcije.

Oba incidenta otkrivaju temeljne probleme s trenutnim AI asistentima za kodiranje. Ideja da se programiranje učini dostupnim ne-programerima kroz prirodni jezik izvrće se tako na glavu jer je za kontroliranje izlaza ovakvih modela zapravo potreban ljudski programer i to vrlo vješt i iskusan koji bi trebao provjeriti tako generirani kod.

Korisnik u incidentu s Geminijem zatražio je od Geminija da izvršava naizgled jednostavan zadatak: preimenovanje mape i reorganizaciju nekih datoteka. Umjesto toga, AI model je pogrešno interpretirao strukturu datotečnog sustava i nastavio izvršavati naredbe na temelju te pogrešne analize.

Epizoda je počela kada je zatraženo od Geminija da preimenuje aktivni direktorij iz "claude-code-experiments" u "AI CLI experiments" i premjesti njegov sadržaj u novu mapu nazvanu "anuraag_xyz project."

Gemini je ispravno identificirao da ne može preimenovati svoj trenutni radni direktorij. Zatim je pokušao stvoriti novi direktorij koristeći:

mkdir "..\anuraag_xyz project"

Ova naredba je očito neuspjela, ali Gemini je pretpostavio da je uspjela (a svi znamo za izreku od pretpostavci kao majci svih za… bluda). S pretpostavkom postojanja nepostojećeg direktorija nastavio je izdavati naredbe za premještanje usmjerene na ovu fantomsku lokaciju.

Kada kopiramo datoteku u nepostojeći direktorij u Windowsima/DOS-u naredba za kopiranje uzima drugi argument kao ime odredišne datoteke, a ne odredišne mape, pa tako „copy a b“ daje kopiju datoteke a spremljenu u datoteku b, a ne kopiju datoteke a u mapu b.

Tako je svaka sljedeća naredba za premještanje koju je izvršio AI model prepisala je prethodnu datoteku, konačno uništivši podatke (izuzev onih u zadnjoj datoteci).

Replit - katastrofa

Neuspjeh Geminija dogodio se samo nekoliko dana nakon sličnog incidenta s Replitom koji je obrisao produkcijsku bazu podataka unatoč eksplicitnim uputama da ne mijenja kod bez dozvole.

Prema korisniku ovog servisa, ovaj je proveo nekoliko dana gradeći prototip s Replitom, nakupivši preko 600 dolara troškova iznad svoje mjesečne pretplate i dobio je funkcionalni kod s kojim je bio zadovoljan.

Ali za razliku od incidenta s Geminijem gdje je AI model baratao nepostojećim direktorijima, Replit je počeo izmišljati podatke da sakrije svoje greške. Njegov početni entuzijazam pogoršao se kada je Replit generirao netočne izlaze i proizvodio lažne podatke i lažne rezultate testova umjesto pravilnih poruka o greškama. U videu objavljenom na LinkedInu, korisnik ovog servisa je detaljno objasnio kako je Replit stvorio bazu podataka ispunjenu s 4.000 izmišljenih ljudi.

AI je također opetovano kršio eksplicitne sigurnosne upute kao što je zamrzavanje koda da spriječi promjene produkcijskih sustava, ali AI model je ignorirao ove direktive. Situacija je eskalirala kada je Replitov AI model obrisao bazu podataka koja je sadržavala 1.206 zapisa i podatke o gotovo 1.200 tvrtki. Kada je upitan da ocijeni ozbiljnost svojih akcija na skali od 100 bodova, Replitov odgovor je glasio: "Ozbiljnost: 95/100. Ovo je ekstremno kršenje povjerenja i profesionalnih standarda.". Kao razlog grešaka AI je naveo "paničarenje kao odgovor na prazne upite" i pokretanje neautoriziranih naredbi - sugerirajući da je možda obrisao bazu podataka pokušavajući "popraviti" ono što je percipirao kao problem.

Kao i Gemini CLI, Replitov sustav je tvrdio da ne može obnoviti obrisane podatke - informacija koja se pokazala netočnom - vraćanje podataka je ipak radilo. Dakle, AI je opet bio u krivu, iako ovoga puta nasreću.

Smatra se da je ovakvo ponašanje AI-ja posljedica toga što ovi alati nemaju stabilnu, dostupnu bazu znanja koju mogu dosljedno upitati. Umjesto toga, ono što "znaju" manifestira se kao nastavci specifičnih upita. U kombinaciji s nasumičnošću u generiranju, to znači da isti model može lako davati proturječne procjene svojih vlastitih sposobnosti ovisno o tome kako pitate.

- "Incidenti otkrivaju i da AI ne prate stvarne učinke svojih akcija i umjesto toga rade na potencijalno pogrešnim unutarnjim reprezentacijama stanja sistema", kaže zaključak.

Dakle, u stvarnosti, što ste vjerojatno i sami primijetili ako dulje koristite AI pomoćnike, ovi doslovce nemaju pojma o tome što se stvarno događa i na čemu rade. Problem je što razgovorni način interakcije s ovim alatima ostavlja potpuno suprotan dojam, posebno na takozvane netehničke korisnike koji uglavnom ovakvu interakciju doživljavaju kao razumijevanje s druge strane ekrana, a koje ne postoji. 

Valja zapamtiti da su svi LLM-ovi veliki statistički modeli koji naše upite dovode u vezu sa (statistički) sličnim upitima i statistički im pripadajućim odgovorima koji se već nalaze u njihovoj golemoj tokeniziranoj bazi. Ne postoji nikakvo razumijevanje komunikacije (ako je to uopće prava riječ) s korisnikom, odnosno njegovim upitima.