Akcje agenta inspekcji w agencie usługi Azure SRE

Agent rejestruje każdą akcję, w tym wywołania narzędzi, wywołania modelu, obsługę zdarzeń i decyzje dotyczące zatwierdzania do zasobu usługi Application Insights. Aby dokładnie sprawdzić, co zrobił agent, kiedy i dlaczego, wykonaj zapytanie względem customEvents tabeli przy użyciu języka Kusto Query Language (KQL). Uzyskiwanie dostępu dodzienników bezpośrednio z > w portalu agenta.

Gdzie można znaleźć dzienniki

Agent automatycznie rejestruje wszystkie akcje w usłudze Azure Application Insights. Podczas tworzenia agenta tworzysz również zasób usługi Application Insights.

Aby uzyskać dostęp do dzienników:

  1. W portalu agenta przejdź do pozycji Monitorowanie>dzienników.
  2. Ta akcja powoduje otwarcie zasobu usługi Application Insights agenta w witrynie Azure Portal.
  3. Użyj języka KQL, aby wysłać zapytanie do customEvents tabeli.

Domyślne zapytanie to traces | where timestamp > ago(1d). Zmień to zapytanie, aby customEvents wyświetlić dane telemetryczne akcji agenta.

Typy zdarzeń

Agent rejestruje w tabeli dziewięć niestandardowych typów customEvents zdarzeń. Następujące zapytanie przedstawia wszystkie typy zdarzeń i ich liczby:

customEvents
| summarize Count = count() by name
| sort by Count desc
Nazwa zdarzenia Co przechwytuje Typowy wolumin
AgentResponse Odpowiedzi czatu wysłane do Ciebie High
ModelGeneration Każde wywołanie usługi LLM (tokeny wejściowe/wyjściowe, identyfikator modelu) High
AgentToolExecution Każde wywołanie narzędzia (nazwa, dane wejściowe, wyjściowe) High
AgentExecution Rozpoczęcie/zakończenie cyklu życia sesji agenta Średni
MetaAgent Decyzje dotyczące routingu i aranżacji agenta Średni
AgentHandoff Przekazywanie między agentami Średni
IncidentActivitySnapshot Cykl życia zdarzenia (ważność, stan, wynik ograniczania ryzyka) Low
AgentAzCliExecution Polecenia interfejsu wiersza polecenia platformy Azure uruchamiane przez agenta Low
ApprovalDecision Zatwierdzenie lub odrzucenie proponowanych działań Low

Kluczowe zdarzenia i ich pola

W poniższych sekcjach opisano najczęściej używane typy zdarzeń i ich pola.

Wykonywanie narzędzi (AgentToolExecution)

System rejestruje to zdarzenie za każdym razem, gdy agent wywołuje narzędzie.

Pole Opis Przykładowa wartość
EventType ToolStart lub ToolEnd ToolStart
ToolName Nazwa narzędzia SearchResource
ToolInput Argumenty przekazane do narzędzia {"resourceTypes": ["microsoft.resources/subscriptions"]}
ToolOutput Wynik zwrócony przez narzędzie (dla zdarzeń ToolEnd ) (dane wyjściowe narzędzia JSON)
SubAgentName Nazwa agenta, który wywołał narzędzie meta_agent
CallId Identyfikator korelacji dla parowania 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

Cykl życia zdarzenia (IncidentActivitySnapshot)

Zarejestruj to zdarzenie dla każdego zdarzenia obsługiwanego przez agenta. Przechwytuje pełny cykl życia od tworzenia do rozwiązania.

