Controllare le azioni dell'agente nell'agente SRE di Azure

L'agente registra ogni azione, incluse le chiamate agli strumenti, le chiamate al modello, la gestione degli eventi imprevisti e le decisioni di approvazione, alla risorsa di Application Insights. Per visualizzare esattamente le operazioni dell'agente, quando e perché, eseguire query sulla customEvents tabella usando il linguaggio di query Kusto (KQL). Accedere ai log direttamente da Monitoraggio>log nel portale dell'agente.

Dove trovare i log

L'agente registra automaticamente tutte le azioni in Azure Application Insights. Quando si crea l'agente, si crea anche una risorsa di Application Insights.

Per accedere ai log:

  1. Nel portale dell'agente passare a Monitorare>i log.
  2. Questa azione apre la risorsa di Application Insights dell'agente nel portale di Azure.
  3. Usare KQL per eseguire query sulla customEvents tabella.

La query predefinita è traces | where timestamp > ago(1d). Modificare questa query per visualizzare customEvents i dati di telemetria delle azioni dell'agente.

Tipi di evento

L'agente registra nove tipi di evento personalizzati nella customEvents tabella. La query seguente mostra tutti i tipi di evento e i relativi conteggi:

customEvents
| summarize Count = count() by name
| sort by Count desc
Nome evento Cosa acquisisce Volume tipico
AgentResponse Risposte di chat inviate all'utente Alto
ModelGeneration Ogni chiamata LLM (token di input/output, ID modello) Alto
AgentToolExecution Ogni chiamata di strumento (nome, input, output) Alto
AgentExecution Ciclo di vita di inizio/fine sessione dell'agente Medium
MetaAgent Decisioni relative al routing e all'orchestrazione degli agenti Medium
AgentHandoff Handoff tra agenti Medium
IncidentActivitySnapshot Ciclo di vita degli eventi imprevisti (gravità, stato, risultato della mitigazione) Low
AgentAzCliExecution Comandi dell'interfaccia della riga di comando di Azure eseguiti dall'agente Low
ApprovalDecision Approvazione o rifiuto delle azioni proposte Low

Eventi chiave e relativi campi

Le sezioni seguenti descrivono i tipi di evento più comunemente sottoposti a query e i relativi campi.

Esecuzione degli strumenti (AgentToolExecution)

Il sistema registra questo evento ogni volta che l'agente chiama uno strumento.

Campo Descrizione Valore di esempio
EventType ToolStart oppure ToolEnd ToolStart
ToolName Nome dello strumento SearchResource
ToolInput Argomenti passati allo strumento {"resourceTypes": ["microsoft.resources/subscriptions"]}
ToolOutput Risultato restituito dallo strumento (per ToolEnd gli eventi) (JSON di output dello strumento)
SubAgentName Nome dell'agente che ha richiamato lo strumento meta_agent
CallId ID di correlazione per l'associazione call_aaaabbbb-0000-cccc-...
customEvents
| where name == "AgentToolExecution"
| where customDimensions.EventType == "ToolStart"
| where timestamp > ago(7d)
| project timestamp,
    Tool = tostring(customDimensions.ToolName),
    Input = tostring(customDimensions.ToolInput)
| sort by timestamp desc

Ciclo di vita degli eventi imprevisti (IncidentActivitySnapshot)

Registrare questo evento per ogni evento imprevisto gestito dall'agente. Acquisisce il ciclo di vita completo dalla creazione alla risoluzione.

Campo Descrizione Valore di esempio
IncidentId ID evento imprevisto della piattaforma Q2VVG0T8K7AL0J
IncidentTitle Descrizione dell'evento imprevisto DailyIssueTriager blocked: cannot access repo
IncidentSeverity Gravità dalla piattaforma Not set
IncidentStatus Stato corrente active
IncidentPlatform Piattaforma di origine PagerDuty
IncidentMitigatedByAgent Indica se l'agente lo ha risolto True oppure False
IncidentAssistedByAgent Indica se l'agente ha aiutato a indagare True oppure False
AgentAutonomyLevel Modalità di gestione dell'agente autonomous oppure review
ResponsePlanId Quale piano di risposta è stato usato PDtrigger
ResponsePlanCustom Piano predefinito o personalizzato True oppure False
IncidentImpactedService Servizio interessato SRE Agent
IncidentCreatedOn Quando è stato creato un evento imprevisto ISO 8601 datetime
IncidentHandledOn All'avvio della gestione dell'agente ISO 8601 datetime
IncidentMitigatedOn Quando viene risolto (se mitigato) ISO 8601 datetime
// Incident outcomes over the last 30 days
customEvents
| where name == "IncidentActivitySnapshot"
| where timestamp > ago(30d)
| project timestamp,
    IncidentId = tostring(customDimensions.IncidentId),
    Title = tostring(customDimensions.IncidentTitle),
    Platform = tostring(customDimensions.IncidentPlatform),
    MitigatedByAgent = tostring(customDimensions.IncidentMitigatedByAgent),
    AssistedByAgent = tostring(customDimensions.IncidentAssistedByAgent),
    Autonomy = tostring(customDimensions.AgentAutonomyLevel),
    ResponsePlan = tostring(customDimensions.ResponsePlanId)
