Announcement · September 15, 2026
We're open-sourcing Lightrace
Today we are releasing Lightrace, the agent tracing, observability, and error tracking platform we built to run our own trading agents. It is Apache 2.0, self-hosts with one command, and it exists because of a problem we could not buy our way out of: knowing, the moment an agent breaks, what broke and who owns the fix.
Why we're open-sourcing it
Lightrace is not a side project we decided to publish. It is the observability layer we run our own desk on: every autonomous agent run, every tool call, every model generation, and every failure on our platform is recorded through it. We built it because nothing off the shelf answered the question we ask most often when an agent misbehaves — what exactly broke, and who is fixing it?
That question shaped the product. A trace alone tells you what happened; it does not tell you what to do. So we treated error and issue handling as a first-class part of tracing: any observation that ends in an error is captured with its stacktrace, fingerprinted, grouped into a single issue, prioritized, and queued for triage — right next to the trace that produced it.
Traces tell you what happened. Issues tell you what broke.
We are releasing Lightrace under Apache 2.0 because the infrastructure we depend on was built the same way. Kafka, Airflow, Jaeger, and Sentry all began as internal tools that solved a real problem at one company, and every agent team deserves the same option today: tracing and error tracking you can read, audit, and self-host.
What Lightrace does
Agent tracing & observe — a hierarchical trace viewer for every run — model calls, tools, chains, and spans — with token usage, latency, and cost broken down per step.
Error tracking & issue grouping — every failed observation becomes a grouped issue you can triage, assign, and resolve, with the stacktrace and context kept next to the trace that produced it.
Remote tool invocation Beta — mark a tool as trace(type="tool") and re-run it from the dashboard — against the exact inputs that failed, without reproducing the run by hand.
Real-time updates — live trace streaming over WebSocket, so you watch agent runs as they happen instead of polling for results.
Tools page — see every connected SDK instance, the tools it registered, and their schemas — a live map of what your agents can actually do.
Multi-project RBAC — owner, Admin, Member, and Viewer roles per project, with API key creation and rotation built in.
Error tracking, built for agents
Every failed tool, model call, or span becomes an issue you can triage and fix — not a log line buried in a waterfall. It is the part of Lightrace we depend on most, and the reason we built it.
Grouped issues, not noisy events
Fingerprints are built from observation type, tool or model, error type, and a normalized message. High-cardinality noise — UUIDs, emails, IPs, hashes, numbers — is normalized away, and common provider failures are bucketed: rate_limit, insufficient_quota, context_length_exceeded, overloaded, auth_error, timeout. One bad deploy produces one issue, not hundreds of alerts.
Triage built in
A lifecycle of UNRESOLVED → RESOLVED → ARCHIVED, with ESCALATING, REGRESSED, and FOR_REVIEW states for regressions, priority auto-calculated from level, and assignees per project.
From issue to root cause in one click
Each issue carries a short id (ERR-…), culprit, first seen and last seen, event and trace counts, fingerprint, level, and the full stacktrace — with a link to the exact trace and observation that produced it. The same error banner also renders inline in the trace view.
Retention you can reason about
Error events are retained for 90 days with daily pruning, and issue counters stay in sync as events age out.
Self-host in one command
Lightrace runs entirely on your own infrastructure — PostgreSQL, Redis, and Caddy, managed as containers. Your traces, prompts, and agent data never leave your environment.
npm install -g @lightrace/cli
lightrace init # generate config with secrets
lightrace start # pull images & start all servicesAlso available via Homebrew and Go. The dashboard comes up on localhost:3000, and lightrace status prints service health plus the SDK connection variables.
Python and TypeScript SDKs
Instrument an agent in a few lines. Errors are captured automatically as level: ERROR observations, with statusMessage and stacktrace attached.
pip install lightrace
from lightrace import Lightrace, trace
lt = Lightrace(public_key="pk-lt-demo", secret_key="sk-lt-demo")
@trace()
def run_agent(query: str):
return search(query)
@trace(type="tool") # remotely invocable from the UI
def search(query: str) -> list:
return ["result"]
run_agent("hello")
lt.flush()npm install lightrace
import { LightRace, trace } from "lightrace";
const lt = new LightRace({
publicKey: "pk-lt-demo",
secretKey: "sk-lt-demo",
});
const search = trace("search", { type: "tool" }, async (q: string) => {
return ["result"];
});
const runAgent = trace("run-agent", async (q: string) => search(q));
await runAgent("hello");
lt.flush();Integrations are available for LangChain, the Claude Agent SDK, OpenAI, and Anthropic. See the Python SDK and TypeScript SDK docs for the full list.
Drop-in Langfuse compatibility
Already using Langfuse SDKs? Point them at a Lightrace instance — both the v3 JSON batch ingestion API and the v4 OpenTelemetry (OTLP) endpoint are supported.
export LANGFUSE_PUBLIC_KEY=pk-lt-demo
export LANGFUSE_SECRET_KEY=sk-lt-demo
export LANGFUSE_HOST=http://localhost:3000How Lightrace compares
Where Lightrace sits against the tools it is most often compared with.
| Capability | Lightrace | Langfuse (OSS) | LangSmith | Sentry |
|---|---|---|---|---|
| Self-host (single command) | Yes | Manual setup | No (cloud-only) | Manual setup |
| Remote tool invocation | Yes | No | No | No |
| Error tracking & issue grouping | Yes | No | No | Yes |
| Stacktraces for failed tools & generations | Yes | Trace only | Trace only | App exceptions |
| Langfuse SDK compatible | Yes | — | No | No |
| Claude Agent SDK integration | Yes | No | No | No |
| Real-time trace streaming | Yes | Polling | Yes | Yes |
| Open source (Apache 2.0) | Yes | Yes (EE features paid) | No | BSL* |
* Sentry is source-available under the Business Source License, not an OSI-approved open-source license.
Frequently asked questions
What is Lightrace?
Lightrace is an open-source platform for agent tracing, observability, and error tracking, with remote tool invocation. It records every model call, tool run, chain, and span as a hierarchical trace, groups failures into issues you can triage, and lets you re-run any traced tool directly from the dashboard.
Why did Intent open-source Lightrace?
We built Lightrace for ourselves — every autonomous agent run on our trading desk is traced with it. Error and issue handling was the requirement we cared about most: when an agent breaks in production, you need to know what broke, why, and who owns the fix, not just stream logs. We are releasing it under Apache 2.0 because open tools like Kafka, Airflow, Jaeger, and Sentry set the standard we build on, and because agent observability should be something teams can self-host and own.
How is Lightrace different from Langfuse or LangSmith?
Lightrace covers the same tracing ground as Langfuse and LangSmith, but adds error tracking and issue grouping — every failed observation becomes a grouped issue with a stacktrace, culprit, priority, and triage state. It also supports remote tool invocation, so you can re-run the exact tool that failed from the dashboard. Lightrace is Apache 2.0 licensed and fully self-hostable with one command, with no cloud account required.
Is Lightrace compatible with the Langfuse SDKs?
Yes. Lightrace is drop-in compatible with Langfuse v3 and v4 SDKs. Point your existing Langfuse client at a Lightrace instance with the LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, and LANGFUSE_HOST environment variables — both the JSON ingestion API and the OpenTelemetry (OTLP) endpoints are supported.
How do I self-host Lightrace?
Install the CLI with npm install -g @lightrace/cli (or brew install SKE-Labs/tap/lightrace), then run lightrace init to generate a config with secrets and lightrace start to pull images and start all services. Lightrace runs on your own infrastructure with PostgreSQL, Redis, and Caddy — your traces, prompts, and agent data never leave your environment.
What SDKs and integrations are available?
Official Python and TypeScript/JavaScript SDKs cover tracing, error capture, and remote tool registration. Integrations include LangChain, the Claude Agent SDK, OpenAI, and Anthropic, so model and framework errors are captured without extra wiring. Langfuse-compatible SDKs work as well.
Why does agent tracing need error tracking?
Traces tell you what happened; issues tell you what broke. In a long agent run, a failed tool or a rate-limited model call can be buried under hundreds of successful spans. Lightrace fingerprints and groups failures into issues — normalizing high-cardinality noise like UUIDs and numbers, and bucketing common provider errors such as rate_limit, insufficient_quota, context_length_exceeded, and timeout — so one bad deploy produces one triageable issue instead of hundreds of alerts.
What does Lightrace cost?
Nothing. Lightrace is Apache 2.0 and self-hosted on your own infrastructure, with no per-seat or per-event pricing.
Run it on your own infrastructure
Lightrace is Apache 2.0 and free to self-host. Star the repo, run it locally, and tell us what breaks.
Related repos: Python SDK · TypeScript SDK · CLI