Stop your agents from failing silently in production.
Docs · Self-host · Report an issue · Discussions
Tessary is an open-source reliability platform for AI agents in production. It monitors every trace, detects issues using cheap classifiers, groups related findings into cases, and investigates their root cause using trace and repository evidence.
To try it without installing anything, sign up for Tessary Cloud at https://app.tessary.ai. It's free, needs no credit card, and its limits are on the pricing page.
To self-host, paste this into your coding agent:
Self-host Tessary for me by following https://github.com/tessaryai/tessary/blob/main/setup.md
setup.md is written as instructions to an agent: install what's missing, bring every service up, verify the frontend, and hand back the URL.
Prefer to run it yourself? The same install is one command, with nothing cloned and no .env to edit:
docker compose -f oci://docker.io/tessaryai/tessary:compose up -d -yEither way, open http://localhost when docker compose -p tessary ps reports every service healthy. It needs Docker Engine 26 or newer and Docker Compose v2.34 or newer on the machine. Set up Tessary takes it from there.
Once it's running, instrument your agent so Tessary has traces to watch: see the instrumentation overview.
Send OTLP traces to the endpoint shown during setup and add tessary.call_site.id to spans that invoke a model. Use instrument.md to have a coding agent identify and instrument these call sites.
Connect a GitHub repository under Settings > Git integration and both triage and RCA cite the code that produced the failing traces.
- Watch every trace. OTLP over HTTP and gRPC, and SDK push, normalize to the OpenTelemetry gen_ai.*conventions at the edge. PII (personally identifiable information) redaction runs before storage.
- Filter cheaply. Classifiers sweep every trace continuously and open a finding when one fires. The per-trace check stays cheap enough to afford at production volume, which is what makes reading all of it possible instead of sampling. Two classifiers are exceptions, and both are off until you turn them on: frustrationscores eligible user messages with a hosted model on your own OpenRouter or TypeSafe key, andgroundednesschecks answers against their retrieved documents with a public model you run on a Mac with Apple silicon or a GPU instance on AWS, not an LLM call.
- Group into cases. Related findings collapse into one case, surfaced on Triage. An LLM triage step rules whether a finding is a real deviation rather than a legitimate change, and only a finding it rules real becomes a case. Two kinds of finding are ruled when they are filed instead, because their numbers are the claim: a high-confidence secret leak, and a rise in frustrated conversations.
- Explain the case. RCA runs an agentic session over the failing traces and, when a repo is connected, the code itself. It returns a one-sentence summary, the causes it found with the traces behind each, and the checks it ruled out.
- Route it to a human. An alert carries the case to whoever owns it. Tessary explains and hands off. It doesn't open the fix.
Tessary is licensed under the Apache License 2.0.
A self-hosted instance sends one anonymous heartbeat to home.tessary.ai at backend start and every 6 hours after. It carries a schema version, an install id, a ping sequence number, a timestamp, the edition, the app version, the host OS family and CPU architecture, install-wide totals of projects, ingested spans, findings, cases, and classifier detections, and the hash of the model price book it holds. On the same schedule it checks home.tessary.ai for a newer price book and downloads it only when the hash has changed. It never carries trace or prompt content, an email address, an org or project name, a hostname, or a retained IP address.
TESSARY_TELEMETRY_ENABLED=falseSet that in .env and the instance makes no call to that host, DNS lookups included, and loses nothing: no feature, license check, or in-app behavior depends on the heartbeat reaching us. The field-by-field contract is the telemetry contract.
CONTRIBUTING.md explains how to open an issue or a pull request, how to run the checks locally, and what to expect from review. The documentation map is where to start reading the rest.
Report a vulnerability privately by emailing security@tessary.ai. See SECURITY.md for what to expect.