การอ้างอิงแอตทริบิวต์ความสามารถในการสังเกตการณ์ของเอเจนต์ 365

บทความนี้เป็นข้อกําหนดแบบ canonical attribute-by-attribute ที่ใช้ในกระบวนการนําเข้าของ Agent 365 ทุกช่วงที่ Agent 365 นําเข้า ไม่ว่าจะปล่อยโดย Microsoft OpenTelemetry Distro, Agent 365 Observability SDK ที่ถูกยกเลิก หรือส่งผ่าน OTel โดยตรง - ต้องเป็นไปตามข้อกําหนดนี้ แต่ละรายการจะแสดงรายการประเภทการดําเนินการที่แอตทริบิวต์นําไปใช้ ไม่ว่าจะเป็นข้อบังคับ ชื่อฟิลด์ที่ค่าของคุณปรากฏขึ้นสําหรับการค้นหาขั้นสูง (หากมีอยู่) และผลกระทบหากคุณข้ามไป

หากคุณใช้ SDK หรือ Distro SDK จะปล่อยแอตทริบิวต์เหล่านี้ให้คุณ ส่วนการเลือก ค่าจะ ใช้เฉพาะเมื่อคุณต้องการแทนที่ค่าเริ่มต้นเท่านั้น ถ้าคุณใช้เส้นทาง OTel โดยตรง คุณจะปล่อยแอตทริบิวต์ทั้งหมดด้วยตนเอง สําหรับวิธีการรวบรวมข้อมูลเหล่านี้เป็นคําขอ โปรดดูคู่มือการผสานรวม

Attribute table

ค่าทั้งหมดจะถูกส่งเป็น stringValue - จํานวนโทเค็นต้องเป็น "42" (not 42); พอร์ตต้องเป็น "443" (not 443)

ตํานานปฏิบัติการIA = invoke_agent, ET, = execute_toolCH, = chatOM = output_messages, All = ใช้กับทุกการดําเนินการ

Required legend.

  • M: mandatory.
  • M*1: บังคับสําหรับตัวแทนที่เป็นตัวเป็นตนเท่านั้น (ตัวแทนมีบัญชีผู้ใช้ ID เอเจนต์ของ Entra ของตัวเอง)
  • M*2: บังคับใช้สําหรับการโทรระหว่างตัวแทนกับตัวแทนเท่านั้น
  • M*3: บังคับสําหรับช่วงที่ไม่ใช่รูทเท่านั้น ราก invoke_agent ไม่มีพ่อแม่
  • O*4: ไม่บังคับ มีความหมายเฉพาะเมื่อสถานะช่วงเป็นข้อผิดพลาด
  • O: optional.
  • N/A: อย่าปล่อย เอเจนต์ 365 จะเติมข้อมูลอัตโนมัติ

คอลัมน์ "เขตข้อมูล RawEventData" ตั้งชื่อคีย์ JSON ภายใน CloudAppEvents.RawEventData ที่คิวรีการค้นหาขั้นสูงตามรูปแบบบัญญัติในการ แยกวิเคราะห์การนําเข้า การตรวจสอบ เซลล์ว่างหมายความว่าแอตทริบิวต์นั้นไม่ได้ถูกเปิดเผยในปัจจุบันCloudAppEvents คุณควรยังคงปล่อยมัน (ตามคอลัมน์ Required) เพราะ Agent 365 ใช้มันสําหรับการนําเข้า การแก้ไขแบบพาเรนต์ และมุมมองกิจกรรมของ Microsoft Defender อย่างไรก็ตาม คุณไม่สามารถสอบถามโดยตรงจาก Microsoft Defender Advanced Hunting ในปัจจุบันได้

Note

Agent 365 จะเติมข้อมูลฟิลด์บันทึกแบบคงที่ (Id, RecordType, Workload, UserType, Version) และรหัสคําขอและการตอบกลับที่สร้างขึ้นโดยอัตโนมัติ

