Auditar acciones del agente en el agente de SRE de Azure

El agente registra todas las acciones, incluidas las llamadas a herramientas, las invocaciones del modelo, el control de incidentes y las decisiones de aprobación, en el recurso de Application Insights. Para ver exactamente lo que hizo el agente, cuándo y por qué, consulte la customEvents tabla mediante el lenguaje de consulta kusto (KQL). Acceda a los registros directamente desde Monitor Logs ( Supervisar>registros ) en el portal del agente.

Dónde encontrar los registros

El agente registra automáticamente todas las acciones en Azure Application Insights. Al crear el agente, también se crea un recurso de Application Insights.

Para acceder a los registros:

  1. En el portal del agente, vaya a Supervisión>de registros.
  2. Esta acción abre el recurso de Application Insights del agente en Azure Portal.
  3. Use KQL para consultar la customEvents tabla.

La consulta predeterminada es traces | where timestamp > ago(1d). Cambie esta consulta para customEvents ver la telemetría de acciones del agente.

Tipos de evento

El agente registra nueve tipos de eventos personalizados en la customEvents tabla. En la consulta siguiente se muestran todos los tipos de eventos y sus recuentos:

customEvents
| summarize Count = count() by name
| sort by Count desc
Nombre del evento Lo que captura Volumen típico
AgentResponse Respuestas de chat enviadas a usted Alto
ModelGeneration Cada llamada LLM (tokens de entrada/salida, identificador de modelo) Alto
AgentToolExecution Cada llamada a herramienta (nombre, entrada, salida) Alto
AgentExecution Ciclo de vida de inicio y finalización de la sesión del agente Medio
MetaAgent Decisiones de enrutamiento y orquestación del agente Medio
AgentHandoff Entregas entre agentes Medio
IncidentActivitySnapshot Ciclo de vida del incidente (gravedad, estado, resultado de mitigación) Low
AgentAzCliExecution Comandos de la CLI de Azure ejecutados por el agente Low
ApprovalDecision Su aprobación o rechazo de acciones propuestas Low

Eventos clave y sus campos

En las secciones siguientes se describen los tipos de eventos más consultados y sus campos.

Ejecución de herramientas (AgentToolExecution)

El sistema registra este evento cada vez que el agente llama a una herramienta.

Campo Descripción Ejemplo de valor
EventType ToolStart o ToolEnd ToolStart
ToolName Nombre de la herramienta SearchResource
ToolInput Argumentos pasados a la herramienta {"resourceTypes": ["microsoft.resources/subscriptions"]}
ToolOutput Resultado devuelto por la herramienta (para ToolEnd eventos) (JSON de salida de la herramienta)
SubAgentName Nombre del agente que invocó la herramienta meta_agent
CallId Id. de correlación para emparejamiento 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 de vida del incidente (IncidentActivitySnapshot)

Registre este evento para cada incidente que controla el agente. Captura el ciclo de vida completo de la creación a la resolución.

Campo Descripción Ejemplo de valor
IncidentId Id. de incidente de la plataforma Q2VVG0T8K7AL0J
IncidentTitle Descripción del incidente DailyIssueTriager blocked: cannot access repo
IncidentSeverity Gravedad de la plataforma Not set
IncidentStatus Estado actual active
IncidentPlatform Plataforma de origen PagerDuty
IncidentMitigatedByAgent Si el agente lo resolvió True o False
IncidentAssistedByAgent Si el agente ayudó a investigar True o False
AgentAutonomyLevel Cómo lo controló el agente autonomous o review
ResponsePlanId Qué plan de respuesta se usó PDtrigger
ResponsePlanCustom Plan predeterminado o personalizado True o False
IncidentImpactedService Servicio afectado SRE Agent
IncidentCreatedOn Cuándo se creó el incidente FECHA Y HORA ISO 8601
IncidentHandledOn Cuando el agente inició el control FECHA Y HORA ISO 8601
IncidentMitigatedOn Cuando se resuelve (si se mitiga) FECHA Y HORA ISO 8601
// 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

Generación de modelos (ModelGeneration)

Registre este evento para cada llamada LLM. Realiza un seguimiento del uso de tokens, la selección del modelo y el agente solicitante.

Campo Descripción Ejemplo de valor
EventType ModelGenerationStart, ModelGenerationEnd o ModelGenerationError ModelGenerationEnd
AgentName Agente que realiza la llamada LLM daily_report_agent
ModelId Modelo usado gpt-4o
InputTokens Tokens en el símbolo del sistema 29828
OutputTokens Tokens en la respuesta 871
ThreadId Subproceso de conversación 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

Decisiones de aprobación (ApprovalDecision)

Registre este evento cuando apruebe o rechace una acción de agente propuesta.

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

Consultas comunes

Use las siguientes consultas de KQL para responder a preguntas comunes sobre el comportamiento del agente.

¿Qué hizo mi agente en un subproceso específico?

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

Reemplace por el identificador de subproceso <YOUR_THREAD_ID> de la conversación.

¿Qué herramientas usa con más frecuencia?

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

¿Cuántos incidentes ha mitigado el agente frente a asistencia?

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

Tendencia de consumo diario de tokens

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

Campos compartidos en todos los eventos

Cada evento personalizado incluye los siguientes campos para la correlación y el seguimiento.

Campo Descripción
gen_ai.agent.id Identificador de Azure Resource Manager del agente
gen_ai.agent.name Nombre del agente
TraceId Identificador de seguimiento de OpenTelemetry, que correlaciona eventos en una sola solicitud
SpanId Identificador de intervalo de OpenTelemetry
ParentSpanId Intervalo primario para la jerarquía de llamadas
ThreadId GUID del subproceso de conversación
LogTimestamp Marca de tiempo ISO 8601
CorrelationId Identificador de correlación corto para la agrupación de registros

Use TraceId para seguir una única solicitud de la entrada del usuario a través del razonamiento del agente, las llamadas a herramientas y la respuesta.

Registro de actividad de Azure

Para las operaciones de nivel de recurso de Azure, como crear, actualizar o eliminar el recurso del agente, use el registro de actividad de Azure. El registro de actividad captura todas las operaciones de Azure Resource Manager en el agente, la identidad administrada y los recursos de Application Insights.

Acceda al inicio de sesión de actividad en Azure Portal en el grupo de recursos del agente.

Empieza ahora

El registro de auditoría se habilita automáticamente para cada agente. Abra Supervisión>de registros en el portal del agente para consultar el historial de acciones mediante KQL.

Recurso Qué aprenderá:
Crear una herramienta Kusto Creación de consultas KQL reutilizables para extraer los datos de auditoría
Permisos Cómo controla RBAC quién puede consultar datos de auditoría

Paso siguiente