إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
[هذا المقال عبارة عن وثائق الإصدار التجريبي ويكون خاضع للتغيير.]
استخدم Azure Application Insights لمراقبة تتبعات الوكيل في Copilot Studio المُصدَّرة من بيئة مُدارة. بعد تكوين التصدير، استخدم Azure Monitor وApplication Insights للتحقق من تشغيل الوكلاء، ومراقبة تنفيذ العقد والأدوات، وإنشاء التنبيهات، وبناء استعلامات ولوحات معلومات مخصصة للتحليل التشغيلي.
Note
- تتوفر القياسات عن بُعد على مستوى البيئة للوكلاء الذين يعملون باستخدام كلٍّ من الـ standard harness وGitHub Copilot harness.
- بعد المعاينة الخاصة، يتم الآن إصدار استدعاءات الوكيل الجذري (
invoke_agent) كdependencies(مع جميع الامتدادات الأخرى)، بدلا منrequests. نتيجة لذلك، قد تظل آثار تتبّع استدعاء جذر العامل تظهر فِي الجدولrequestsحتى يكتمل الطرح العام. - لتقييم هذه الميزة باستخدام أحدث استراتيجيات وقدرات القياس عن بعد، يمكنك الاختبار في بيئة غير إنتاجية مع تفعيل دورة الإصدار المبكر .
- هذه الميزة تطرح حاليا عالميا وقد لا تكون متاحة بالكامل بعد في بيئاتك.
- هذه الميزة متاحة فقط للبيئات المدارة.
- فقط السجلات الخاصة بالوكلاء المبنيين في Copilot Studio، باستثناء الوكلاء التصريحيين، متاحة في Application Insights.
- لاقتصار اعتماد استراتيجية Application Insights على مستوى البيئة فقط لبيانات تتبع الاستخدام الخاصة بوكلاء Copilot Studio، يمكن للمؤسسات اختيار تعطيل بيانات تتبع الاستخدام في Application Insights على مستوى كل وكيل.
تشرح هذه المقالة كيفية تكوين تصدير مسارات وكلاء Copilot Studio على مستوى البيئة إلى Azure Application Insights من خلال مركز إدارة Power Platform.
Important
تحتوي هذه المقالة على وثائق إصدار أولي Microsoft Copilot Studio وهي عرضة للتغيير.
ميزات الإصدار الأولي ليست مخصصة للاستخدام الإنتاجي وقد تكون لها وظيفة مقيدة. تتوفر هذه الميزات قبل الإصدار الرسمي حتى تتمكن من الحصول على وصول مبكر وتقديم التعليقات.
إذا كنت تقوم بإنشاء عامل جاهز للإنتاج، فشاهد نظرة عامة على Microsoft Copilot Studio.
المتطلبات المسبقه
قبل إعداد اتصال تصدير البيانات، أكمل متطلبات تصدير البيانات إلى Application Insights.
ما يتم تصديره
عند تمكين التصدير، تُكتَب بيانات القياس عن بُعد لتتبّع عامل Copilot Studio في Application Insights بتنسيق قابلية ملاحظة موجَّه للتتبّع ومتوافق مع OpenTelemetry، بما يدعم الاستقصاء ولوحات المعلومات والتنبيهات.
تُكتب أحداث عوامل Copilot Studio في الجدول dependencies على شكل نطاقات. كل حدث يتم تصديره (، ، و ) هو صف امتداد واحد (InvokeAgentExecuteToolOutputMessages).itemType = dependency
كيف تشكل الامتدادات أثرا
تتبع البيانات هذا يتبع نموذج التتبّع والنطاق في OpenTelemetry، والذي يُعاد تكوينه من خلال العمودين operation_Id وoperation_ParentId:
- كل تفاعل للوكيل هو تتبّع مستقل بحد ذاته، ويُعرَّف بواسطة معرّف مشترك
operation_Id، مما يتيح لـ Application Insights تجميع هذا التفاعل وعرضه في طريقة عرض المعاملة من طرف إلى طرف. - الامتداد
InvokeAgentهو الجذر لتتبّع الدورة الخاصة به. تتداخل نطاقات التتبُّع الخاصة بـExecuteToolوالنطاقات المتصلة بها الخاصة بـOutputMessagesتحته، ويحمل كلٌّ منها قيمةoperation_ParentIdمساويةً لقيمةInvokeAgentالخاصة بنطاق التتبُّعid. - تمتد المحادثة عبر عدة تبادلات، ويُنشأ كلٌّ منها كتتبّع منفصل. قم بالتجميع أو التصفية حسب
gen_ai.conversation.idلإعادة ربط مساهمات المحادثة الواحدة معًا. -
OutputMessagesلا تُصدر المقاطع دائمًا جذرًاInvokeAgent، مما يعني أنها قد تصل، بحكم التصميم، مِنْ دون أبٍ مطابق وتظهر كتتبّع مستقل مكوَّن مِنْ عقدة واحدة.
إنشاء حزمة تصدير
أنشئ حزمة تصدير مع نوع التصدير المضبوط على Copilot Studio باتباع التعليمات في إنشاء حزمة تصدير لوثائق مركز إدارة Power Platform.
تحقق من صحة التكوين
بعد حفظ تكوين التصدير، قم بإجراء محادثة اختبار مع الوكيل وتأكد من وصول التليمترية إلى Application Insights. قد يستغرق وصول بيانات القياس عن بُعد ما يصل إلى 24 ساعة مع التكوينات الجديدة. أكد ذلك:
- تظهر فترات العامل فِي جدول
dependencies. - تشترك امتدادات
InvokeAgentوExecuteToolوOutputMessagesفي كل دورة فيoperation_Id.
مجالات رؤى التطبيقات
يوضح الجدول التالي الحقول في dependencies الجدول، وأي الحقول تم ملؤها لكل من أحداث الوكيل الثلاثة المصدرة: InvokeAgent، ExecuteTool، و OutputMessages. دلالات الوكيل والعمليات موجودة في customDimensions (المفاتيح gen_ai.* ، مثل gen_ai.operation.name)، وليست في الأعمدة الأصلية.
الحقول في dependencies الجدول |
إنفوك إيجنت | إكسيكيت تول | رسائل الإخراج | ** قيمة العينة |
|---|---|---|---|---|
timestamp [UTC] |
✔️ | ✔️ | ✔️ | 6/11/2026, 5:02:13.501 AM |
id |
✔️ | ✔️ | ✔️ | 1111aaa1-aa11-11aa-11a1-a1aaa1111aa1 |
name |
✔️ | ✔️ | ✔️ | InvokeAgent / ExecuteTool / OutputMessages |
resultCode |
✔️ | ✔️ | ✔️ |
OK، ERROR |
type |
✔️ | ✔️ | ✔️ | GenAI |
target |
✔️ | ✔️ | ✔️ | GenAI |
data |
✔️ | ✔️ | ✔️ | invoke_agent / execute_tool / output_messages |
success |
✔️ | ✔️ | ✔️ | True |
duration |
✔️ | ✔️ | ✔️ | 0 |
performanceBucket |
✔️ | ✔️ | ✔️ | <250ms |
itemType |
✔️ | ✔️ | ✔️ | dependency |
customDimensions |
✔️ | ✔️ | ✔️ | تعرف على المزيد في خصائص customDimension |
operation_Id |
✔️ | ✔️ | ✔️ |
trace-1111aaa1-aa11-11aa-11a1-a1aaa1111aa1 (مشترك فِي كل امتداد فِي الدور) |
operation_ParentId |
✔️ | ✔️ | ✔️ | الدوران هو InvokeAgentid للامتدادات الفرعية؛ الجذر الأثري للامتداد InvokeAgent |
client_Type |
✔️ | ✔️ | ✔️ | PC |
client_IP |
✔️ | ✔️ | ✔️ | 0.0.0.0 |
client_City |
✔️ | ✔️ | ✔️ | San Jose |
client_StateOrProvince |
✔️ | ✔️ | ✔️ | California |
client_CountryOrRegion |
✔️ | ✔️ | ✔️ | United States |
appId |
✔️ | ✔️ | ✔️ | 11111a1a-1111-1111-a111-1a1a1a11111a |
appName |
✔️ | ✔️ | ✔️ | - |
iKey |
✔️ | ✔️ | ✔️ | aa111a1a-a1aa-111a-111a-a111a111111a |
sdkVersion |
✔️ | ✔️ | ✔️ | dotnetc:2.23.0-29 |
itemId |
✔️ | ✔️ | ✔️ | a1a1111a-1111-11a1-1111-111111aa1a1a |
itemCount |
✔️ | ✔️ | ✔️ | 1 |
_ResourceId |
✔️ | ✔️ | ✔️ | - |
خصائص customDimensions
كل امتداد يشمل JSON customDimensions . يوضح الجدول التالي المفاتيح الشائعة التي تظهر في كل امتداد:
| مفتاح | ** قيمة العينة |
|---|---|
SpanId |
1111aaa1-aa11-11aa-11a1-a1aaa1111aa1 |
error.type |
404 |
Status.code |
1، 2 |
Status.message |
Descriptive failure message |
gen_ai.agent.id |
1aa11a11-1a1a-1a11-1a1a-1111aa1111aa |
gen_ai.agent.name |
MCS Agent |
gen_ai.conversation.id |
aaaaa111-1a1a-1111-1aa1-a111111a11a1 |
gen_ai.request.model |
Sonnet46 |
gen_ai.operation.name |
invoke_agent / execute_tool / output_messages |
env.id |
111a1aa1-a1aa-aaa1-a11a-11a111111111 |
microsoft.tenant.id |
11aaa111-1a11-1a1a-a111-aa1a111a111a |
microsoft.a365.agent.blueprint.id |
1111111a-aa11-1a11-a1a1-a11a1111a1a1 |
microsoft.a365.agent.platform.id |
111a1aa1-…_1a11111a-… |
microsoft.channel.name |
Copilot Studio Test Pane |
resource.provider |
copilot studio |
signal.category |
default |
a365.enabled |
True |
appinsights.enabled |
True |
user.id |
- |
user.email |
My.User@mytenant.onmicrosoft.com |
user.name |
My User |
client.address |
::ffff:00.00.00.00 |
telemetry.sdk.name |
A365ObservabilitySDK |
telemetry.sdk.language |
dotnet |
telemetry.sdk.version |
1.1.9.43597 |
مفاتيح خاصة بالحدث
الجدول التالي يوضح مفاتيح الأحداث الخاصة:
| مفتاح | إنفوك إيجنت | إكسيكيت تول | رسائل الإخراج | Description |
|---|---|---|---|---|
gen_ai.input.messages |
✔️ | - | - | مصفوفة JSON ل {role, parts:[{content, type}]}—موجه المستخدم |
gen_ai.output.messages |
- | - | ✔️ | مصفوفة JSON—رد العميل |
gen_ai.tool.name |
- | ✔️ | - | على سبيل المثال workiqsharepoint:mcp_SharePointRemoteServer |
gen_ai.tool.type |
- | ✔️ | - | على سبيل المثال MCP - Power Platform Connector |
gen_ai.tool.call.id |
- | ✔️ | - | معرف استدعاء الأداة |
gen_ai.tool.call.arguments |
- | ✔️ | - | تم إرسال حمولة JSON إلى الأداة |
gen_ai.tool.call.result |
- | ✔️ | - | حمولة JSON التي تُرجعها الأداة |
اكتشف المخطط الحالي
قد يتطور المخطط الموثق في هذا المقال مع مرور الوقت. بدلا من الاعتماد فقط على الجداول المذكورة سابقا، استخدم الاستعلامات التالية لفحص أحدث مخطط في بيئتك الخاصة.
قائمة أعمدة الجدول الأصلية
الاستعلام التالي يعيد مخطط dependencies الجدول على مستوى الأعمدة (column-level). استخدمه لتأكيد الأعمدة الأصلية المتاحة عند بناء الاستعلامات أو لوحات المعلومات أو التنبيهات.
dependencies
| getschema
| project ColumnName, ColumnType
| order by ColumnName asc
اكتشاف مفاتيح customDimensions (الخصائص الديناميكية)
يسرد الاستعلام التالي كل مفتاح داخل customDimensions JSON في الجدول dependencies: اسم الخاصية، وأحداث الوكيل التي تظهر فيها (InvokeAgent، ExecuteTool، OutputMessages)، وقيمة نموذجية. على عكس مخطط الأعمدة الأصلي، هذه الخصائص ديناميكية، لذا يبقى هذا الاستعلام دقيقا مع إضافة SDK لمفاتيح جديدة gen_ai.* أو أخرى. استخدمها كمصدر حي للحقيقة للصفات المتاحة.
dependencies
| where timestamp > ago(7d)
| mv-expand Key = bag_keys(customDimensions) to typeof(string)
| summarize Events = make_set(name), SampleValue = take_any(tostring(customDimensions[Key])) by Key
| order by Key asc
مراقبة بيانات القياس عن بُعد المصدّرة
استخدم سجلاتApplication Insights للاستعلام عن نشاط العامل والتحقيق فِي تنفيذ العامل أو الأداة. تُسجَّل جميع بيانات القياس عن بُعد المُصدَّرة في جدول dependencies على شكل نطاقات:
- كل دور مِنْ العامل يُعدّ أثر تتبّع، ويُجمَّع بحسب
operation_Idمشترك. - يُعد نطاق التتبُّع
InvokeAgentجذر التتبُّع، وترتبط نطاقات التتبُّعExecuteToolوOutputMessagesبه بوصفها نطاقات فرعية عبر الحقلoperation_ParentId. - قم بالتجميع حسب
gen_ai.conversation.idلتجميع عدة تبادلات مِنْ المحادثة نفسها فِي سلسلة واحدة، وقسّم هذا المعرّف عند_لتضمين تتبعات العامل الفرعي.
شفرات العوامل (المعاينة)
بالإضافة إلى السجلات، يوفّر Application Insights طرق عرض الوكلاء (إصدار أولي) المضمنة التي تصوّر بيانات تتبع الاستخدام المصدّرة الخاصة بـ GenAI من دون كتابة استعلامات Kusto. عندما يكتب Copilot Studio نطاقاته فِي الجدول dependencies، تقرأ هذه اللوحات مباشرةً مِنْ تلك البيانات:
-
جولات الوكلاء: تسرد استدعاءات العملاء المبنية من الامتدادات
InvokeAgent، مع مدتها ونجاحها والمحادثة التي تنتمي إليها كل جولة. تنطبق بعض القيود؛ تعرف على المزيد في القيود والاعتبارات المعروفة. -
الأدوات: يجمع الامتدادات
ExecuteToolليظهر أي الأدوات يستدعيها الوكلاء، وكم مرة، وكيف يؤدون. - النماذج: يلخص استخدام النماذج عبر الجولات، مع عرض النماذج التي تم استدعاؤها وأنماط استدعاءاتها.
حلّل بيانات القياس عن بُعد للوكيل باستخدام Application Insights
بعد أن تربط بيئتك بتطبيق Insights، تقوم بتسجيل بيانات بيانات التتبع للوكيل عندما يتفاعل المستخدمون مع الوكيل، بما في ذلك أثناء الاختبار داخل Copilot Studio. لعرض بيانات التليمترية المسجلة، اذهب إلى قسم السجلات في مورد Application Insights الخاص بك في Azure. هنا، يمكنك استخدام استعلامات Kusto للاستعلام وتحليل بياناتك. تعرف على المزيد في استعلامات الأمثلة.
أمثلة على الاستعلامات
أمثلة استفسارات Kusto التالية تعيد بناء محادثات وكلاء Copilot Studio من dependencies الجدول في Application Insights. وبما أن كل نطاق يشارك تتبّعًا operation_Id لكل دور، فإن الاستعلامات ترتّب النطاقات بدءًا من الجذر (النطاق InvokeAgent قبل النطاقات الفرعية التابعة له) داخل كل تتبّع.
الاستعلام 1: أعد تتبع كامل لمعرف محادثة معين
يرجع هذا الاستعلام كل امتداد لمحادثة معروفة واحدة، مرتبة زمنيا مع إدراج كل امتداد جذر قبل امتداداته الفرعية. استبدل معرف المحادثة بمعرف محادثة وكيلك. يمكنك العثور عليه بإدخال الأمر التالي أثناء اختبار وكيل التخصيص الخاص بك: /debug conversationid.
let LatestConvo = "<Conversation ID>";
dependencies
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| project timestamp, name, id, operation_Id,
operation_ParentId, duration, target, type, cloud_RoleName,
resultCode, customDimensions
الاستعلام 2: أرجِع أحدث محادثة لوكيل معين
هذا الاستعلام يجد أحدث محادثة لوكيل مسمى ضمن الفترة الزمنية المحددة. يُرجِع كل مقطع لتلك المحادثة بنفس الترتيب الزمني، بدءًا من الجذر. استبدل اسم الوكيل المؤقت باسم وكيلك.
let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo = toscalar(
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.agent.name"]) == AgentName
| where isnotempty(tostring(customDimensions["gen_ai.conversation.id"]))
| top 1 by timestamp desc
| project tostring(customDimensions["gen_ai.conversation.id"])
);
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| project timestamp, name, id, operation_Id,
operation_ParentId, duration, target, type, cloud_RoleName,
resultCode, customDimensions
الاستعلام 3: توسيع خصائص OpenTelemetry المعروفة الخاصة بـ genAI إلى أعمدة
يُرجع هذا الاستعلام نفس التتبّع الذي يُرجعه الاستعلام 2، لكنه يُحلّل أيضًا كل مفتاح معروف من مفاتيح الاتفاقيات الدلالية في OpenTelemetry إلى عمود مُسمّى خاص به. النتيجة هي جدول مسطح ومحدد بشكل صريح حيث يمكنك فرز وتصفية ومسح حقول الذكاء الاصطناعي التوليدي مثل اسم الأداة، والنموذج، وموجه المستخدم، ورد الوكيل، ومعرف المحادثة مباشرة. استبدل اسم الوكيل المؤقت باسم وكيلك.
let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo =
toscalar(
dependencies
| where timestamp > ago(Window)
| extend
AgentName_ = tostring(customDimensions["gen_ai.agent.name"]),
ConversationId_ = tostring(customDimensions["gen_ai.conversation.id"])
| where AgentName_ == AgentName
| where isnotempty(ConversationId_)
| summarize arg_max(timestamp, ConversationId_)
| project ConversationId_
);
dependencies
| where timestamp > ago(Window)
| extend
ConversationId = tostring(customDimensions["gen_ai.conversation.id"])
| where ConversationId == LatestConvo
| extend
OperationName = tostring(customDimensions["gen_ai.operation.name"]),
AgentId = tostring(customDimensions["gen_ai.agent.id"]),
AgentName = tostring(customDimensions["gen_ai.agent.name"]),
Model = tostring(customDimensions["gen_ai.request.model"]),
ToolName = tostring(customDimensions["gen_ai.tool.name"]),
ToolType = tostring(customDimensions["gen_ai.tool.type"]),
ToolCallId = tostring(customDimensions["gen_ai.tool.call.id"]),
ToolArguments = tostring(customDimensions["gen_ai.tool.call.arguments"]),
ToolResult = tostring(customDimensions["gen_ai.tool.call.result"]),
EnvironmentId = tostring(customDimensions["env.id"]),
TenantId = tostring(customDimensions["microsoft.tenant.id"]),
ChannelName = tostring(customDimensions["microsoft.channel.name"]),
BlueprintId = tostring(customDimensions["microsoft.a365.agent.blueprint.id"]),
PlatformId = tostring(customDimensions["microsoft.a365.agent.platform.id"]),
ResourceProvider = tostring(customDimensions["resource.provider"]),
SignalCategory = tostring(customDimensions["signal.category"]),
UserId = tostring(customDimensions["user.id"]),
UserName = tostring(customDimensions["user.name"]),
UserEmail = tostring(customDimensions["user.email"])
| extend
InputMessages = parse_json(tostring(customDimensions["gen_ai.input.messages"])),
OutputMessages = parse_json(tostring(customDimensions["gen_ai.output.messages"]))
| extend
UserInput = tostring(InputMessages[0].parts[0].content),
AgentOutput = tostring(OutputMessages[0].parts[0].content)
| order by
operation_Id asc,
iff(name == "InvokeAgent", 0, 1) asc,
timestamp asc
| project
timestamp, name, id, operation_Id, operation_ParentId, OperationName, ConversationId,
AgentId, AgentName, Model, ToolName, ToolType, ToolCallId, ToolArguments, ToolResult,
UserInput, AgentOutput, EnvironmentId, TenantId, ChannelName, BlueprintId, PlatformId,
ResourceProvider, SignalCategory, UserId, UserName, UserEmail, duration, target, type,
cloud_RoleName, resultCode, customDimensions
الاستعلام 4: توسيع جميع خصائص GenAI OpenTelemetry بشكل ديناميكي
يعيد هذا الاستعلام النطاقات نفسها التي يعيدها الاستعلام 3، ولكن يُفكَّك كل مفتاح gen_ai.* ديناميكياً من customDimensions إلى عمود مستقل خاص به ذي بادئة ga_. وبما أن الإسقاط ديناميكي، فإن أي خاصية جديدة gen_ai.* تصدرها SDK تظهر تلقائيا لاحقا دون تغيير الاستعلام. استبدل اسم الوكيل المؤقت باسم وكيلك.
let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo = toscalar(
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.agent.name"]) == AgentName
| where isnotempty(tostring(customDimensions["gen_ai.conversation.id"]))
| top 1 by timestamp desc
| project tostring(customDimensions["gen_ai.conversation.id"])
);
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| mv-apply Key = bag_keys(customDimensions) on (
where Key startswith "gen_ai."
| summarize OTelGenAI = make_bag(bag_pack(tostring(Key), customDimensions[tostring(Key)]))
)
| project timestamp, name, id, operation_Id, operation_ParentId,
duration, target, type, cloud_RoleName, resultCode,
OTelGenAI, customDimensions
| evaluate bag_unpack(OTelGenAI, 'ga_')
الاستعلام 5: إرجاع أحدث محادثة لعامل جذري مع جميع عوامله الفرعيين، بما فِي ذلك العوامل الفرعيون المتداخلون.
يعيد هذا الاستعلام أحدث محادثة لوكيل مُسمّى. يعيد جميع نطاقات التتبّع لتلك المحادثة ولجميع العوامل الفرعيين مِنْ المستوى الأول التي استدعتها. عندما يستدعي العامل عاملا آخر بوصفه أداة، يرث العامل الفرعي معرّف المحادثة الخاص بالعامل الأصلي مع اللاحقة _<subConversationId>. تُعاد إعادة إنشاء الشجرة بأكملها مِنْ خلال المطابقة مع المعرّف ذي المستوى الأعلى. استبدل اسم الوكيل المؤقت باسم وكيلك.
let Window = 7d;
let AgentName = "<Agent name>";
let LatestRoot =
toscalar(
dependencies
| where timestamp > ago(Window)
| extend
AgentName_ = tostring(customDimensions["gen_ai.agent.name"]),
ConversationId = tostring(customDimensions["gen_ai.conversation.id"])
| where AgentName_ == AgentName
| where isnotempty(ConversationId)
| where ConversationId !has "_"
| summarize arg_max(timestamp, ConversationId)
| project ConversationId
);
dependencies
| where timestamp > ago(Window)
| extend
ConversationId = tostring(customDimensions["gen_ai.conversation.id"]),
AgentName_ = tostring(customDimensions["gen_ai.agent.name"]),
ToolName = tostring(customDimensions["gen_ai.tool.name"]),
ToolResult = tostring(customDimensions["gen_ai.tool.callresult"])
| where isnotempty(ConversationId)
| where ConversationId == LatestRoot
or ConversationId startswith strcat(LatestRoot, "_")
| extend
Depth = countof(ConversationId, "_"),
AgentRole = iff(ConversationId == LatestRoot, "root", "sub-agent")
| extend
InputMessages = parse_json( tostring(customDimensions["gen_ai.input.messages"]) ),
OutputMessages = parse_json( tostring(customDimensions["gen_ai.output.messages"]) )
| extend
UserInput = tostring(InputMessages[0].parts[0].content),
AgentOutput = tostring(OutputMessages[0].parts[0].content)
| order by timestamp asc
| project
timestamp, name, AgentRole, Depth, AgentName, ToolName, ToolResult, UserInput,
AgentOutput, id, operation_Id, operation_ParentId, ConversationId, duration,
target, type, cloud_RoleName, resultCode, customDimensions
القيود والاعتبارات المعروفة
- قيمة
durationغير متوفرة لتتبعات العوامل التي تعمل باستخدام الهارنس القياسي. - لا تنعكس أخطاء تنفيذ العامل والأداة حاليًا بصورة صحيحة فِي حالات التتبُّع.
- بناء على متطلبات إقامة البيانات الخاصة بك، قد ترغب في استخدام موارد Application Insights مخصصة لكل منطقة بيئة.
- تكون نطاقات الوكيل الفرعي حاليًا تابعة للنطاق الأصل
InvokeAgentالذي استدعى الوكيل، بدلًا من النطاقInvokeAgentداخل التتبّع الخاص بها. - تُصدَر حاليًا معرّفات التتبّع ونطاق كمعرّفات GUID (مع بادئة عند الحاجة) بدلًا مِنْ أن تكون معرّف تتبّع مكوّنًا مِنْ 32 حرفًا سداسيًا عشريًا ومعرّف span مكوّنًا مِنْ 16 حرفًا سداسيًا عشريًا، ومتوافقين بالكامل مع معيار OpenTelemetry.
- تأكد من تفعيل المصادقة المحلية على مورد Application Insights المستهدف.
- تصدير التليمترية ليس إجراء معاملاتيا. خلال أحداث الخدمة المؤقتة، يمكن أن يحدث فقدان صغير للبيانات.
- قد تحدث تناقضات في البيانات مع نشر تحديثات الإدخال المتعلقة بالمخطط.
- الأحداث المتعلقة بالموضوع مثل
TopicStart،TopicAction، وTopicEndلا يتم التقاطها باستخدام القياس عن بعد على مستوى البيئة. - لتبسيط إعداد التقارير واستكشاف الأخطاء وإصلاحها، تجنب إرسال بيانات تتبع الاستخدام على مستوى الوكيل وعلى مستوى البيئة كليهما إلى مثيل Application Insights نفسه.
- قد تختلف بيانات القياس عن بُعد الصادرة عن العوامل الذين تم تأليفهم باستخدام بيئة تشغيل GitHub Copilot عن تلك الصادرة عن العوامل الذين تم إنشاؤهم باستخدام تجربة التأليف المعتمدة على بيئة التشغيل القياسية.