Attribute Applies to Required RawEventData field หมายเหตุ / ผลกระทบหากขาดหายไป
gen_ai.operation.name All M Operation หนึ่งใน invoke_agent, execute_tool, , chat. output_messages ช่วงลดลงหากหายไปหรือไม่รู้จัก
microsoft.tenant.id All M OrganizationId URL {tenantId} เป็นที่เชื่อถือได้ หากคุณตั้งค่าค่านี้และไม่เห็นด้วย คําขอจะถูกปฏิเสธ (403)
gen_ai.agent.id All M TargetAgentId (ไอเอ); AgentId (ET, CH) appId ของแอปการโทร ต้องตรงกับ URL {agentId} และแอปที่ตรวจสอบสิทธิ์แล้ว ไม่ตรงกันจะส่งกลับ 403
gen_ai.agent.name All M TargetAgentName (ไอเอ); AgentName (ET, CH) Defender และ admin center จะแสดง GUID ดิบแทนที่จะเป็นชื่อถ้าขาดหายไป
microsoft.a365.agent.blueprint.id All M TargetAgentBlueprintID (ไอเอ); AgentBlueprintId (ET, CH) appId ของพิมพ์เขียว สําหรับแอป Entra มาตรฐานที่ไม่มีพิมพ์เขียว ให้ใช้ appId ของตัวแทนซ้ํา การรวบรวมพิมพ์เขียวในศูนย์การจัดการจะหยุดพัก
gen_ai.agent.description All O -- มุมมองรายละเอียดในศูนย์การจัดการว่างเปล่าสําหรับตัวแทน
gen_ai.agent.type All O PlatformTargetAgentType (ไอเอ); PlatformAgentType (ET); CopilotEventData.PlatformAgentType (ช) ป้ายกํากับสําหรับ ระบบข้อมูลประจําตัวของคุณ จับคู่กับ microsoft.a365.agent.platform.id เมื่อตัวแทนไม่มีการลงทะเบียน Entra ข้อความรูปแบบอิสระ เลือกค่าที่ระบุระบบข้อมูลประจําตัวของคุณโดยเฉพาะ ละเว้นเมื่อตัวแทนมีการลงทะเบียน Entra เอเจนต์ 365 จะจัดประเภทอัตโนมัติ อย่าใช้ค่าที่สงวนไว้ Microsoft (ดู การเลือกค่า)
microsoft.a365.agent.platform.id All O PlatformTargetAgentId (IA ระดับ AlternateIdบนสุดด้วย); PlatformAgentId (ET, CH) รหัสประจําตัวเฉพาะของตัวแทนในระบบตัวตนที่ไม่ใช่ Entra ของคุณ Free-form text. ตั้งค่าร่วมกับ gen_ai.agent.type. ละเว้นเมื่อตัวแทนมีการลงทะเบียน Entra ดู การเลือกค่า
gen_ai.conversation.id All M ConversationId (ไอเอ, อีที); CopilotEventData.ConversationId / CopilotEventData.ThreadId (ช) คีย์การรวมหลักสําหรับการรัน หากไม่มี การเรียกใช้จะไม่ปรากฏในมุมมองกิจกรรมของตัวแทน Defender หรือศูนย์การจัดการ
microsoft.channel.name All M ChannelName (ไอเอ, ET) พื้นผิวที่ตัวแทนวิ่งเข้าไป ใช้โทเค็นตัวพิมพ์เล็กสั้น ค่ามาตรฐานที่ใช้โดยตัวกรอง Defender และศูนย์ผู้ดูแลระบบในปัจจุบันคือ msteams และoutlook สตริงที่กําหนดเอง (เช่น web, <your-product-name>) ได้รับการยอมรับแต่ไม่สามารถหมุนตัวในตัวกรองช่องสัญญาณที่มีอยู่ในตัว ใช้ค่าเดียวกันในทุกช่วง ดู การเลือกค่า
microsoft.channel.link All O -- Channel deep-link.
microsoft.session.id All O SessionIdentity เซสชันจะว่างเปล่าหากขาดหายไป
microsoft.session.description All O -- Session description.
microsoft.conversation.item.link All O -- ลิงก์ตรงไปยังข้อความ
correlation.id All O -- Cross-service tracing. ไม่ปรากฏในการล่าสัตว์ขั้นสูงในปัจจุบัน
operation.source All O InvokeSource (ไอเอ) ตัวระบุสําหรับ SDK หรือบริการที่ส่งเทเลเมทรี อาจเป็นแอตทริบิวต์ Resource
client.address ไอเอ, อีที, CH M ClientIP (ไอเอ, ET) Caller IP. การตรวจสอบตาม IP ถูกบล็อกหากว่างเปล่า
server.address ไอเอ, อีที, CH M ServerAddress (ไอเอ, ET) ปลายทางบริการของคุณกําลังโทร
server.port ไอเอ, อีที, CH M ServerPort (ไอเอ) เข้ารหัสสตริง (เช่น "443")
user.id IA M UserKey รหัสออบเจ็กต์ Microsoft Entra ของผู้โทรที่เป็นมนุษย์ "ใครเป็นผู้บริหารตัวแทนนี้" จะว่างเปล่าหากไม่มีมัน
user.email IA O UserId UPN ของผู้โทร
user.name IA O -- ชื่อที่แสดงของผู้โทร
gen_ai.input.messages IA, CH M -- เพย์โหลดคําขอ (สตริง JSON) จับเพื่อการวิเคราะห์ปลายน้ํา แต่ยังไม่ปรากฏในการล่าสัตว์ขั้นสูง
gen_ai.output.messages IA, CH, โอเอ็ม M -- เพย์โหลดการตอบสนอง (สตริง JSON)
gen_ai.execution.type IA O -- หนึ่งใน HumanToAgent, Agent2Agent, . EventToAgent
microsoft.a365.agent.thought.process IA, CH O -- การใช้เหตุผลแบบข้อความอิสระหรือสายความคิด
gen_ai.author.app.id OM O -- รหัสแอป Microsoft Entra ของแอปพลิเคชันที่สร้างหรือสร้างเอเจนต์
gen_ai.tool.name ET M ToolName Tool name. มุมมองการใช้เครื่องมือของ Defender จะว่างเปล่าหากไม่มี
gen_ai.tool.type ET M ToolType หนึ่งใน function, Power Platform Connector, , MCP ServerAPI, Knowledge Source, bing_grounding, code_interpreter, . file_search
gen_ai.tool.call.id ET M ToolId ตัวระบุสําหรับการเรียกใช้เครื่องมือนี้
gen_ai.tool.call.arguments ET M -- อาร์กิวเมนต์เครื่องมือ (สตริง JSON) ถูกจับแต่ยังไม่ปรากฏในการล่าสัตว์ขั้นสูง
gen_ai.tool.call.result ET M -- ผลลัพธ์ของเครื่องมือ (สตริง JSON)
gen_ai.tool.description ET O ToolDescription Tool description.
gen_ai.tool.server.name ET O -- ชื่อโฮสต์เซิร์ฟเวอร์เครื่องมือ ตั้งค่าแอตทริบิวต์นี้สําหรับเครื่องมือ MCP
gen_ai.request.model CH M -- ชื่อรุ่น (เช่น gpt-4o) ถูกจับแต่ยังไม่ปรากฏในการล่าสัตว์ขั้นสูง
gen_ai.provider.name CH M -- ชื่อผู้ให้บริการ (เช่น openai)
gen_ai.usage.input_tokens CH O -- จํานวนโทเค็นอินพุต เข้ารหัสสตริง
gen_ai.usage.output_tokens CH O -- จํานวนโทเค็นเอาต์พุต เข้ารหัสสตริง
gen_ai.response.finish_reasons CH O -- Finish reasons.
microsoft.a365.caller.agent.id IA M*2 AgentId (ไอเอ) ตัวแทนการโทร appId จําเป็นสําหรับตัวแทนต่อตัวแทน
microsoft.a365.caller.agent.name IA M*2 AgentName (ไอเอ) ชื่อที่แสดงของตัวแทนการโทร
microsoft.a365.caller.agent.blueprint.id IA M*2 AgentBlueprintId รหัสแอปพิมพ์เขียวของตัวแทนการโทร จําเป็นสําหรับ A2A ที่เป็นตัวเป็นตน
microsoft.a365.caller.agent.user.id IA M*2 -- ID ผู้ใช้ของตัวแทนการโทร
microsoft.a365.caller.agent.user.email IA M*2 -- โทรหาตัวแทน UPN
microsoft.a365.caller.agent.platform.id IA N/A -- สงวนไว้สําหรับบัตรประจําตัวสํารองที่ไม่ใช่ Entra
gen_ai.caller.agent.type IA N/A -- เอเจนต์ 365 จะจัดประเภทอัตโนมัติ
microsoft.agent.user.id ไอเอ, อีที, CH M*1 TargetAgentUserKey (ไอเอ); UserKey (ET, CH) รหัสวัตถุ Microsoft Entra ของบัญชีผู้ใช้ของตัวแทนเอง จําเป็นสําหรับเพื่อนร่วมทีม AI และเอเจนต์ที่มีร่างเป็น
microsoft.agent.user.email ไอเอ, อีที, CH O*1 UserId (ET, CH) UPN ของบัญชีผู้ใช้ของตัวแทน
span.SpanId All M OpId OTel SDK ปล่อยสิ่งนี้
span.ParentSpanId All M*3 ParentId จําเป็นสําหรับช่วงที่ไม่ใช่รูทเท่านั้น ราก invoke_agent ไม่มี
span.StartTimeUnixNano All M ระดับ TimeGenerated บนสุด (รวมถึง CreationTime ใน RawEventData) Unix epoch nanos เป็นสตริง
span.EndTimeUnixNano All M CompletionTime (ไอเอ, อีที); CopilotEventData.CompletionTime (ช) ไม่สามารถคํานวณระยะเวลาได้หากขาดหายไป
span.Status.Message All O*4 ErrorMessage (ไอเอ, อีที); CopilotEventData.ErrorMessage (ช) สาเหตุหลักของการรันที่ล้มเหลวจะว่างเปล่าหากขาดหายไป
span.Status.Code All O*4 ErrorType (ไอเอ); CopilotEventData.ErrorType (ช) หมวดหมู่ข้อผิดพลาดว่างเปล่าหากหายไป

