Glossary: Abstention
Abstention is the product decision to not execute the automatic action because the distribution is too flat, the label is other, or a Noul sits in an ambiguous band. TypeSafe’s confidence docs treat “I don’t know” as a useful signal. Abstention is not a Jev answer field and not an HTTP status. You compute it in your route() from Choice/Score confidence, a Noul band, or an explicit other option.
This glossary entry is for builders who already heard of Jev / System One and need a citable definition before they retry the same body when unsure. jev.pro is an independent unofficial field guide — not affiliated with TypeSafe AI. Confirm confidence language on docs.typesafe.ai. We do not sell or issue API keys.
How it shows up
Implement abstention in your route(), not as a hidden HTTP status. Official errors are 401, 422, 429, and 529 — none of those mean “unsure.” A 200 with low confidence is the usual “I don’t know.” Abstention is often followed by human handoff or a safe default — that next step is fallback policy, not a second invented label from the same call.
Choice and Score expose confidence derived from probabilities. Noul has no confidence; use |noul − 0.5| or bands on noul. TypeSafe examples often use 0.5 as a “genuinely unsure” floor and 0.9 for high-stakes acts — illustrations, not shipped defaults. Pin jev-1.13.0 once fitted; jev-latest can move. Calibration is group-level under the RLCD vendor claim, not a per-row guarantee.
Log the signal, the verdict abstain, and the reason code (low_confidence, other, noul_band) in a decision trace. Schema-safe ≠ factually correct: abstaining does not prove the runner-up was right.
Contrast
Abstention vs fallback. Abstention is “we will not auto-act on this evaluation.” Fallback is the path you take instead (human queue, default, cheaper model) or when Jev is down / 429 / 529. Do not collapse them: a live 200 with flat probabilities is not an outage.
Abstention vs confidence threshold. The threshold is the number. Abstention is the outcome when you miss it.
Abstention vs other. other is a Choice option you listed. You still decide whether other means abstain or a real handler.
Abstention vs retry. Retrying the same call does not add state. Gather more text, ask a human, or fail closed.
Common mistakes
- Mapping low confidence to HTTP 422. 422 is a bad body.
- Retrying the identical POST because you abstained.
- Treating rank 2 as mandatory after abstain. See ranked route.
- Looking for
answers.foo.confidenceon a Noul. - Asking Jev to emit the word
abstainas generated text.
See also
FAQ
Is abstention a Jev answer field?
No. You compute it from confidence, Noul bands, or an other option.
Should I retry when I abstain?
Not the same call. Gather more state, ask a human, or fail closed.
Does abstention require an other Choice option?
No. You can abstain purely from a confidence floor. other is useful when “none of these” is a real label.
Is low confidence a 4xx?
Usually 200. Hold in code.
Limits
This is a jev.pro working definition unless TypeSafe uses the same word as an API field. We do not invent search volume. Schema-safe answers are not automatically factually correct.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.