Grounding check
Check whether a model's reply is supported by the sources its request gave it, and flag or withhold one that isn't. Off by default; a quality check that decides nothing when its judge can't answer.
What it does
When the request gave the model something to answer from, Intertrace asks a judge whether the reply says only what those sources support. The judge splits the reply into its factual claims, marks each one supported, not supported (the sources don't say it) or contradicted (the sources say something else), and scores the reply from 0 to 1. A cheap check that uses no model also counts the numbers and names in the reply that appear nowhere in the sources; it is evidence on the record, never a decision.
| Where | Sources |
|---|---|
| Model requests through the gateway | The request's tool results (tool messages in the conversation). |
Screening API, direction: "output" | The grounding.sources you send with the reply, and optionally grounding.question. |
A request with no sources is not checked (not_applicable): Intertrace never guesses what the reply should be grounded in.
What a score does
| Setting | Reply scored under your threshold |
|---|---|
| Off (default) | Nothing is checked. |
| Flag | The reply goes through and is recorded as a flag, GROUNDING_NOT_SUPPORTED, with its score. |
| Withhold | The reply is refused (GROUNDING_BLOCKED) and the agent is told why. An agent in Monitor records GROUNDING_BLOCKED_MONITOR instead. |
Streamed replies are not checked yet (recorded not_checked_stream). The judge reads at most 30,000 characters of sources and 6,000 of the reply; anything beyond is not judged and the record says truncated. The check adds the judge's time to a non-streamed reply when there are sources.
With the screening API
POST /v1/security/screen
Authorization: Bearer itr_rt_…
{"direction":"output","text":"The savings rate is 5%.",
"grounding":{"sources":["As of July 2024, the savings rate is 4.5%."],"question":"What is the rate?"}}
→ {"decision":"FLAG","reason_codes":["…","GROUNDING_NOT_SUPPORTED"], …,
"grounding":{"status":"checked","mode":"flag","score":0.1,"verdict":"not_grounded",
"claims":{"supported":0,"not_supported":0,"contradicted":1}, …}}What is recorded
Each record carries grounding: status, mode, threshold, score, claim counts, the cheap check's counts, whether anything was cut and the judge's time. Never the reply, the sources or a claim's text. Turn it on in Policies → Data & attacks → Advanced → Grounding check; the sources and the reply are sent to the model Intertrace uses for its own checks.