Laminar logo
Y CombinatorBacked by Y Combinator

Understand why your agent failed.
Iterate fast to fix it.

Open-source observability platform for agent tracing,evals, and signal extraction from traces at scale.

Tracing screenshotTracing screenshot

Features for
every step of
agent development

01.

Tracing

Start tracing your agent in minutes

Two lines to integrate with the AI frameworks or SDKs you use

GeminiOpenAIGroqMistralBedrockPlaywrightOpen Telemetry
browser-use screenshot
claude screenshot
vercel screenshot
open-hands screenshot
langchain screenshot
light-llm screenshot

Docs

True Agent Debugger

First-of-its-kind agent developer experience

Docs

agent.run

navigate

navigated to https://laminar.sh

agent.step

gemini-2.5-flash

I can see the Laminar homepage. Let me click on the Pricing link in the navigation to view their pricing plans.

click

clicked 'Pricing' link

agent.step

gemini-2.5-flash

The pricing page has loaded. I can see three tiers: Free, Hobby, and Pro. Let me extract the details.

extract

extracted pricing tier information

agent.step

gemini-2.5-flash

Extracting pricing information. The Free tier offers 1GB data with 15-day retention.

extract

extracted Free tier details

agent.step

gemini-2.5-flash

Continuing extraction. The Hobby tier is $25/month with 2GB data and 30-day retention.

extract

extracted Hobby tier details

agent.step

gemini-2.5-flash

Final extraction complete. I've gathered all pricing data and will now compile the summary.

write_file

writing to pricingsummary.md

agent.step

gemini-2.5-flash

Now I need to navigate to the docs page to gather additional information about the API.

click

clicked 'Docs' link

agent.step

gemini-2.5-flash

The documentation page is now loaded. I can see sections for Tracing, Evaluations, and SDK reference.

extract

extracted documentation structure

agent.step

gemini-2.5-flash

Let me explore the SDK reference to understand the available methods and integrations.

click

clicked 'SDK Reference'

agent.step

gemini-2.5-flash

Found the Python SDK documentation. It shows initialize(), observe(), and evaluate() as main methods.

extract

extracted SDK method signatures

agent.step

gemini-2.5-flash

I have gathered all necessary information. Writing the final summary report with pricing and SDK details.

write_file

writing to final_report.md

0s

10s

20s

30s

40s

50s

60s

70s

80s

90s

100s

Full trace context at a glance

Get full context of what your agent was doing and where it went wrong without digging through hundreds of spans.

Docs

Explain the error that's happening

Diagnose the core cause of the issue

Summarize my trace for me and explain the root cause of the error

Summarize my trace for me and explain the root cause of the error

Convoluted trace? Ask AI

Ask our AI agent to summarize, analyze, and debug your trace no matter the complexity.

Docs

Session replay
for browser agents

Laminar captures browser screen recordings and automatically syncs them with agent traces. Easily integrates with Browser Use, Stagehand, Playwright, Kernel, Browserbase, and more.

Docs

02.

Analysis

Signals answer any question, from any trace, at scale

Describe a Signal you're looking for, Laminar extracts it from past and future traces.

Analyze millions of traces

down to the individual span

Define what you're looking for and

specify the output format

My agent failure

Definition

Output Schema

Name

Type

Description

Category

Enum

Category of the failure

Details

String

Details of what failed and why

Tools

Number

Number of tools used

Signals agent detects events from

traces based on your definition

Events

Timestamp

Category

Description

Jan 9, 8:47

tool_error

The tool get_shared_data failed to return valid results for the query...

Jan 9, 11:00

api_error

The agent attempted to fetch via curl on the remote endpoint but received...

Jan 9, 14:13

logic_error

An incoming user request was misidentified as a system command due to...

Jan 9, 17:26

timeout

The second tool call made on the database mcp server timed out after...

Jan 9, 20:39

validation_error

Input validation failed on the request body parameter for the batch...

Jan 10, 23:52

tool_error

The tool parse_json returned malformed output when processing nested...

Jan 10, 2:05

api_error

API rate limit exceeded while attempting batch processing of embeddings...

Jan 10, 5:18

logic_error

The routing logic incorrectly classified the intent as a search query...

Jan 10, 8:31

timeout

Connection timeout when reaching the external auth provider endpoint...

Jan 10, 11:44

validation_error

Schema validation rejected the response format from the completions...

Jan 11, 14:57

tool_error

The tool write_file encountered permission denied on the output directory...

Jan 11, 17:10

api_error

REST API returned 503 during the health check sequence for service...

Jan 11, 20:23

logic_error

Conditional branch took wrong path due to null comparison in filter...

Jan 11, 23:36

timeout

Request to embeddings service exceeded 30s timeout during peak load...

Jan 11, 2:49

validation_error

Field type mismatch in the aggregation pipeline stage caused silent...

Jan 12, 5:02

tool_error

The tool search_index failed with corrupted query vector from cache...

Jan 12, 8:15

api_error

OAuth token refresh endpoint returned invalid grant error on rotation...

Jan 12, 11:28

logic_error

Loop detection triggered false positive on recursive tool invocation...

Jan 12, 14:41

timeout

Database connection pool exhausted during peak load causing cascade...

