gen_ai.* span (OpenTelemetry semantic conventions) carrying the model, token usage, latency, errors, and — by default — the prompt and response content. Traces are what turn a verdict into a diagnosis: the judge flags the conversation, the trace shows why.
Enabling it: the extra is the switch
Auto-instrumentation follows your install — if the instrumentation package is present,init() turns it on. No flags needed:
init() kwargs or environment variables:
How traces relate to turns
If the LLM call happens inside aturn() block, its span nests under that turn automatically: one trace per turn, transcript and trace in the same tree, no ids to manage.
Content & privacy
Prompt and response text is captured on LLM spans by default — it’s what makes trace-level judging possible. To keep the metrics (model, tokens, latency, errors) but drop the text from LLM spans:Seeing it locally
Everything on this page is the same pipeline as transcript capture — one
init(), one OpenTelemetry export. There is no second integration to add when you want traces.