Choice
Pick one option from a named set you define — which team owns this ticket, which tool the agent should reach for next, which of your routes fits. You get the selection plus a probability across every candidate.
Up to 255 options.
LAB / 01 · TYPED DECISIONS
The Jev model answers typed questions about your data instead of writing prose. Start with a customer message, see exactly what goes in and what comes back, then explore routing, scoring, pruning, and evidence checks.
Independent lab · No account required · Synthetic samples included

LAB / 02 · WHAT IT IS
Most AI features start the same awkward way. You want a yes or no, a category, or a number — so you ask a chat model, get back a paragraph, and write a parser to dig the value out. Then the paragraph changes shape and the parser breaks.
Jev AI removes that step. TypeSafe calls it a System One model, after Kahneman’s fast, intuitive mode of thinking: it is built for the snap judgments a program makes thousands of times a day, not for deliberation you read. You hand the Jev model one piece of state — a ticket, a message, a draft, a tool call an agent wants to make — plus the questions you need answered about it. It returns those answers already typed.
Because nothing is generated, there is no prose to misparse and no format to defend against. The answer is a value with a probability attached, and your own code decides what that value is worth.
LAB / 03 · THE THREE QUESTIONS
Ask as many as you like in a single call — they are evaluated in parallel.
Pick one option from a named set you define — which team owns this ticket, which tool the agent should reach for next, which of your routes fits. You get the selection plus a probability across every candidate.
Up to 255 options.
Place the state on an ordered rubric you write out in plain language, from lowest to highest. Useful for severity, urgency, risk, or quality. The result can land between levels, because it is a probability-weighted position rather than a single pick.
Rubrics of 2–10 levels.
Estimate how likely a statement is to be true. You get a number between 0 and 1, not a flat yes — 0.97 and 0.51 mean very different things to a policy, and collapsing them to true throws away the part that mattered.
Probability, not a verdict.
LAB / 04 · OPERATING PRINCIPLE
Hand over one inspectable state and the typed questions you want answered about it. No transcript, no memory, no hidden chain of reasoning.
Keep the parts separate: the selected value, the probability spread across options, and TypeSafe’s own confidence metadata all say different things.
Thresholds live in your code, not the model. The same Jev answer can auto-resolve in one app and go to human review in another — and tuning that costs nothing, because it never calls the model again.
LAB / 05 · TRY JEV
Enter a customer message. Jev classifies the topic, scores its urgency, and estimates whether it still needs a follow-up.
YOUR INPUT
A customer message
JEV WILL ANSWER
What is this customer message primarily about? If several topics appear, choose the one tied to the customer’s main request.
choiceHow urgent is the customer’s need, based only on the impact and timing stated in the message?
scoreDoes the customer still have an unresolved problem or an explicit request that needs a follow-up?
booleanJEV’S OUTPUT
Three typed answers
No action is needed.
A routine question or low-impact request.
A problem affects use, but no clear deadline or major blockage is stated.
Core work is blocked or a near-term deadline is stated.
A severe outage, active loss, or similarly serious interruption is happening now.
Jev returns typed signals your support system can use. This example does not send a reply or create a ticket.
PROVIDER CONFIDENCE · SEPARATE FROM ANSWER PROBABILITY
Message category 79%Urgency 62%{
"origin": "illustrative-example",
"input": {
"message": "I was charged twice for this month’s subscription. Could you check the second charge and refund it?"
},
"questions": {
"category": {
"type": "choice",
"instructions": "What is this customer message primarily about? If several topics appear, choose the one tied to the customer’s main request.",
"criteria": {
"billing": "Charges, payments, invoices, refunds, pricing, or subscription billing.",
"technical-support": "A product feature is broken, failing, unavailable, or behaving unexpectedly.",
"account": "Sign-in, password, profile, access, permissions, or account administration.",
"other": "The main topic does not fit billing, technical support, or account administration."
}
},
"urgency": {
"type": "score",
"instructions": "How urgent is the customer’s need, based only on the impact and timing stated in the message?",
"criteria": [
"No action is needed.",
"A routine question or low-impact request.",
"A problem affects use, but no clear deadline or major blockage is stated.",
"Core work is blocked or a near-term deadline is stated.",
"A severe outage, active loss, or similarly serious interruption is happening now."
]
},
"needsFollowUp": {
"type": "boolean",
"instructions": "Does the customer still have an unresolved problem or an explicit request that needs a follow-up?",
"criteria": {
"true": "The message contains an unresolved issue, unanswered question, or explicit request.",
"false": "The message says the matter is resolved or contains no request requiring a response."
}
}
},
"answers": {
"category": {
"type": "choice",
"choice": "billing",
"probabilities": {
"billing": 0.88,
"technical-support": 0.03,
"account": 0.05,
"other": 0.04
}
},
"urgency": {
"type": "score",
"score": 2.4,
"probabilities": {
"0": 0.01,
"1": 0.08,
"2": 0.48,
"3": 0.36,
"4": 0.07
}
},
"needsFollowUp": {
"type": "boolean",
"probability": 0.97
}
},
"providerConfidence": {
"category": 0.79,
"urgency": 0.62
},
"run": null
}LAB / 06 · FIT
The pattern is always the same: a decision sitting on a hot path, made often, where the answer is one of a few known shapes. TypeSafe reports the Jev model running up to 193.6× faster and 444.6× cheaper than an LLM on its own workflow evaluations — figures from the vendor’s own benchmarks, so treat them as a direction rather than a promise.
LAB / 07 · TOOL RACK
FUN / RUBRIC LAB
Inspect what your startup description still leaves unsupported—without pretending to predict success.
FUN / TONE PANEL
Evaluate a draft against visible tone and clarity rubrics, then compare versions without generated rewrites.
BUILD / BOUNDED AGENT
Watch a typed decision select legal actions inside a six-step simulated settings panel.
BUILD / ROUTING CONSOLE
Compare Jev’s selected route with the path your application policy is willing to execute.
BUILD / CONTEXT FILTER
Evaluate bounded context blocks, preserve pinned constraints, and prune conservatively.
BUILD / EVIDENCE DESK
Classify how supplied evidence relates to a claim—without searching the web or declaring outside-world truth.
LAB / 08 · START BUILDING
Jev runs through AI SDK 7’s evaluation interface, so it is one call and no parsing. Note what happens after: the model hands back a signal, and the policy that acts on it stays in your code where you can read it, test it, and change it.
Read the quickstartimport { experimental_evaluate as evaluate } from 'ai';
const result = await evaluate({
model: 'typesafe-ai/jev',
state: { task, routingContext },
questions: { route, complexity, externalSideEffect },
maxRetries: 0,
});
// Model signal ≠ application authority
const action = applyPolicy(result.answers);LAB / 09 · COMMON QUESTIONS
Jev is an evaluation model from TypeSafe AI, released in September 2026. Instead of writing sentences, the Jev model reads a piece of state you supply and answers typed questions about it — picking an option, placing something on a rubric, or estimating whether a statement is true. Every answer arrives with probabilities your code can branch on.
A chat model predicts the next token, so anything structured has to be parsed back out of prose. Jev AI skips generation entirely and returns the typed value directly. That makes it far faster and cheaper for decisions, and useless for writing — you still want a normal LLM for anything that produces words.
TypeSafe lists input at $0.042 per million tokens, with output tokens not charged, since a typed answer is a few values rather than a stream of text. A single request takes 64,000 tokens of context, of which 32,000 can be your state.
Any time you need language out. Summaries, rewrites, explanations, code generation, and open-ended answers are all the wrong shape for the Jev model. It also takes structured data rather than images, caps a choice at 255 options, and scores on rubrics of two to ten levels.
LAB / 10 · FIELD NOTES
Public projects and author demos, linked as references — not presented as tests performed by this site.
Browse the case library