Gen AI

GenAI 属性

本文档定义了在生成式人工智能 (GenAI) 模型请求和响应的上下文中用于描述遥测数据的属性。

Attributes

StabilityValue Type描述Example Values
gen_ai.agent.descriptionDevelopment字符串由应用程序提供的 GenAI 代理的自由格式描述。帮助解决数学问题; 生成小说故事
gen_ai.agent.idDevelopment字符串GenAI 代理的唯一标识符。asst_5j66UpCpwteGg4YSxUnt7lPY
gen_ai.agent.nameDevelopment字符串由应用程序提供的 GenAI 代理的可读名称。数学辅导员; 小说作家
gen_ai.conversation.idDevelopment字符串用于对话(会话、线程)的唯一标识符,用于存储和关联此对话中的消息。conv_5j66UpCpwteGg4YSxUnt7lPY
gen_ai.data_source.idDevelopment字符串数据源标识符。[1]H7STPQYOND
gen_ai.embeddings.dimension.countDevelopmentint生成的输出嵌入应具有的维度数。512; 1024
gen_ai.evaluation.explanationDevelopment字符串评估者提供的分配分数的自由格式解释。响应在事实方面是准确的,但缺乏足够的细节来完全回答问题。
gen_ai.evaluation.nameDevelopment字符串用于 GenAI 响应的评估指标的名称。相关性; 意图解析
gen_ai.evaluation.score.labelDevelopment字符串评估的可读标签。[2]相关; 不相关; 正确; 错误; 通过; 失败
gen_ai.evaluation.score.valueDevelopmentdouble评估者返回的评估分数。4.0
gen_ai.input.messagesDevelopmentany作为输入提供给模型的聊天记录。[3][
  {
    “role”: “user”,
    “parts”: [
      {
        “type”: “text”,
        “content”: “Weather in Paris?"
      }
    ]
  },
  {
    “role”: “assistant”,
    “parts”: [
      {
        “type”: “tool_call”,
        “id”: “call_VSPygqKTWdrhaFErNvMV18Yl”,
        “name”: “get_weather”,
        “arguments”: {
          “location”: “Paris”
        }
      }
    ]
  },
  {
    “role”: “tool”,
    “parts”: [
      {
        “type”: “tool_call_response”,
        “id”: " call_VSPygqKTWdrhaFErNvMV18Yl”,
        “result”: “rainy, 57°F”
      }
    ]
  }
]
gen_ai.operation.nameDevelopment字符串正在执行的操作的名称。[4]chatgenerate_contenttext_completion
gen_ai.output.messagesDevelopmentany模型返回的消息,每条消息代表一个特定的模型响应(选择、候选)。[5][
  {
    “role”: “assistant”,
    “parts”: [
      {
        “type”: “text”,
        “content”: “The weather in Paris is currently rainy with a temperature of 57°F."
      }
    ],
    “finish_reason”: “stop”
  }
]
gen_ai.output.typeDevelopment字符串表示客户端请求的内容类型。[6]textjsonimage
gen_ai.provider.nameDevelopment字符串由客户端或服务器插装确定的生成式 AI 提供商。[7]openaigcp.gen_aigcp.vertex_ai
gen_ai.request.choice.countDevelopmentint目标候选补全数量。3
gen_ai.request.encoding_formatsDevelopmentstring[]嵌入操作中请求的编码格式,如果已指定。[8]["base64"]; ["float", "binary"]
gen_ai.request.frequency_penaltyDevelopmentdoubleGenAI 请求的频率惩罚设置。0.1
gen_ai.request.max_tokensDevelopmentint模型为请求生成的最大令牌数。100
gen_ai.request.modelDevelopment字符串正在向其发出请求的 GenAI 模型的名称。gpt-4
gen_ai.request.presence_penaltyDevelopmentdoubleGenAI 请求的存在惩罚设置。0.1
gen_ai.request.seedDevelopmentint具有相同种子值的请求更有可能返回相同的结果。100
gen_ai.request.stop_sequencesDevelopmentstring[]模型将用于停止生成更多令牌的序列列表。["forest", "lived"]
gen_ai.request.temperatureDevelopmentdoubleGenAI 请求的温度设置。0.0
gen_ai.request.top_kDevelopmentdoubleGenAI 请求的 top_k 采样设置。1.0
gen_ai.request.top_pDevelopmentdoubleGenAI 请求的 top_p 采样设置。1.0
gen_ai.response.finish_reasonsDevelopmentstring[]模型停止生成令牌的原因数组,对应于收到的每个生成。["stop"]["stop", "length"]
gen_ai.response.idDevelopment字符串补全的唯一标识符。chatcmpl-123
gen_ai.response.modelDevelopment字符串生成响应的模型名称。gpt-4-0613
gen_ai.system_instructionsDevelopmentany与聊天记录分开提供给 GenAI 模型或指令的系统消息。[9][
  {
    “type”: “text”,
    “content”: “You are an Agent that greet users, always use greetings tool to respond”
  }
]; [
  {
    “type”: “text”,
    “content”: “You are a language translator."
  },
  {
    “type”: “text”,
    “content”: “Your mission is to translate text in English to French."
  }
]
gen_ai.token.typeDevelopment字符串正在计数的令牌的类型。input; output
gen_ai.tool.call.argumentsDevelopmentany传递给工具调用的参数。[10]{
    “location”: “San Francisco?”,
    “date”: “2025-10-01”
}
gen_ai.tool.call.idDevelopment字符串工具调用的标识符。call_mszuSIzqtI65i1wAUOE8w5H4
gen_ai.tool.call.resultDevelopmentany工具调用返回的结果(如果有且执行成功)。[11]{
  “temperature_range”: {
    “high”: 75,
    “low”: 60
  },
  “conditions”: “sunny”
}
gen_ai.tool.definitionsDevelopmentanyGenAI 代理或模型可用的源系统工具定义列表。[12][
  {
    “type”: “function”,
    “name”: “get_current_weather”,
    “description”: “Get the current weather in a given location”,
    “parameters”: {
      “type”: “object”,
      “properties”: {
        “location”: {
          “type”: “string”,
          “description”: “The city and state, e.g. San Francisco, CA”
        },
        “unit”: {
          “type”: “string”,
          “enum”: [
            “celsius”,
            “fahrenheit”
          ]
        }
      },
      “required”: [
        “location”,
        “unit”
      ]
    }
  }
]
gen_ai.tool.descriptionDevelopment字符串工具描述。Multiply two numbers
gen_ai.tool.nameDevelopment字符串代理使用的工具名称。Flights
gen_ai.tool.typeDevelopment字符串代理使用的工具类型 [13]function; extension; datastore
gen_ai.usage.input_tokensDevelopmentintGenAI 输入(提示)使用的令牌数。100
gen_ai.usage.output_tokensDevelopmentintGenAI 响应(补全)使用的令牌数。180

