Unify Logo Footer.svg
Unify Agentic AI
Logo
Sessions and Traces

Sessions and Traces

Logo

4 mins READ

Sessions and Traces are the observability screens for watching and inspecting how your agent runs — a session is one user's conversation, and a trace is one execution the agent processed within it.

Overview

An agent's Observability area groups the live-data views: Sessions, Traces, Spending, Memories (advanced agents only), and Evaluation. Sessions and Traces are each a stats strip over a filterable table. The same screens exist for AI teams, where Observability is one of the team's three top tabs and offers only Sessions and Traces — Spending, Memories, and Evaluation are agent-only views. Because these are live-data screens, they're hidden when you're viewing a saved version of the agent.

Sessions, Traces, and Spans

A session is the conversation record itself — its id is the Case ID you see in the table — and it stores who talked to the agent, on which channel, the first message as its subject, and running metadata like duration and response status. A trace is one user message the agent processed, and each trace is made of spans, the individual recorded steps inside that turn. Each session records the channel it came from, the user (resolved to their profile — on Slack, via their profile email), the agent, the first message as subject, bookmarks/pins, and whether a response is currently being generated.

Two timing figures are maintained as the conversation runs: session duration (latest agent reply time minus the first user message time) and, per user message, the response time — how long the agent took to answer it. The Traces table's Latency column shows this response time.

When a New Session Starts or Continues

The session boundary depends on where the conversation happens:

Channel

Behavior

Copilot

Every New Chat is its own session; a chat stays one session no matter how long you keep it.

Slack

Your message continues the existing session with that agent if your previous message was within the last 24 hours; otherwise a new session starts. The window is rolling — each message extends it.

Email (Gmail/Outlook), WhatsApp

Your messages keep continuing your previous conversation with that agent — no time cutoff.

Microsoft Teams, Telegram, voice calls

Each message or call is handled as a fresh session.

Schedule

Recurring runs keep appending to the same ongoing session.

API

The caller decides: passing the same session id continues that session, omitting it starts a new one.

Sessions don't get explicitly "closed" — a session simply stops growing when nothing continues it, and its duration reflects the span from first message to last reply.

The Traces View

Each row in the Traces table is one processed user message: Input is that message, Spans counts the recorded steps in that turn, Tokens sums the input and output tokens across those steps, Cost is what the turn cost, and Latency is how long the user waited for the answer (measured to the end of streaming when the reply streams). The table lists Trace ID, Input, Start Time, Latency, Tokens, Cost, and Spans. To read the agent's reply, open the trace. Above the table, a stats strip summarizes Total Traces, Avg Spans per Trace, Avg Latency, and Avg Tokens Consumed.

Click a trace to open its timeline, which walks through the steps the agent took. Filter by date range (with ready-made range presets), filter by attribute, and sort. If nothing ran in the selected period, the table reads No data in the selected period and offers buttons to widen the date range. If filters are applied, it reads No matching results found with a Clear filters button.

The Sessions View

The Sessions table lists conversations with Case ID, First Message, Last Message, User, Cost, Tokens, Traces (count), Duration, and Start Time. The Case ID column (and the Traces table's Trace ID) shows only the last few characters of the id, with a copy button that appears on hover so you can grab the full id without it cluttering the row. The stats strip shows Total Sessions, Avg Traces/Session, Avg Session Time, Avg Tokens Used, and Total Cost.

Hovering a row reveals an open button that opens the session in a new browser tab, landing on its first trace so you can read the whole exchange. The empty states are the same as on the Traces table: No data in the selected period (with buttons to widen the date range), or No matching results found with a Clear filters button when filters are applied.

Default Date Range and Loading

Sessions and Traces both open on Today's data — if the conversation you're after happened earlier, widen the date range before concluding there's nothing there. Both tables load about 30 rows at a time and fetch more as you scroll, and both are sorted newest-first by start time.

Inspecting a Session, Trace, or Span

Opening a session gives you three levels of the same stat strip, each scoped to what you're looking at:

Level

Stats shown

Session header

Traces, Latency, Tokens, Cached, and Cost, alongside the session's subject, its short id, who it was By and when, and a View Conversation button.

Trace header

Latency, Tokens, Cached, and Cost for that one execution.

Span (timeline step) header

Start, Latency, Tokens, Cached, and Cost for that single step.

Cached only appears when the turn actually reused a cached prompt; it counts the cached-read tokens, and its tooltip breaks the figure down as "{n}% of input cached" with Cache read, Cache write, and Uncached input rows. The Tokens tile shows input and output separately with a Token usage tooltip (Input / Output / Total). Latency and cost tooltips name their level — Total latency / Trace latency / Span latency, and Total cost / Trace cost / Span cost. Where a figure genuinely isn't available, the tile shows a dash rather than a misleading zero.

Open a session to see its full detail, then drill into any trace to see the trace timeline — the ordered steps the agent ran for that request: the model calls, the tools it invoked, and the knowledge it retrieved, with timing. This is the place to diagnose a bad answer: walk the steps to see what the agent retrieved, which tool it called, and where the response went wrong.

Does the View Update Live?

Partly. On an open session, the trace list and the session's header totals refresh about every 30 seconds while the browser tab is visible. New traces can take a few minutes to appear, so a conversation in progress doesn't fill in instantly. A trace still executing shows a spinner with an In progress tooltip, and finished ones show Success, Error, or Completed with errors. The trace timeline itself does not auto-refresh: once you've opened a trace, use the refresh button beside the Trace and Metric tabs to re-read it. That's deliberate — a finished trace never changes, so there's nothing to poll.

Span Kinds

Every step the agent takes during a turn is captured as a span. The most common span kinds are:

Span kind

What it captures

LLM

A model call.

Tool

A tool/action invocation.

Retriever

Fetching knowledge chunks.

Reranker

Re-ordering retrieved chunks.

Embedding

Turning text into vectors.

Guardrail spans

Input and output guardrail checks, such as Content Filters, Denied Topics, PII Mask, and Custom Word Filter.

The timeline can also show other steps, such as Query, Re-phraser, Vector Search, and Semantic Search.

Each span records its input and output, start time and time taken, whether it succeeded, and — where applicable — the model used, token counts (including cached-prompt tokens billed at reduced rates), per-span cost, the tool's app and name, the topic in play, and any guardrail violation detected on that step. Spans also know their parent step, which is how the timeline reconstructs the nested flow of a turn, and tool spans show the tool app's icon in the timeline. The token and cost totals you see on traces, sessions, and Spending are summed from these spans.

Evaluated Sessions

Inside Sessions you can toggle between All Sessions and Evaluated Sessions. The Evaluated view shows sessions that online evaluation scored, with a result and a Metrics panel of per-metric aggregate scores. It only has data once you've enabled online evaluation and configured metrics — until then it shows No eval setup yet with a Setup Online Evaluation button. If evaluation is on but nothing matched, it reads No evaluated sessions yet and offers Review Session Filters (check your sampling rate and session filter).