Skip to main content

Documentation Index

Fetch the complete documentation index at: https://laminar.sh/docs/llms.txt

Use this file to discover all available pages before exploring further.

A Laminar trace can have thousands of spans. The trace view gives you several ways to read it: Transcript (the default), Tree, and Timeline (via the view-mode dropdown), plus Metadata and Chat with trace side panels. Selecting any span in any view opens the full span detail pane on the right.

Transcript view

Transcript view presents an agent trace as a conversation rather than a tree of span names. Laminar auto-extracts the agent input, the LLM turns, the tool calls, and the subagent invocations, and lays them out top-to-bottom so you can read what happened instead of click-hunting for it. It is the default view on every trace.
Single-agent trace in transcript view

Why transcript, not a span tree

A span tree gives every row equal visual weight: the outer agent span, its query span, the planning LLM turn, each tool call, and every nested subagent are all just rows. On a long trace (six to ten subagents, dozens of tool calls) you end up scrolling an outline to reconstruct what the agent actually did. Transcript view flips that: it shows the agent input, the LLM outputs, the tool-call arguments and results, and each subagent as a single collapsed card. Spans that exist only to hold children (wrappers, framework internals) are elided from the reading flow. The decision you care about when debugging an agent (what did it see, what did it decide, what did it call) is what transcript view surfaces first.

Inputs to every agent and subagent, surfaced for free

The input to the root call and to each subagent is parsed out of system and user messages and rendered inline as a labelled Input block. You do not need to instrument anything: any OpenAI- or Anthropic-style chat completion is parsed automatically, and Laminar will surface the task prompt even when it is buried many messages deep in the request. This matters most when you are reading a trace that someone else wrote, or a trace from a run you started three days ago. Before transcript view, recovering what did we actually ask this agent to do? meant opening the first LLM span, finding the input JSON, expanding the messages array, and scrolling to the last user message. Now it is the first thing on the page.

Subagents are cards, not a flood of spans

Multi-agent runs (Claude Agent SDK, OpenAI Agents SDK, LangGraph, custom orchestrators) produce deeply nested trees. Transcript view collapses each subagent invocation into a named card that shows the subagent’s name, duration, token/cost badges, the Input prompt it was given, and an Output preview of its final message.
Multi-agent trace in transcript view
Clicking a card expands it in place: the card fills out with the subagent’s own LLM turns, tool calls, and any further nested subagents. Other cards on the page stay collapsed, so you can drill into one branch without flooding the rest of the view.
Subagent card expanded in place

Inline previews on every row

LLM turns and tool calls render a one-line preview next to the row: the first part of the model’s response for an LLM turn, and the first argument or result for a tool call (for example, Read fizzbuzz.py or Read /sandbox/scratch/...). You can scan a long trace and get a sense of what was happening at each step without expanding anything.

Switch between Transcript and Tree

Transcript is the default, but Tree view is one click away and useful when you need to confirm parent/child nesting, debug a custom integration, or inspect span attributes at specific nodes in the hierarchy. Use the view-mode dropdown in the trace toolbar.
Multi-agent trace in tree view

Tree view

Open Tree view

  1. Open a trace (from Traces).
  2. In the trace view toolbar, open the view-mode dropdown.
  3. Select Tree (switch back the same way).
  • Hierarchy-first: Shows parent/child nesting so you can follow the trace’s call structure.
  • Collapsible branches: Collapse spans with children to hide entire subtrees.
  • Inline metrics: Duration on every row; tokens and cost badges on LLM spans.
  • Fast navigation: Virtualized list stays responsive on large traces.
  • Synced minimap: Jump to spans and scrub the shared session-time cursor.
Use Tree view when you want to understand structure: what called what, and where time or cost sits in the hierarchy.

Timeline

Open Timeline

  1. Open a trace (from Traces).
  2. In the trace header, click the Timeline toggle (Gantt icon) below the search bar.
  3. The condensed timeline appears at the top of the trace view. Click the toggle again to hide it.
Timeline view
  • Time-first overview: Spans render as colored bars on a single time axis.
  • Zoom controls: Use the +/- buttons (or cmd/ctrl + scroll) to zoom in and out.
  • Hover needle: Move your cursor to see precise time markers.
  • Span selection: Drag to select a range; non-selected spans dim and the selection is clearable.
  • Session playhead (if available): Shows the browser session position on the timeline.
Use the condensed timeline when diagnosing latency, overlaps, gaps, or long-running steps.

Metadata

Open Metadata

  1. Open a trace (from Traces).
  2. In the trace view toolbar, click Metadata.
Metadata view
  • Read-only source of truth: Shows the trace metadata exactly as stored.
  • JSON-first: Defaults to a JSON view with formatting and syntax highlighting.
  • Search/copy friendly: Quickly find keys/values and copy raw text as needed.
Use Metadata when you need to verify context fields (inputs, run config, tags, custom attributes) without digging through spans. See Metadata.

Chat with trace

Open Chat with trace

  1. Open a trace (from Traces).
  2. In the trace view toolbar, click Chat with trace.
Ask AI
  • Automatic summary: Generates a trace summary (and deeper analysis) to orient you quickly.
  • Span-aware answers: When the assistant cites spans, they show up as clickable chips that jump you to the referenced span.
  • Iterate fast: Ask follow-ups about errors, unexpected outputs, tool calls, or performance.
  • Resettable: Start a new chat when you want a fresh thread.
Use Chat with trace when you want a quick narrative explanation or guided debugging without manually scanning the whole trace.

Open in SQL Editor

  1. Open a trace (from Traces).
  2. In the trace view header, open the Trace dropdown.
  3. Select Open in SQL editor (opens in a new tab).
  • Pre-filled query (trace): Starts with SELECT * FROM spans WHERE trace_id = ... ORDER BY start_time ASC.
  • Pre-filled query (span): From a span’s detail header dropdown, Open in SQL editor creates SELECT * FROM spans WHERE span_id = ....
Use SQL Editor when you need precise filtering, aggregation, or auditing on the raw spans table beyond what the UI exposes. See SQL Editor.

Next steps

Define Signals

Turn outcomes and failures you see in the transcript into structured events you can query and alert on.

Query across traces

Use the SQL editor, SQL API, CLI, or MCP server to slice every span, event, and signal across your traces.