AI agenti: osmišljavanje suradnje u vašem tijeku rada na softveru
AI agenti često se opisuju kao autonomni suradnici. Ta je slika privlačna, ali može i zavarati. Korisno pitanje nije može li agent zamijeniti programera, analitičara ili inženjera operacija. Pitanje je može li preuzeti jasno ograničen dio posla, koristiti odgovarajući kontekst i alate te vratiti rezultat koji čovjek može s pouzdanjem pregledati.
Zbog toga su AI agenti jednako toliko problem softverske arhitekture koliko i problem umjetne inteligencije. Kvaliteta modela jest važna, ali važni su i granice radnog procesa, dozvole, ulazi, opažljivost te primopredaje između ljudi i automatizacije. Timovi koji te dijelove namjerno oblikuju mogu agente pretvoriti u pouzdane suradnike. Timovi koji to ne čine mogu jednostavno automatizirati zbrku većom brzinom.
Počnite s radnim procesima, a ne impresivnim demonstracijama
Sposoban agent može pročitati tiket, pretražiti repozitorij, predložiti zakrpu, pokrenuti provjere i sažeti svoj rad. Ništa od toga ne znači da bi mu trebalo dodijeliti svaki tiket ili neograničen pristup produkciji. Najbolje rane primjene su ponavljajući zadaci bogati informacijama s jasnom definicijom dovršenosti.
Razmotrite radni proces trijaže podrške. Agent bi mogao klasificirati pristigle prijave, utvrditi zahvaćeno područje proizvoda, pretražiti odobrenu internu dokumentaciju, sastaviti odgovor i izraditi strukturirani problem za ljudski pregled. Ne donosi odluke o pravilima niti korisniku obećava popravak. Smanjuje vrijeme potrebno za pretvaranje raspršenih informacija u primopredaju na koju se može djelovati.
Ta je razlika važna. Agent je najvrjedniji kada poboljšava tijek rada oko ljudske prosudbe, umjesto da se pretvara da prosudba više nije potrebna.
Dodijelite svakom agentu usku, izričitu ulogu
„Pomozi s inženjeringom” nije upotrebljiva specifikacija. Produktivnom agentu potrebni su uloga, skup dopuštenih radnji, pouzdan izvor konteksta i uvjet za zaustavljanje. Ta ograničenja olakšavaju procjenu njegova ponašanja i sigurniju promjenu.
- Uloga: Definirajte posao operativnim izrazima, primjerice „pripremi nacrt napomena o izdanju na temelju spojenih promjena.”
- Kontekst: Odredite što smije koristiti: polja alata za praćenje problema, odobrenu dokumentaciju, odabrane putanje repozitorija ili izlaz testova.
- Alati: Dodijelite samo potrebne radnje, poput pretraživanja samo za čitanje, izrade nacrta ili pokretanja nedestruktivne naredbe za testiranje.
- Izlaz: Zahtijevajte format koji ljudi i sustavi nizvodno mogu dosljedno koristiti.
- Eskalacija: Navedite kada se mora zaustaviti i zatražiti osobu, osobito kada su informacije proturječne ili radnja ima vanjski učinak.
To nije birokracija. To je oblikovanje sučelja. Agent uskog opsega lakše stječe povjerenje jer recenzent zna što je trebao učiniti i što mu nije bilo dopušteno učiniti.
Oblikujte primopredaju, a ne samo prompt
Većina stvarnih radnih procesa suradnički su lanci. Voditelj proizvoda pojašnjava namjeru, programer mijenja kod, kontinuirana integracija ga provjerava, recenzent procjenjuje rizik, a operater nadzire izdanje. Agent bi se trebao uklopiti u taj lanac s jasnim ulazima i izlazima.
Na primjer, pomoćnik za pregled koda može pripremiti sažetak pregleda prije nego što čovjek otvori zahtjev za spajanje. Može utvrditi promijenjene module, sažeti navedenu namjeru, navesti relevantne testove i označiti područja koja možda zaslužuju pažnju. Ljudski recenzent i dalje je odgovoran za odobravanje promjene, ali počinje s kompaktnom kartom posla umjesto s praznim zaslonom.
Korisna primopredaja čuva dokaze. Umjesto da kaže „testovi izgledaju dobro”, agent bi trebao navesti koje je provjere pokrenuo, jesu li prošle, što nije mogao pokrenuti i koje je pretpostavke napravio. To ubrzava pregled i omogućuje dijagnosticiranje neuspjeha.
Koristite strukturirane izlaze gdje je moguće
Sažeci na prirodnom jeziku korisni su, ali postaju krhki kada drugi alat mora djelovati na temelju njih. Kada agent izrađuje tiket, zahtjev za implementaciju ili plan testiranja, koristite polja s predvidivim značenjima. Jednostavna struktura može smanjiti dvosmislenost:
{
"summary": "Add validation for empty display names",
"risk_level": "medium",
"tests_run": ["unit: profile validation"],
"tests_not_run": ["end-to-end suite"],
"requires_human_approval": true
}
Točna shema će se razlikovati, ali načelo je stabilno: odvojite činjenice, pretpostavke, predložene radnje i neriješena pitanja. Sustav ne bi trebao iz uvjerljivog teksta morati zaključivati što je što.
Održavajte ovlasti razmjernima riziku
Agenti mogu djelovati putem alata, a pristup alatima mjesto je gdje koristan pomoćnik postaje operativni sustav. Prema dozvolama se odnosite jednako ozbiljno kao prema novom servisnom računu. Pristup za čitanje može biti dovoljan za otkrivanje i analizu. Pristup za pisanje može biti primjeren za nacrte, grane ili izolirane redove. Radnje koje utječu na korisnike, novac, sigurnosne postavke ili produkcijske sustave općenito zaslužuju izričite točke odobrenja.
Također je mudro oblikovati sustav za djelomični neuspjeh. Alat može prekoračiti vremensko ograničenje, repozitorij može sadržavati proturječne upute ili okruženje za testiranje može biti nedostupno. Ispravan odgovor obično nije izmišljeni uspjeh. Agent bi trebao sačuvati svoj djelomični rad, prijaviti neuspjeli korak i jasno navesti sljedeću sigurnu radnju.
Pouzdanost ne znači da agent nikada ne nailazi na neizvjesnost. Znači da neizvjesnost postaje vidljiva prije nego što se pretvori u neprovjerenu radnju.
Procjenjujte ponašanje u stvarnom radnom procesu
Uglađena demonstracija može sakriti teške slučajeve: nepotpune tikete, zastarjele dokumente, neobične rasporede repozitorija, pogreške dozvola i zahtjeve koje treba odbiti ili eskalirati. Procjena bi trebala koristiti reprezentativan rad, uključujući neuredne primjere s kojima se ljudi doista susreću.
Definirajte uspjeh prije uvođenja. Za agenta za dokumentaciju uspjeh može značiti točne citate odobrenog materijala, potpunu strukturu nacrta i jasne oznake za nedostajuće informacije. Za inženjerskog pomoćnika može uključivati očuvanje postojećih konvencija, pokretanje samo odobrenih naredbi i ispravno prepoznavanje kada promjena treba ljudski pregled.
Pregledajte i konačni rezultat i trag rada. Ako agent dođe do točnog odgovora nesigurnim postupkom, nije spreman za šire ovlasti. S druge strane, koristan agent ponekad se može zaustaviti bez dovršetka zadatka ako precizno objasni što ga je blokiralo.
Učinite usvajanje timskom praksom
Agenti mijenjaju način raspodjele rada. Mogu smanjiti rutinsku koordinaciju, ali stvaraju i nove odgovornosti: održavanje uputa, kuriranje pouzdanog konteksta, pregledavanje izlaza i poboljšavanje zaštitnih mjera nakon neuspjeha. To su odgovornosti proizvoda i inženjeringa, a ne samo zadaci pisanja promptova.
Počnite s jednim radnim procesom čija je početna razina razumljiva. Zadržite čovjeka u putu odobravanja, prikupljajte primjere dobrih i loših ishoda te poboljšajte radni proces prije proširenja njegovih ovlasti. Cilj nije maksimalno povećati količinu posla koji agent obavlja. Cilj je poboljšati kvalitetu, brzinu i jasnoću rada koji isporučuje cijeli tim.
Najtrajnije shvaćanje AI agenata stoga je skromno i moćno: oni su suradnici ugrađeni u sustav. Dodijelite im ograničene uloge, pouzdan kontekst, vidljive dokaze i razmjerne ovlasti. Učinite to dobro i automatizacija prestaje biti spektakl. Postaje dio umijeća odgovorne izgradnje softvera.