[1] gen_ai.data_source.id: 数据源由 AI 代理和 RAG 应用程序用于存储地面数据。数据源可以是外部数据库、对象存储、文档集合、网站或 GenAI 代理或应用程序使用的任何其他存储系统。gen_ai.data_source.id 应匹配 GenAI 系统使用的标识符,而不是外部存储(如数据库或对象存储)的特定名称。引用 gen_ai.data_source.id 的语义约定也可能利用其他属性,例如 db.*,来进一步识别和描述数据源。

[2] gen_ai.evaluation.score.label: 此属性提供了评估者生成的评估分数的易读解释。例如,分数 1 在一个评估系统中可能意味着“相关”,而在另一个系统中可能意味着“不相关”,具体取决于评分范围和评估者。标签应具有低基数。可能的值取决于所使用的评估指标和评估者;实现应记录可能的值。

[3] gen_ai.input.messages: 插桩必须遵循 Input messages JSON schema。当属性在事件上记录时,它必须以结构化形式记录。当在 span 上记录时,如果不支持结构化格式,则可以作为 JSON 字符串记录,否则应以结构化形式记录。

消息必须按发送给模型的顺序提供。仪器可以提供一种方法供用户过滤或截断输入消息。

警告

此属性很可能包含敏感信息,包括用户/PII 数据。

有关更多详细信息,请参阅 在属性上记录内容 部分。

[4] gen_ai.operation.name: 如果预定义值之一适用,但特定系统使用不同的名称,建议在特定 GenAI 系统的语义约定中记录它,并在插桩中使用系统特定的名称。如果未记录不同的名称,插桩库应使用适用的预定义值。

[5] gen_ai.output.messages: 插桩必须遵循 Output messages JSON schema

每条消息代表模型生成的单个输出选择/候选。每条消息恰好对应一个生成(选择/候选),反之亦然 - 一个选择不能跨越多条消息,或者一条消息不能包含来自多个选择的部分。

当属性记录在事件上时,它必须以结构化形式记录。当记录在跨度上时,如果不支持结构化格式,它可以被记录为 JSON 字符串,否则应以结构化形式记录。

仪器可以提供一种方法供用户过滤或截断输出消息。

警告

此属性很可能包含敏感信息,包括用户/PII 数据。

