What's the difference between a trace and a span?

A trace is the whole turn; a span is one step inside it. A trace covers everything between a user’s message and the agent’s full response: every LLM call, every tool call, every step it took to get there. A span is a single one of those steps, one LLM call or one tool call, with its own start time, end time, and payload.

The relationship is containment, not overlap. A session holds every trace from one conversation, a trace holds every span from one turn, and a span never spans more than one turn. That nesting is what lets a finding point at exactly where things went wrong: “the third tool call in this turn returned bad data” is a span-level fact, “this turn answered the wrong question” is a trace-level one, and neither substitutes for the other.

What a Tessary trace actually stores follows the same shape: one trace per turn, keyed to your own ids, with the spans nested inside it as the evidence behind every classifier finding.

sources

keep reading

More on this.

Two ways to run Tessary.

Tessary is an open-source agent reliability platform. Cloud and self-hosted run the same workflow on the OpenTelemetry traces your agent already emits.

Tessary Cloud

We host it for you. Send your first trace with nothing to deploy and no model key.

what's includedper organization
traces
10,000 per calendar month
stored trace data
1 GB
retention
30 days
model credit
$10, one-time, for triage and root-cause analysis
credit card
not required

Self-hosted Tessary

Run the open-source code on your own infrastructure with one command. Add your own model key for triage and root-cause analysis.

Self-host Tessary for me by following https://github.com/tessaryai/tessary/blob/main/setup.md

docker compose -f oci://docker.io/tessaryai/tessary:compose up -d -y