Noul: Jev's Yes/No Question Type Explained
Last checked · Independent guide, not affiliated with TypeSafe AI
A Noul is Jev's yes/no question type. You write the question in instructions, optionally describe what yes and no mean in criteria, and Jev returns one number, noul, the probability that the answer is yes. Noul answers have no separate confidence field; the probability is the signal.
“Noul” is TypeSafe’s own word for its yes/no question type. (If you arrived here from a search, “noul” is also Romanian for “the new”; this page is only about Jev.) On Vercel AI Gateway the same type is called boolean and the answer field is probability.
The shape of a Noul question
Section titled “The shape of a Noul question”{ "model": "jev-1.13.0", "state": "The second charge on my card looks wrong to me. What happens now?", "questions": { "reports_problem": { "type": "noul", "instructions": "Does the customer say a charge might be wrong?" } }}{ "reports_problem": { "type": "noul", "noul": 0.97 } }In Python the same question is Noul(instructions="..."); in the JavaScript SDK it is noul("...").
What the number means
Section titled “What the number means”The noul value is the probability that the answer is yes: near 1 is a clear yes, near 0 a clear no. TypeSafe trains Jev so that these probabilities are calibrated, meaning that across many answers given 0.9, about nine in ten should be right.
A value of 0.5 means yes and no are equally likely. It does not mean “a medium amount”. TypeSafe’s docs make this point with a hiring example: asking “Is this candidate strong in Python?” invites an uninterpretable middle value because “strong” is undefined. If you want a level, use a Score. If you want yes or no, define the condition sharply.
Wording changes the answer
Section titled “Wording changes the answer”We sent Jev the same customer message with two different yes/no questions on September 19, 2026:
“Is the customer asking for money back?” came back at exactly 0.50. The customer never asks for a refund, but a refund is a plausible next step, so the model split the difference. “Does the customer say a charge might be wrong?” is something the message states directly, and it came back at 0.97.
TypeSafe’s notes on Jev 1.13 describe this behavior as literal reading: the model answers the question you wrote, not the one you meant. Write the condition you actually want to branch on.
Pinning down yes and no with criteria
Section titled “Pinning down yes and no with criteria”For borderline cases, criteria lets you describe both sides. Each side can be a sentence, or a structured object with a definition and examples:
"escalation": { "type": "noul", "instructions": "Does the customer threaten to escalate outside the company?", "criteria": { "true": "Mentions a bank dispute, chargeback, lawyer, regulator or public review", "false": "Complains but keeps the conversation with support" }}Against our test message, which ends “otherwise I’ll dispute it with my bank”, this question returned 0.98.
Keep the criteria consistent with the instructions. TypeSafe warns that a Noul whose true side describes a “no” performs worse.
Choosing a threshold
Section titled “Choosing a threshold”A common starting point is to treat values above 0.5 as yes. Better practice is to tune the threshold on a few dozen examples you have labeled yourself, and to use two thresholds when mistakes are costly: act automatically above one, send to a person between them, ignore below the other. See Confidence for the three-band pattern.
Noul versus a yes/no Choice
Section titled “Noul versus a yes/no Choice”You could also ask a Choice with the options yes and no. TypeSafe cautions that the two are not interchangeable: in its example, the same question asked as a Noul returned 0.22, while the Choice put 0.01 on yes. A Choice compares the options against each other; a Noul judges one statement on its own. Do not reuse a threshold tuned on one for the other.
Asking a question and its negation as two Nouls will not always give probabilities that sum to 1 either. If your logic needs “not X”, compute it in code as 1 - noul.
When to use a Noul
Section titled “When to use a Noul”- Filters and guardrails: is this spam, is this a jailbreak attempt, does this contain personal data?
- Gates in a workflow: did the user confirm, is the ticket about billing?
- Many independent checks at once: 20 yes/no questions in one request took 332 ms in our test, no longer than one.
For “which one of these”, use a Choice. For “how much”, use a Score.