The OpenTelemetry GenAI semantic conventions are a shared vocabulary for describing an LLM call, a tool call, or an agent step as a span. They fix the span names and the attribute names, so a trace from one framework means the same thing as a trace from another, and a backend can read both without a per-framework adapter.
The shape is one span per operation. An attribute called gen_ai.operation.name says what kind of operation it was: a chat call, an embedding, a retrieval, a tool execution, an agent invocation. An LLM span carries the provider, the model name, and the token counts. A tool span carries the tool's name and the id of that particular call. Grouping spans into a session or a user uses the general OpenTelemetry attributes, session.id and user.id, not a GenAI-specific one.
Two things to know before building on them. They are not stable yet. Every GenAI span, metric, and attribute is still marked as in development, and names have already changed once: gen_ai.system became gen_ai.provider.name, so both spellings are live in the wild and anything reading them has to accept either. And the message content is opt-in. The input and output messages are off by default because they carry whatever the user typed, and how they should be recorded, as span attributes or as separate events, is the part still moving.
Export is OTLP, over HTTP or gRPC. The payload is the same either way; pick whichever your collector already speaks.
9 questions
Answered, plainly.
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.
- 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