Umjetna inteligencija (UI)

Your Software Team's Newest Colleague: The AI Agent

Najnoviji kolega vašeg softverskog tima: AI agent

AI agent nije još jedan okvir za automatsko dovršavanje koji čeka u kartici preglednika. To je softver koji može preuzeti cilj, pregledati relevantan kontekst, odabrati među odobrenim alatima, izvršiti niz radnji i izvijestiti o tome što se dogodilo. U softverskom timu zbog toga djeluje manje kao značajka, a više kao novi kolega: brz, neumoran, povremeno koristan na iznenađujuće načine i potreban jasnih granica.

Tu usporedbu ne treba shvatiti previše doslovno. Agent nije odgovoran za ishode, ne razumije politiku tvrtke niti snosi odgovornost za incident u produkciji. No može smanjiti trenje oko mnogih malih, ponovljivih odluka koje zaokupljaju pažnju tehničkog tima. Prilika nije u zamjeni inženjerske prosudbe. Ona je u tome da toj prosudbi pruži bolju polugu.

Razmišljajte o radnim tijekovima, a ne o magiji

Najpouzdaniji projekti s agentima počinju uskim radnim tijekom, a ne velikim obećanjem poput „automatizirajte razvoj”. Koristan radni tijek ima prepoznatljiv okidač, ulaze koje je moguće provjeriti, ograničen skup radnji i ishod koji čovjek može pregledati.

Razmotrite prijavu greške koja stiže u alat za praćenje zadataka. Agent može pročitati prijavu, pronaći povezane zadatke, utvrditi vjerojatno područje koda na temelju metapodataka repozitorija, predložiti korake za reprodukciju i sastaviti sažet pregled za trijažu. Nije riješio grešku, ali je nestrukturirani zahtjev pretvorio u bolju polaznu točku za inženjera.

Ostali praktični kandidati uključuju:

  • Sažimanje zapisa neuspjelih izgradnji i grupiranje ponovljenih neuspjeha.
  • Pripremu kontrolnog popisa za izdanje na temelju spojenih promjena i poznatih zahtjeva za implementaciju.
  • Odgovaranje na interna pitanja na temelju odobrene, ažurne dokumentacije.
  • Pregledavanje zahtjeva za spajanje radi provjere projektno specifičnih konvencija i testova koji nedostaju.
  • Izradu prvog nacrta bilješki o migraciji kada se sučelje promijeni.

Svaki je od ovih zadataka vrijedan jer uklanja kašnjenje bez pretvaranja da je konačna odluka automatska. U toj razlici počinje odgovorno uvođenje.

Agentu je potreban opis posla

Timovi agentima često daju širok pristup prije nego što definiraju njihovu ulogu. To je naopako. Prije povezivanja agenta s repozitorijem, sustavom za praćenje zadataka, okruženjem za implementaciju ili podacima o korisnicima, napišite kratak opis posla.

Definirajte okidač i ciljnu crtu

Jasno navedite što pokreće radni tijek i što se smatra dovršetkom. „Pomozi s incidentima” neodređeno je. „Kada se upozorenje potvrdi, prikupi poveznice na relevantne nadzorne ploče, informacije o nedavnim implementacijama i pojedinosti o vlasništvu nad uslugom u bilješku o incidentu” konkretno je.

Jasna ciljna crta također sprječava agenta da neograničeno luta kroz zadatak. Ako ne može prikupiti obvezni ulaz, trebao bi to navesti i zaustaviti se ili eskalirati prema definiranom pravilu.

Ograničite alate i dozvole

Pristup alatima stvarna je granica sposobnosti. Agent koji može čitati izvorni kod i otvarati zadatke ima sasvim drukčiji profil rizika od onoga koji može spajati grane, mijenjati infrastrukturu ili slati komunikaciju korisnicima.

Počnite s pristupom samo za čitanje gdje je to moguće. Usko ograničene radnje pisanja dodajte tek kada radni tijek pokaže vrijednost i kada su posljedice shvaćene. Prednost dajte radnjama koje stvaraju nacrte, komentare ili predložene promjene pred radnjama koje objavljuju, implementiraju, brišu ili mijenjaju dozvole.

Navedite što mora ostati ljudsko

Neke odluke zaslužuju izričitu ljudsku kontrolnu točku: odobravanje implementacije u produkciju, spajanje promjena osjetljivih za sigurnost, vanjska komunikacija tijekom incidenta, promjena postavki naplate ili rukovanje reguliranim podacima. To nisu znakovi da je agent podbacio. To su razumne primopredaje u sustavu osmišljenom za odgovornost.

Kontekst je koristan, ali je i obveza

Agenti rade bolje s kontekstom, no „daj mu sav kontekst” rijetko je zdravo načelo dizajna. Više informacija može unijeti zastarjele smjernice, sukobljene upute, povjerljivi materijal i nevažne pojedinosti. Također može ljudima otežati razumijevanje zašto je agent postupio kako jest.