Note

Agent 365 รับคุณลักษณะหลายอย่างที่คุณส่งออก เช่น อาร์กิวเมนต์เครื่องมือและผลลัพธ์ พารามิเตอร์ของโมเดล และลิงก์ดีปของช่องสัญญาณ มุมมอง Microsoft Defender ที่อยู่ด้านล่างจะใช้คุณสมบัติเหล่านี้ แต่ Agent 365 ยังไม่เปิดเผยเป็นCloudAppEvents.RawEventDataคีย์ JSON ตั้งค่าตามคอลัมน์ Required พวกเขาอาจถูกเพิ่มเข้าไปในอุปกรณ์ล่าสัตว์ในอนาคต

Important

ใน invoke_agent ระเบียน AgentId(IA) ฟิลด์ , AgentName, และ AgentBlueprintId จะอธิบายตัวแทน ที่เรียก ไม่ใช่ตัวแทนที่ถูกเรียกใช้งาน Agent 365 จะเติมข้อมูลเหล่านั้นจาก microsoft.a365.caller.agent.* แอตทริบิวต์ เมื่อมนุษย์เรียกใช้เอเจนต์ของคุณ ให้ละเว้นแอตทริบิวต์เหล่านั้น และAgentIdAgentBlueprintIdปรากฏเป็น GUID ที่เป็นศูนย์ทั้งหมด (00000000-0000-0000-0000-000000000000) และAgentNameจะว่างเปล่าในบันทึกการตรวจสอบและ Microsoft Purview ค่าศูนย์ทั้งหมดเป็นค่าที่คาดหวังสําหรับการรันที่มนุษย์เป็นผู้ริเริ่ม เพื่อระบุตัวแทนที่ถูกเรียกใช้งาน ให้ใช้ TargetAgentId, TargetAgentName, และ TargetAgentBlueprintID.

