Introduction
Conformal Logit Inference (CLI) turns the raw output of any LLM — a generated-token log-probability, a sampled answer, a judge’s verdict, a hidden-state activation — into a finite-sample statistical guarantee. It is not a model. It is a calibration and decision layer that sits between the model you already use and the code that has to act on its output.
CLI ships three engines:
- Conformal prediction — prediction sets, intervals, and risk-controlled decisions with a marginal or group-conditional coverage guarantee.
- Venn-Abers calibration — probability intervals with a formally proven calibration guarantee, instead of heuristic confidence scores.
- E-values — anytime-valid drift monitors, safe optional stopping, and false-discovery-rate control that survives arbitrary dependence between simultaneous decisions.
All three require only one assumption: that your calibration data is exchangeable with the production traffic the guarantee is meant to cover. None of them require the underlying model to be accurate, unbiased, or trained any particular way — a worse model only produces bigger sets, wider intervals, or more escalations, never an invalid guarantee.
Where to start
| If you want to | Read |
|---|---|
| Make a first guaranteed call | Quickstart |
| Understand the one assumption | Exchangeability |
| See the math behind each engine | The three engines, Venn-Abers, E-values |
| Pick a primitive | Primitives |
| Follow an end-to-end scenario | Guides |
| Connect your model | Backends |
| Read a guarantee card | Guarantee reference |
| Run everything inside your own network | Self-hosting |
| Handle failures | Errors and retries |
The seven primitives
| Primitive | Returns | Guarantee |
|---|---|---|
Belief | A Venn-Abers probability interval for one statement | Venn-Abers calibration |
Set | A set of options | Coverage |
Interval | A conformalized ordinal or continuous interval | Coverage |
Gate | auto_approve, escalate, or abstain | Risk target, risk target with probability , or FDR target |
Claim | Long-form output filtered to supported claims | |
Judge | A verdict, with an escalation cascade | Human agreement on non-escalated verdicts |
Route | Which backend in a cascade served the request | Cost budget or accuracy bound |
Every guarantee in the table is marginal (averaged over exchangeable data) or group-conditional (averaged within a declared group). None is a promise about one individual decision.
Design principle
CLI never returns a guarantee it cannot back. Every primitive requires a
calibration profile, and a profile with too few labelled examples for the
requested serves a heuristic-labelled answer instead of silently
under-covering. The SDK makes that visible (answer.is_heuristic) and can
refuse it outright (CLIClient(strict_guarantees=True)). See
Guarantee reference for the exact schema.