Episodes
When Eldros tests your agent, it opens a conversation and plays a scenario against it — through your normal protocol, exactly like a real user. One such simulated conversation is an episode. Every episode has an id, and the platform uses it to assemble the run’s results: transcript, judgments, and any traces that carry it.Joining your internal traces to an episode
If your agent runs the SDK, you can go one step further: tag the telemetry your process produces — turn spans, LLM and tool calls — with the episode, so the run’s results include your agent’s internal view. Eldros sends standard W3Ctraceparent + baggage headers on every
connection it opens to your agent — an HTTP request, or the WebSocket
handshake (the upgrade request is a plain HTTP GET). Continue them with one
call, in any framework:
trace_context takes any header mapping — it is a plain context manager, so
it works in every server framework, ASGI or not. Inside the block, every span
gets:
episode.id— on every span, so the platform can fetch the run’s full telemetry with one filter.traffic_type="simulation"— simulated traffic never pollutes your production views.- Session grouping for free — when no session id is present, spans group under the episode id automatically.
On production traffic these headers simply aren’t there, and
trace_context
is a harmless no-op passthrough — you can keep the same handler code for both.