BrowserStack AI Evals
Tracing

Sessions

Viewing sessions in BrowserStack AI Evals — grouping traces into conversations, session metrics, and session detail.

Sessions

Sessions group related traces together under a shared identifier. This is most useful for multi-turn conversations where each user message produces a separate trace but they all belong to the same chat session.

What Is a Session

A session is created automatically when your SDK sends a trace with a session_id field set. All traces sharing the same session_id are grouped into one session in the dashboard.

Sessions are useful for:

  • Viewing the full turn-by-turn history of a conversation
  • Computing session-level metrics (total cost, total tokens, total duration)
  • Evaluating conversational quality across multiple turns

Sessions List

Sessions list in the dashboard

Navigate to Logs → Select 'Sessions' Tab in the left sidebar.

The sessions list shows one row per session. Each row displays:

ColumnDescription
Session IDThe session identifier from your application
TimestampWhen the session was created
First InputPreview of the first user message
Last OutputPreview of the most recent AI response
Last ActiveTimestamp of the most recent trace
TracesNumber of traces in the session
ObservationsTotal observation count
Total DurationTime from first trace to last trace
Total CostSum of costs across all traces
Total TokensSum of tokens across all traces
Total LatencySum of latency across all traces
EnvironmentEnvironment tag

Additional columns (hidden by default): Version, Release, Trace Tags, Level. Use the column visibility toggle to show/hide columns.

Click any row to open the session detail view.

Session Detail

The session detail view uses a split-screen interface:

  • Left pane (The Narrative): A chat interface showing User (right) and AI (left) bubbles. Each message pair displays its specific cost and latency.
  • Right pane (Trace Inspector): The technical trace tree for the selected message pair. Clicking a message in the chat highlights its corresponding execution trace.

The top of the page shows session-level summary metrics: total traces, total tokens, total cost, and session duration.

The chat view shows each turn in the conversation in chronological order. Click any message pair to inspect its trace in the right pane.

Click any trace in the right pane to open the full trace detail view. You can navigate between traces in the session using the Previous/Next buttons.

Use the ← Back to Sessions link to return to the sessions list.

Session-Level Evaluation

Sessions can be scored using Online Evaluations. When creating an online evaluation rule, select Session as the event type to evaluate at the session level rather than individual traces.

Session-level evaluation is useful when you need to measure:

  • Whether the AI successfully completed a multi-turn task
  • Conversation coherence and context retention across turns
  • State drift or memory issues in long conversations

Scores from session evaluations appear in the session detail view under the Scores section.

Actions

Add to Human Review

Route an entire session to a Human Review queue. Reviewers see the Conversation View by default, allowing them to score the narrative flow rather than raw logs.

Add to Dataset

Capture multi-turn data for fine-tuning or testing:

  • Full Session: Export the entire message history and expected tool calls as a dataset item.

Setting a Session ID in the SDK

To associate traces with a session, pass a sessionId when creating each trace:

const trace = testOps.trace({
  name: 'chat-turn',
  sessionId: 'conv-user-123-session-456',
  input: { message: userMessage },
});
trace = test_ops.trace(
    name="chat-turn",
    session_id="conv-user-123-session-456",
    input={"message": user_message},
)
Trace trace = traceManager.trace(TraceBody.builder()
    .name("chat-turn")
    .sessionId("conv-user-123-session-456")
    .input(userMessage)
    .build());

All traces with the same session_id are automatically grouped into one session in the dashboard.