
Urmele agentului IA pot salva prompturi sensibile: observabilitate fără scurgeri

Pentru a monitoriza un agent IA în producție cu OpenTelemetry, creează un span pentru execuția agentului și span-uri copil pentru apelurile către model, instrumente și recuperarea RAG. Păstrează durata, starea, tipul operației și consumul de tokeni unde este disponibil. Lasă textul prompturilor, al răspunsurilor și al documentelor recuperate în afara urmelor obișnuite.
Convențiile OpenTelemetry pentru span-urile GenAI recomandă să nu fie capturate implicit instrucțiunile, intrările și ieșirile: pot conține date sensibile și pot fi prea mari pentru sistemul de telemetrie. Astfel, urmărești unde apare o întârziere sau o eroare fără să copiezi automat conversația într-un sistem cu alte reguli de acces.
Construiește arborele după operațiile agentului
Span-ul părinte acoperă o execuție a agentului, de la pornire până la rezultat, eroare sau anulare. Fiecare apel efectiv primește un span copil. Documentația Amazon OpenSearch Service descrie urme ierarhice pentru orchestrarea agentului, apeluri către model, instrumente și recuperare, cu durată, erori și tokeni afișați separat.
- Agent: folosește gen_ai.operation.name cu valoarea invoke_agent și un nume stabil, dacă aplicația îl are. Durata span-ului părinte arată timpul total, inclusiv intervalele dintre apelurile copil.
- Model: creează un span pentru fiecare apel de inferență, cu operația potrivită API-ului, precum chat sau generate_content. Înregistrează furnizorul și modelul cerut, apoi tokenii de intrare și ieșire când serviciul îi raportează.
- Instrument: folosește execute_tool și un gen_ai.tool.name stabil, definit de aplicație. Starea și categoria erorii arată care apel a eșuat fără să expui argumentele sau rezultatul instrumentului.
- Recuperare RAG: folosește retrieval pentru căutarea contextului. Identificatorul aprobat al sursei de date, limita de rezultate solicitată și durata ajută la izolarea întârzierii fără textul interogării sau al documentelor.
Păstrează relația părinte–copil și același identificator de urmă pe traseu. Dacă instrumentarea automată acoperă deja un apel către model ori instrument, nu crea un al doilea span manual pentru aceeași operație: ai vedea apeluri duplicate și ai putea însuma de două ori consumul. Pentru execuțiile cu mai multe apeluri succesive, ordinea și durata span-urilor arată unde a așteptat agentul înainte de răspuns.
Păstrează câmpurile care explică latența și consumul
Pentru depanare, începe cu durata și starea fiecărui span, gen_ai.operation.name și o categorie de eroare cu valori controlate, precum timeout. Pe span-ul modelului, gen_ai.provider.name, gen_ai.request.model, gen_ai.usage.input_tokens și gen_ai.usage.output_tokens permit compararea apelurilor. Dacă furnizorul raportează modelul efectiv folosit, păstrează și gen_ai.response.model; modelul solicitat și cel folosit pot avea roluri diferite în analiză.
Pentru recuperare, gen_ai.data_source.id este util numai dacă identificatorul nu dezvăluie un client, un fișier ori o colecție sensibilă. gen_ai.retrieval.top_k reprezintă limita cerută, nu numărul de documente obținute. Dacă aplicația are nevoie și de numărul efectiv de rezultate, îl poate adăuga într-un câmp propriu cu nume și semnificație documentate, fără să includă titlurile sau fragmentele găsite.
Numărul de tokeni ajută la estimarea consumului, dar nu este o sumă facturată. Un calcul de cost are nevoie de tariful aplicabil modelului și perioadei, precum și de tratarea corectă a categoriilor de tokeni tarifate diferit. Agregă tokenii din apelurile către model și evită să aduni încă o dată totaluri copiate pe span-ul agentului. Un identificator stabil al versiunii șablonului de prompt poate ajuta la corelarea unei schimbări cu variația de latență, fără să includă textul șablonului.
Exclude conținutul și identificatorii care îl pot dezvălui
Politica implicită ar trebui să excludă gen_ai.system_instructions, gen_ai.input.messages și gen_ai.output.messages. Aplică aceeași regulă fragmentelor generate prin streaming, argumentelor și rezultatelor instrumentelor, interogării de recuperare și documentelor recuperate. Aceste valori pot transporta cereri ale utilizatorilor, date personale sau informații din sisteme interne, indiferent dacă sunt atașate unui span, unui eveniment ori unui log.
Verifică și câmpurile adăugate de aplicație. Adresele de e-mail, identificatorii de utilizator, URL-urile cu parametri și mesajele brute ale excepțiilor pot dezvălui mai mult decât categoria erorii. Folosește nume de instrumente și surse dintr-o listă controlată, iar identificatorii de document numai după evaluarea formatului lor. Un nume de fișier sau o cheie de client rămâne sensibilă chiar dacă apare într-un atribut numit „metadata”.
Oprește colectarea la origine și verifică exportul
Dezactivează capturarea conținutului în biblioteca de instrumentare înainte ca aceasta să construiască telemetria. Ca protecție suplimentară, documentația OpenTelemetry Collector arată că procesorul de atribute poate șterge câmpuri din span-uri înainte de export. Ștergerea în colector protejează destinația finală, dar aplicația a trimis deja acel câmp până la colector; de aceea, filtrarea la sursă rămâne controlul principal.
Testează configurația cu valori sintetice recognoscibile în prompt, răspuns, argumentele instrumentului și documentele RAG. Produce atât o execuție reușită, cât și una cu eroare, apoi caută valorile în span-uri, evenimente și loguri după export. Calea de eroare contează deoarece tratarea excepțiilor poate introduce mesajul brut într-un loc pe care filtrul atributelor GenAI nu îl acoperă. Repetă verificarea când se schimbă instrumentarea sau configurația exportului.
Activează textul exact numai pentru investigații delimitate
Când o investigație cere conținutul exact, activează capturarea explicit, pentru un scop, un mediu și o perioadă definite. Stabilește cine poate accesa datele, cât timp sunt păstrate și ce informații trebuie mascate înainte de colectare. Eșantionarea reduce volumul, însă o urmă selectată poate conține în continuare un prompt sensibil.
Dacă textul trebuie păstrat în producție, separă-l de stocarea telemetriei și folosește controale de acces potrivite conținutului; span-ul poate păstra o referință, dacă arhitectura permite. Pentru monitorizarea curentă, arborele operațiilor, duratele, starea, modelul și tokenii oferă informațiile necesare pentru a localiza apelul lent sau eșuat, în timp ce conversația rămâne în sistemul destinat ei.
Citește și:
Articole similare


Agentul AI citește un document ostil: filtrul de prompt nu este suficient

Claude Haiku 5.5 taie prețul cu 90%, dar pragul de 100.000 de tokeni contează

LangGraph sau CrewAI: 107 sarcini arată prețul controlului

Agentul reușește o dată? Testul trebuie să includă și erori de API

Ransomware fără criptare: atacatorii au furat 896,2 TB într-un an
Abonează-te la newsletter
Primește cele mai noi știri despre Web3, IA și cripto direct în inbox.