Umjetna inteligencija

Dresiranje agenata

PHOTO:

Umjetna inteligencijaprogramiranje

U objavi Odmetnici bez kontrole sam već pisao o tome da su za to što rade AI agenti odgovorni oni koji ih pokreću. Agenti griješe i još uvijek nemam tu ležernost da prepustim sve u njihove ruke a da ih barem djelomično ne kontroliram. Ovo što slijedi je par nasumičnih primjera gdje su agenti zabrijali.

AI agenti si dozvoljavaju previše toga, oni ne razmišljaju, oni kao buldožeri razgrću sve kako bi došli do cilja. Ako radite na aplikaciji i oni vide mogućnost da se spoje na bazu, oni će to i učiniti. Pri tome mogu uništiti sve što im se nađe na putu. Nije im problem uništiti bazu, izgenerirati cijeli niz migracijskih skripti koji će ju srediti do nepopravljivosti. Ako ste naivni onda budete omogućili AI agentu put do produkcijske baze. Treba znati postaviti granice. U najboljem slučaju AI može dobiti pristup lokalnoj bazi pa ako nešto i uništi vratiš backup.

Jedan agent je napravio ono što sam tražio od njega i odmah je krenuo raditi git commit i odlučio je sebe potpisati kao autora. Od tada imam pravilo da ja radim s gitom, a agent ima pravo samo na read only operacije.

Kad sam uz pomoć agenta radio skriptu za import nekih kontakt podataka u sustav za newslettere, koristeći njegov API, dogodilo se to da je agent pokrenuo dva procesa u pozadini koji su bespotrebno krenuli konzumirati taj API, probili limit i zablokirali korisnički račun na 24 sata. Nisu bili dovoljno pametni da čitaju zaglavlja u kojima je pisalo koliko im je još preostalo zahtjeva i da shvate što će se dogoditi. Moja je greška bila što im nisam točno specificirao da prate rate-limit zaglavlja i da broj zahtjeva prilagode tome. Naivno sam očekivao da su možda dovoljno 'pametni'. Ali zašto su krenuli 'upoznavati' API tako da u pozadini cijelo vrijeme vrte iste zahtjeve na isti endpoint? Čemu je to trebalo služiti?

Agenti ne znaju mjeru. Na jednom drugom javnom servisu s kojeg sam planirao preuzeti podatke počeli su nepotrebno prekomjerno ispitivanje URL-ova i moj IP je završio na crnoj listi.

Kad radim sa servisima treće strane ili bibliotekama jedna od najčešćih uputa agentu je da najprije pogleda upute. Oni to dosta često zanemare i krenu proučavati kod ako je dostupan i u njemu traže rješenje. To je možda s jedne strane dobro jer je dokumentacija ponekad neažurna ili nepotpuna, ali s druge strane to znači da će možda koristiti neke nedokumentirane funkcije koje nisu predviđene za korištenje ili će u idućoj verziji biti izbačene.

Na jednom projektu trebalo je napravi screenshot. Agent je odlučio da je najbolje spremati slike u bazu. Nakon opomene to je bez pogovora promijenio, ali nije pretpostavio da bi veliki broj slika u jednom direktoriju mogao biti problem i da bi dobra praksa bila spremati ih u slotove.

Za Django aplikacije agenti obično po defaultu podešavaju Whitenoise za statički sadržaj. Činjenica je da je Whitenoise nastao prvenstveno zbog načina na koji rade Heroku, Render, Railway i slični servisi. Ako aplikaciju ne stavljate na takve servise Whitenoise nije optimalno rješenje, ali izgleda da je na izvorima na kojima su trenirani modeli prevladavao taj način.

Gdje agenti briljiraju?

Višejezične web aplikacije uvijek su mi bile teška gnjavaža. Toliko dosadnog posla kojeg treba odraditi i detalja na koje treba misliti. Agentu je to dječja igra, to je područje u kojem pliva kao riba u vodi, više ni nisu potrebni dodatni servisi koje smo prije koristili za prijevod, sad agent sam prevodi i ažurira prijevod za sve potrebne jezike. Istina, nekad je taj prijevod nespretan i nije u duhu jezika, ali kad je već obavio toliko zamornog posla onda čovjeku i nije problem ispraviti neke detalje.

DHH je spomenuo kako je Linux idealni agentski operacijski sustav. Kako je CachyOS ipak malo bleeding edge Linux, rolling release ponekad donese neke bugove koji se istina brzo popravljaju, ali nekad baš pogodiš baš tih par sati između greške i popravka. Agenti (konkretno Claude code) vrlo dobro detektiraju i objašnjavaju greške, analiziraju logove. Tako sam neki dan dobio vrlo dobru analizu problema s NVIDIA driverom nakon što se još jednom zamrznulo sučelje.

Neka opskurna podešavanja Claude napravi od prve. Ja pišem ponešto na kajkavskom i pri tome koristim dodatna slova (âêéǒ). Na X-ima sam imao .Xmodmap u kojem sam napravio potrebna premapiranja, ali na Waylandu to nije tako jednostavno. Uspio sam prije nešto napraviti, ali nije radilo u svim aplikacijama. Claude je od prve podesio sve što treba i mapiranje radi u svim aplikacijama.

Naravno, ne dopuštam mu baš da radi po systemu sve što hoće, ipak su ti buldožerski nagoni još jaki u njemu, kad je nešto osjetljivije onda samo tražim da napiše što bi trebalo napraviti. Crta je povučena.



Ako prvi put komentirate moguće je da se vaš komentar neće isti tren pojaviti na stranici već nakon dodatne provjere. Hvala na doprinosu i strpljenju.