Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
- Nel portale dell'agente passare a Monitorare>i log.
- Questa azione apre la risorsa di Application Insights dell'agente nel portale di Azure.
- Usare KQL per eseguire query sulla
customEventstabella.
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 |