Jan 12, 17:54

validation_error

Parameter bounds check failed for the pagination offset in list query...

Jan 13, 20:07

tool_error

The tool get_shared_data failed to return valid results for the query...

Jan 13, 23:20

api_error

The agent attempted to fetch via curl on the remote endpoint but received...

Jan 13, 2:33

logic_error

An incoming user request was misidentified as a system command due to...

Jan 13, 5:46

timeout

The second tool call made on the database mcp server timed out after...

Jan 13, 8:59

validation_error

Input validation failed on the request body parameter for the batch...

Jan 14, 11:12

tool_error

The tool parse_json returned malformed output when processing nested...

Jan 14, 14:25

api_error

API rate limit exceeded while attempting batch processing of embeddings...

Jan 14, 17:38

logic_error

The routing logic incorrectly classified the intent as a search query...

Jan 14, 20:51

timeout

Connection timeout when reaching the external auth provider endpoint...

Jan 14, 23:04

validation_error

Schema validation rejected the response format from the completions...

All events are clustered

for high-level insights

Clusters

1

Incorrect tool call

0

2

Confused user

0

3

API call failed

0

Jan 12

Jan 13

Jan 14

Jan 15

Docs

Platform-wide SQL

Query all platform data with SQL

Feed your Evals with Datasets straight from SQL queries

SQL API to pull data into your application

Docs

SQL Editor

1

2

3

4

SELECT *

FROM spans

WHERE trace_id = 'e44f93ea-35f5-d9d8-1dc1-ae29863504a9'

ORDER BY start_time ASC

Run

span_id

name

span_type

start_time

end_time

duration

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

00000000-0000-00...

agent.run

DEFAULT

2025-12-16 21:48:18.50

2025-12-16 21:48:18.50

May 05, 5:30

Custom dashboards

Track tokens, latency, and more.

Correlate data across users and sessions.

Comprehensive UI dashboard builder with support for custom SQL queries.

Docs

Dashboard

03.

Evals

Robust Evals

Verify progress, catch regressions, and iterate with confidence

Evals
Evals

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

evaluate({

data: dataset,

executor: capitalOfCountry,

evaluators: {

accuracy: (output: string, target: string | undefined): number => {

if (!target) return 0;

return output.includes(target) ? 1 : 0;

},

},

config: {

instrumentModules: {

openAI: OpenAI

}

}

})

Evals SDK you want to use

Define your agent, dataset, and success metric. We handle the rest.

Reward

Average

0.72

Trace

123.36s

81k

0.005

Reader

Filters

Search

Metadata

Ask AI

navigated to https://laminar.sh

gpt-05-nano-2025-08-07

Current state shows we are on https://laminar.sh with several top navigation links, including a visible Pricing link at index 4. The user asked to go to laminar.sh and describe their pricing plans. The immediate next actionable step is to navigate to the Pricing page to access the pricing information. I will click the Pricing link (index 4) to load the pricing page, after which I will extract and summarize the pricing plans on the page in the next step.

click

gpt-05-nano-2025-08-07

Current task: on the Pricing page for laminar.sh and need to extract and describe pricing plans. The previous step shows the Pricing link was clicked and the page likely loaded. Based on browser_state, there are multiple pricing tiers listed: Free, Hobby, Pro, Enterprise, plus a Pricing calculator with Free tier and token-based pricing. I will perform a structured extraction of the pricing sections to summarize plan names, prices, included features, data retention, and team members. This will prepare a clear description for the user. No navigation changes needed; just extract the page content relevant to pricing for accurate description.

extracted pricing plans and their details on Laminar Pr...

gpt-05-nano-2025-08-07

  • Free
  • Price: $0 / month
  • Data: 1 GB data / month
  • Data retention: 15 days
  • Team members: 1
  • Support: Community support
  • Hobby
  • Price: $30 / month
  • Data: 3 GB data / month included
  • Additional data: $2 per 1 GB
  • Data retention: 30 days
  • Team members: Unlimited
  • Support: Priority email support
  • Pro
  • Price: $150 / month

gpt-05-nano-2025-08-07

Reviewing the agent history shows step-by-step progress: the user asked to go to laminar.sh and describe pricing plans. We navigated to the pricing page and extracted structured details about Free, Hobby, Pro, Enterprise, and the pricing calculator. The read_state_0 provides a concise, structured summary including price, data, retention, team members, and support for each plan. Next, I will consolidate this into a readable summary file for easy reference and provide a concise description to the user. Since the instruction prefers stepwise actions, I'll save the structured summary to a file for traceability and then prepare the user-facing description in the next step.

writing to pricingsummary.md

As granular as you want

See high level results or dive deep into your individual traces.

Docs

Laminar's evals help us maintain high accuracy while moving fast. We now use them for every LLM based feature we build.

Hashim Reman

CTO, Remo

Self-host anywhere

Fully open-source, Apache 2.0 licensed

Set up with Docker in three lines

Deploy anywhere with Helm charts

Docs

Production-grade
to the core

Written in Rust for blazing fast performance

Terabytes of data with ease

HIPAA compliant, SOC2 Type 2 (in observation)

HIPAA compliantSOC2 compliant

Compliance