Laminar
An observability platform for tracing, evaluating, alerting on, and debugging AI agent runs.
What does this agent do, and when should you use it?
Laminar is an open-source observability platform for AI agents with tracing, Signals, Evals, dashboards, and data annotation and datasets. Its OpenTelemetry-native SDK can automatically trace integrations including Vercel AI SDK, Browser Use, Stagehand, LangChain, OpenAI, Anthropic, and Gemini. MCP and CLI access let a coding agent query traces, spans, metrics, and events with SQL for investigation and debugging. It can be self-hosted through Docker Compose, with the lightweight UI exposed at localhost:5667, while production deployments can use the full Compose stack or the managed platform. Its server-side AI workers and frontend AI features can use Gemini, OpenAI-compatible endpoints, or Anthropic Claude through AWS Bedrock.
An application initializes the TS SDK with Laminar.initialize({ projectApiKey }) or the Python SDK with Laminar.initialize(project_api_key=...). The SDK automatically records supported framework and provider calls, while custom functions can be traced with TypeScript's observe({name: 'poemWriter'}, async ...) wrapper or Python's @observe() decorator; these capture function inputs and outputs as tracing data. Laminar presents the resulting runs in real time, supports full-text search across span data, builds dashboards over traces, metrics, and events, and visualizes and compares evaluation results. Through MCP or the CLI, a coding agent can issue SQL queries over traces, spans, metrics, and events. Signals read agent runs and send a Slack notification when a user-defined plain-English behavior matches.
- An agent team using OpenAI, Anthropic, or Gemini that needs to inspect the traces and spans from individual production runs.
- An engineer building with LangChain, Vercel AI SDK, Browser Use, or Stagehand who wants automatic tracing with minimal instrumentation work.
- A development team running evaluations locally or in CI/CD that needs an SDK and CLI to run evals and a UI to compare outcomes.
- An operations owner investigating looping agent behavior who wants to define a Signal such as “agent is stuck in a loop” and receive a Slack alert.
- A team that wants its coding agent to diagnose incidents by querying trace, metric, and event data through MCP or a CLI.
- A team that needs a locally deployed observability stack and can run the supplied Docker Compose deployment.
What are this agent's strengths and limitations?
- Combines automatic tracing of supported frameworks and providers with explicit function-level `observe` instrumentation for custom application code.
- Places tracing, Signals, Evals, SQL querying, dashboards, and dataset annotation in one platform, keeping run data and evaluation workflows together.
- Its MCP and CLI access provide a direct path for coding agents to investigate operational data with SQL.
- The repository describes a Rust implementation, 20x trace compression, a real-time trace engine, full-text span search, and a gRPC tracing exporter.
- It offers both Docker Compose self-hosting and a managed option, with multiple documented provider paths for server-side AI features.
- Self-hosted SDK configuration requires `baseUrl` and correct ports, but the supplied material does not include a complete copyable configuration example.
- Frontend AI features such as chat-with-trace and SQL-with-AI, plus server-side AI workers, require an external LLM provider and relevant API keys or AWS credentials.
- The quick Compose stack is positioned for quick starts and lightweight use; production use is directed to the managed platform or `docker-compose-full.yml`, requiring further deployment evaluation.
- Self-hosted deployments collect anonymized usage telemetry by default unless `LAMINAR_TELEMETRY_DISABLED=true` is set.
- Using a custom Postgres schema alongside another Drizzle-managed service may require manual intervention because of migration-journal conflicts.
How do you install or deploy this agent?
For the self-hosted quick start:git clone https://github.com/lmnr-ai/lmnrcd lmnrdocker compose up -d
Then open http://localhost:5667. Before SDK use, create a project and generate a project API key. The repository says self-hosted SDKs require baseUrl and correct ports, but does not provide a complete copyable self-hosted SDK configuration. To enable frontend AI features or server-side AI workers, choose LLM_PROVIDER=gemini with LLM_API_KEY, LLM_PROVIDER=openai with LLM_API_KEY, or LLM_PROVIDER=bedrock with AWS credentials and AWS_REGION in the root .env.
How do you use this agent?
For TypeScript, run npm add @lmnr-ai/lmnr, then initialize with Laminar.initialize({ projectApiKey: process.env.LMNR_PROJECT_API_KEY }); wrap custom functions with observe({name: 'poemWriter'}, async (topic) => { ... }). For Python, run pip install --upgrade 'lmnr[all]', call Laminar.initialize(project_api_key="<LMNR_PROJECT_API_KEY>"), and add @observe() to functions you want to trace. Use the UI to inspect traces and evaluation results, and use the available MCP or CLI access when a coding agent needs to query traces, spans, metrics, or events.