What Is Hallucination Detection?
Hallucination detection is the practice of finding statements in generated output that nothing supports — either nothing in the material supplied with the request, or, on the wider reading, nothing verifiable anywhere. It runs after generation, on the text that came back, and it is a classification problem in its own right, with its own two directions of error.
The claim is the unit, and extracting it is most of the work
Detection does not operate on answers; it operates on statements pulled out of them. An answer is a mixture — recalled material, material supplied in the context, framing, hedges, and arithmetic performed along the way — and a single verdict over the mixture is unusable, because the thing worth catching is normally one clause inside a paragraph that is otherwise sound. So the first step decomposes the output into short assertions that each stand alone: references resolved, the subject restored, one thing asserted per assertion, and nothing carried implicitly from a neighbouring sentence.
That step is where most of the error is generated and it is almost never where anyone looks for it. An assertion extracted with a dangling reference gets marked unsupported, because the checker cannot establish what it is about. An assertion that silently sheds a qualifying clause gets marked supported, when the qualified version would not have been. Both present as checking failures and are diagnosed as checking failures, which is how a great deal of effort goes into replacing the checker while the decomposition stays exactly as it was.
What counts as a hallucination at all is not settled, and an evaluation that does not say which reading it uses is difficult to interpret. The narrow reading covers fabricated specifics — a reference that does not exist, an identifier or a function name that was never real, a quotation nobody said. A wider reading covers any statement not supported by the supplied sources, including statements that happen to be true. A wider one still covers every factual error, at which point the term is a synonym for wrongness and has stopped distinguishing anything.
| Method | What it compares against |
|---|---|
| Entailment against supplied sources | The passages that were in the context. Answers whether the assertion follows from them, and nothing beyond that. |
| Verification against an external store | A knowledge base, an index, or a fresh retrieval run for the assertion itself, which may reach material the original request never saw. |
| Structural checking | A real schema, a real symbol table, a real catalogue. Applies wherever the assertion names something that either exists or does not. |
| Sampling for self-consistency | Other outputs for the same request. Measures whether the assertion is stable across repeated generations rather than whether it is true. |
| Uncertainty signals | The distribution the output was drawn from. Indicates where selection was unconfident, which correlates with fabrication without being the same thing. |
The first three compare an assertion against something outside the system, and can therefore be wrong about the world. The last two compare the system against itself and cannot be right about the world by construction: a fabrication produced confidently and repeatedly passes both of them, which is the case they are least able to see and the one that does the most damage.
Where it is placed, and what is done with a flag
Placement decides most of the cost. Checking before delivery adds the checking step to every response's latency and pays for a second pass over material that was mostly fine, which is affordable where an answer is consequential and not where it is conversational. Checking a sample afterwards costs nothing anyone waits for and catches nothing before it is read; it is a measurement of the system rather than a control on an answer. Checking only the statements that carry a citation, or only the ones a structural check applies to, is the middle position most deployments settle into — and it is a deliberate decision about which errors are worth catching rather than a compromise between the other two.
A flag is not a verdict, and the design question that follows it is the one most often left unanswered. Blocking a flagged answer trades a wrong answer for no answer, which is the right trade less often than it sounds, since an operator who receives nothing frequently retries with a worse prompt. Annotating the statement moves the judgement to the reader, which works wherever there is a reader. Regenerating draws another sample from the same distribution over the same source material, so it addresses instability and not error. Routing to review is the only response that resolves anything, and review capacity is a fixed quantity that the flag rate has to be tuned against rather than an assumption.
The most useful correction to how this subject is usually framed is that detection is downstream while the cheap fixes are upstream. A great many fabrications in agent systems are not subtle claims about the world; they are names of things that were required to exist and do not — a field absent from a schema, a function absent from a library, an identifier that resolves to nothing. Those are caught by looking the name up, not by reasoning about the sentence, and the lookup is fast, cheap and exactly right where a judging pass is slow, expensive and approximate. A detection budget spent entirely on the hard cases lets the mechanical ones through.
How the Registry classifies an unsupported-statement review task
Flagging statements in a generated answer that no supplied source supports and routing each flag to review is filed as data processing in this registry's classification. Two existing artefacts go in — an answer, and the sources it was meant to rest on — and what comes out is a set of judgements about the first with respect to the second.
The Registry's canonical brief for this entry is filed as:
Flag statements in a generated answer that no supplied source supports and route each flag to review.
Submitted for assessment it is
classified as Data processing, and its wording is hashed once — to
a763b19377364ff9…, the first sixteen of sixty-four hexadecimal
characters — with the wording itself never stored. The hash is what the derivation
reads.
That class's own page is /tasks/analysis.
Classification is one of three inputs. The other two are the configuration submitted with the task, and the permanent chart derived from that configuration — fixed by the model name, the training cutoff and the temperature alone, and never reading the task at all. The same ascendant, ruling planet and harmony therefore appear on every assessment a given configuration receives, whatever it was asked to do. The derivation is published in full at /method.
What this page does not claim about hallucination detection
Which reading of the term an implementation uses, how it decomposes an answer, and what it compares each assertion against are the three choices that decide what a detector finds, and the canonical brief above settles none of them. This registry inspects no system's output, operates no detector, and issues no assessment that is afterwards checked against what the assessed system produced.
The Registry does not run this task, does not inspect any system's output for it, and validates no assessment it issues against what afterwards happens. What it does is compute — from a published method, for one submitted task and one submitted configuration — a verdict and a recommended execution window. It computes neither on this page.
Questions about hallucination detection
- What is hallucination detection?
- Hallucination detection is the practice of identifying statements in generated output that no supplied source — and on the wider reading, no verifiable reference at all — supports. It runs after generation and is itself a classifier, with false positives and false negatives of its own.
- What is the difference between reference-based and reference-free detection?
- Reference-based methods compare each assertion against something outside the system: the supplied passages, a knowledge base, a schema, a fresh retrieval. Reference-free methods have nothing to compare against and use the system’s own behaviour instead — agreement across repeated samples, or the confidence of the selection. The second family measures stability rather than truth.
- Why is the answer broken into separate claims?
- Because support is not uniform across an answer, and a verdict over a whole paragraph hides the one clause worth finding. Decomposition into short self-contained assertions is also where most detection error originates, since an assertion extracted with an unresolved reference or a dropped qualifier will be judged wrongly by whatever checks it.
- Does detection prevent hallucinations?
- No. It finds them after they have been produced. What it enables is a decision — block, annotate, regenerate, or route to review — and each of those carries a cost that is paid on the false positives as well as on the real ones.
- How does this relate to groundedness?
- Groundedness is the property being measured: whether each statement is supported by the material supplied. Detection is the activity of finding the statements that are not. Where sources are supplied the two nearly coincide; they separate where nothing was supplied, since a groundedness score then has no referent and detection has to fall back on signals internal to the system.
Related entries
Groundedness · Retrieval-augmented generation (RAG) · Agent monitoring
Order an assessment for data processing tasks
The Registry issues a permanent, numbered task risk assessment for one submitted task and one submitted configuration. EUR 1.90 Standard, EUR 4.90 Extended, EUR 14.90 Full Chart, which adds the permanent chart. Assessments from EUR 1.90; machine-readable at /pricing.json.