Skip to main content
Traces (sidebar: Observe → Traces) lists every trace Moda has ingested and is the entry point for inspecting a single agent run turn by turn. A trace is the full record of one agent run — every message, tool call, thinking block, and step that shares one conversation_id (the trace ID) — whether or not a human was in the loop. New traces appear within seconds of sending data; analysis results attached to them (use case, world state, signals) fill in within minutes.

Trace list

The list supports:
  • Search — the “Search traces…” box filters the list.
  • Filters — environment (Production / Development / Staging) and use case.
  • Time range — All time, Last 24 hours, or Last 30 days.
  • Sort — Newest first, Oldest first, Most messages, Fewest messages.
  • Pagination — page sizes 10 / 25 / 50 / 100 with Previous / Next; the total count loads separately.
The first page refetches automatically every 15 seconds while the tab is visible, so new traces stream in without a manual refresh. Filters, sort, and page size are reflected in the URL, so a filtered view can be shared as a link. Arriving from a user’s detail page pre-filters the list to that user; a chip above the table clears the filter.

Columns

The Columns button shows or hides columns; column widths can be dragged. Preferences are saved in your browser. Clicking a row opens the trace detail in a new tab.

Trace detail

The header shows the trace ID, date, duration, and turn count, plus badges when they apply: a frustration score (shown when the score is 5 or higher), the tool-failure count, and the use case with its confidence. Previous / next links step through neighboring traces. A toggle switches between the two views: Timeline and World State. While a trace is still mostly unprocessed, a strip lists the pending pipeline stages (segmentation, world-state, cluster, frustration); it disappears once most stages have completed.

Timeline

Timeline is the raw record of the run: every message and content block in order. Each row shows content appropriate to its type:
  • User messages — the message content, rendered as markdown.
  • Agent responses — the model and provider above the response text.
  • Thinking — collapsed to a single expandable line.
  • Tool calls — expandable input and result; failed calls are highlighted.
Every message has a copy button on hover. Messages that changed the tracked world state carry event chips; selecting a turn opens an inspector for that turn’s state changes. A filter rail on the left toggles block categories — Prompts, Agent Responses, Thinking, Tool Calls (with per-tool sub-filters), Images, Email, Call Transcripts — each with a count, plus Clear Filters. When the trace carries signals, context banners appear above the timeline:
  • Tool Call Failure — the tool name and error, with Jump to failure.
  • User Frustration Detected — the score, trajectory, and primary cause, with clickable quotes that jump to the quoted turn.
Evidence links from Signals and Problems open the Timeline scrolled to the relevant turn or failed tool call.

World State

World State shows what Moda extracted from the trace: the tasks the user pursued and the facts established along the way. It has two tabs. Tasks lists the trace’s task threads with a resizable detail pane. Each thread has a status (Open / Resolved / Cancelled) and can contain subtasks (Open / Done / Blocked / Cancelled). The detail pane shows a progression timeline of actions — Message, Tool call, Correction, Subtask opened, Subtask completed, Failure, Retry — and each step can jump back to the matching turn in the Timeline. Facts lists the facts extracted from the trace; when the position is known, each fact is tagged with the turn where it was established. Both tabs are searchable (“Search threads” / “Search facts”); Tasks additionally supports filtering by thread status, subtask status, and action type, and sorting by Most recent turn, Status, or Title (A→Z). While the build is in progress, a “Still building world state” banner shows partial results and updates live.

User memory panel

At the top of the World State view, a collapsible User memory panel shows a persona document built from the user’s messages — voice, decision style, and constraints. The panel header shows how many user messages have been folded in, and each observed trait carries a chip with its occurrence count and the last message where it appeared.

OpenTelemetry span viewer

A standalone span viewer exists at https://moda.dev/trace/<traceId>. It renders the OpenTelemetry span tree for one OTLP trace ingested over /v1/traces, with a span detail pane, and supports a ?span= parameter to deep-link a specific span. It is auth-gated and not linked from the sidebar — open it by URL when you have an OpenTelemetry trace ID. This is the per-call span view; the Traces page above is the run-level view.

Next steps

  • Signals — the detections that produce the banners and badges on trace pages.
  • Use Cases — the clusters behind the Use case column.
  • Data API: traces — fetch traces and world state programmatically.