Skip to content

Traces & analysis

Inspect execution spans from the TUI and review deployed-agent traffic on the web — traces, session triage, SQL, and notebook-style aggregates.

Analysis answers “what happened?” — the live conversation shows the answer the agent gave; traces and analytics show what the agent actually did to get there. You have two inspection surfaces: the TUI trace browser for the session in front of you, and the web analysis tree for workspace-wide patterns.

Press Ctrl+T (or run /traces) to open the trace browser. It shows the execution spans for the current project — every tool call, every model call, every nested task span — as a filterable list. Open a trace to see its span tree, tool arguments, and results.

Reach for /traces when the question turns from “what did the agent say?” into “what exactly executed?” It’s the span-level view of the same work the conversation is showing you.

For the rawest view, /spans opens the local JSONL file that backs the active session. One row per exported span, pretty-printed JSON for the selected line, and optional follow-mode while the session is still producing spans.

SurfaceOpens withScope
Session browserCtrl+BConversations for this runtime
Trace browserCtrl+T / /tracesExecution spans for the current project
Raw spans viewer/spansLocal JSONL file for the active session

See Managing sessions for the session browser half.

A running TUI is for driving one agent. The web UI is for reading what all of them have done. The platform gives you three views over deployed-agent traffic — session triage, SQL, and notebook — sharing the same workspace and project filter so you can move between them without losing scope.

/{org}/agents/sessions ← triage deployed sessions and read their transcripts
/{org}/analytics/query ← ad-hoc SQL against otel_traces and friends
/{org}/analytics/notebook ← aggregated runs, evaluations, and stats

Open the route family from anywhere in the app. The project selector sits above the subtab bar; the workspace is carried in the URL (?workspace=prod&project=auth) so links and reloads keep the slice intact.

The Agents tab is the landing page for deployed-agent operations. Left column is a paginated list of sessions (25 per page); right column is the detail pane for the session you select.

The detail pane has two views:

  • Reports — every report tool call the agent made, in order. Click one to render its markdown in the right pane (toggle to source view with the overlay). Useful for report-driven agents where the report is the product.
  • Transcript — the full message history, tool calls inlined, rendered the same way the TUI does.

The list refreshes every 15 seconds. LAST MSG shows each session’s latest activity; messages from the last 15 minutes use a green badge whose tooltip reports the recent message count.

Transcripts open at the oldest message. Use N new messages for a recently active session or Go to latest for an older one to load the newest page and start at the bottom. Recently active sessions keep polling in this view; if you scroll upward, new messages wait behind an N new messages button instead of moving your scroll position. Go to oldest returns to the beginning, and Load more messages extends the transcript from whichever edge you are reading.

Use this tab when a question starts with “what happened in session X?” To ask which agent or model is busiest, filter the list itself — Filters narrows by project, agent, model, owner, source, and state, and the session count beside it reports how many match across the whole workspace, not just the page you are looking at.

The Data tab is a SQL editor. Default query reads from otel_traces:

SELECT SpanName, Duration, StatusCode
FROM otel_traces
ORDER BY Timestamp DESC
LIMIT 100

⌘+Enter runs the query; selecting a subset of text runs only the selection, which is how you iterate on a clause without losing the rest of the query. The schema panel on the side lists the columns of otel_traces — click a column name to append it to the query.

Results render in a sortable grid. Export CSV writes the current result set to query-results.csv.

Reach for Data when:

  • you know the exact shape of the answer (a specific table, specific filter, specific columns)
  • the question spans more history than the recent-sessions feed covers
  • you need structured rows to export or paste into another tool

The Notebook tab assembles a multi-source view: runs, evaluations, workspace stats, model stats, and tool stats for the same project. It’s the right surface when the question combines resources:

  • Which tools does this agent reach for most, and how does that correlate with failures?
  • How do models compare across the last week of evaluations?
  • Which runs are expensive relative to the value they produced?

Notebook is read-only and derived — it composes existing data rather than writing new resources. Use it to shape a question before you drop into Data for the exact rows.

If the question is…Start on
“What happened in this one session?”Agents
“Is this session waiting on me?”Agents
“Which agent/model is running the most?”Agents
“What does traffic look like this week?”Data
“I know exactly what I want — give me rows.”Data
“How do runs, evals, and model usage line up together?”Notebook

Getting to analysis from a running session

Section titled “Getting to analysis from a running session”

The usual path is TUI first, web second:

  1. Reopen the relevant session with Ctrl+B when the question starts from a specific conversation.
  2. Drop into /traces (Ctrl+T) for span-level execution detail on that session.
  3. Open the web analysis tree when the question broadens from “what did this one agent do?” to “what pattern is this part of?”

See Managing sessions for the session browser and Projects for how the project filter narrows what you see here.