有关更多详细信息,请参阅 在属性上记录内容 部分。

[6] gen_ai.output.type: 当客户端请求特定类型的输出时,应使用此属性。模型可能会返回零个或多个此类型的输出。此属性指定输出模态,而不是实际输出格式。例如,如果请求了图像,则实际输出可能是指向图像文件的 URL。未来的输出格式详细信息可能会在 gen_ai.output.{type}.* 属性中记录。

[7] gen_ai.provider.name: 应根据插桩的最佳知识设置此属性,并且可能与实际模型提供商不同。

通过 OpenAI REST API 和相应的客户端库可以访问包括 Azure OpenAI、Gemini 和 AI 托管平台在内的多个提供商,但它们可能会代理或托管来自不同提供商的模型。

gen_ai.request.modelgen_ai.response.modelserver.address 属性可能有助于识别实际使用的系统。

gen_ai.provider.name 属性充当一个区分器,用于在 GenAI 语义约定中识别该提供商特定的 GenAI 遥测格式。它应与特定于提供商的属性和信号一致。例如,与 AWS Bedrock 相关的 GenAI 跨度、指标和事件应将 gen_ai.provider.name 设置为 aws.bedrock,并包含适用的 aws.bedrock.* 属性,并且不应包含 openai.* 属性。

[8] gen_ai.request.encoding_formats: 在某些 GenAI 系统中,编码格式称为嵌入类型。此外,一些 GenAI 系统每个请求只接受一种格式。

[9] gen_ai.system_instructions: 当相应的提供商或 API 允许在聊天记录之外提供系统指令或消息时,应使用此属性。

作为聊天记录一部分的指令应记录在 gen_ai.input.messages 属性中,而不是此处。

仪器必须遵循 System instructions JSON schema

当记录在跨度上时,如果不支持结构化格式,它可以被记录为 JSON 字符串,否则应以结构化形式记录。

仪器可以提供一种方法供用户过滤或截断系统指令。

警告

此属性可能包含敏感信息。

有关更多详细信息,请参阅 在属性上记录内容 部分。

[10] gen_ai.tool.call.arguments: > [!WARNING]

此属性可能包含敏感信息。

预期为对象——如果插桩可用序列化字符串,插桩应尽最大努力将其反序列化为对象。当在 span 上记录时,如果不支持结构化格式,则可以作为 JSON 字符串记录,否则应以结构化形式记录。

[11] gen_ai.tool.call.result: > [!WARNING]

此属性可能包含敏感信息。

预期为对象——如果插桩可用序列化字符串,插桩应尽最大努力将其反序列化为对象。当在 span 上记录时,如果不支持结构化格式,则可以作为 JSON 字符串记录,否则应以结构化形式记录。

[12] gen_ai.tool.definitions: 此属性的值匹配源系统工具定义格式。

预计它是一个对象数组,其中每个对象代表一个工具定义。如果仪器可用序列化字符串,仪器应尽最大努力将其反序列化为数组。当记录在跨度上时,如果不支持结构化格式,它可以被记录为 JSON 字符串,否则应以结构化形式记录。

由于此属性可能很大,因此不建议默认填充它。仪器可以提供一种启用填充此属性的方法。

[13] gen_ai.tool.type: 扩展:在代理端执行的工具,用于直接调用外部 API,弥合代理与现实世界系统之间的差距。代理端操作是指代理在服务器上或代理控制的环境内执行的操作。函数:在客户端执行的工具,代理为预定义函数生成参数,客户端执行逻辑。客户端操作是指在用户端或客户端应用程序内采取的操作。数据存储:代理用于访问和查询结构化或非结构化的外部数据以进行检索增强任务或知识更新的工具。


gen_ai.operation.name 具有以下知名值列表。如果其中之一适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
chat聊天完成操作,例如 OpenAI Chat APIDevelopment
create_agent创建 GenAI 代理Development
embeddings嵌入操作,例如 OpenAI 创建嵌入 APIDevelopment
execute_tool执行工具Development
generate_content多模态内容生成操作,例如 Gemini 生成内容Development
invoke_agent调用 GenAI 代理Development
text_completion文本补全操作,例如 OpenAI Completions API (Legacy)Development

gen_ai.output.type 具有以下知名值列表。如果其中之一适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
imageImageDevelopment
json具有已知或未知架构的 JSON 对象Development
speechSpeechDevelopment
text纯文本Development

