Skip to main content
Alongside the transcript, Eldros captures traces: what your agent actually did to produce each reply. Every LLM call becomes a 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:
To override the default in either direction, use init() kwargs or environment variables:

How traces relate to turns

If the LLM call happens inside a turn() block, its span nests under that turn automatically: one trace per turn, transcript and trace in the same tree, no ids to manage.
LLM calls outside any turn (background summarization, embeddings, classification jobs) are still traced and session-grouped — they just aren’t attached to a conversation turn.

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:
Field-level redaction is available on request.

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.