Skip to main content
A session groups the traces of one multi-turn conversation — each user turn is its own trace, and they roll up into a session by a shared session_id. The Sessions page lists them and lets you replay a whole conversation end to end.

How traces become a session

Set a stable session id on the spans of every turn and RunAgain rolls them up automatically. Any of these attributes work (first non-empty wins):
  • session.id
  • gen_ai.conversation.id
  • langfuse.session.id
Turns are ordered by start time. If you don’t set a session id, each trace still stands alone in the Traces list — sessions are purely additive.

Session list

Same layout as the traces list: each row shows the session id (click to copy), agents, turns (traces), duration, the session’s eval scores, and time. A colored right border flags status (red error, green ok), with an error stick next to the eval score. Saved-view tabs with live counts — All · Errors · Slow >3s · Eval’d — filter the list and drop a filter token (× to clear), and a free-text search matches over session id, agent, and user. Eval scores show the overall score (colored by threshold) + three ticks (faithfulness · trajectory · schema), or when unsampled.

Session detail

Opening a session shows:
  • Evals — a chip row of the project’s evals in scope for this session (across its turns), each marked ✓ when it produced a score or · pending otherwise.
  • Session scores — session-level scores plus an Add score button to attach a manual one to the whole conversation (see scoring from the UI).
  • Session time composition — the working-vs-idle bar for the whole conversation, so the gaps between turns (user think-time) are visible alongside the agent’s work.
  • Session waterfall — every turn’s spans on one shared time axis. Each turn is a collapsible section with its own summary bar; click a turn header to open that turn’s full trace.
  • Conversation — each turn rendered as a chat thread, including subagent drill-down within a turn. A long system prompt (more than 10 lines) collapses to its first 10 lines with a Show more toggle.

Where session ids come from

Any integration that exports to the OTLP endpoint can set a session id. For example, thread it through the Claude Agent SDK or set it as a span attribute in the Vercel AI SDK via experimental_telemetry.metadata.