Grounding & verification
A grounded citation is a claim paired with a span — a quote and its location in a source — that is checked against that source. It’s the mechanism behind trustworthy answers. But it’s important to be precise about what it does and doesn’t guarantee.
flowchart LR
claim["Claim<br/><small>+ Span (quote + ref)</small>"] --> verify{"Span.verify(source)<br/>quote present?"}
verify -->|yes| ok["✅ Grounded<br/><small>answer keeps the cite</small>"]
verify -->|no| reject["❌ Rejected<br/><small>fabricated quote dropped</small>"]
classDef good fill:#f0fdf4,stroke:#22c55e,color:#14532d;
classDef bad fill:#fef2f2,stroke:#ef4444,color:#7f1d1d;
class ok good;
class reject bad;
What verification proves
Section titled “What verification proves”- The quote exists in the source.
Span.verify(source)confirms the cited text really appears where the claim says it does. A fabricated quote fails. - The answer is anchored. With
Cited[T], a whole structured answer’s spans can be validated against a corpus at once (validate_cited_output).
What it does NOT prove
Section titled “What it does NOT prove”- It is not paraphrase-checking. Verification checks that a quote is present — not that the model’s surrounding interpretation of that quote is correct. Ground in quotes, not summaries.
- It is not retrieval correctness. Verification confirms the cited source says what’s quoted; it doesn’t prove that source was the right one to consult. Retrieval quality (BM25, the corpus) is a separate concern.
Why the distinction matters
Section titled “Why the distinction matters”Overclaiming what a citation proves is its own failure mode. KAOS’s contract is narrow and honest: the quote is really there, or the claim is rejected. That narrowness is what makes it reliable — paired with the refusal contract, the agent quotes-or-refuses rather than paraphrases-and-hopes.