@@ -103,10 +103,17 @@ npm run trace:otlp -- webbrain-trace-example.json \
103103 --output webbrain-trace-example.otlp.json
104104```
105105
106+ For a legacy single-run input, the output retains the existing root span with
107+ model-call and tool child spans. A session bundle uses one trace per persisted
108+ session, one span per run, same-session ` parentRunId ` parent links, and span
109+ events for turn/step activity. Cross-session parents are represented as span
110+ links rather than parent spans.
111+
106112The output is an
107113[ OTLP/HTTP JSON] ( https://opentelemetry.io/docs/specs/otlp/#json-protobuf-encoding )
108- ` ExportTraceServiceRequest ` . It contains one ` invoke_agent WebBrain ` root span,
109- child model-call and ` execute_tool ` spans, and lightweight lifecycle events.
114+ ` ExportTraceServiceRequest ` . Legacy input contains one ` invoke_agent WebBrain `
115+ root span, child model-call and ` execute_tool ` spans, and lightweight lifecycle
116+ events; session bundles contain one ` invoke_agent ` span per run.
110117The mappings follow the current
111118[ OpenTelemetry GenAI semantic conventions] ( https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/gen-ai/gen-ai-agent-spans.md ) ,
112119which are still marked development and may change.
@@ -134,6 +141,10 @@ npm run trace:otlp -- webbrain-trace-example.json \
134141 --include-content
135142```
136143
144+ See [ ` trace-format-compatibility.md ` ] ( trace-format-compatibility.md ) for the
145+ relationship between the storage version, run format version, and export
146+ schema, plus the reader obligations for unknown events and legacy records.
147+
137148This is a post-run conversion, not live OpenTelemetry instrumentation. Child
138149span start times are reconstructed from the recorder's completion timestamp and
139150reported latency, so they should be used for diagnostics rather than
0 commit comments