all answers

Agent reliability

Instrumentation

Instrumentation is the code that records what an agent does while it runs and emits that record as telemetry. For agents, the standard is OpenTelemetry with the GenAI semantic conventions. A framework that already emits OTel spans exports them over OTLP, via HTTP or gRPC, to any endpoint that accepts the protocol. Other dialects, such as OpenInference and Traceloop, describe the same events with different attribute names.

Agent telemetry has a three-level structure that follows the shape of agent execution. A session groups everything that happened across one conversation. A trace covers one turn: a user message, the agent's full response, and everything between. A span covers one step within the turn, an LLM call or a tool call. Spans nest within traces, and traces group into sessions.

Instrumentation is also the point where content leaves the application. It decides what gets emitted: which prompts, outputs, and tool arguments appear in the record, and in what form. The telemetry downstream is whatever instrumentation chose to emit, so content decisions, including redaction, happen here.

10 questions

Answered, plainly.

Can the same OpenTelemetry traces go to more than one tool?Yes. An OpenTelemetry Collector can receive one stream of spans and fan it out to several exporters, each pointed at a different backend.answer →Do agent traces have to use the OpenTelemetry GenAI attribute format?No. OpenInference and Traceloop describe the same LLM and tool calls with different attribute names; gen_ai.* is the standard, not the only option.answer →Does adding agent instrumentation require changing my agent's code?Not always. Zero-code OpenTelemetry instrumentation adds spans for calls into covered libraries at runtime, with no source changes required.answer →Does emitting OpenTelemetry traces slow down an agent's response?No, not when it's set up correctly. Span export runs asynchronously in a batch processor, off the thread that produces the agent's answer.answer →Should agent traces export over HTTP or gRPC?Either works under OTLP: gRPC on port 4317, HTTP with protobuf on 4318. gRPC costs less per span, HTTP crosses proxies, and Tessary accepts http/protobuf only.answer →What is agent instrumentation?The code that records what an agent does while it runs and emits that record as telemetry, usually OpenTelemetry spans sent over OTLP.answer →Who decides what content leaves an agent's traces?Instrumentation does. It chooses what a span carries, prompts, outputs, tool arguments, before export, so redaction has to happen at or before that point.answer →Are OpenTelemetry's GenAI semantic conventions stable enough to build on?No. Every gen_ai.* field still carries OpenTelemetry's 'development' stability marker, and the spec has shipped no tagged release yet.answer →What's the difference between a trace and a span?A trace covers one whole agent turn; a span is a single step inside it, like one LLM call or one tool call, with its own start and end time.answer →What's the difference between observability and evals?Observability records what an agent did, through traces and spans. Evals judge whether what it did was right, and produce a pass, fail, or score.answer →

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