这是Agent 365的导入流程所采用的标准属性逐属性规范。 Agent 365 接收的每个区间——无论是由 Microsoft OpenTelemetry Distro、Agent 365 SDK 的 SDK 发送,还是通过 direct OTel 发送的,都必须符合该信号。 每个条目都列出了该属性适用的操作类型,是否为强制操作,高级查找查询中值的字段名称(如果有的话),以及跳过时的影响。
如果你用的是SDK或发行版,SDK会帮你输出这些属性,选 取值 部分只在你需要覆盖默认值时生效。 如果你走的是直接的OTel路径,所有属性都是手动输出的;关于如何将它们组装成请求,请参见 集成指南。
Attribute table
所有值都发送为 stringValue - 令牌计数必须为 "42" (not 42);端口计数必须为 "443" (not 443)。
传奇行动。IAs = invoke_agent, ET = execute_tool, CH, = chatOM, = output_messagesAll = 适用于所有操作。
Required legend.
- M: mandatory.
- M*¹:仅对具身代理者强制(代理拥有自己的Entra 智能体 ID用户账户)。
- M*²:仅在代理间通话时强制使用。
-
M*³:仅非根跨必须使用。 根
invoke_agent没有父本。 - O*⁴:可选,仅在显示状态为错误时才有意义。
- O: optional.
- 不:不要发射。 特工365自动生成。
“RawEventData 字段” 列中指定了一个 JSON 键 CloudAppEvents.RawEventData ,在 验证采集 中,规范的高级狩猎查询会解析它。 空白单元格表示该属性在CloudAppEvents中暴露not——你仍然应该根据“必需”列发出它,因为Agent 365用它来获取、父分辨率和Microsoft Defender的agent-activity视图,但目前Microsoft Defender高级狩猎系统无法直接查询它。
Note
Agent 365 会自动填充静态记录字段(Id, , RecordTypeWorkload, UserType, Version)和生成的请求/响应 ID。
| Attribute | Applies to | Required | RawEventData field | 如果缺少注释/影响 |
|---|---|---|---|---|
gen_ai.operation.name |
All | M | Operation |
invoke_agent, execute_tool, chat, output_messages之一。 如果缺失或未被识别,Span会下降。 |
microsoft.tenant.id |
All | M | OrganizationId |
网址 {tenantId} 是权威的。 如果你设置了这个,但系统不同意,请求将被拒绝(403)。 |
gen_ai.agent.id |
All | M |
TargetAgentId (IA,也为顶层 AgentId); AgentId (ET,CH) |
通话应用的 应用。 必须匹配URL {agentId} 和认证应用。 错配返回403。 |
gen_ai.agent.name |
All | M |
TargetAgentName (IA); AgentName (ET,CH) |
如果缺少,Defender / Admin Center 会显示原始的 GUID,而不是名字。 |
microsoft.a365.agent.blueprint.id |
All | M |
TargetAgentBlueprintID (IA); AgentBlueprintId (ET,CH) |
蓝图是 应用的。 对于没有蓝图的标准Entra应用,可以重复使用代理的appId。 否则管理中心的蓝图汇总会崩溃。 |
gen_ai.agent.description |
All | O | -- | 管理中心的详细查看中,代理是空白的。 |
gen_ai.agent.type |
All | O |
PlatformTargetAgentType (IA); PlatformAgentType (ET); CopilotEventData.PlatformAgentType (CH) |
一个身份 系统标签,配合 microsoft.a365.agent.platform.id 代理没有Entra注册时的标签。 自由形式文本;选择一个唯一标识你身份系统的值。 当代理有Entra注册时省略——代理365会自动分类。 不要使用Microsoft保留值(参见选择值)。 |
microsoft.a365.agent.platform.id |
All | O |
PlatformTargetAgentId (IA,也为顶层 AlternateId); PlatformAgentId (ET,CH) |
代理人在你非Entra身份系统中的唯一ID。 Free-form text. 集合为 gen_ai.agent.type。 当代理有Entra注册时,可以省略。 参见 “选取价值”。 |
gen_ai.conversation.id |
All | M |
ConversationId (IA,ET); CopilotEventData.ConversationId / CopilotEventData.ThreadId (CH) |
运行时的主连接键。 没有它,运行不会出现在 Defender 代理活动视图或管理中心。 |
microsoft.channel.name |
All | M |
ChannelName (IA,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 (IA) |
SDK/服务的标识符,用于发送遥测数据。 可能是资源属性。 |
client.address |
IA、ET、CH | M |
ClientIP (IA,ET) |
Caller IP. 基于IP的调查如果是空白会被屏蔽。 |
server.address |
IA、ET、CH | M |
ServerAddress (IA,ET) |
端点是你的服务呼叫的。 |
server.port |
IA、ET、CH | M |
ServerPort (IA) |
字符串编码(例如 "443")。 |
user.id |
IA | M | UserKey |
Microsoft Entra 用户调用者的对象 ID。 没有这个,“谁在操控这个特工”就是空白的。 |
user.email |
IA | O | UserId |
来电者的UPN频道。 |
user.name |
IA | O | -- | 显示来电者的姓名。 |
gen_ai.input.messages |
IA, CH | M | -- | 请求有效载荷(JSON字符串)。 捕获用于下游分析,但尚未在高级狩猎中浮出水面。 |
gen_ai.output.messages |
IA、CH、OM | 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 应用 ID 是创建/创建代理的应用程序。 |
gen_ai.tool.name |
ET | M | ToolName |
Tool name. 如果缺少,Defender工具使用视图为空白。 |
gen_ai.tool.type |
ET | M | ToolType |
其中function一个 , Power Platform Connector, MCP Server, APIKnowledge Sourcebing_groundingcode_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 reason(s). |
microsoft.a365.caller.agent.id |
IA | M*² | -- | 致电 代理AppId。 特工对特工的必备条件。 |
microsoft.a365.caller.agent.name |
IA | M*² | -- | 呼叫代理显示名称。 |
microsoft.a365.caller.agent.blueprint.id |
IA | M*² | AgentBlueprintId |
正在联系代理人的蓝图 AppId。 具备A2A的必修条件。 |
microsoft.a365.caller.agent.user.id |
IA | M*² | -- | 呼叫客服用户ID。 |
microsoft.a365.caller.agent.user.email |
IA | M*² | -- | 呼叫UPN特工。 |
microsoft.a365.caller.agent.platform.id |
IA | N/A | -- | 保留给非Entra备用ID。 |
gen_ai.caller.agent.type |
IA | N/A | -- | 365号特工自动分类。 |
microsoft.agent.user.id |
IA、ET、CH | M*¹ |
TargetAgentUserKey (IA); UserKey (ET,CH) |
Microsoft Entra 代理自身用户账户的对象 ID。 AI队友/实体特工必备。 |
microsoft.agent.user.email |
IA、ET、CH | O*¹ |
UserId (ET,CH) |
代理用户账户的UPN。 |
span.SpanId |
All | M | OpId |
OTel SDK 会发出这个。 |
span.ParentSpanId |
All | M*³ | ParentId |
仅对非根跨要求;根 invoke_agent 部没有。 |
span.StartTimeUnixNano |
All | M | 顶层 TimeGenerated (也在 CreationTimeRawEventData) |
Unix 时代的纳米作为字符串。 |
span.EndTimeUnixNano |
All | M |
CompletionTime (IA,ET); CopilotEventData.CompletionTime (CH) |
如果缺少,持续时间无法计算。 |
span.Status.Message |
All | O*⁴ |
ErrorMessage (IA,ET); CopilotEventData.ErrorMessage (CH) |
失败运行的根本原因如果缺失则为空。 |
span.Status.Code |
All | O*⁴ |
ErrorType (IA); CopilotEventData.ErrorType (CH) |
如果缺少错误类别,则为空白。 |
Note
你发出的几个属性(如工具参数/结果、模型参数和通道深度链接)被 Agent 365 接受并被下游 Microsoft Defender 视图使用,但尚未作为 CloudAppEvents.RawEventData JSON 键公开。 无论如何,还是按照“必需”栏设置它们——它们可能会在未来的版本中加入狩猎载荷。
当你没有自然的明暗时选择
一些必需属性描述了你的代理架构中可能不存在的概念。 如果没有自然值,这里可以设置。 不要把必填字段留空——即使是全零的GUID,也会让你的游戏在面对客户时隐藏起来。
| 问题/情景 | Field(s) | 设置什么 |
|---|---|---|
| 我的经纪人是标准Entra应用注册(不是基于Entra 智能体 ID蓝图构建的)。 | gen_ai.agent.id |
Entra 应用的 appId。 |
| ↑ 同样的情景 | microsoft.a365.agent.blueprint.id |
重复使用与 gen_ai.agent.id (代理的 appId)相同的值。 该模式要求非空值;当没有蓝图时,重用代理AppId是安全的默认选择。 |
| 我的特工是基于Entra 智能体 ID蓝图构建的——一个或多个特工身份都是基于同一蓝图铸造的。 | gen_ai.agent.id |
代理身份的 appId(实例 appId,不是蓝图的)。 |
| ↑ 同样的情景 | microsoft.a365.agent.blueprint.id |
蓝图是 应用的。 所有从同一蓝图铸造的实例共享此值。 |
| 来电者是人类用户,不是其他代理。 | 全部 microsoft.a365.caller.agent.* 与 gen_ai.caller.agent.* 属性 |
Omit. 只有在特工对特工的情境下才是强制的。 |
| 在代理对代理中:呼叫代理是一个标准的Entra应用(没有蓝图)。 | microsoft.a365.caller.agent.blueprint.id |
重复使用呼叫代理的 appId。 |
| 我的代理 不是AI团队成员 ——它在租户里没有自己的用户账户。 | 所有 microsoft.agent.user.* 属性 |
Omit. 只有当客服拥有自己的Entra 智能体 ID用户账户时,才是强制的。 |
| 我的经纪人对“会谈”除了单次运行之外,完全没有概念。 | microsoft.session.id |
可选——省略。 如果你想让每次运行都独立一个会话,可以设置为每个运行一个GUID。 |
| 我的经纪人完全没有对话的概念(一次性、无状态)。 | gen_ai.conversation.id |
每次运行都生成一个新的GUID。 该场地为必修;跳过它会移除 Defender 代理活动视图和 Microsoft 365 管理中心 的运行。 |
| 呼叫方没有IP(例如,自动定时触发器)。 | client.address |
使用你控制的稳定占位符(例如)。 "0.0.0.0" 该场地为必修;空值则移除基于IP的调查枢轴的运行。 |
| 代理在过程中运行;没有单独的“服务器”被调用。 | server.address / server.port |
使用运行该代理的机器的主机名(例如) myagent.example.com和终端监听的端口。 即使没有单独的下游服务,也必须这样做。 |
我的 chat span 没有模型代币使用。 |
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 是 代理在你 身份系统中的唯一ID; agent.type 是一个简短标签,用于标识所属的身份系统。 两者都是自由形式文字——选择适合你系统的内容。
不要使用Microsoft保留的类型值:CustomBuiltAgentsUsingSDK,CopilotStudio,Foundry,DeclarativeAgent,Custom(这些值保留给内部Microsoft曲面)。 你认证的呼叫应用仍然需要Entra注册才能使用这些路由——备用ID对描述的是 目标 代理,而不是呼叫者。 |
我应该投入 microsoft.channel.name什么价值? |
microsoft.channel.name |
特工奔跑的表面。 Defender 和 admin center 会从字面字符串中筛选密钥,所以使用短小、稳定、小写的标记。 如今,规范值为 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注册)时才会这样。 两人告诉365号特工该特工来自哪个身份系统。 选择一个能独特识别 你 身份体系的简短标签。
不要使用CustomBuiltAgentsUsingSDK、CopilotStudio、Foundry、DeclarativeAgent或Custom——这些数值保留给内部Microsoft使用。 对于Entra注册代理人,请省略该字段;365号特工补填了它。 |
我应该在跨度上设置什么OTLP kind ? |
span.kind |
使用整数枚举值,而非原始枚举字符串 - 1 (), (SERVER), 2 (), 4CLIENT3PRODUCER()。 5CONSUMERINTERNAL Agent 365 接受这些选项,且不会从 kind中推导出客户可见的行为,因此 1 (INTERNAL)是每个区间的安全默认。 如果你想让“kind”反映呼声形状, INTERNAL foroutput_messages / CLIENTinvoke_agent和forchat / execute_tool是合理的。 |