帮你快速理解、总结文档立即下载

Agent Trace 字段定义说明

最近更新时间:2026-08-24 17:23:32
我的收藏
本文档是面向 Agent 可观测场景的 Trace 统一语义规范,用于约定字段含义、数据类型、示例以及第三方接入时的字段要求;目前,OneSuite-Pilot 按照本规范上报 Agent Trace 数据。
说明:
本语义规范在 OpenTelemetry GenAI 语义规范的基础上进行扩展,OpenTelemetry GenAI 语义规范仍在修改和完善中,后续维护过程中可能发生调整。

数据模型

Onesuite-Pilot 将 AI Coding 活动转换为 OpenTelemetry Trace,并通过 CLS Trace Topic 上报。每条日志包含 Trace 顶层字段、Resource 字段和 Span Attributes 字段。
在 CLS 的 LogJson 中,attributeresource 以 JSON 编码字符串存储,解析后分别为 JSON 对象。
{
"traceID": "<32 位十六进制 Trace ID>",
"spanID": "<16 位十六进制 Span ID>",
"parentSpanID": "<父 Span ID>",
"name": "chat <model>",
"kind": "client",
"start": "<Unix 纳秒时间戳>",
"end": "<Unix 纳秒时间戳>",
"duration": "<纳秒>",
"statusCode": "OK",
"resource": {
"service.name": "codebuddy",
"host.name": "<主机名>"
},
"attribute": {
"gen_ai.span.kind": "chat",
"gen_ai.operation.name": "chat",
"gen_ai.agent.type": "codebuddy",
"gen_ai.session.id": "<会话 ID>",
"gen_ai.turn.id": "<轮次 ID>",
"gen_ai.request.model": "<请求模型>",
"gen_ai.usage.input_tokens": 1000,
"gen_ai.usage.output_tokens": 200
}
}

Span 类型与操作类型

gen_ai.span.kind
gen_ai.operation.name
说明
entry
enter_application
AI Coding 应用入口
agent
invoke_agent
Agent 调用
step
react
ReAct 推理与行动轮次
chat
chat
模型对话调用
tool
execute_tool
工具调用

CLS Trace 顶层字段

字段名
类型
说明
示例
采集条件
traceID
string
Trace 的唯一标识,用于关联同一请求链路中的多个 Span。
17b5f957568ecb90b5b5b58d6bb56cbe
必须
spanID
string
当前 Span 的唯一标识。
66dbc3146404b6b2
必须
parentSpanID
string
当前 Span 的父 Span 标识;根 Span 通常为空。
4523b3266604f28c
必须
name
string
Span 名称,用于展示当前操作。
chat <model>
必须
kind
string
OpenTelemetry Span 类型。
client
必须
start
string
Span 开始时间,单位为纳秒。
1787150761999000000
必须
end
string
Span 结束时间,单位为纳秒。
1787150802462000000
必须
duration
string
Span 持续时间,单位为纳秒,通常为 end - start。
40463000000
必须
statusCode
string
Span 执行状态。
OK
必须
statusMessage
string
Span 状态的补充说明。
tool execution failed
产生状态说明时采集
attribute
JSON string
Span 业务属性集合,解析后为 JSON 对象。
{"gen_ai.span.kind":"chat"}
必须
resource
JSON string
Span 所属服务和运行环境属性集合,解析后为 JSON 对象。
{"service.name":"codebuddy"}
必须
traceState
string
W3C Trace Context 的扩展信息。
``
可选
links
JSON string
当前 Span 关联的其他 Trace 或 Span 链接。
[]
存在关联时采集
logs
JSON string
Span 关联的日志或事件信息。
[]
存在事件时采集

Resource 字段

字段名
类型
说明
示例
采集条件
service.name
string
产生 Trace 数据的应用或 Agent 服务名称。
codebuddy
必须
host.name
string
产生数据的主机名称。
VM-138-200-tencentos
必须
deployment.environment.name
string
应用运行环境名称。
production
配置了运行环境时采集

公共身份与上下文字段

字段名
类型
说明
示例
采集条件
gen_ai.span.kind
string
当前 Span 的业务类型。
chat
必须
gen_ai.operation.name
string
当前 Span 的具体操作名称。
chat、execute_tool
必须
gen_ai.agent.type
string
产生数据的 AI Coding Agent 类型。
codebuddy、workbuddy
必须
gen_ai.agent.id
string
与当前模型或工具调用关联的 Agent 标识。具体生成规则以实际版本为准。
<agent-id>
Chat、Tool Span 中按条件采集
gen_ai.agent.name
string
Agent 名称。
main
Agent Span 提供名称时采集
gen_ai.session.id
string
AI Coding 会话的唯一标识,用于关联同一会话中的多个 Span。
<session-id>
必须
gen_ai.turn.id
string
会话内某一轮用户请求或 Agent 处理轮次的标识。
<session-id>:t73
必须
gen_ai.step.id
string
ReAct 或 Agent 处理步骤的标识。
<session-id>:t73:s4
Step、Chat、Tool Span 中按条件采集
gen_ai.user.id
string
AI Coding 数据所属用户的标识。
122855467
必须
gen_ai.user.name
string
AI Coding 数据所属用户的展示名称。
user-name
必须
gen_ai.entry.type
string
AI 应用入口类型。
cli
Entry Span 时采集

LLM Chat 字段

