Unofficial guide · Jev / TypeSafe
Jev vs LLM: when to use a decision model and when to use a text model
Jev from TypeSafe AI is not a smaller chatbot. It is a different kind of model that returns decisions, not text. This guide explains when a decision model beats an LLM, when it's the wrong tool, and how to use both together. Where a claim comes from TypeSafe itself, we say so.
What is the difference between Jev and an LLM?
Short answer: An LLM generates text. Jev, TypeSafe AI's System One model, returns typed decisions with probabilities: a yes/no probability, a choice from options you define, or a score on levels you define. It never writes free text.
TypeSafe calls Jev "a frontier-intelligence function call: unstructured state in, typed probabilistic decisions out." Its docs name the three question types Noul, Choice and Score. Because the possible answers are fixed before the call, your code can branch on the result directly without parsing anything.
| Jev (System One model) | Typical LLM | |
|---|---|---|
| Output | Typed answers you define in advance: Noul (probability of yes), Choice (one option + probabilities), Score (position on your levels) with confidence | Generated text, optionally constrained to JSON, which your code must parse and validate |
| Can it write? | No. It doesn't write replies, code or explanations | Yes. Writing, summarizing, code, chat |
| Input | Text only (string, JSON object or array); 64k tokens per request in total per TypeSafe, and 32k for the state plus the longest question; OpenRouter says 32,000 tokens for the state plus the questions; Cloudflare lists a 32,000-token context window | Text, and for many models images, audio or PDFs |
| Training (per TypeSafe) | RLCD: Reinforcement Learning for Calibrated Decisions | RLHF / RLVR |
| Sampling (per TypeSafe) | Parallel: all outputs in one pass | Sequential, one token at a time |
| Listed price | $0.042 per million input tokens; output free | TypeSafe's launch post cites $0.20 to $10 per million input tokens for existing LLMs |
| Response time (company figures) | 70 ms to 500 ms end to end, per TypeSafe | 3 to 329 seconds for frontier models, per TypeSafe |
Speed, cost and training rows are TypeSafe's own descriptions from its launch post and docs, not independent measurements.
When should I use Jev instead of an LLM?
Short answer: When the answer is one of a known set: route, classify, score, flag, or check whether a statement is true of a document. If your LLM call ends in JSON.parse followed by a switch statement, that is a Jev-shaped question.
TypeSafe's docs list these as good fits:
- Route a request to one of a fixed set of destinations, and know how confident that routing is.
- Score something on a rubric (urgency, quality, risk) and branch on the number.
- Check whether a statement is true of a document, message or record before taking an action.
- Replace a fragile "return JSON" prompt with a call that returns typed values by construction.
The launch post adds guardrails and verification (scoring, judging or checking LLM prompts and outputs), map-reduce over large datasets, and real-time features where about 100 ms matters. OpenRouter's comparison puts it this way: "Anything that ends in a switch statement is a Jev question."
When is Jev the wrong tool?
Short answer: When you need generated text, exact arithmetic or counting, date comparisons, multi-step reasoning, or non-text input. TypeSafe's own list of known weak spots for jev-1.13 covers these.
TypeSafe publishes a jaggedness page for jev-1.13 (last reviewed 17 Sep 2026). Summarized:
| Weak spot | What TypeSafe recommends instead |
|---|---|
| Generating text | Use a generative model. For extraction, find candidates with regex or an LLM and let Jev pick with a Choice |
| Math, counting, numeric precision | Keep the arithmetic in code; ask one Noul per item and add up the results yourself |
| Comparing dates and times | Extract date parts with Choice questions; compare them in code |
| Indirection and double negatives | Write direct questions; point to the relevant state field by name |
| Large state full of irrelevant detail | Filter first; send only what the question needs |
| Adversarial content in the state | Write precise criteria; test edge cases before deploying |
| Contradictory instructions and criteria | Make criteria an extension of the instruction |
| Literal reading | Spell out the exact condition and boundary cases |
Also from TypeSafe's docs: Jev takes text only (no images, audio or video), and English is where accuracy is currently best.
Can Jev replace the LLM in my coding agent?
Short answer: No. TypeSafe says Jev is not a drop-in replacement for the LLM behind coding agents, because it doesn't stream text, call tools or edit files. Use your coding agent to write code that calls Jev.
From TypeSafe's page Jev with coding agents: "There is no model: "jev-latest" setting that turns your coding agent into a Jev-powered agent." TypeSafe offers an agent skill that helps coding agents write correct TypeSafe integrations instead.
How do Jev and an LLM work together?
Short answer: Two common patterns: route first (Jev classifies, code checks confidence, and only cases that need prose go to an LLM), and verify after (an LLM drafts, then Jev checks the draft against your policy before it ships).
Both patterns come from OpenRouter's Jev vs LLM tutorial (19 Sep 2026). TypeSafe's docs describe similar ideas as confidence-gated routing.
- Route first. One Jev call answers "which intent?" (Choice) and "should this be escalated?" (Noul). Code sends low-confidence or escalated cases to a person, answers exact-data cases (such as order status) from your database, and calls an LLM only when a written reply is needed.
- Verify after. The LLM drafts a reply. A second Jev call asks one Choice question: is the draft supported by the policy, unsupported, or a decline? Only confident "supported" drafts go out; the rest go to review.
The rule under both: Jev decides, code computes, an LLM writes.
Is Jev really faster and cheaper than LLMs?
Short answer: On TypeSafe's own workflow evaluations it reports up to 193.6x faster and 444.6x cheaper, and TypeSafe itself says those figures are likely at the high end of real-world gains. Independent tests so far are small, so measure on your own workload.
- TypeSafe's claim: the 193.6x / 444.6x figures come from TypeSafe's workflow evals. In the same post TypeSafe notes the workflows were built by its own team ("some bias could exist") and that it expects these "are on the higher end of real world gains".
- OpenRouter's small test (19 Sep 2026): on 60 support tickets, Jev 1.13 scored 59/60 on intent, the same as GPT Luna, while Claude Opus scored 60/60. OpenRouter reported Jev's median latency at 194 ms and cost at $0.0248 per 1,000 tickets. OpenRouter calls it "the shape of the tradeoff, rather than a leaderboard": one day, one prompt set, small samples.
- Price: TypeSafe says it cannot prove its price isn't subsidized and that it expects prices to go down, not up.
Does Jev hallucinate?
Short answer: Jev can't return an answer outside the options you defined, so it has no type errors or invented labels. It can still pick the wrong option. TypeSafe notes calibration holds across many predictions, not for every single answer.
TypeSafe's launch post claims Jev "can't hallucinate" in the sense that schema matching is guaranteed. Its System One docs add the key caveat: calibration "does not guarantee that an individual answer is correct." Treat Jev's probabilities as a signal for when to act and when to escalate, not as proof.
What confidence threshold should I use with Jev?
Short answer: There is no universal number. Label a sample of your own cases, run Jev on them, and pick the cutoff where the automatic path matches what your team would have decided. Re-check after you change the wording of any criteria.
OpenRouter used 0.8 for intent confidence and 0.5 for escalation in its example, and says to treat those as its numbers, not yours. Two more tips from the docs:
- Pin a model version (for example
jev-1.13.0) once you have tuned thresholds, because aliases likejev-latestmove when a new release ships. - Don't carry a threshold tuned on a Noul over to a Choice. TypeSafe notes the two question types don't give interchangeable numbers.
Next steps
Sources checked for this guide
Facts on this page come from these pages, checked on 25 Sep 2026. Jev launched in September 2026 and details change quickly, so check the official page before you rely on a number.
- TypeSafe blog: Introducing System One Models & Jev (15 Sep 2026)
- TypeSafe homepage (193.6x / 444.6x claim)
- TypeSafe docs: System One
- TypeSafe docs: Jev with coding agents
- TypeSafe docs: Jev 1.13 jaggedness
- TypeSafe docs: Models
- TypeSafe docs: Confidence-gated routing
- OpenRouter: Jev vs LLM, when to use each (19 Sep 2026)
- OpenRouter docs: Jev documentation (32,000 tokens: the state plus the questions)
- Cloudflare docs: Jev on Workers AI (32,000-token context window)