مشاركة عبر


إجراءات عامل التدقيق في عامل Azure SRE

يسجل وكيلك كل إجراء، بما في ذلك استدعاءات الأدوات واستدعاءات النموذج ومعالجة الحوادث وقرارات الموافقة، إلى مورد Application Insights الخاص بك. لمعرفة ما فعله وكيلك بالضبط، ومتى ولماذا، استعلم عن customEvents الجدول باستخدام Kusto Query Language (KQL). الوصول إلى السجلات مباشرة من سجلات المراقبة> في مدخل العامل.

مكان العثور على سجلاتك

يسجل وكيلك تلقائيا جميع الإجراءات إلى Azure Application Insights. عند إنشاء وكيلك، يمكنك أيضا إنشاء مورد Application Insights.

للوصول إلى سجلاتك:

  1. في مدخل العامل، انتقل إلى Monitor>Logs.
  2. يفتح هذا الإجراء مورد Application Insights الخاص بوكيلك في مدخل Microsoft Azure.
  3. استخدم KQL للاستعلام عن customEvents الجدول.

الاستعلام الافتراضي هو traces | where timestamp > ago(1d). غير هذا الاستعلام إلى customEvents لمشاهدة القياس عن بعد لإجراء العامل.

أنواع الحدث

يسجل عاملك تسعة أنواع أحداث مخصصة إلى customEvents الجدول. يعرض الاستعلام التالي جميع أنواع الأحداث وعددها:

customEvents
| summarize Count = count() by name
| sort by Count desc
اسم الحدث ما الذي يلتقطه وحدة تخزين نموذجية
AgentResponse استجابات الدردشة المرسلة إليك مرتفع
ModelGeneration كل استدعاء LLM (رموز الإدخال/الإخراج المميزة، معرف النموذج) مرتفع
AgentToolExecution كل استدعاء أداة (الاسم، الإدخال، الإخراج) مرتفع
AgentExecution دورة حياة بدء/نهاية جلسة العامل متوسط
MetaAgent قرارات توجيه الوكيل وتنسيقه متوسط
AgentHandoff تسليمات عبر الوكلاء متوسط
IncidentActivitySnapshot دورة حياة الحدث (الخطورة والحالة ونتائج التخفيف) منخفض
AgentAzCliExecution أوامر Azure CLI التي يقوم العامل بتشغيلها منخفض
ApprovalDecision موافقتك على الإجراءات المقترحة أو رفضها منخفض

الأحداث الرئيسية وحقولها

تصف الأقسام التالية أنواع الأحداث الأكثر شيوعا والحقول الخاصة بها.

تنفيذ الأداة (AgentToolExecution)

يسجل النظام هذا الحدث في كل مرة يستدعي فيها وكيلك أداة.

الحقل الوصف قيمة المثال
EventType ToolStart او ToolEnd ToolStart
ToolName اسم الأداة SearchResource
ToolInput الوسيطات التي تم تمريرها إلى الأداة {"resourceTypes": ["microsoft.resources/subscriptions"]}
ToolOutput النتيجة التي تم إرجاعها بواسطة الأداة (للأحداث ToolEnd ) (إخراج الأداة JSON)
SubAgentName اسم العامل الذي استدعى الأداة meta_agent
CallId معرف الارتباط للاقتران 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

دورة حياة الحدث (IncidentActivitySnapshot)

سجل هذا الحدث لكل حادث يعالجه وكيلك. يلتقط دورة الحياة الكاملة من الإنشاء إلى الدقة.

