Jev knowledge base·verified Sep 22, 2026

jev primitives: choice, score and noul

Choose the correct Jev primitive: Choice for alternatives, Score for ordered levels and Noul for one yes/no condition. Includes common mistakes.

the short answer

Jev has three typed question primitives. Choice selects one option from a defined set and returns every option’s probability plus confidence. Score rates state against ordered descriptive levels and returns an expected score, level probabilities and confidence. Noul evaluates one yes/no condition and returns the probability of yes. Choose by the meaning of the answer, not the desired UI.

Choice
One option relative to other listed options
Score
Degree across ordered descriptive levels
Noul
Probability of one yes/true condition
Batching
Independent questions can share one state in one request

Start with the Shape of the Answer

The output shape is a modeling decision, not formatting. “Which team owns this ticket?” compares candidates, so it is a Choice. “How urgent is it?” uses ordered descriptions, so it can be a Score. “Does it request a refund?” tests one condition, so it is a Noul. Start with that plain-language question before writing criteria.

01One of these?Use Choice when exactly one listed candidate should win.
02How much, on ordered levels?Use Score when every level sits on one clear progression.
03Does this condition hold?Use Noul for one independently true-or-false statement.
04None of those?Use code, retrieval or a generative model; do not force the task into a Jev type.
Choose the primitive from what a correct answer means, before writing the prompt.

Which Primitive Should You Use?

NeedPrimitiveExample
Pick exactly one known routeChoiceBilling, technical, account or other
Measure an ordered semantic degreeScoreCan wait, this week or today
Test one condition independentlyNoulDoes this request ask for a refund?
Return an arbitrary name or paragraphNoneUse extraction code or a generative model

Start with the Output Contract, Not the Model Category

Several alternatives can return JSON, but JSON is transport rather than semantics. LangChain’s structured-output documentation describes constraining a generative model to a schema. Jev instead exposes bounded decision primitives and distributions. A trained classifier learns its answer boundary from examples; a rule executes a boundary written in code.

Required outputStrong baselineWhat must be validated
Exact Boolean from known fieldsCode or rulesInput parsing, invariants and edge cases
One label from a stable taxonomyClassifier, structured LLM or Jev ChoiceNo-match behavior, class errors and drift
Several labels that may coexistIndependent classifiers or Jev NoulsPer-label calibration and label dependencies
Ordered qualitative levelOrdinal classifier, structured judge or Jev ScoreRubric order and ordinal error
Unknown extracted valueParser, retrieval or generative structured outputSource support and schema validity
Explanation or proposed remediationGenerative LLM or humanEvidence faithfulness and usefulness

The Same Ticket Can Require All Three Primitives

These questions share evidence but do not mean the same thing. A billing ticket can be routine or critical, and it may or may not request a refund. Combining them into one label such as critical_billing_refund creates a brittle taxonomy with many rare combinations. Separate results preserve meaning and let application code apply a different threshold or review rule to each decision.

If the route labels are unrelated categories, do not use Score merely because a database stores them as 1, 2 and 3. Billing is not “less than” technical support. Conversely, urgency is ordered, so a Score rubric can describe a meaningful progression. The Score-versus-Choice guide works through this distinction.

Decision about the ticketCorrect primitiveWhy
Billing, technical, account or other?ChoiceThe approved routes compete and one route should win
Routine, time-sensitive or critical?ScoreThe levels move from lower to higher urgency
Does the customer explicitly request a refund?NoulThe condition can be assessed independently of route and urgency

Choice Is a Relative Decision

Choice selects among criteria keys supplied in the request. Its probabilities compare those options and approximately sum to one. Include an explicit no-match option when none may fit. Do not force unrelated labels into one Choice merely because the UI displays one result.

Choice confidence summarizes how concentrated the distribution is. It does not prove that the candidate set is complete, the state is sufficient or the selected label is true. A confident choice among bad options is still a bad workflow.

Score Uses an Ordered Semantic Rubric

Score criteria are ordered descriptions whose positions define their levels. The returned score is the probability-weighted expected position and may be fractional. Each level must describe a meaningful situation on its own. Jev 1.13 documentation warns against using Score to reconstruct exact numbers or perform arithmetic.

Noul Is a Yes Probability

A Noul asks whether one condition is true and returns a value from zero to one. A value near 0.5 means the yes and no outcomes have similar probability; it does not mean medium intensity. When labels are independently applicable, one Noul per label is more faithful than a Choice.

Noul has no separate confidence field. Calling the Noul value “confidence” obscures whether the value means probability of yes or certainty in a selected answer.

Common Primitive Mistakes

  • Using Choice when several labels may apply independently.
  • Using Score for exact numeric extraction, counting or arithmetic.
  • Treating a Noul near 0.5 as medium severity.
  • Assuming a Choice probability and equivalent Noul must match.
  • Omitting no-match when the candidate set may not contain the answer.
  • Packing several independently useful judgments into one vague instruction.

Questions in One Request Cannot Depend on Each Other

TypeSafe says multiple questions over shared state are evaluated independently and in parallel. The urgency question cannot read the route selected by the Choice beside it. Batch questions only when each can be answered from the original state. If a second decision needs the first result—for example, choosing a billing specialist only after selecting billing—make the first request, validate its response, construct the permitted specialist list in code and then make a second request.

Parallel evaluation is an interface property, not a guarantee of constant end-to-end latency. Payload size, question count, provider queues, rate limits and retries still affect the complete path. See multiple questions in one call for the dependency pattern and error handling for system behavior outside the model.

Changing a Primitive Creates a New Evaluator

Moving from one Choice to several Nouls changes the statistical question. Choice probabilities are relative to the listed candidates; each Noul tests its label independently. Their values need not match, and an old threshold must not be copied across. The same applies when replacing a vague Score with a Choice or rewriting criteria. Treat primitive, question, criteria, state projection and resolved model as one versioned instrument.

Before migration, freeze representative labeled cases and preserve the old raw distributions. Run old and new designs side by side, compare class errors, calibration, automation coverage and review volume, and inspect disagreements by slice. Promote only when the new design improves the operational target without hiding a costly error. The Choice-versus-Noul guide, evaluator scorecard and regression-testing guide provide the detailed protocol.

FAQ

What is Noul in Jev?

Noul is a yes/no primitive that returns the probability that its yes or true condition holds. It is a number from zero to one and has no separate confidence field.

Can Choice select multiple labels?

Choice selects one option. If labels can apply independently, ask one Noul per label or redesign the answer space.

Why can a Jev Score be fractional?

Score is the probability-weighted expected position across ordered levels, so uncertainty spread over adjacent levels can produce a value between their integer positions.

Can Jev answer multiple primitives in one request?

Yes. Choice, Score and Noul questions can share one state in one request. TypeSafe says they are evaluated independently, so one answer cannot depend on another answer from that same call.

Sources

Checked against the sources below on September 22, 2026. Model versions, prices and limits change.

  1. TypeSafe AI docs: Primitives
  2. TypeSafe AI docs: Introduction
  3. TypeSafe AI docs: Confidence
  4. TypeSafe AI docs: Jev 1.13 jaggedness