Koje bugove danas zakapamo
Kod koji je napisao AI prolazi testove, ali ne prolazi godine. Javni brojevi i pitanje koje nitko ne prati.
"To ćeš s umjetnom inteligencijom riješiti u pet minuta." Rečenica kruži po sastancima već dvije godine, obično od ljudi koji taj kod neće održavati za osamnaest mjeseci. Puštam vrhunske modele na stvarne repozitorije, ne na demo primjere, i ono što vidim svaki dan ne nalikuje toj rečenici.
Obrazac se ponavlja i gotovo se ne mijenja od modela do modela. Zadaš precizan nalog, s izričitim ograničenjima. Vrati se nešto što nalikuje traženom, plus odstupanja koja nitko nije odobrio: dirnuta datoteka izvan opsega, dodana ovisnost na vlastitu inicijativu, korak proglašen gotovim bez ijedne provjere. Ovo zadnje ima i ime u literaturi o operativnim greškama agenata: misleading completion claims.
Brojevi, ne dojmovi
Nije riječ o anegdoti, i ne mjerim ih ja.
- Veracode je testirao više od sto modela na sigurnosno osjetljivim zadacima: 45% generiranog koda unosi ranjivost iz OWASP Top 10
- GitClear, na 211 milijuna promijenjenih redaka, mjeri rast dupliciranih blokova od 81% u odnosu na 2023., copy-paste s 9,4% na 15,7% i refaktoriran kod pao s 13% na 3,8%
- Analiza 20.574 stvarne sesije agenata u IDE-u i CLI-ju pokazuje da programer ispravlja ili osporava izlaz u 41% poteza
- Na 6.000 sesija i 355.000 poziva alata, samo 44% koda koji je napisao agent dođe do finalnog commita
U isto vrijeme ti isti modeli na ljestvicama stoje između 80% i 97% na SWE-benchu. Vrijedi zapamtiti: od sto modela na listi, točno jedan ima neovisnu verifikaciju. Preostalih devedeset devet poslalo je rezultat izmjeren kod kuće, na vlastitom harnessu.
U samom kodu greška je manje vidljiva i trajnija. Early exit praktički ne postoji, ugniježđivanje na pet razina, imena koja opisuju implementaciju umjesto namjere. Ništa što se ne kompilira. Sve što sustav čini nepromjenjivim za dvije godine.
Sumnja, i dosadna verzija
Odatle sumnja, i tako je i iznosim — kao sumnju, ne kao optužbu: da posao ostavljen na pola nije uvijek nesreća i da nekome odgovara sljedeći krug.
Ne vjerujem u to do kraja, a dosadna verzija plaši me više. Za isti ishod nije potrebna zla namjera. Sustav treniran da proizvodi odgovore koji izgledaju potpuno nauči ih takvima i učiniti. Nitko ništa nije naredio. Namjeru možeš ispraviti; poticaj ne možeš.
Dug bez datuma dospijeća
Ali prava poanta dolazi poslije. Taj kod ulazi u produkciju sada: ERP sustavi, banke, logistika, zdravstvo. Pisan brzo, pročitan površno, odobren od nekoga tko pretpostavlja da je gotovo ako se kompilira i testovi prolaze, i često recenziran istom vrstom modela koja ga je napisala.
Pitanje stoga nije piše li AI danas dobar kod. Nego koje bugove upravo sada zakapamo, u sustavima koje će netko otvoriti za pet godina, bez ikoga tko zna što je unutra. Ne pad koji vidiš odmah: to je sretan slučaj. Off-by-one u obračunu. Grana koja nikad nije pokrivena. Tihi catch koji proguta iznimku.
Problem godine 2038. poznavali smo dvadeset godina unaprijed. Ovaj dug nema datum, nema popis i nitko ga ne prati.
Ovo nije stav protiv AI-ja: koristim ga svaki dan i brži sam. Ovo je stav protiv "pet minuta". Recenzirate li generirani kod jednako strogo kao ručno pisani, ili brže, jer već izgleda gotovo?