الحقل الوصف قيمة المثال
IncidentId معرف حادث النظام الأساسي Q2VVG0T8K7AL0J
IncidentTitle وصف الحدث DailyIssueTriager blocked: cannot access repo
IncidentSeverity الخطورة من النظام الأساسي الخاص بك Not set
IncidentStatus الحالة الحالية active
IncidentPlatform منصة المصدر PagerDuty
IncidentMitigatedByAgent ما إذا كان العامل قد قام بحله True او False
IncidentAssistedByAgent ما إذا كان العامل قد ساعد في التحقيق True او False
AgentAutonomyLevel كيفية معالجة العامل له autonomous او review
ResponsePlanId خطة الاستجابة التي تم استخدامها PDtrigger
ResponsePlanCustom الخطة الافتراضية أو المخصصة True او False
IncidentImpactedService الخدمة المتأثرة SRE Agent
IncidentCreatedOn عند إنشاء الحدث التاريخ والوقت ISO 8601
IncidentHandledOn عندما بدأ العامل في التعامل مع التاريخ والوقت ISO 8601
IncidentMitigatedOn عند حلها (إذا تم التخفيف منها) التاريخ والوقت 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

إنشاء النموذج (ModelGeneration)

سجل هذا الحدث لكل استدعاء LLM. يتعقب استخدام الرمز المميز واختيار النموذج والعامل الطالب.

الحقل الوصف قيمة المثال
EventType ModelGenerationStartو ModelGenerationEnd, أو ModelGenerationError ModelGenerationEnd
AgentName العامل الذي يقوم بإجراء مكالمة LLM daily_report_agent
ModelId النموذج المستخدم gpt-4o
InputTokens الرموز المميزة في المطالبة 29828
OutputTokens الرموز المميزة في الاستجابة 871
ThreadId مؤشر ترابط المحادثة 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

قرارات الموافقة (الموافقة)

سجل هذا الحدث عند الموافقة على إجراء وكيل مقترح أو رفضه.

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

الاستعلامات الشائعة

استخدم استعلامات KQL التالية للإجابة عن الأسئلة الشائعة حول سلوك وكيلك.

ماذا فعل وكيلي في مؤشر ترابط معين؟

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

استبدل <YOUR_THREAD_ID> بمعرف مؤشر الترابط من المحادثة.

ما هي الأدوات التي تستخدمها في معظم الأحيان؟

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

كم عدد الحوادث التي قام العامل بتخفيفها مقابل المساعدة؟

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

اتجاه استهلاك الرمز المميز اليومي

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

الحقول المشتركة في جميع الأحداث

يتضمن كل حدث مخصص الحقول التالية للارتباط والتتبع.

الحقل الوصف
gen_ai.agent.id معرف Azure Resource Manager لوكيلك
gen_ai.agent.name اسم العامل
TraceId معرف تتبع OpenTelemetry، الذي يرتبط بالأحداث عبر طلب واحد
SpanId معرف نطاق OpenTelemetry
ParentSpanId النطاق الأصل للتسلسل الهرمي للاتصال
ThreadId GUID لمترابط المحادثة
LogTimestamp الطابع الزمني ISO 8601
CorrelationId معرف الارتباط القصير لتجميع السجل

يستخدم TraceId لمتابعة طلب واحد من إدخال المستخدم من خلال منطق العامل واستدعاءات الأدوات والاستجابة.

سجل Azure Activity

بالنسبة لعمليات مستوى موارد Azure مثل إنشاء مورد العامل أو تحديثه أو حذفه، استخدم سجل نشاط Azure. يسجل سجل النشاط جميع عمليات Azure Resource Manager على عاملك والهوية المدارة وموارد Application Insights.

الوصول إلى تسجيل الدخول إلى النشاط في مدخل Microsoft Azure ضمن مجموعة موارد الوكيل.

الشروع في العمل

يتم تمكين تسجيل التدقيق تلقائيا لكل عامل. افتح سجلات المراقبة>في مدخل العامل للاستعلام عن محفوظات الإجراءات باستخدام KQL.

مورد ما ستتعلمه
إنشاء أداة Kusto إنشاء استعلامات KQL القابلة لإعادة الاستخدام لاستنطاق بيانات التدقيق الخاصة بك
الأذونات كيف يتحكم RBAC في من يمكنه الاستعلام عن بيانات التدقيق

الخطوة التالية