字段名
类型
说明
示例
采集条件
gen_ai.provider.name
string
模型服务提供商名称。
anthropic
能获取时采集
gen_ai.request.model
string
请求时指定的模型名称。
claude-opus-5
Chat、Tool Span 中能获取时采集
gen_ai.response.model
string
实际返回结果所使用的模型名称。
claude-opus-5
能获取时采集
gen_ai.response.finish_reasons
string[]
模型生成结束原因。
["stop"]
Chat Span 中能获取时采集
gen_ai.chat.duration_ms
integer
Chat 操作自身的耗时,单位为毫秒。
16010
Chat Span 中能获取时采集
gen_ai.input.messages
JSON array
发给模型或 Agent 的输入消息列表。
[{"role":"user","parts":[...]}]
开启消息内容采集或产生消息数据时
gen_ai.input.messages.hash
string
输入消息内容的哈希值,用于关联或去重。
<32 位哈希>
产生哈希值时采集
gen_ai.input.messages_delta
JSON array
输入消息的增量变化信息。
[{"type":"append",...}]
产生增量信息时采集
gen_ai.output.messages
JSON array
模型或 Agent 返回的输出消息列表。
[{"role":"assistant","parts":[...]}]
产生输出消息时采集

Token 使用量字段

字段名
类型
说明
示例
采集条件
gen_ai.usage.input_tokens
integer
模型输入消耗的 Token 数。
1000
能获取时采集
gen_ai.usage.output_tokens
integer
模型输出消耗的 Token 数。
200
能获取时采集
gen_ai.usage.total_tokens
integer
输入和输出消耗的总 Token 数。
1200
能获取时采集
gen_ai.usage.cache_read.input_tokens
integer
从模型提供商缓存中读取的输入 Token 数。
500
能获取时采集
gen_ai.usage.cache_creation.input_tokens
integer
写入模型提供商缓存的输入 Token 数。
100
能获取时采集
gen_ai.usage.cache_miss.input_tokens
integer
未命中缓存的输入 Token 数。
50
能获取时采集
gen_ai.usage.reasoning_output_tokens
integer
推理过程产生的输出 Token 数。
0
能获取时采集

Agent 字段

字段名
类型
说明
示例
采集条件
gen_ai.agent.message_count
integer
Agent Span 内包含的消息数量。
13
Agent Span 中能获取时采集
gen_ai.agent.tool_call_count
integer
Agent Span 内发起的工具调用次数。
10
Agent Span 中能获取时采集
gen_ai.agent.name
string
Agent 名称。
main
Agent Span 提供名称时采集
gen_ai.agent.id
string
与当前模型或工具调用关联的 Agent 标识。
<agent-id>
Chat、Tool Span 中按条件采集

Tool 字段

以下字段主要出现在 gen_ai.span.kind=toolgen_ai.operation.name=execute_tool 的 Span 中。
字段名
类型
说明
示例
采集条件
gen_ai.tool.call.id
string
一次工具调用的唯一标识。
call_<id>
Tool Span 时采集
gen_ai.tool.name
string
被调用的工具名称。
Bash、execute_command
Tool Span 时采集
gen_ai.tool.type
string
工具类型。
function
Tool Span 时采集
gen_ai.tool.call.arguments
JSON object / string
工具调用的输入参数。
{"command":"<masked>"}
Tool Span 中能获取时采集
gen_ai.tool.call.result
JSON object / string
工具调用的返回结果。
{"status":"success"}
Tool Span 中能获取时采集
gen_ai.tool.call.duration_ms
integer
工具调用耗时,单位为毫秒。
44
Tool Span 时采集
gen_ai.tool.error.type
string
工具调用失败时的错误类型。
tool_error
工具调用失败时采集
error.type
string
当前 Span 或操作的错误类型。
tool_error
发生错误时采集
说明:
gen_ai.tool.call.argumentsgen_ai.tool.call.result 可能以 JSON 对象或 JSON 字符串形式出现,使用时请兼容两种形式。

ReAct Step 字段

字段名
类型
说明
示例
采集条件
gen_ai.react.round
integer
ReAct 迭代轮次,通常从 1 开始递增。
8
相关 Span 中能获取时采集
gen_ai.react.finish_reason
string
ReAct 或模型调用的结束原因。
tool_calls、stop
能获取时采集
gen_ai.step.id
string
当前推理与行动步骤的唯一标识。
<session-id>:t73:s4
Step、Chat、Tool Span 中按条件采集

CodeBuddy、WorkBuddy 与代码上下文字段

字段名
类型
说明
示例
采集条件
agent.codebuddy.cwd
string
CodeBuddy 会话的当前工作目录。
/workspace/project
CodeBuddy 场景时采集
agent.workbuddy.cwd
string
WorkBuddy 会话的当前工作目录。
/workspace/project
WorkBuddy 场景时采集
git.domain
string
当前代码仓库所在 Git 服务域名。
git.example.com
能获取时采集
git.repo
string
当前代码仓库标识。
team/project
能获取时采集
git.branch
string
当前代码分支。
main
能获取时采集
observed_time_unix_nano
string
数据被观测或处理的时间,单位为纳秒。
1787197097104000000
实际产生该字段时采集

兼容性说明

本文档定义的是 Agent 可观测 Trace 的统一语义。不同 Agent、模型和 Span 类型可能只适用其中一部分字段,具体字段要求请以对应字段表中的采集条件为准。由于 OpenTelemetry GenAI 语义规范仍在演进,后续字段定义和语义可能随规范版本调整,并在版本说明中同步更新。