Svi članci
AI agenti

4 min čitanja

Obrasci za AI agente uz ljudsko odobrenje

Obrasci koje koristimo da AI agenti sigurno rade u stvarnoj upotrebi: tačke odobrenja, pragovi pouzdanosti, dozvole za alate, revizijski trag i rezervni planovi.

Zašto AI agentima u stvarnoj upotrebi treba čovjek

AI agent je sistem koji uz pomoć jezičkog modela odlučuje koje akcije poduzeti, poziva alate da ih izvrši i kroz više koraka radi prema cilju. Zato su agenti korisni za operativni posao, kao što su problemi s pošiljkama, trijaža faktura ili priprema odgovora klijentima. To znači i da sistem djeluje, a akcije imaju posljedice koje sam generisani tekst nema.

Ovaj članak je za rukovodioce operative i inženjere koji dizajniraju agente povezane sa stvarnim sistemima. Dizajn uz ljudsko odobrenje (human in the loop) znači da unaprijed, i to u kodu, odlučite koje odluke agent donosi sam, koje predlaže čovjeku na odobrenje, a koje nikad ne donosi. Kada je to dobro urađeno, automatizujete najveći dio obima, a ljudi rješavaju slučajeve koji traže procjenu.

Tačke odobrenja

Tačka odobrenja zaustavi agenta prije akcije s posljedicama, pokaže čovjeku šta agent namjerava uraditi i zašto, i nastavlja tek nakon odobrenja. Glavne odluke u dizajnu:

  • Gdje zastati. Tačke odobrenja stavite prije akcija koje je teško poništiti ili koje izlaze izvan organizacije: plaćanja, povrati novca, e-mailovi klijentima i izmjene u glavnim sistemima evidencije.
  • Šta pokazati. Predloženu akciju, ulaze na kojima se zasniva, obrazloženje u rečenici ili dvije i izvor za svaku tvrdnju, na primjer član pravilnika ili zapis narudžbe.
  • Kako odgovoriti. Odobriti, izmijeniti pa odobriti, odbiti uz razlog ili preuzeti slučaj. Odbijanja s razlogom su vrijedni podaci za evaluacije.
  • Šta se dešava dok se čeka. Stanje agenta se čuva, pa može nastaviti i nakon više sati, a odobrenja ističu ako predugo čekaju.

Ekran za odobrenje odlučuje da li tačka odobrenja radi. Ako osobi koja pregleda treba pet minuta da sastavi kontekst, počet će odobravati bez čitanja. Kada su razlog i dokazi na ekranu, većina odobrenja traje nekoliko sekundi.

Pragovi pouzdanosti i nivoi rizika

Tačka odobrenja na svakoj akciji poništava smisao automatizacije. Usmjeravanje prema riziku i pouzdanosti drži ljude na slučajevima kojima su potrebni. Svaki alat razvrstamo po riziku, a zatim za svaku akciju odlučimo da li se izvršava, čeka odobrenje ili se odbija:

Python
from dataclasses import dataclass
from enum import Enum

class Risk(Enum):
    READ = "read"
    REVERSIBLE = "reversible"
    IRREVERSIBLE = "irreversible"

TOOL_RISK = {"lookup_order": Risk.READ, "draft_reply": Risk.REVERSIBLE, "issue_refund": Risk.IRREVERSIBLE}
AUTO_THRESHOLD = 0.85

@dataclass
class ProposedAction:
    tool: str
    args: dict
    confidence: float  # built from checkable signals, see below
    reason: str

def route(action: ProposedAction) -> str:
    risk = TOOL_RISK.get(action.tool)
    if risk is None:
        return "reject"  # unknown tools never run
    if risk is Risk.READ:
        return "execute"
    if risk is Risk.REVERSIBLE and action.confidence >= AUTO_THRESHOLD:
        return "execute"
    return "queue_for_approval"

Oprez s pouzdanošću: pouzdanost koju model sam prijavi loše je kalibrisana, pa je ne koristite samu. Ocjenu sastavite iz signala koje možete provjeriti: da li su izvučena polja prošla validaciju, da li pronađeno pravilo jasno pokriva slučaj, da li se slažu dva nezavisna prolaza i kako su slični slučajevi prošli u vašem skupu testova. Zatim prag podesite prema stvarnim ishodima. Počnite oprezno i spuštajte ga kako podaci to podrže.

