主题
Tracing
角色
Tracing 表示 runtime、agent、tool、LLM 调用和后台任务的因果执行视图,是运行态可观测性的标准对象模型。
核心对象
TraceContext- 进程内或跨边界传播的最小上下文,至少包含
traceId与当前spanId
- 进程内或跨边界传播的最小上下文,至少包含
PropagationCarriertraceparent、tracestate、baggage等跨进程 carrier
AgentSpan- 一次可观测执行片段,记录身份、语义、时间、状态、错误与资源指标
TraceEvent- 归属于某个 span 的细粒度事件,可表达 OTel-style 事件、LLM 输入输出详情和外部引用
TraceSummary- 由 span 聚合出的读模型,用于 run 级 trace 列表、筛选与概览
TracerConfig- tracer 的超时、导出、日志注入、指标采样和 metadata 治理配置
GenAIObservation- 面向 LLM / agent 调用的结构化语义投影,承载输入消息、输出消息、tool context、usage 和 provider 属性
拓扑要求
- 一个
AgentSpanMUST只属于一个traceId - 一个
TraceMUST只属于一个runId - 一个 run
MAY拥有多个 trace rootSpanId表示当前 trace 的主根 span 标识parentSpanId表示直接父 span;为空不代表 span 不属于当前 tracewrapDetached产生的 spanMAY清空parentSpanId,但SHOULD保留原traceId和rootSpanId- 因此 trace 的逻辑结构是有主根的因果图,而不是严格要求单棵树
- span
MAY挂载links,用于表达 batch、fan-in、消息队列或 remote parent 等非树形关系
互操作要求
- 稳定 tracing 模型
MUST支持:- OTel-style
spanKind - attributes / links / events
- W3C Trace Context 兼容 carrier
- W3C Baggage 兼容 carrier
- OTel-style
TraceContextSHOULD同时保留解析后的traceId/spanId和序列化后的 carrier 视图genAI结构化对象SHOULD能无损映射到otel.attributes与TraceEvent- 对于体量较大的 LLM 输入输出,平台
SHOULD优先使用TraceEvent或外部 blob 引用,而不是无条件塞入 span 顶层属性
聚合要求
TraceSummaryMUST可由 span 事实流增量投影得到TraceSummary.statusMUST由 span 集合推导,而不是由单独手工写入- 推荐推导顺序:
- 只要存在未终止 span,则 trace 为
running - 否则只要存在
timeoutspan,则 trace 为timeout - 否则只要存在
failedspan,则 trace 为failed - 否则只要存在
cancelledspan,则 trace 为cancelled - 否则如果 span 集合不完整或存在缺口,则 trace 为
partial - 其他情况为
success
- 只要存在未终止 span,则 trace 为
关联要求
- span
MUST可关联到orgId、agentId、runId和runSpaceId - span
SHOULD允许关联contextId - 日志、artifact、checkpoint、消息事件
SHOULD能通过traceId或spanId与 tracing 读模型关联 - logger 注入
SHOULD至少携带traceId与spanId - 对于 LLM span,读模型
SHOULD允许关联:conversationId- 输入 / 输出 message 序列
- tool call / tool result
- usage / token accounting
数据治理
metadataMAY存放业务标签、模型名、参数摘要和输入统计metadataMUST NOT默认包含 secret、token、明文凭证或原始用户敏感输入GenAIObservation与TraceEvent.payload中的原始 prompt / completion 内容MUST受 capture mode 控制- 默认 capture mode
SHOULD是none或redacted - 如使用
external_blob,读面MUST返回受控引用,而不是无权限公开原始内容 - 系统生成的 housekeeping span
MAY存在;如暴露给读面,SHOULD可被过滤或默认隐藏
平台要求
- Tracing 是平台级能力,
MUST NOT只作为某个 SDK 的私有调试工具存在 - runtime 本地 API、trace export 和 trace query
MUST指向同一份稳定模型 - 如果 tracer、vendor SDK 或 exporter 先产出内部事件,再接入统一 trace ingest,
MUST通过适配层收敛到稳定 schema - 平台
SHOULD同时提供:- 平台原生结构化字段
- OTel-compatible projection
- 受治理的 LLM 内容捕获能力