Agentu dajte najmanji pouzdan kontekst potreban za posao. Za pomoćnika za zahtjeve za spajanje to može uključivati konvencije repozitorija, promijenjene datoteke, relevantne testove i vodič za doprinos. Za internog pomoćnika za podršku to može uključivati odobrenu bazu znanja i put eskalacije, umjesto svakog dokumenta koji je tvrtka ikada napisala.

Verzionirana dokumentacija ovdje je važna. Ako se postupak promijeni, smjernice agenta trebale bi se mijenjati istim putem koji se može pregledati kao i kod ili operativni priručnici. Agent koji slijedi staru proceduru implementacije nije problem inteligencije; to je problem održavanja.

Dizajnirajte za neuspjeh prije nego što slavite uspjeh

Sustavi agenata ne uspijevaju na uobičajene softverske načine i na nekoliko neuobičajenih. Poziv alata može isteći. Vjerodajnica može isteći. Usluga može vratiti nepotpune podatke. Uputa može biti dvosmislena. Model može dati uvjerljiv, ali netočan zaključak. Dobri sustavi čine te neuspjehe vidljivima i oporavljivima.

Praktičan radni tijek agenta trebao bi bilježiti što se od njega tražilo, koje je alate koristio, koje je radnje pokušao izvršiti i koji je rezultat svaka radnja vratila. Zapisi bi trebali podržavati pregled bez nepromišljenog izlaganja osjetljivih ulaza. Kada radni tijek promijeni stanje, primjerice otvaranjem zadatka ili stvaranjem grane, trebao bi prijaviti dobiveni identifikator ili poveznicu kako bi osoba mogla provjeriti rad.

Ponovnim pokušajima treba pristupiti pažljivo. Ponovni pokušaj operacije čitanja nakon privremenog neuspjeha obično je razuman. Ponovni pokušaj operacije pisanja može duplicirati komentar, stvoriti više zadataka ili dvaput pokrenuti istu implementaciju. Gdje je moguće, koristite idempotentne operacije, stabilne identifikatore zahtjeva ili provjeru koja potvrđuje je li se radnja već dogodila.

1. Validate required inputs.
2. Retrieve only approved context.
3. Propose or perform one scoped action.
4. Verify the result with the target system.
5. Record the outcome and escalate uncertainty.

Ovaj slijed nije spektakularan, ali čini razliku između demonstracije i operativnog alata.

Mjerite radni tijek, a ne osobnost agenta

Primamljivo je procjenjivati agenta prema tome koliko njegovi odgovori zvuče impresivno. To je loša metrika za softverski rad. Procijenite je li radni tijek brži, točniji, lakši za reviziju ili manje ometajući od prethodnog procesa.

Na primjer, agent za trijažu može se procijeniti prema tome sadrže li njegovi sažeci obvezna polja, ispravljaju li inženjeri često njegovu klasifikaciju i smanjuje li vrijeme potrebno za donošenje sljedeće ljudske odluke. Pomoćnik za pregled koda može se procijeniti prema relevantnosti svojih nalaza i prema tome propušta li dosljedno poznate kategorije problema.

Zadržite mali skup reprezentativnih slučajeva, uključujući teške i one sklone neuspjehu. Ponovno ih pokrenite kada se promijene upiti, alati, modeli ili dokumentacija. To je bliže održavanju paketa testova nego procjenjivanju jednokratnog razgovora s chatbotom.

Najbolji agenti čine timove promišljenijima

Uvođenje agenta otkriva skrivene pretpostavke. Gdje se nalazi stvarni operativni priručnik? Tko je vlasnik ove usluge? Koje je odobrenje potrebno? Koje informacije smiju napustiti sustav? Ta su pitanja postojala prije dolaska agenta; automatizacija ih jednostavno čini nemogućima za ignoriranje.

Zato najnovijeg kolegu u softverskom timu treba tretirati kao sustav, a ne kao novost. Dajte mu usku ulogu, pouzdan kontekst, ograničene ovlasti, vidljivo ponašanje i jasan put do čovjeka kada je neizvjesnost važna.

Kada je dobro izveden, AI agent ne čini tim manje promišljenim. Uklanja ponavljajuću koordinaciju s kritičnog puta, ostavljajući ljudima više prostora za rad koji i dalje zahtijeva prosudbu: razumijevanje kompromisa, dizajniranje za korisnike i odlučivanje o tome što bi se trebalo dogoditi sljedeće.

Portret autora bloga

Mihajlo

Ja sam Mihajlo — programer vođen znatiželjom, disciplinom i stalnom željom da stvorim nešto smisleno. Dijelim uvide, tutorijale i besplatne usluge kako bih pomogao drugima da pojednostave svoj rad i rastu u svijetu softvera i umjetne inteligencije koji se neprestano razvija.