首页/AI/提示词工程速查/OpenTelemetry GenAI 语义约定

OpenTelemetry GenAI 语义约定

遵循 OpenTelemetry 的生成式 AI 语义约定埋点:统一 gen_ai.* 属性命名(系统、模型、请求参数与用量),让观测平台跨服务聚合。

提示词工程速查AI更新于 2026-10-13

OTel GenAI 语义约定是什么

OpenTelemetry 的生成式 AI 语义约定是一套统一的埋点属性命名规范,用 gen_ai.* 前缀描述系统、模型、请求参数与用量。遵循它的价值在于跨服务聚合:你的应用、网关与上游服务用同一套属性名,观测平台才能把一次调用串起来,做统一看板与告警。自创属性名虽然当下方便,但会把数据锁在单个服务里。

基本信息

适用平台使用 OpenTelemetry 采集遥测的 LLM 应用与服务
核心前缀gen_ai.*:系统与模型标识、请求参数、用量统计
属性原则命名遵循约定;自定义信息放在扩展属性中,不污染标准字段
隐私要求敏感内容不写入 span 属性;用量与成本分开统计

典型使用场景

  • 统一看板:按模型与调用方聚合请求量、错误率与延迟
  • 成本核算:从用量属性汇总 token 消耗,与账单对账
  • 问题排查:通过追踪把应用、网关与模型调用串成一条链
  • 多服务协同:多个团队共用一套属性,避免口径分裂
  • 容量规划:按模型维度的调用分布判断需要多少配额

常用属性示例

常用属性示例
# span: gen_ai.request
#   gen_ai.system = <provider>              # 提供方标识
#   gen_ai.request.model = <model-id>       # 请求的模型
#   gen_ai.request.temperature = 0.2
#   gen_ai.request.max_tokens = 1024
#   gen_ai.usage.input_tokens = 812         # 输入用量
#   gen_ai.usage.output_tokens = 233        # 输出用量
# 注意:属性名以官方约定为准,版本间可能有调整,落地前对照当前文档确认

为什么统一命名重要

做法短期效果长期代价
遵循 gen_ai 约定接入成本略高,需对照文档跨服务可聚合,看板与告警可复用
自创属性名当下方便数据锁在单服务,口径无法合并
把提示全文写进属性排查时信息最全隐私风险与存储成本显著上升
只记用量不记模型指标简单无法按模型归因成本与质量
用量属性是成本归因的基础:把输入与输出分开记录,才能算出真实花费,也才能在提示改版时解释成本变化来自哪一段。
不要把完整的提示与模型输出写进 span 属性。遥测数据往往流向第三方观测平台,保留周期长、访问面宽,等同于把用户内容复制一份到另一个系统。

易错点

  • 属性名自创,观测平台无法统一聚合,跨服务看板做不起来
  • 把完整提示与输出塞进 span 属性,引入隐私风险与可观的存储成本
  • 只记请求不记用量,成本分析缺少数据源,只能靠估算
  • 照抄旧版本的属性清单而不核对当前约定,字段名与采集端不匹配

数据来源与参考

  • OpenTelemetry Semantic Conventions for Generative AI(gen_ai.* 属性)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