Pole Opis Przykładowa wartość
IncidentId Identyfikator zdarzenia platformy Q2VVG0T8K7AL0J
IncidentTitle Opis zdarzenia DailyIssueTriager blocked: cannot access repo
IncidentSeverity Ważność z platformy Not set
IncidentStatus Bieżący stan active
IncidentPlatform Platforma źródłowa PagerDuty
IncidentMitigatedByAgent Czy agent go rozwiązał True lub False
IncidentAssistedByAgent Czy agent pomógł zbadać True lub False
AgentAutonomyLevel Jak agent go obsłużył autonomous lub review
ResponsePlanId Który plan odpowiedzi został użyty PDtrigger
ResponsePlanCustom Domyślny lub niestandardowy plan True lub False
IncidentImpactedService Usługa, której dotyczy problem SRE Agent
IncidentCreatedOn Po utworzeniu zdarzenia ISO 8601 data/godzina
IncidentHandledOn Kiedy agent zaczął obsługiwać ISO 8601 data/godzina
IncidentMitigatedOn Po rozwiązaniu problemu (w przypadku ograniczenia ryzyka) ISO 8601 data/godzina
// 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

Generowanie modelu (ModelGeneration)

Zarejestruj to zdarzenie dla każdego wywołania LLM. Śledzi użycie tokenu, wybór modelu i agenta żądającego.

Pole Opis Przykładowa wartość
EventType ModelGenerationStart, ModelGenerationEnd lub ModelGenerationError ModelGenerationEnd
AgentName Agent, który wykonuje wywołanie usługi LLM daily_report_agent
ModelId Używany model gpt-4o
InputTokens Tokeny w wierszu polecenia 29828
OutputTokens Tokeny w odpowiedzi 871
ThreadId Wątek konwersacji 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

Decyzje dotyczące zatwierdzenia (ZatwierdzenieDecyzji)

Zarejestruj to zdarzenie po zatwierdzeniu lub odrzuceniu proponowanej akcji agenta.

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

Typowe zapytania

Użyj następujących zapytań KQL, aby odpowiedzieć na typowe pytania dotyczące zachowania agenta.

Co mój agent zrobił w określonym wątku?

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

Zastąp <YOUR_THREAD_ID> ciąg identyfikatorem wątku z konwersacji.

Których narzędzi używasz najczęściej?

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

Ile zdarzeń agent złagodził w porównaniu z pomocą?

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

Trend dziennego zużycia tokenów

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

Pola udostępnione dla wszystkich zdarzeń

Każde zdarzenie niestandardowe zawiera następujące pola korelacji i śledzenia.

Pole Opis
gen_ai.agent.id Identyfikator usługi Azure Resource Manager agenta
gen_ai.agent.name Nazwa agenta
TraceId Identyfikator śledzenia OpenTelemetry, który koreluje zdarzenia między pojedynczym żądaniem
SpanId Identyfikator zakresu OpenTelemetry
ParentSpanId Zakres nadrzędny dla hierarchii wywołań
ThreadId Identyfikator GUID wątku konwersacji
LogTimestamp Sygnatura czasowa ISO 8601
CorrelationId Krótki identyfikator korelacji dla grupowania dzienników

Użyj TraceId polecenia , aby wykonać pojedyncze żądanie od danych wejściowych użytkownika za pośrednictwem rozumowania agenta, wywołań narzędzi i odpowiedzi.

Dziennik aktywności platformy Azure

W przypadku operacji na poziomie zasobów platformy Azure, takich jak tworzenie, aktualizowanie lub usuwanie zasobu agenta, użyj dziennika aktywności platformy Azure. Dziennik aktywności przechwytuje wszystkie operacje usługi Azure Resource Manager na zasobach agenta, tożsamości zarządzanej i usługi Application Insights.

Uzyskaj dostęp do logowania aktywności w witrynie Azure Portal w grupie zasobów agenta.

Wprowadzenie

Rejestrowanie inspekcji jest włączane automatycznie dla każdego agenta. Otwórz pozycję Monitorowanie>dzienników w portalu agenta, aby wykonywać zapytania dotyczące historii akcji przy użyciu języka KQL.

Resource Czego się nauczysz
Tworzenie narzędzia Kusto Tworzenie zapytań KQL wielokrotnego użytku w celu gromadzenia danych inspekcji
Uprawnienia Jak kontrola RBAC kontroluje, kto może wykonywać zapytania dotyczące danych inspekcji

Następne kroki