Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ihr Agent protokolliert jede Aktion, einschließlich Toolaufrufe, Modellaufrufe, Vorfallbehandlungs- und Genehmigungsentscheidungen, für Ihre Application Insights-Ressource. Um genau zu sehen, was Ihr Agent getan hat, wann und warum, fragen Sie die Tabelle mithilfe der customEvents Kusto Query Language (KQL) ab. Greifen Sie direkt über Die Überwachungsprotokolle> im Agentportal aufProtokolle zu.
Wo finden Sie Ihre Protokolle?
Ihr Agent protokolliert automatisch alle Aktionen bei Azure Application Insights. Wenn Sie Ihren Agent erstellen, erstellen Sie auch eine Application Insights-Ressource.
So greifen Sie auf Ihre Protokolle zu:
- Wechseln Sie im Agentportal zu "Protokolle überwachen>".
- Diese Aktion öffnet die Application Insights-Ressource Ihres Agents im Azure-Portal.
- Verwenden Sie KQL, um die
customEventsTabelle abzufragen.
Die Standardabfrage ist traces | where timestamp > ago(1d). Ändern Sie diese Abfrage, um die Telemetrie der Agentaktion anzuzeigen customEvents .
Ereignistypen
Ihr Agent protokolliert neun benutzerdefinierte Ereignistypen in der customEvents Tabelle. Die folgende Abfrage zeigt alle Ereignistypen und deren Anzahl an:
customEvents
| summarize Count = count() by name
| sort by Count desc
| Ereignisname | Was er erfasst | Typische Lautstärke |
|---|---|---|
AgentResponse |
An Sie gesendete Chatantworten | Hoch |
ModelGeneration |
Jeder LLM-Aufruf (Eingabe-/Ausgabetoken, Modell-ID) | Hoch |
AgentToolExecution |
Jeder Toolaufruf (Name, Eingabe, Ausgabe) | Hoch |
AgentExecution |
Start-/End-Lebenszyklus der Agentsitzung | Mittelstufe |
MetaAgent |
Entscheidungen zum Agentrouting und zur Orchestrierung | Mittelstufe |
AgentHandoff |
Cross-Agent-Übergaben | Mittelstufe |
IncidentActivitySnapshot |
Lebenszyklus von Vorfällen (Schweregrad, Status, Ergebnis der Risikominderung) | Niedrig |
AgentAzCliExecution |
Azure CLI-Befehle, die vom Agent ausgeführt werden | Niedrig |
ApprovalDecision |
Ihre Genehmigung oder Ablehnung von vorgeschlagenen Aktionen | Niedrig |
Wichtige Ereignisse und deren Felder
In den folgenden Abschnitten werden die am häufigsten abgefragten Ereignistypen und deren Felder beschrieben.
Toolausführung (AgentToolExecution)
Das System protokolliert dieses Ereignis jedes Mal, wenn Ihr Agent ein Tool aufruft.
| Feld | Beschreibung | Beispielwert |
|---|---|---|
EventType |
ToolStart oder ToolEnd |
ToolStart |
ToolName |
Name des Tools | SearchResource |
ToolInput |
An das Tool übergebene Argumente | {"resourceTypes": ["microsoft.resources/subscriptions"]} |
ToolOutput |
Vom Tool zurückgegebenes Ergebnis (für ToolEnd Ereignisse) |
(Toolausgabe JSON) |
SubAgentName |
Name des Agents, der das Tool aufgerufen hat | meta_agent |
CallId |
Korrelations-ID für die Kopplung | 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
Vorfalllebenszyklus (IncidentActivitySnapshot)
Protokollieren Sie dieses Ereignis für jeden Vorfall, den Ihr Agent verarbeitet. Er erfasst den vollständigen Lebenszyklus von Der Erstellung bis zur Auflösung.
| Feld | Beschreibung | Beispielwert |
|---|---|---|
IncidentId |
Plattformvorfall-ID | Q2VVG0T8K7AL0J |
IncidentTitle |
Beschreibung des Incidents | DailyIssueTriager blocked: cannot access repo |
IncidentSeverity |
Schweregrad von Ihrer Plattform | Not set |
IncidentStatus |
Derzeitiger Status | active |
IncidentPlatform |
Quellplattform | PagerDuty |
IncidentMitigatedByAgent |
Gibt an, ob der Agent ihn aufgelöst hat. |
True oder False |
IncidentAssistedByAgent |
Gibt an, ob agent bei der Untersuchung geholfen hat |
True oder False |
AgentAutonomyLevel |
Wie der Agent es behandelt hat |
autonomous oder review |
ResponsePlanId |
Welcher Antwortplan verwendet wurde | PDtrigger |
ResponsePlanCustom |
Standard- oder benutzerdefinierter Plan |
True oder False |
IncidentImpactedService |
Betroffener Dienst | SRE Agent |
IncidentCreatedOn |
Wann ein Vorfall erstellt wurde | ISO 8601 datetime |
IncidentHandledOn |
Wann der Agent mit der Behandlung begonnen hat | ISO 8601 datetime |
IncidentMitigatedOn |
Beim Auflösen (falls entschärft) | 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
Modellgenerierung (ModelGeneration)
Protokollieren Sie dieses Ereignis für jeden LLM-Aufruf. Es verfolgt die Tokenverwendung, die Modellauswahl und den anfordernden Agent.
| Feld | Beschreibung | Beispielwert |
|---|---|---|
EventType |
ModelGenerationStart, ModelGenerationEndoder ModelGenerationError |
ModelGenerationEnd |
AgentName |
Agent, der den LLM-Anruf vorgibt | daily_report_agent |
ModelId |
Verwendetes Modell | gpt-4o |
InputTokens |
Token in der Eingabeaufforderung | 29828 |
OutputTokens |
Token in der Antwort | 871 |
ThreadId |
Unterhaltungsthread | 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
Genehmigungsentscheidungen (Genehmigungsentscheidung)
Protokollieren Sie dieses Ereignis, wenn Sie eine vorgeschlagene Agent-Aktion genehmigen oder ablehnen.
// All approval decisions
customEvents
| where name == "ApprovalDecision"
| where timestamp > ago(30d)
| project timestamp, customDimensions
Allgemeine Abfragen
Verwenden Sie die folgenden KQL-Abfragen, um allgemeine Fragen zum Verhalten Ihres Agents zu beantworten.
Was hat mein Agent in einem bestimmten Thread getan?
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
Ersetzen Sie diese durch <YOUR_THREAD_ID> die Thread-ID aus Ihrer Unterhaltung.
Welche Tools verwenden Sie am häufigsten?
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
Wie viele Vorfälle hat der Agent abgemildert und unterstützt?
customEvents
| where name == "IncidentActivitySnapshot"
| where timestamp > ago(30d)
| summarize
Total = count(),
MitigatedByAgent = countif(tostring(customDimensions.IncidentMitigatedByAgent) == "True"),
AssistedByAgent = countif(tostring(customDimensions.IncidentAssistedByAgent) == "True")
Trend zur täglichen Tokennutzung
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
Freigegebene Felder für alle Ereignisse
Jedes benutzerdefinierte Ereignis enthält die folgenden Felder für Korrelation und Ablaufverfolgung.
| Feld | Beschreibung |
|---|---|
gen_ai.agent.id |
Azure Resource Manager-ID Ihres Agents |
gen_ai.agent.name |
Agentname |
TraceId |
OpenTelemetry-Ablaufverfolgungs-ID, die Ereignisse in einer einzelnen Anforderung korreliert |
SpanId |
OpenTelemetry span ID |
ParentSpanId |
Übergeordnete Spanne für die Anrufhierarchie |
ThreadId |
Unterhaltungsthread-GUID |
LogTimestamp |
ISO 8601-Zeitstempel |
CorrelationId |
Kurze Korrelations-ID für die Protokollgruppierung |
Wird verwendet TraceId , um eine einzelne Anforderung von Benutzereingaben über Agentengrundlegungen, Toolanrufe und -antworten zu befolgen.
Azure-Aktivitätsprotokoll
Verwenden Sie für Vorgänge auf Azure-Ressourcenebene, z. B. das Erstellen, Aktualisieren oder Löschen der Agentressource, das Azure-Aktivitätsprotokoll. Das Aktivitätsprotokoll erfasst alle Azure Resource Manager-Vorgänge in Ihren Agent-, verwalteten Identitäts- und Application Insights-Ressourcen.
Greifen Sie auf die Aktivitätsanmeldung im Azure-Portal unter der Ressourcengruppe Ihres Agents zu.
Erste Schritte
Die Überwachungsprotokollierung wird für jeden Agent automatisch aktiviert. Öffnen Sie Überwachungsprotokolle> im Agentportal, um den Aktionsverlauf mithilfe von KQL abzufragen.
| Ressource | Was Sie lernen werden |
|---|---|
| Erstellen eines Kusto-Tools | Erstellen von wiederverwendbaren KQL-Abfragen, um Ihre Überwachungsdaten zu minen |
| Erlaubnisse | So steuert RBAC, wer Überwachungsdaten abfragen kann |