Choice, Score, Noul: a field guide
Every Jev call is a state plus a dictionary of questions. Each question has three parts: an id (used only by your code — never sent to the model), instructions (what to judge), and criteria (the options or scale). There are exactly three question types. Picking the right one is most of the craft.
Choice — pick one from a fixed list
Returns the chosen option, the probability of every option, and a confidence. The answer is hard-constrained to your list, so it is safe for routing and dispatch.
- Use it for: ticket dispatch, document-type detection, intent classification, A/B arm selection.
- Design rule: options must be mutually exclusive and collectively exhaustive for your domain. "billing / technical / sales" is clean; "technical / urgent / billing" is not (urgent is not a department).
Score — place on an ordered scale
Returns a position on your scale — it can land between two levels — plus a distribution and confidence. You define what each level means.
- Use it for: severity, frustration, quality grading, priority.
- Design rule: give each level an operational definition, not a vibe. "3 = has a concrete failing step we can reproduce" beats "3 = pretty bad." The model reads your criteria literally.
Noul — yes / no, as a probability
Returns P(yes) in 0–1. There is no separate confidence field — the probability is the signal. (The name is a play on "nought" / the zero side of a binary.)
- Use it for: "is this a refund request?", "does this contain a bug report?", "is this state safe to act on?"
- Design rule: phrase it in the positive and keep it single-hop. Jev reads literally — double negations and implied conditions fail. "Does this request a refund of money already paid?" is better than "Isn't this not a non-refundable charge?"
Choosing between them — a quick rubric
| Ask yourself | Use |
|---|---|
| Is the answer a member of a fixed set? | Choice |
| Is the answer a degree, and do you want a number to threshold? | Score |
| Do you want a probability you can act on directly (gate, sample, alert)? | Noul |
Next: see these wired into a real pipeline in Patterns, with working code, and the sharp edges in Known limitations.