Per-turn grounding citations
An AI agent that draws on your knowledge base can answer out of it — or it can answer around it, and the reply reads the same either way until the agent says something wrong. The grounding audit closes that gap: every turn the agent takes, on chat and on voice alike, carries a record of what the model actually grounded on.What each turn carries
Every completed turn exposes agrounding block on the agent runtime’s response, alongside the flat fields that were already there. The audit is per turn, additive, and identical whichever channel the turn came through.
citations is the part that makes it an audit rather than just a retrieval log: the model received the chunks in context, and it chose which — if any — to cite inline. chunks tells you the surface retrieval found; citations tells you what the answer actually stood on.
Voice agents get the same audit
Voice agents run on the same agent runtime as chat agents — the voice gateway calls it turn by spoken turn. The grounding audit is attached to every turn either way, with nothing to configure and no second surface to learn: if a chat agent grounded its answers, its voice twin grounds them identically, and the audit follows. For each spoken turn the caller hears, the operator can answer three questions afterward: what knowledge was in front of the model, what it cited, and how well retrieval matched.Read the audit in the dashboard
Open Agents → your agent → Conversations → a conversation → turn debug. Per turn, the retrieval hits and tool calls are expandable inline with the transcript — the same surface that carries the turn’s latency and cost already carries its grounding audit. Anull confidence on a turn means the agent answered without a retrieval pass — read that as “no knowledge grounding ran this turn”, not as a score of zero.
The citations-audit surface: grade every turn, one verdict per turn
The audit also feeds a dedicated review surface that grades each turn’s citations against what retrieval actually found. Open Agents → your agent → the “Citations audit” tab — each turn is labeled one of four verdicts:ok— retrieval ran and the model cited a valid marker. The answer stood on knowledge.no_marker— retrieval ran but the model emitted no[KB-N]marker. An ungrounded answer slipped through.orphan_marker— the model emitted marker(s) but either nothing was retrieved, or every marker index pointed past the retrieval window. That’s a hallucinated citation, and the conversation view silently drops these markers — this audit is the only place they are visible.empty_retrieval— no retrieval and no markers (a greeting, a small-talk turn). Counted separately so a “no KB” setup doesn’t read as 100 % ungrounded.
Via the API
The same verdicts are available programmatically, per agent, newest first:limit accepts 1–200 (default 50). No new storage — the audit reads the same per-turn governance records the agent runtime already writes.
A tenant-wide voice rollup lives at GET /agents/grounding-citations-audit for owner/admin roles: totals across every voice agent, a per-agent breakdown, the most recent ungrounded turns as a triage list, and a daily trend.
Enforce citations for high-trust agents
The audit is observational — it reports, it doesn’t block. When a turn that drew on retrieved knowledge must refuse to answer uncited — on a healthcare line, a financial disclosure, a regulated workflow — opt the agent in withsafetyConfig.require_citation.
With the flag on, a turn that received retrieval context and emitted no well-formed [KB-N] marker fails the output guardrail instead of being delivered. Turns with no retrieval (a greeting, an off-topic reply) pass through unaffected; enforcement only bites on a grounded turn. See the model’s [KB-N] citation convention in your agent’s system prompt and the require_citation field on the safety config.