Preskoči na sadržaj

AI3 min čitanja

Kako su AI agenti napravili ovaj sajt za dva dana — sa testovima unapred

Autonomni agenti za programiranje implementirali su onlyapps.org prema pisanom planu od pedesetak zadataka. Šta je kod učinilo pouzdanim: testovi pre implementacije, jedna stroga kapija, nezavisni pregledi i fajl sa zamkama koji raste.

Sajt koji čitate — javne stranice na tri jezika, urednička konzola, Go API i pozadinski worker — implementirali su autonomni agenti za programiranje za otprilike dva dana. Ne zato što su agenti čarobni, već zato što smo im dali precizan plan i nepopustljivu definiciju „gotovog”. Evo kako je to izgledalo.

Počnite od odluke, ne od koda

Pre bilo kakvog koda vodili smo dug razgovor o proizvodu i pretvorili ga u paket dokumenata: zahteve proizvoda, tehničku specifikaciju sa kriterijumima prihvatanja za svaku funkciju, model podataka, API ugovore, UX ekrane, strategiju testiranja i uputstvo za puštanje u rad. Važne odluke su bile naše, ne agenata: tehnologije, sopstveni server umesto cloud servisa, tri jezika u URL-u, šta odbijamo da pravimo. Rezultat je bio plan od pedesetak malih zadataka.

Prvo testovi, svaki put

Svaki zadatak je pratio isti redosled, vidljiv u istoriji commit-ova:

  1. test — napisati testove iz kriterijuma prihvatanja i videti da padaju;
  2. feat — napisati minimum koda koji ih prolazi;
  3. refactor — počistiti dok testovi ostaju zeleni.

Pisanje testa unapred je kod agenata važnije nego kod ljudi. Agent je veoma dobar u pravljenju koda koji izgleda završeno; test koji je pao pa pozeleneo dokaz je da kod zaista radi ono što specifikacija kaže.

Jedna kapija za sve

Zadatak se računa kao završen tek kada prođe jedna komanda: lint, provera tipova, unit testovi, integracioni testovi nad pravim PostgreSQL-om u kontejnerima, bezbednosna provera zavisnosti, produkcioni build i budžet JavaScript-a za najteže stranice. Pre puštanja u rad end-to-end testovi pokreću pravi sajt i konzolu u pregledaču i proveravaju pristupačnost na svakom šablonu stranice. Go kod mora da zadrži najmanje 85% pokrivenosti testovima; završili smo na oko 90%.

Napomena

Kapija je ista za agente i za ljude. Ako je crvena, posao nije gotov — bez izuzetaka i bez „privremeno isključenih” testova.

Pregled od strane nekog drugog

Posle zadataka, posebni agenti za pregled pročitali su celu izmenu: jedan tražeći greške i bezbednosne probleme, drugi proveravajući da li kod odgovara planu. Model drugog proizvođača ga je nezavisno pregledao, a svaki nalaz je ili ispravljen ili izričito odbijen uz obrazloženje.

Fajl sa zamkama koji stalno raste

Svaka greška koja je koštala vremena postala je pravilo u zajedničkom fajlu sa uputstvima: zaključavati redove određenim redosledom da bi se izbegli deadlock-ovi, nikada ne pozivati API tokom statičkog build-a, generisani kod mora biti commit-ovan, koje boje padaju na proveri kontrasta. Sledeći zadatak — bilo kog agenta — počinje sa tim lekcijama već u kontekstu.

Šta i dalje traži ljude

  • Odluke o proizvodu. Šta pravimo, šta ne pravimo i koje rizike prihvatamo.
  • Stvarni svet. Dan puštanja u rad je otkrio stvari koje nijedan test nije pokrio: deljeni server gde su drugi projekti koristili ista imena servisa, timeout proxy-ja koji je prekidao velika otpremanja, format lozinke koji je pokvario adresu za povezivanje. Rešili smo ih zajedno, i svaka je postala test ili pravilo.
  • Šta se objavljuje. Agenti mogu da napišu nacrt teksta, ali šta se pojavljuje na sajtu odlučuje tim.

Zaključak

Agenti brzo pišu kod. Ono što kod čini pouzdanim je sve oko njega: pisani plan, testovi pre implementacije, jedna stroga kapija, nezavisan pregled i lista lekcija koja raste. Taj deo je inženjering, i on je naš.

Zanima vas da na ovaj način napravite proizvod? Javite nam se.

PodeliXLinkedIn

ONLYAPPS team

Novi Sad, Srbija · onlyapps.org

Kontakt

Kolačiće za analitiku koristimo samo uz vašu saglasnost. Neophodni kolačići održavaju rad sajta. Politika privatnosti