การเลือกค่าเมื่อคุณไม่มีค่าธรรมชาติ

แอตทริบิวต์ที่จําเป็นบางอย่างอธิบายแนวคิดที่อาจไม่มีอยู่ในสถาปัตยกรรมของเอเจนต์ของคุณ หากไม่มีค่าธรรมชาติ ให้ตั้งค่าค่าต่อไปนี้แทน อย่าปล่อยให้ช่องกรอกข้อมูลที่จําเป็นว่างเปล่า แม้แต่ GUID ที่เป็นศูนย์ทั้งหมดก็ยังซ่อนการวิ่งของคุณจากประสบการณ์ที่ต้องเผชิญกับลูกค้า กฎนี้ใช้กับแอตทริบิวต์ที่จําเป็นเท่านั้น มันไม่ใช้กับแอตทริบิวต์ caller-agent ในรันที่มนุษย์เป็นผู้ริเริ่ม ซึ่งคาดหวังว่าบันทึกจะได้AgentIdinvoke_agentศูนย์ทั้งหมด

คําถาม / สถานการณ์ Field(s) สิ่งที่ต้องตั้งค่า
ตัวแทนของฉันเป็น การลงทะเบียนแอป Entra มาตรฐาน (ไม่ได้สร้างจากพิมพ์เขียว ID เอเจนต์ของ Entra) gen_ai.agent.id appId ของแอป Entra
↑ สถานการณ์เดียวกัน microsoft.a365.agent.blueprint.id ใช้ค่าเดียวกันซ้ํากับ gen_ai.agent.id (appId ของตัวแทน) สคีมาต้องการค่าที่ไม่ว่างเปล่า การนํา appId ตัวแทนกลับมาใช้ใหม่เป็นค่าเริ่มต้นที่ปลอดภัยเมื่อไม่มีพิมพ์เขียว
เอเจนต์ของฉันสร้างจากพิมพ์เขียว ซึ่งเป็นตัวตนของเอเจนต์หนึ่งตัวหรือหลายตัวที่สร้างขึ้นจากพิมพ์เขียวเดียวกัน gen_ai.agent.id appId ของข้อมูลประจําตัวของตัวแทน (appId ของอินสแตนซ์ ไม่ใช่ของพิมพ์เขียว)
↑ สถานการณ์เดียวกัน microsoft.a365.agent.blueprint.id appId ของพิมพ์เขียว อินสแตนซ์ทั้งหมดที่สร้างขึ้นจากพิมพ์เขียวเดียวกันมีค่านี้ร่วมกัน
ผู้โทรเป็นผู้ใช้ที่เป็นมนุษย์ ไม่ใช่ตัวแทนอื่น ทั้งหมด microsoft.a365.caller.agent.* และ gen_ai.caller.agent.* แอตทริบิวต์ Omit. บังคับเฉพาะในสถานการณ์ระหว่างตัวแทนต่อตัวแทนเท่านั้น ใน invoke_agent บันทึก ผู้โทรจะรับข้อมูล AgentId และ AgentBlueprintId แสดง GUID ที่เป็นศูนย์ทั้งหมด ใช้เพื่อ TargetAgentId ระบุตัวแทนของคุณ
ในตัวแทนต่อตัวแทน: ตัวแทนที่โทรเป็นแอป Entra มาตรฐาน (ไม่มีพิมพ์เขียว) microsoft.a365.caller.agent.blueprint.id ใช้ รหัสแอปของตัวแทนการโทรซ้ํา
ตัวแทนของฉัน ไม่ใช่เพื่อนร่วมทีม AI - ไม่มีบัญชีผู้ใช้ของตัวเองในผู้เช่า แอตทริบิวต์ทั้งหมดmicrosoft.agent.user.* Omit. บังคับก็ต่อเมื่อตัวแทนมีบัญชีผู้ใช้ ID เอเจนต์ของ Entra ของตนเอง
ตัวแทนของฉันไม่มีแนวคิดเกี่ยวกับเซสชันนอกเหนือจากการวิ่งเพียงครั้งเดียว microsoft.session.id ไม่บังคับ - ละเว้น หากคุณต้องการให้การเรียกใช้แต่ละครั้งเป็นเซสชันของตัวเอง ให้ตั้งค่าเป็น GUID ต่อการเรียกใช้
ตัวแทนของฉันไม่มีแนวคิดเกี่ยวกับการสนทนา (นัดเดียว ไร้สัญชาติ) gen_ai.conversation.id สร้าง GUID ใหม่ต่อการเรียกใช้ ฟิลด์เป็นข้อบังคับ การข้ามจะเป็นการลบการเรียกใช้จากมุมมองกิจกรรมของตัวแทน Defender และศูนย์การจัดการ ศูนย์การจัดการ Microsoft 365
ผู้โทรไม่มี IP (ตัวอย่างเช่น ทริกเกอร์ตามกําหนดการอัตโนมัติ) client.address ใช้ตัวยึดตําแหน่งที่เสถียรที่คุณควบคุม (ตัวอย่างเช่น "0.0.0.0") ฟิลด์เป็นข้อบังคับ ค่าว่างจะลบการเรียกใช้ออกจาก Pivot การตรวจสอบตาม IP
ตัวแทนทํางานในกระบวนการ ไม่มีการเรียก "เซิร์ฟเวอร์" แยกต่างหาก server.address / server.port ใช้ชื่อโฮสต์ของเครื่องที่เรียกใช้เอเจนต์ (ตัวอย่างเช่น myagent.example.com) และพอร์ตที่ปลายทางของคุณฟัง จําเป็นแม้ว่าจะไม่มีบริการดาวน์สตรีมแยกต่างหากก็ตาม
ช่วงของฉัน chat ไม่มีการใช้โทเค็นแบบจําลอง gen_ai.usage.input_tokens / gen_ai.usage.output_tokens ไม่บังคับ - ละเว้น หากคุณมีจํานวนโดยประมาณ ให้ส่งเป็นstringValue
ช่วงของฉันไม่มีข้อผิดพลาดที่จะรายงาน span.Status.Message, span.Status.Code ตั้งค่าสถานะ OTel เป็น OK (รหัสตัวเลข 1) และละเว้นข้อความ ไปป์ไลน์จะดูฟิลด์เหล่านี้เมื่อสถานะเป็นError
ตัวแทนของฉันใช้ ระบบข้อมูลประจําตัวที่ไม่ใช่ Entra (ตัวแทนไม่มีการลงทะเบียน Entra) microsoft.a365.agent.platform.id และ gen_ai.agent.type ตั้งค่าทั้งสองอย่างในทุกช่วง platform.id เป็นรหัสประจําตัวเฉพาะของเอเจนต์ในระบบตัวตน ของคุณ ; agent.type เป็นป้ายชื่อสั้น ๆ ที่ระบุว่าเป็นระบบตัวตนใด ทั้งสองเป็นข้อความรูปแบบอิสระ - เลือกอะไรก็ได้ที่เหมาะสมกับระบบของคุณ อย่าใช้ค่าประเภทที่สงวนไว้ Microsoft: CustomBuiltAgentsUsingSDK, CopilotStudio, Foundry, DeclarativeAgent, Custom (ค่าเหล่านี้สงวนไว้สําหรับพื้นผิว Microsoft ภายใน) แอปการโทรที่คุณรับรองความถูกต้องยังคงต้องมีการลงทะเบียน Entra เพื่อใช้เส้นทางเหล่านี้ - คู่รหัสสํารองอธิบายถึงตัวแทน เป้าหมาย ไม่ใช่ผู้โทร
ฉันควรใส่ microsoft.channel.nameค่าอะไร ? microsoft.channel.name พื้นผิวที่ตัวแทนวิ่งเข้าไป ตัวกรอง Defender และศูนย์การจัดการจะปิดสตริงสัญพจน์ ดังนั้นให้ใช้โทเค็นตัวพิมพ์เล็กที่สั้น เสถียร วันนี้ค่าบัญญัติคือ msteams และ outlook;พื้นผิวที่หันหน้าเข้าหาลูกค้าทั่วไปยังใช้ web, office, , sharepointหรือ <your-product-name>. เลือกค่าเดียวและยึดติดกับค่านั้น - เครื่องมือไม่สามารถกระทบยอด msteams และ Microsoft Teams เป็นช่องสัญญาณเดียวกันได้
ฉันควรตั้งค่า gen_ai.agent.type? gen_ai.agent.type เฉพาะในกรณีที่คุณกําลังตั้งค่า microsoft.a365.agent.platform.id ด้วย (ตัวอย่างเช่น ตัวแทนของคุณไม่มีการลงทะเบียน Entra) ทั้งคู่บอก Agent 365 ว่าเจ้าหน้าที่มาจากระบบข้อมูลประจําตัวใด เลือกป้ายกํากับสั้น ๆ ที่ระบุระบบข้อมูลประจําตัว ของคุณ โดยเฉพาะ อย่าใช้ CustomBuiltAgentsUsingSDK, CopilotStudio, Foundry, DeclarativeAgent หรือ Custom - ค่าเหล่านั้นจะถูกสงวนไว้สําหรับการใช้งาน Microsoft ภายใน สําหรับตัวแทนที่ลงทะเบียน Entra ให้ละเว้นฟิลด์ เอเจนต์ 365 ทดแทน
ฉันควรตั้งค่า OTLP kind ใดบนช่วงของฉัน span.kind ใช้ค่า enum จํานวนเต็ม ไม่ใช่สตริง enum proto - 1 (INTERNAL), 2 (SERVER), 3 (CLIENT), 4 (), (PRODUCER5CONSUMER) ตัวแทน 365 ยอมรับสิ่งเหล่านี้และไม่ได้รับพฤติกรรมที่ลูกค้ามองเห็นได้จาก kindดังนั้น 1 (INTERNAL) จึงเป็นค่าเริ่มต้นที่ปลอดภัยสําหรับทุกช่วง หากคุณต้องการให้สะท้อนรูปร่างINTERNALการโทร forinvoke_agent / output_messagesและ CLIENT for chat / execute_tool นั้นสมเหตุสมผล