Eksperiment 001 · 11 min čitanja
Eksperiment 10×
Pokušavamo da saznamo mogu li AI agenti da umnože inženjerski učinak, a da pritom ne umnože defekte, gluposti i posao koji niko ne vidi.
Moram nešto da priznam, što je pomalo nezgodno za inženjera koji piše AI blog: ne verujem potpuno AI agentima.
Gledao sam ih kako promašuju očigledno, samouvereno rešavaju susedni problem i proizvode kod koji deluje pristojno sve dok neko ne pita šta se dešava u utorak kada baza uspori, a korisnik dva puta pritisne Back. Zato, kada agent završi zadatak, prvi instinkt mi je i dalje da otvorim diff i proverim šta je mali gad napravio.
Nije baš sjajna osnova za delegiranje.
Ali jeste iskrena. Dovela nas je do zanimljivijeg pitanja od „koji je model najbolji?“ Pokrenuli smo eksperiment: možemo li dovoljno snažno da preuredimo inženjerski rad oko AI-ja i višestruko ubrzamo isporuku — ne za optimističnih dvadeset procenata, već možda jednog dana deset puta — bez pretvaranja tog ubrzanja u bagove, ponovni rad i operativni bol?
Drugim rečima: možemo li ubrzati ceo sistem, a ne samo kucanje?
Deset agenata nisu 10× inženjer
Iskušenje je očigledno. Otvorite deset agentnih tokova. Svakom dajte zadatak. Izgledajte strašno futuristički dok laptop zvuči kao da se sprema za poletanje.
To radi — do određene tačke. Jedan od nas već pokreće oko deset agenata paralelno i nedeljni limit troši za dan. Drugi je Instagram Reels zamenio gledanjem agenata na poslu, što je ili profesionalni razvoj ili samo skuplja zavisnost. Rezultat je stvaran: tri ili četiri puta više rada uz približno isti lični napor nije fantazija.
Ali paralelizam ne nastaje otvaranjem prozora. Nastaje pronalaženjem nezavisnih, jasno ograničenih problema. Ako je ceo posao jedan neizvestan proizvodni tok, deset agenata uglavnom daje deset razgovora o istoj neizvesnosti.
AI ne uklanja usko grlo. On otkriva šta je usko grlo zapravo bilo.
Ponekad je to kod. Češće su to nedostajući kontekst, nerešena odluka o proizvodu, spoljni sistem koji se ne može testirati ili deo arhitekture koji niko nije razradio. Kada implementacija postane jeftina, nejasnoća postaje skupa.
Rad se pomera ulevo
Novi tok rada deluje skoro komično izvrnuto. Umesto jednog sata za opis zadatka, tri dana kodiranja i još jednog dana za pregled, možemo provesti znatno više vremena na specifikaciji i prepustiti da implementacija nastane brzo.
Ozbiljna specifikacija nije herojski pasus u Jiri. Ona zahteva odluke o poslovnom rezultatu, vlasništvu nad podacima, bezbednosti, arhitekturi, načinima otkaza i test strategiji. Agent mora umeti da objasni kako će dokazati svoj rad. Ako ne može, zadatak nije spreman — ili okruženju nešto nedostaje.
Tu „AI-native engineering“ prestaje da zvuči kao vendorski webinar. Veština više nije proizvesti kod iz tiketa, već izgraditi kontekst u kome je teško proizvesti pogrešan kod.
Eksperimentišemo čak i sa pretvaranjem tehničkih razgovora u input: dođemo sa alternativama, sa drugom osobom raščistimo nejasne delove, beleške sačuvaju pitanja, a agent dobije bogatiji zapis. Sastanak je koristan kada uklanja neizvesnost. Sastanak koji samo čita statuse ostaje ono što je oduvek bio: vandalizam u kalendaru.
Napravite svet koji se može testirati
Odmah se pojavilo pitanje: šta sa tokovima koje agent fizički ne može da završi? Provera identiteta, potpisi, spoljni widgeti, selfiji i sva mesta gde softver traži da čovek pogleda u kameru i dokaže da nije tri rakuna u mantilu.
Odgovor nije odustajanje od end-to-end testiranja. Treba izgraditi svet kojim agent može da upravlja: verne mockove spoljnih granica, sa istim API ugovorom i reprezentativnim interfejsom. Granice pažljivo proveriti prema stvarnosti, a zatim pustiti agente da prolaze desetine internih scenarija bez čoveka koji isti ritual izvodi deset puta dnevno.
To neće biti metafizički savršen E2E test. Ipak može pružiti većinu sigurnosti uz deo stalnog troška. Preostali deo pokriva manji broj pravih happy-path provera. Inženjerstvo je oduvek bilo umeće kupovine prave količine sigurnosti, a ne sve moguće sigurnosti.
Kvalitetu je potrebna sopstvena mašina
Više koda znači više prilika za defekte. Pretvaranje da nije tako pretvara eksperiment produktivnosti u veoma efikasnu fabriku bagova.
Naš radni model ima tri petlje:
- Odluči dobro. Ljudi i agenti grade i osporavaju specifikaciju pre implementacije.
- Isporuči automatski. Agenti implementiraju, testiraju, pregledaju i pripremaju promenu kroz jasan tok.
- Popravljaj neprekidno. Drugi agenti traže regresije, porede očekivano i stvarno ponašanje i šalju ponovljive greške u paralelne petlje popravke.
Treća petlja je važna jer su bagovi neobično pogodni za agente: postoji očekivani rezultat, stvarni rezultat i razlika između njih. To je mnogo lakše delegirati od „izmisli pravi proizvod“. Ambicija nije nula defekata po deklaraciji, već sistem koji ih otkriva i uklanja brže nego što ih povećani output stvara.
Menja se i code review. Više svežih agenata već pronalazi neke klase problema bolje od iscrpljenog autora koji ponovo čita isti diff. Ljudski pregled ostaje presudan za rizične promene, nove modele podataka, bezbednosne granice i arhitektonske odluke. Manje vredi kao ceremonijalno odobrenje hiljadu linija čije je ponašanje već dokazano.
Ljudski posao ne nestaje
Tokom razgovora postavio sam neprijatno pitanje: ako agenti pišu kod i pregledaju kod, šta onda mi ovde radimo?
Odgovor u koji verujem glasi: odlučujemo šta zaslužuje da postoji, pravimo kompromise tamo gde nema očekivanog odgovora i ostajemo odgovorni za ishod.
Agent može da odrazi naše razmišljanje ogromnom širinom. Ne može uvek da prepozna kada je problem označen kao „arhitektura“ zapravo nerešeno poslovno pravilo. Druga osoba ponekad može — naročito kada postavi iritantno pitanje koje reorganizuje ceo problem. Timovi će manje raspravljati o imenima, a više o ponašanju proizvoda, granicama sistema, riziku i novcu. Iskreno, to zvuči kao napredak.
Rasuđivanje postaje vrednije, ne manje vredno. Inženjer koji razume korisnike, ekonomiju, operacije, podatke i arhitekturu može usmeravati mnogo veći obim izvršenja. Inženjer čiji je ceo identitet prevođenje gotovih tiketa u sintaksu stoji na nestabilnijem tlu.
Naš eksperiment, bez gluposti
Prvu fazu namerno držimo dovoljno malom da možemo da je posmatramo:
- Vodimo nekoliko nezavisnih tokova paralelno, umesto da beskrajno doterujemo jedan razgovor sa agentom.
- Tražimo odobrenu specifikaciju sa jasnim odlukama o podacima, bezbednosti, arhitekturi i verifikaciji.
- Blokirane spoljne tokove činimo testabilnim pomoću kontrolisanih mockova.
- Koristimo više krugova nezavisnog agentnog pregleda, ali stajemo kada kasniji krugovi daju uglavnom šum.
- Ljudski pregled čuvamo za promene čije posledice zahtevaju ljudsko rasuđivanje.
- Proces pregledamo svake nedelje i unapređujemo ceo sistem, ne samo promptove.
Merićemo ishode, ne generisane artefakte: vreme od ideje do potvrđenog ponašanja, završene poslovne mogućnosti, defekte koji su pobegli, ponovni rad, ljudsku pažnju po promeni i operativno opterećenje. Broj linija koda ignorisaćemo sa poštovanjem koje zaslužuje.
Deset puta nije obećanje, već gornja ivica hipoteze. Tri puta uz isti ili bolji kvalitet već bi bilo transformativno. Deset puta više pull requestova uz deset puta više čišćenja samo je nov način rada vikendom.
Prava opklada
Opklada nije da će modeli postati savršeni. Neće. Ni ljudi nisu savršeni, mada smo izgradili impresivan broj sastanaka da tu činjenicu sakrijemo.
Opklada je da možemo izgraditi inženjerski sistem u kome agenti smeju da budu brzi zato što proces oko njih čini greške vidljivim, oporavak jeftinim, a važne odluke eksplicitnim. Za to su potrebne bolje specifikacije, testna okruženja, feedback petlje i psihološki bol delegiranja posla koji bismo mogli sami da uradimo.
Za sada je pravilo eksperimenta brutalno jednostavno:
Ako nešto radim ručno, moram da pitam koja sposobnost nedostaje sistemu.
Ne treba sve automatizovati. Ali „uvek sam tako radio“ više nije dovoljan razlog.
Ovo je Eksperiment 001. Pisaću o onome što sledi — uključujući i neuspehe, jer tvrdnja o 10× bez olupina samo je marketing sa boljom tipografijom.