Iznad prompta: učinite svoj softver nezamjenjivim za AI
AI ne čini softver manje važnim. Podiže ljestvicu za to kako koristan softver treba izgledati.
Sposoban model može objasniti API, sastaviti upit ili predložiti tijek rada. No ne može pouzdano dovršiti smislen posao ako ne može pristupiti sustavima u kojima se taj posao odvija: evidenciji kupaca, cjevovodu za implementaciju, usluzi inventara, spremištu dokumenata, kalendaru, platformi za naplatu i internoj bazi znanja.
Prilika nije jednostavno dodati okvir za chat svakom proizvodu. Riječ je o tome da vaš softver postane pouzdan sudionik u radu pokretanom umjetnom inteligencijom. Softver postaje nezamjenjiv umjetnoj inteligenciji kada agent može razumjeti što nudi, sigurno ga upotrebljavati, oporaviti se od pogrešaka i dokazati što se dogodilo.
Razmišljajte izvan okvira promptanja
Prompt je sučelje za razgovor. Produkcijski rad zahtijeva sučelja za djelovanje.
Zamislite agenta koji pomaže timu za podršku riješiti problem s pretplatom. Možda treba pronaći račun, pregledati fakture, utvrditi neuspjelu uplatu, predložiti rješenje i — tek nakon odobrenja — primijeniti odobrenje. Ništa od toga ne rješava bolji prozni tekst u promptu. Ovisi o dobro osmišljenim operacijama s jasnim ulazima, predvidljivim izlazima, granicama ovlaštenja i nuspojavama koje se mogu revidirati.
Ovaj pomak mijenja korisno pitanje iz “Kako dodati AI?” u “Koji stvarni posao naš softver može pouzdano obaviti kada to zatraži čovjek ili agent?”
Izložite mogućnosti, a ne zaslone
Mnoge zrele aplikacije osmišljene su oko zaslona i klikova. Ljudi mogu zaključiti kamo dalje; agenti trebaju eksplicitne mogućnosti. Najvrjednija polazna točka obično je poslovna operacija koja stoji iza korisničkog sučelja.
Umjesto da “Izdaj povrat novca” tretirate kao gumb na administrativnoj stranici, modelirajte ga kao pažljivo ograničenu operaciju. Dodijelite joj očit naziv, strukturirane parametre, validaciju, stabilan odgovor i smislen ugovor o pogreškama.
{
"customer_id": "cus_4821",
"invoice_id": "inv_9102",
"amount": 25.00,
"reason": "duplicate_charge"
}
Operacija ne bi trebala samo vratiti “uspjeh” ili “neuspjeh”. Trebala bi vratiti trajnu referencu, rezultirajuće stanje i dovoljno informacija da pozivatelj može sigurno nastaviti. Ako se isti zahtjev može ponoviti, potrebna joj je i idempotentnost kako mrežno prekoračenje vremena ne bi stvorilo dva povrata novca.
Dobre mogućnosti namijenjene agentima obično su male, sastavljive i specifične. “Dohvati stanje računa” lakše je razumjeti nego “upravljaj računom”. “Izradi nacrt narudžbe” sigurnije je od “pošalji narudžbu”, osobito kada čovjek mora pregledati rezultat.
Učinite sučelje čitljivim stroju
Agenti najbolje rade kada ne moraju nagađati. Nazivi, sheme, opisi, primjeri i poruke o pogreškama dio su proizvoda — a ne sekundarna dokumentacija.
Slab opis alata mogao bi glasiti updates a record. Koristan opis navodi koji se zapis može promijeniti, koja su polja dopuštena, koje se vrijednosti odbijaju, je li radnja poništiva i treba li pozivatelju potvrda. Dvosmislenost navodi agente na loše planove; preširoka sučelja tim planovima daju previše ovlasti.
- Koristite jezik domene. Dajte prednost nazivu
renewal_dateumjesto neobjašnjenom polju kao što jedate_3. - Vraćajte strukturirane podatke. Model može tumačiti prozu, ali pouzdani tijekovi rada trebaju polja koja se mogu provjeriti i proslijediti sljedećem koraku.
- Navedite preduvjete. Objasnite mora li narudžba biti u stanju nacrta ili tiket mora biti dodijeljen prije nego što se može zatvoriti.
- Osmislite korisne neuspjehe. “Pristup odbijen” manje je primjenjiv od odgovora koji identificira potrebnu ulogu ili nedostupan resurs bez otkrivanja osjetljivih pojedinosti.
- Podržite probna izvršavanja. Za radnje s posljedicama omogućite pozivatelju da provjeri namjeravani rezultat prije njegova potvrđivanja.
To je uobičajena disciplina API-ja, no umjetna inteligencija čini njezine prednosti vidljivijima. Osoba može zaobići zbunjujuće sučelje. Agent će pri strojnoj brzini pojačati svaku nejasnu pretpostavku.
Odvojite znanje od ovlasti
Korisnim agentima potrebni su i kontekst i alati, ali to su različite odgovornosti.
Znanje pomaže agentu odgovarati na pitanja: politike proizvoda, operativni priručnici, bilješke o arhitekturi, činjenice specifične za račun i trenutačno stanje sustava. Ovlasti mu dopuštaju da nešto promijeni. Njihovo nepažljivo spajanje jedan je od najbržih načina stvaranja rizika.
Snažan dizajn omogućuje agentu dohvaćanje relevantnih informacija uz odgovarajuće kontrole pristupa, a zatim nudi samo najmanju radnju potrebnu za zadatak. Agent koji može sažeti politiku dopusta zaposlenika ne treba automatski ovlasti za izmjenu podataka o plaćama. Agent koji može pregledati status implementacije ne treba automatski dopuštenje za implementaciju.
Osjetljive podatke, gdje je moguće, držite izvan širokih promptova. Dohvaćajte ih usko, filtrirajte prema dopuštenjima korisnika koji podnosi zahtjev i izbjegavajte prosljeđivanje tajni kroz tekst vidljiv modelu. Svaki rezultat alata tretirajte kao podatak koji može utjecati na sljedeću odluku modela, a ne kao inherentno pouzdanu uputu.
Gradite za potvrdu, ponovne pokušaje i oporavak
Stvarni rad je neuredan. Zapisi se mijenjaju između koraka. Vanjske usluge prekoračuju vrijeme čekanja. Korisnik se predomisli. Model može odabrati nekoristan slijed. Pouzdana integracija umjetne inteligencije pretpostavlja te uvjete umjesto da ih tretira kao rubne slučajeve.
Koristite postupno obvezivanje
Započnite s operacijama samo za čitanje. Zatim dopustite izradu nacrta. Nepovratne promjene ili promjene velikog učinka rezervirajte za eksplicitan korak odobrenja. Agent za planiranje putovanja može samostalno sastaviti itinerar i odrediti cijene opcija; kupnja karata trebala bi zahtijevati jasnu potvrdu koja uključuje trošak, putnike i uvjete otkazivanja.
Učinite stanje vidljivim
Nakon radnje vratite novo stanje i stabilan identifikator. Prije kasnije radnje zahtijevajte od agenta da ponovno provjeri relevantno stanje kada se ono možda promijenilo. Time se smanjuju pogreške uzrokovane zastarjelim pretpostavkama.
Namjerno osmislite ponašanje pri ponovnom pokušaju
Klijenti bi trebali moći razlikovati odbijeni zahtjev od neizvjesnog ishoda. Ako zahtjev prekorači vrijeme čekanja nakon što je stigao do vaše usluge, pozivatelj treba način da sigurno utvrdi je li dovršen. Ključevi idempotentnosti, krajnje točke za status operacije i trajni zapisi revizije pretvaraju neizvjesnost u tijek rada koji se može pregledati.
Mjerite ishode, a ne novost
Značajka umjetne inteligencije nije vrijedna zato što proizvodi tečan tekst. Procijenite dovršava li koristan zadatak uz prihvatljivu točnost, trošak, latenciju i nadzor.
Odaberite uski tijek rada i definirajte njegov standard kvalitete prije nego što ga proširite. Na primjer, asistent za obradu dokumenata mogao bi se procjenjivati prema tome izdvaja li ispravna polja, označava li neizvjesnost, povezuje li se natrag na izvorni dokument i usmjerava li iznimke pravoj osobi. Uglađen sažetak nije dovoljan ako neprimjetno promijeni datum ugovora.
Operativna telemetrija također je važna. Zabilježite koji je alat pozvan, s kojim ovlaštenim identitetom, kakav je odgovor primio, je li čovjek odobrio radnju i kakvo je konačno stanje nastalo. Ti zapisi pomažu u istraživanju incidenata, poboljšanju promptova i alata te stjecanju povjerenja ljudi na koje automatizacija utječe.
Trajna prednost je pouzdano djelovanje
Modeli će se nastaviti poboljšavati, a njihove će se konverzacijske sposobnosti sve više činiti međusobno zamjenjivima. Trajna vrijednost nalazi se bliže radu: točni podaci, dobro definirane operacije domene, pristup koji uzima u obzir dopuštenja, sigurno izvršavanje i povratne sprege koje s vremenom poboljšavaju sustav.
Softver koji je umjetnoj inteligenciji najvažniji neće biti onaj koji najglasnije govori o umjetnoj inteligenciji. Bit će to softver koji agent može pouzdano pozvati: dovoljno jasan da ga razumije, dovoljno ograničen da mu vjeruje i dovoljno pouzdan da postane dio načina na koji se posao doista obavlja.