Agentic Chat

June 18, 2026 · View on GitHub

title: Agentic Chat Observability description: Conversation-level observability - TraceRecords grouped by conversationId via ConversationAggregator. Multi-turn rate, loop depth, total cost per session, outcomes.

Agentic Chat

Agentic Chat dashboard - eight KPI cards (Conversations, Avg messages / conv, Avg cost / conv, Avg duration, Multi-turn rate, Tool-using rate, RAG-using rate, Max loop depth p95) and the Messages over time stacked-by-loop-class chart

Agentic Chat - ConversationAggregator groups TraceRecords by conversationId to surface behavioural metrics that only make sense across multiple turns. Multi-turn rate identifies whether the window's traffic is a sustained session or a series of one-shot questions.

Purpose - conversation-level observability. The trace stream produces one TraceRecord per turn; this tab groups those by conversationId (via ConversationAggregator) and surfaces behavioural metrics that only make sense across multiple turns - multi-turn rate, loop depth, total cost per session.

When to look here

  • "Are users running long, multi-turn sessions or one-shot questions?" - Multi-turn rate KPI + Conversation duration chart.
  • "Is the agent looping?" - Max loop depth (p95) KPI + Agentic loop depth chart. A loop depth above 5 in steady-state is usually a misconfigured agent.
  • "Which conversations cost the most?" - Cost per conversation chart + the conversations grid (sortable).
  • "Are agents actually invoking tools end-to-end?" - Tool-using rate KPI.
  • "Are conversations completing or timing out?" - Conversation outcomes chart.
  • "Which models dominate inside conversations (vs per-turn)?" - Models used in conversations.

Source

ConversationAggregator walks ObservabilityRingBuffer.snapshot() and groups by conversationId. Computes per-conversation totals (token sums, cost via ModelPricingService, tool call counts, RAG flags, distinct models / providers, error counts, loop depth, duration).

Controls

All dashboards share the Observability global settings - time window, refresh interval, custom range. Agentic Chat has no tab-specific controls beyond those.

KPI cards (eight)

CardShowsSource
ConversationsNumber of distinct conversation IDs in the windowConversationAggregator group count
Avg messages / convMean message count per conversationAggregated
Avg cost / convMean cost per conversation in active currencyAggregated (uses ModelPricingService + CurrencyService)
Avg durationMean wall-clock duration from first to last turnFirst-turn timestamp to last-turn timestamp
Multi-turn ratePercentage of conversations with more than one user messageBoolean per conversation
Tool-using ratePercentage of conversations that called at least one toolBoolean per conversation
RAG-using ratePercentage of conversations that triggered a vector queryBoolean per conversation
Max loop depth (p95)95th percentile of tools / messages ratio across conversationsHeuristic for agentic looping

Charts (eight)

ChartTypeReading
Messages over timeLine, total messages per bucketHigh slope → busy chat workload
New conversations / minuteLineSpike = wave of new sessions; flat = warm steady state
Agentic loop depthHistogram of per-conversation loop depthTail with depth >5 → agent loops
Conversation durationHistogram (seconds)Short vs long-session split
Tools used in conversationsHorizontal bar of distinct tools across conversationsConversation-level tool palette
Models used in conversationsHorizontal barShould match the configured model unless the agent is provider-switching
Cost per conversationHistogram, active currencyLong-tail upper bin = expensive conversations
Conversation outcomesStacked bar (Completed / Errored / Cancelled)If Errored climbs, something is wrong end-to-end

Tables

Conversations grid - First · Conv id (short) · Messages · Duration · ... - click a row to open the Conversation Thread dialog (documented alongside Trace Detail on the Traces page).

Cross-references