gen_ai.provider.name 具有以下知名值列表。如果其中之一适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
anthropicAnthropicDevelopment
aws.bedrockAWS BedrockDevelopment
azure.ai.inferenceAzure AI InferenceDevelopment
azure.ai.openaiAzure OpenAIDevelopment
cohereCohereDevelopment
deepseekDeepSeekDevelopment
gcp.geminiGemini [14]Development
gcp.gen_ai任何 Google 生成式 AI 端点 [15]Development
gcp.vertex_aiVertex AI [16]Development
groqGroqDevelopment
ibm.watsonx.aiIBM Watsonx AIDevelopment
mistral_aiMistral AIDevelopment
openaiOpenAIDevelopment
perplexityPerplexityDevelopment
x_aixAIDevelopment

[14]: 用于访问 'generativelanguage.googleapis.com' 端点。也称为 AI Studio API。

[15]: 当无法确定特定后端时可能使用。

[16]: 用于访问 'aiplatform.googleapis.com' 端点。


gen_ai.token.type 具有以下一系列已知值。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
input输入令牌(提示、输入等)Development
output输出令牌(完成、响应等)Development

已弃用的 GenAI 属性

描述已弃用的 gen_ai 属性。

Attributes

StabilityValue Type描述Example Values
gen_ai.completionDeprecated
已移除,目前没有替代品。
字符串已弃用,请使用 Event API 来报告完成内容。[{'role': 'assistant', 'content': 'The capital of France is Paris.'}]
gen_ai.promptDeprecated
已移除,目前没有替代品。
字符串已弃用,请使用 Event API 来报告提示内容。[{'role': 'user', 'content': 'What is the capital of France?'}]
gen_ai.systemDeprecated
已替换为 gen_ai.provider.name
字符串已弃用,请改用 gen_ai.provider.nameopenaigcp.gen_aigcp.vertex_ai
gen_ai.usage.completion_tokensDeprecated
已替换为 gen_ai.usage.output_tokens
int已弃用,请改用 gen_ai.usage.output_tokens42
gen_ai.usage.prompt_tokensDeprecated
已替换为 gen_ai.usage.input_tokens
int已弃用,请改用 gen_ai.usage.input_tokens42

gen_ai.system 具有以下一系列已知值。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
anthropicAnthropicDevelopment
aws.bedrockAWS BedrockDevelopment
azure.ai.inferenceAzure AI InferenceDevelopment
azure.ai.openaiAzure OpenAIDevelopment
cohereCohereDevelopment
deepseekDeepSeekDevelopment
gcp.geminiGemini [17]Development
gcp.gen_ai任何 Google 生成式 AI 端点 [18]Development
gcp.vertex_aiVertex AI [19]Development
groqGroqDevelopment
ibm.watsonx.aiIBM Watsonx AIDevelopment
mistral_aiMistral AIDevelopment
openaiOpenAIDevelopment
perplexityPerplexityDevelopment
xaixAIDevelopment

[17]: 这指的是 'generativelanguage.googleapis.com' 端点。也称为 AI Studio API。可以使用以 'gcp.gen_ai.' 为前缀的通用属性。

[18]: 当不知道特定后端时可能使用。可以使用以 'gcp.gen_ai.' 为前缀的通用属性。

[19]: 这指的是 'aiplatform.googleapis.com' 端点。可以使用以 'gcp.gen_ai.' 为前缀的通用属性。

已弃用的 OpenAI GenAI 属性

描述已弃用的 gen_ai.openai 属性。

Attributes

StabilityValue Type描述Example Values
gen_ai.openai.request.response_formatDeprecated
已替换为 gen_ai.output.type
字符串已弃用,请使用 gen_ai.output.typetext; json_object; json_schema
gen_ai.openai.request.seedDeprecated
已替换为 gen_ai.request.seed
int已弃用,请使用 gen_ai.request.seed100
gen_ai.openai.request.service_tierDeprecated
已替换为 openai.request.service_tier
字符串已弃用,请使用 openai.request.service_tierauto; default
gen_ai.openai.response.service_tierDeprecated
已替换为 openai.response.service_tier
字符串已弃用,请使用 openai.response.service_tierscale; default
gen_ai.openai.response.system_fingerprintDeprecated
已替换为 openai.response.system_fingerprint
字符串已弃用,请使用 openai.response.system_fingerprintfp_44709d6fcb

gen_ai.openai.request.response_format 具有以下一系列已知值。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
json_objectJSON 对象响应格式Development
json_schemaJSON schema 响应格式Development
text文本响应格式Development

gen_ai.openai.request.service_tier 具有以下一系列已知值。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
auto系统将使用缩放层信用额度,直到耗尽为止。Development
default系统将使用默认缩放层。Development