Dozvole za alate

Agent može raditi samo ono što mu alati dozvoljavaju, pa je dizajn alata najdjelotvornija sigurnosna kontrola koju imate.

Nivo dozvolePrimjeriStandardno postupanje
ČitanjePregled narudžbe, pretraga pravila, status pošiljkeIzvršava se automatski i bilježi
Upis koji se može poništitiNacrt odgovora, interna bilješka, oznaka na tiketuIzvršava se automatski iznad praga pouzdanosti
Nepovratno ili prema vaniPovrat novca, slanje e-maila, odobrenje plaćanjaTraži odobrenje čovjeka
Izvan obimaBrisanje zapisa, izmjena prava korisnika, proizvoljni upitiAlat ne postoji

Pravila koja primjenjujemo na svakog agenta:

  • Dajte agentu uske alate, kao što je issue_refund(order_id, amount), i izbjegavajte opće kao što je run_sql.
  • Ograničenja provodite u kodu alata: najveći iznosi, dozvoljeni primaoci i ograničenja broja poziva. Prompt usmjerava agenta, a alat provodi pravila.
  • Alate pokrećite s pristupnim podacima ograničenim na agenta, nikad s administratorskim.
  • Tekst koji agent čita iz e-mailova, dokumenata i web stranica tretirajte kao nepouzdan, jer može sadržavati upute namijenjene agentu.

Revizijski trag

Kada agent donese odluku, neko će prije ili kasnije pitati zašto. Revizijski trag treba vam omogućiti da na to odgovorite za svaku akciju, i nekoliko mjeseci kasnije. Za svako pokretanje zabilježite:

  • Okidač i ulazne podatke, ili referencu na njih.
  • Svaki poziv modela s verzijom prompta, ID-jem modela i izlazom.
  • Svaki poziv alata s argumentima, rezultatom i vremenskom oznakom.
  • Odluku o usmjeravanju, signale pouzdanosti iza nje i prag koji je tada važio.
  • Ko je akciju odobrio, izmijenio ili odbio, i s kojim razlogom.

Sve to čuvajte u strukturiranom obliku koji se može pretraživati. Osim za usklađenost s propisima, trag vam služi za otklanjanje grešaka i za nove slučajeve u skupu testova.

Rezervni planovi kada nešto krene po zlu

Agenti će naići na ulaze s kojima ne znaju raditi i na sisteme koji ne rade. Putanje za greške dizajnirajte izričito:

  1. 01Eskalirajte s kontekstom. Kada agent ne može odlučiti, predaje slučaj čovjeku s onim što je dotad pronašao, umjesto da beskonačno pokušava ponovo.
  2. 02Ograničite krug. Ograničite broj koraka, poziva alata i trošak po pokretanju, i eskalirajte kada se dostigne granica.
  3. 03Kontrolisano smanjite funkcionalnost. Ako zavisni sistem nije dostupan, stavite posao u red ili se vratite na ručni proces i obavijestite tim.
  4. 04Omogućite prekidač za zaustavljanje. Operativno osoblje treba moći pauzirati agenta, ili samo jedan alat, bez novog deploya.

Kontrolna lista za dizajn

  • Svaki alat je razvrstan po riziku, a za akcije izvan obima alat ne postoji.
  • Ograničenja se provode u kodu alata, uz pristupne podatke s ograničenim pravima.
  • Nepovratne akcije i akcije prema vani traže odobrenje, s dokazima na ekranu za odobrenje.
  • Pouzdanost se računa iz signala koji se mogu provjeriti i podešava prema ishodima.
  • Svako pokretanje ostavlja potpun revizijski trag koji se može pretraživati.
  • Krugovi su ograničeni, greške se eskaliraju s kontekstom i postoji prekidač za zaustavljanje.

Agente ovako dizajniramo od prve verzije, a automatizaciju širimo kada revizijski trag i evaluacije pokažu da je to sigurno. Naš agent za odobravanje faktura i projekat za probleme u transportu robe pokazuju ove obrasce u praksi, a kako radimo opisuje kako agente puštamo u rad.

Svi članci

Započnite saradnju s Vantionom.