| sort by timestamp desc

Generazione di modelli (ModelGeneration)

Registrare questo evento per ogni chiamata LLM. Tiene traccia dell'utilizzo dei token, della selezione del modello e dell'agente richiedente.

Campo Descrizione Valore di esempio
EventType ModelGenerationStart, ModelGenerationEnd o ModelGenerationError ModelGenerationEnd
AgentName Agente che effettua la chiamata LLM daily_report_agent
ModelId Modello usato gpt-4o
InputTokens Token nel prompt 29828
OutputTokens Token nella risposta 871
ThreadId Thread di conversazione bb171c1f-3bb2-4895-...
// Token usage by agent in the last 7 days
customEvents
| where name == "ModelGeneration"
| where customDimensions.EventType == "ModelGenerationEnd"
| where timestamp > ago(7d)
| extend Agent = tostring(customDimensions.AgentName),
    InputTokens = toint(customDimensions.InputTokens),
    OutputTokens = toint(customDimensions.OutputTokens),
    Model = tostring(customDimensions.ModelId)
| summarize TotalInput = sum(InputTokens),
    TotalOutput = sum(OutputTokens),
    Calls = count()
    by Agent, Model
| sort by TotalInput desc

Decisioni di approvazione (ApprovalDecision)

Registrare questo evento quando si approva o rifiuta un'azione dell'agente proposta.

// All approval decisions
customEvents
| where name == "ApprovalDecision"
| where timestamp > ago(30d)
| project timestamp, customDimensions

Domande comuni

Usare le query KQL seguenti per rispondere a domande comuni sul comportamento dell'agente.

Cosa ha fatto l'agente in un thread specifico?

customEvents
| where timestamp > ago(7d)
| where tostring(customDimensions.ThreadId) == "<YOUR_THREAD_ID>"
| project timestamp,
    Event = name,
    EventType = tostring(customDimensions.EventType),
    Tool = tostring(customDimensions.ToolName),
    Agent = tostring(customDimensions.SubAgentName)
| sort by timestamp asc

Sostituire <YOUR_THREAD_ID> con l'ID thread della conversazione.

Quali strumenti si usano più spesso?

customEvents
| where name == "AgentToolExecution"
| where customDimensions.EventType == "ToolStart"
| where timestamp > ago(30d)
| summarize Count = count() by Tool = tostring(customDimensions.ToolName)
| sort by Count desc
| take 20

Quanti eventi imprevisti hanno mitigato l'agente rispetto all'assistenza?

customEvents
| where name == "IncidentActivitySnapshot"
| where timestamp > ago(30d)
| summarize
    Total = count(),
    MitigatedByAgent = countif(tostring(customDimensions.IncidentMitigatedByAgent) == "True"),
    AssistedByAgent = countif(tostring(customDimensions.IncidentAssistedByAgent) == "True")

Tendenza giornaliera del consumo di token

customEvents
| where name == "ModelGeneration"
| where customDimensions.EventType == "ModelGenerationEnd"
| where timestamp > ago(30d)
| extend InputTokens = toint(customDimensions.InputTokens),
    OutputTokens = toint(customDimensions.OutputTokens)
| summarize TotalTokens = sum(InputTokens) + sum(OutputTokens) by bin(timestamp, 1d)
| render timechart

Campi condivisi per tutti gli eventi

Ogni evento personalizzato include i campi seguenti per la correlazione e la traccia.

Campo Descrizione
gen_ai.agent.id ID di Azure Resource Manager dell'agente
gen_ai.agent.name Nome agente
TraceId ID di traccia OpenTelemetry, che correla gli eventi in una singola richiesta
SpanId ID intervallo OpenTelemetry
ParentSpanId Intervallo padre per la gerarchia delle chiamate
ThreadId GUID del thread di conversazione
LogTimestamp Timestamp ISO 8601
CorrelationId ID correlazione breve per il raggruppamento dei log

Usare TraceId per seguire una singola richiesta dall'input dell'utente tramite il ragionamento dell'agente, le chiamate agli strumenti e la risposta.

Log attività di Azure

Per le operazioni a livello di risorsa di Azure, ad esempio la creazione, l'aggiornamento o l'eliminazione della risorsa agente, usare il log attività di Azure. Il log attività acquisisce tutte le operazioni di Azure Resource Manager sulle risorse dell'agente, dell'identità gestita e di Application Insights.

Accedere all'accesso all'attività nel portale di Azure nel gruppo di risorse dell'agente.

Inizia subito

La registrazione di controllo viene abilitata automaticamente per ogni agente. Aprire Monitoraggio>log nel portale dell'agente per eseguire query sulla cronologia delle azioni usando KQL.

risorsa Cosa imparerai
Creare uno strumento Kusto Creare query KQL riutilizzabili per estrarre i dati di controllo
Autorizzazioni In che modo il controllo degli accessi in base al ruolo controlla chi può eseguire query sui dati di controllo

Passo successivo