一、Span 类型总览
通过 gen_ai.span.kind 字段区分 不同AI Agent语义类型,枚举值如下:
| 枚举值 | 含义 |
|---|
AGENT | 智能体调用 |
LLM | 大语言模型调用 |
CHAIN | 调用链 / 流水线 |
EMBEDDING | 向量嵌入 |
TOOL | 工具调用 |
TASK | 任务单元 |
RETRIEVER | 检索器 |
RERANKER | 重排序器 |
MCP_CLIENT | MCP 客户端调用 |
UNKNOWN | 未知类型 |
二、通用属性
所有 Span 类型均应携带以下字段(来自 CommonAttributes + SpanAttributes)。
2.1 核心标识
| 字段 Key | 类型 | 说明 |
|---|
gen_ai.span.kind | string | Span 类型,取值见上表 |
gen_ai.operation.name | string | 操作类型,取值见 §三 |
gen_ai.framework | string | 使用的 AI 框架名称 |
gen_ai.span.sub_kind | string | Span 子类型,用于进一步细分 |
2.2 会话与用户
| 字段 Key | 类型 | 说明 |
|---|
gen_ai.conversation.id | string | 对话/会话唯一 ID,用于关联同一次交互中的多个 Span |
gen_ai.user.id | string | 用户唯一标识 |
gen_ai.user.name | string | 用户名称 |
2.3 输入 / 输出
| 字段 Key | 类型 | 说明 |
|---|
input.value | string | 传入该 Span 的原始输入内容(文本或 JSON 字符串) |
output.value | string | 该 Span 产生的原始输出内容 |
input.mime_type | string | input.value 的 MIME 类型,默认 text/plain |
output.mime_type | string | output.value 的 MIME 类型,默认 text/plain |
2.4 时间
| 字段 Key | 类型 | 说明 |
|---|
gen_ai.user.time_to_first_token | integer | 用户视角的首 Token 响应时间(纳秒) |
gen_ai.response.reasoning_time | integer | 推理模型的推理过程耗时(毫秒) |
2.5 扩展
| 字段 Key | 类型 | 说明 |
|---|
metadata | JSON | 自定义键值对元数据 |
tag.tags | string[] | 用于过滤与分组的标签列表 |
content | string | 通用内容字段 |
三、gen_ai.operation.name 枚举值
| 枚举值 | 含义 | 适用 Span 类型 |
|---|
chat | 对话补全 | LLM |
text_completion | 文本补全(旧版) | LLM |
generate_content | 多模态内容生成 | LLM |
create_agent | 创建 Agent | AGENT |
invoke_agent | 调用 Agent | AGENT |
execute_tool | 执行工具 | TOOL |
embeddings | 向量嵌入 | EMBEDDING |
retrieve | 检索 | RETRIEVER |
四、各 Span 类型专属字段
4.1 LLM Span
适用操作名: chat / text_completion / generate_content
模型标识
| 字段 Key | 类型 | 说明 |
|---|
gen_ai.provider.name | string | AI 提供商,如 openai、anthropic、gcp.gemini 等 |
gen_ai.request.model | string | 请求指定的模型名称 |
gen_ai.response.model | string | 响应实际使用的模型名称(可能与请求不同) |
gen_ai.output.type | string | 输出类型,取值:text / json / image / speech |
gen_ai.model_name | string | ⚠️ 已废弃,请使用 gen_ai.request.model |
请求参数
| 字段 Key | 类型 | 说明 |
|---|
gen_ai.request.temperature | float | 采样温度,控制生成随机性 |
gen_ai.request.top_p | float | 核采样参数 |
gen_ai.request.top_k | float | Top-K 采样参数 |
gen_ai.request.max_tokens | integer | 最大生成 Token 数 |
gen_ai.request.stop_sequences | string[] | 停止生成的特殊序列列表 |
gen_ai.request.frequency_penalty | float | 频率惩罚系数 |
gen_ai.request.presence_penalty | float | 存在惩罚系数 |
gen_ai.request.seed | integer | 随机种子(用于确定性生成) |
gen_ai.request.choice.count | integer | 请求的候选补全数量(不为 1 时记录) |
gen_ai.request.is_stream | boolean | 是否为流式响应 |
gen_ai.request.tool_calls | string | 请求中携带的工具调用信息 |
gen_ai.request.parameters | string | ⚠️ 已废弃 |
| 字段 Key | 类型 | 说明 |
|---|
gen_ai.response.id | string | 模型响应唯一标识符 |
gen_ai.response.finish_reasons | string[] | 各候选的停止原因,如 stop / length / tool_call / content_filter / error |
gen_ai.response.time_to_first_token | integer | 模型自身首 Token 延迟(纳秒,流式场景) |
gen_ai.response.time_per_output_token | integer | 平均每个输出 Token 耗时 |
gen_ai.response.reasoning_content | string | ⚠️ 已废弃,推理模型推理内容 |
Token 用量
| 字段 Key | 类型 | 说明 |
|---|
gen_ai.usage.input_tokens | integer | 输入 Token 数 |
gen_ai.usage.output_tokens | integer | 输出 Token 数 |
gen_ai.usage.total_tokens | integer | 总 Token 数(input + output) |
延迟(自托管模型)