Permisiunile agenților țin de gateway, nu de prompt

de Corneliu Dumitru4 min de cititSecuritate

Orice echipă care conectează un agent la un sistem real ajunge să scrie o variantă a aceleiași propoziții în promptul de sistem:

Poți citi din CRM, dar nu ai voie să ștergi niciodată o înregistrare.

Funcționează. De cele mai multe ori. Exact asta este problema: o regulă care funcționează de cele mai multe ori nu se deosebește cu nimic de una care funcționează — până în după-amiaza în care nu mai funcționează.

De ce prompturile sunt permisiuni slabe

Un prompt de sistem este o intrare pentru model, iar un model cântărește intrările una față de alta. Instrucțiunea ta concurează cu mesajul utilizatorului, cu descrierile instrumentelor și cu ce a returnat ultimul apel — și nu câștigă automat.

Nu e nevoie de un atac prin injecție de prompt ca să vezi cum cedează. Ajunge ambiguitatea obișnuită:

  • Cineva îi cere agentului să „curețe contactele duplicate”. Ștergerea duplicatelor este sarcina. Ce instrucțiune ar trebui să câștige?
  • Un instrument se numește contacts.merge. Șterge una dintre cele două înregistrări. Numele nu spune nimic despre asta.
  • Conversația se lungește, primele mesaje ies din fereastra de context, iar regula iese odată cu ele.

Niciunul dintre cazurile astea nu este ostil. Sunt pur și simplu marți.

Cum arată aplicarea reală a regulilor

Gateway-ul stă între agent și aplicație, ceea ce înseamnă că vede apelul după ce modelul a decis să îl facă și înainte să se întâmple ceva. Este singurul loc în care o regulă poate fi verificată, nu doar cerută.

Fiecare instrument este clasificat după verbul din propriul nume. Identificatorii vin sub forma TOOLKIT_VERB_OBJECTGITHUB_CREATE_ISSUE, SLACK_SEND_MESSAGE — iar verbul este întregul semnal: LIST, SEARCH și GET sunt citiri; DELETE, REVOKE, PURGE și OVERWRITE sunt distructive; restul sunt scrieri. Apoi stabilești o regulă pentru fiecare aplicație:

AplicațieCitireScriereDistructiv
HubSpotPermisPermisBlocat
GmailPermisPermisBlocat
GitHubPermisPermisBlocat

Fiecare rând are două stări: permis sau blocat. Nu există „întreabă-mă” — gateway-ul vorbește HTTP fără stare și nu are unde să țină o întrebare, așa că răspunsul trebuie decis înainte de apel, nu în timpul lui. Merită înțeleasă constrângerea, nu ocolită: o regulă la care se poate răspunde sub presiune de timp, de către oricine se întâmplă să fie atent, nu este chiar o regulă.

„Agentul acesta poate citi orice și nu poate șterge nimic” devine o singură regulă în loc de patru sute. Instrumentele blocate sunt tratate de două ori: sunt lăsate în afara listei pe care o primește agentul și sunt refuzate din nou dacă unul dintre ele este apelat oricum. Refuzul numește regula, așa că agentul poate raporta motivul persoanei care a cerut, în loc să reîncerce orbește — sau, mai rău, să reușească.

Avertismentul onest

De fapt, sunt două.

Clasificarea este o deducție dintr-un verb, nu un inventar certificat. Va întâlni instrumente pe care nu le poate încadra.

Acelea sunt tratate ca scrieri. Este o alegere deliberată despre direcția în care merită să greșești: o citire încadrată greșit este o enervare, iar o acțiune distructivă încadrată greșit este un incident. Tratează clasificatorul ca pe o protecție generală — una bună — nu ca pe o dovadă.

Al doilea avertisment este despre locul în care trăiesc regulile. Regulile pe categorii fac parte din Controlul avansat, ceea ce înseamnă un plan care îl include și un administrator care îl activează. Cu el oprit, editorul îți salvează regulile și îți spune limpede că nu sunt aplicate. Regulile pe o aplicație anume sau pe un instrument anume se aplică pe orice plan, așa că o retrogradare nu poate debloca în tăcere ceva ce ai blocat explicit.

De unde să începi

Dacă ai exact o după-amiază, dedic-o coloanei „distructiv”. Setează fiecare aplicație la care ajung agenții tăi să blocheze acțiunile distructive, apoi relaxează acolo unde ai un motiv. Este o schimbare mai mică decât sună și mută propoziția din prompt într-un loc care chiar o aplică.

Apoi citește jurnalul de activitate. Fiecare apel făcut de un agent este un rând acolo — instrumentul, rezultatul, cât a durat — iar cele blocate sunt și ele rânduri. O săptămână de citit așa îți arată ce reguli fac treabă și pe care le-ai ghicit greșit.

Înainte să se încarce ceva

Am vrea să activăm analiza traficului, ca să vedem ce pagini merită păstrate. Nu s-a încărcat încă nimic și nu se va încărca nimic până nu alegi. Cookie-urile care te țin autentificat și îți rețin limba nu fac parte din asta.

Citește Politica de cookie-uri