Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- W portalu agenta przejdź do pozycji Monitorowanie>dzienników.
- Ta akcja powoduje otwarcie zasobu usługi Application Insights agenta w witrynie Azure Portal.
- Użyj języka KQL, aby wysłać zapytanie do
customEventstabeli.
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 |