On this page
What it actually is
Jev is a decision model. Not a chatbot, not an assistant, not a small LLM. It cannot produce a sentence, and that limitation is the design, not a shortcoming.
The interaction has exactly two halves. You send state — the context, which can be an email, a support ticket, a JSON object, a row from a database. And you send questions — each one a decision you want made about that state, with the allowed answers declared up front. Jev returns those answers, typed, each with a probability.
TypeSafe calls this class of model a System One Model. Your code doesn't parse anything. It branches on the values directly.
Jev is a smart if statement. Ordinary code branches on bits — is this number greater than that one. Jev lets code branch on meaning: is this customer angry, is this message a scam, is this the kind of request a human should see. Conditions you could never write by hand, evaluated in the time it takes to read a database row.
Where the two names come from
- System One — from Kahneman's Thinking, Fast and Slow. System 1 is fast, intuitive judgement; System 2 is slow deliberation. Jev is aimed squarely at the first.
- Jev — after the economist William Stanley Jevons. The Jevons paradox says that when a resource gets cheaper to use, total consumption goes up, not down. TypeSafe's bet is that the same happens to intelligence: make a decision cheap enough and you'll make millions more of them.
Send context plus a question with fixed options. Get back one of those options and a number saying how sure the model is. It runs in well under a second and costs about four cents per million input tokens, which is cheap enough to run on every single event instead of a sample. It replaces the classification-shaped LLM calls buried inside your system. It does not replace the LLM.
Why it exists
TypeSafe AI was founded by Diogo Almeida, previously at OpenAI where he worked on the instruction-following methods (RLHF) behind ChatGPT. The company spent roughly two years in stealth before launching Jev in September 2026.
Their founding question is a fair one, and worth sitting with for a second:
Their answer is that the bottleneck was never intelligence. Today's frontier models are already smart enough to do enormous amounts of useful work. The bottleneck is that they are awkward to build software on top of.
Look at how the two dominant training methods shaped what we got:
- RLHF trained models to produce answers humans like. That gives you a pleasant assistant — and a model that will tell you what you want to hear.
- RLVR trained models to produce answers a program can check — maths, code, tests. That gives you a reasoning model, slow and expensive by construction.
Both assume a human is sitting at the other end, reading. But TypeSafe expects large-scale automation to be roughly 99% machine-to-machine, with a human involved in a small fraction. Software talking to software needs different properties entirely: structured, testable, consistent, fast, cheap. They call this machine-native intelligence. Their slogan for it is "build prod, not God" — practical production systems rather than a race toward AGI.
The horseless carriage argument
TypeSafe's manifesto leans on an analogy that lands well. Early automobiles were literally called horseless carriages: the old carriage design with an engine bolted on, because nobody had yet worked out what a car should look like. Their claim is that chat-shaped AI inside automation is the same mistake — a genuinely new capability forced into the shape of the thing it replaces.
The comparison they draw is to databases. Databases existed for years before they enabled anything like Google. What changed was SQL: a dependable, composable interface that let ordinary software rely on them. TypeSafe wants an AI decision to become as dependable and as callable as a database query.
Whether or not they're the ones who pull it off, the observation is sound, and it's the most useful part of the story.
How it works
One request. Two parts. Three question types. That's the whole API surface, and it's small on purpose.
The state
A plain string, a JSON object, or an array of strings. Text only for now — no images, audio or video, so anything else has to be converted to text or a transcript first.
One thing that trips people up: an array is still one shared state, not a batch. Three support tickets in an array means "here are three documents about one situation", not "classify these three tickets". Separate items go in separate calls.
The questions
Each question carries a type, a key (the name you'll read the answer back by) and instructions in plain English. You can ask many in one request and they're all evaluated together. Crucially, questions are independent — one cannot see another's answer. If you need question B to depend on answer A, that's two calls with your own code in between.
The three question types
Pick one option from a set. Returns the winner, a probability for every option, and a confidence. Up to 255 options.
Rate on an ordered scale. Returns a fractional score — 2.3, not just "high" — plus the full distribution. Two to ten levels.
Yes or no. Returns the probability the statement is true, from 0.0 to 1.0. Some gateways label this "boolean".
These three are the primitives — closer to logic gates than to prompts. Anything complicated gets built by combining many small questions with ordinary code, not by writing one elaborate instruction.
A real request
{
"model": "jev-latest",
"state": "Hi, I've been trying to connect my Stripe account for 3 days
and it keeps failing. I'm losing sales. Please help ASAP.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity"
},
"team": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"options": ["billing", "technical", "account"]
},
"frustration": {
"type": "score",
"instructions": "How frustrated is the customer? 0 = calm, 1 = frustrated, 2 = very frustrated"
}
}
}
And what comes back:
{
"is_urgent": { "type": "noul", "noul": 0.999 },
"team": { "type": "choice", "choice": "technical",
"probabilities": { "billing": 0.06, "technical": 0.91, "account": 0.03 },
"confidence": 0.9 },
"frustration": { "type": "score", "score": 1.6 }
}
There is no text to parse and no malformed JSON to repair. Your code reads response.team.choice and moves on.
From code
from langchain_typesafe import Noul, TypeSafeClassifier
classifier = TypeSafeClassifier()
response = classifier.invoke({
"state": "The deploy failed twice and customers are seeing 500s. Can someone look now?",
"questions": {
"urgent": Noul(instructions="Does this need attention right now?"),
},
})
urgency = response.nouls["urgent"].noul # e.g. 0.97
if urgency > 0.9:
page_oncall()
Writing questions that hold up
Most of the difficulty in using Jev well is in question design, and it's a different discipline from prompt engineering. The patterns that work:
- Keep each question narrow and bounded. "Which team should investigate first?" is answerable. "Handle this incident" is not a question.
- Make options non-overlapping and observable. "Urgent" and "important" bleed into each other; definitions tied to something you could point at don't.
- Add an "insufficient evidence" option whenever the state might not support a decision. Otherwise you're forcing a guess and then trusting it.
- Ask what the evidence can actually support. "Which team should investigate?" and "which team caused the outage?" are very different questions about the same paragraph.
- Keep the evidence separate from the question — preserve timestamps and original wording rather than paraphrasing.
- Test for consistency. Reordering options or adding one can shift the result. Check that before you rely on it.
- Keep policy in your code. Jev proposes a decision. Whether to act on it is your application's business, and it should stay that way.
Use a two-stage pattern: score the candidates independently first, then run an explicit choice across the top handful. This is how you'd pick one link from thousands.
Why it's fast
The speed isn't a tuning trick. It comes from removing the single most expensive thing an LLM does: generating an answer one token at a time.
No generation loop
When an LLM answers "technical, 91% confident", it produces that one token at a time, each token waiting on the one before it. A reasoning model may produce hundreds or thousands of internal tokens before it gets to the answer you wanted. Processing the input is already parallel — it's the writing that's serial.
Jev never enters that loop. It reads the probabilities for every allowed answer directly out of the model's internal representations, in a single forward pass.
Encode once, branch in parallel
TypeSafe hasn't published the architecture. What follows is their public description plus an independent reconstruction based on roughly ten thousand API calls — so treat it as a well-supported guess rather than fact:
- A transformer with pretrained knowledge processes the shared state once.
- Each question becomes a separate branch attending to that shared state plus its own tokens.
- An attention mask stops branches seeing each other — which is exactly why questions are independent.
- Each branch's answer probabilities are read out directly.
The practical consequence: with a state of S tokens and Q questions, the repeated work drops from roughly Q × S to about S. Asking ten questions instead of one costs you the ten question tokens, not ten passes over the document. This is why batching your questions is the single easiest optimisation available.
The numbers, and how much to trust them
| Claim | Figure | Whose number |
|---|---|---|
| End-to-end latency | 70–500 ms | TypeSafe, broadly consistent with independent testing |
| Speed vs frontier LLMs | 40–200× on decision-shaped tasks | TypeSafe |
| Workflow evals | up to 193.6× faster, 444.6× cheaper | TypeSafe — who say themselves these are the high end |
| Doom-playing demo | ~10 decisions/second, ~$7/hour | TypeSafe |
Two other factors are plausible but unconfirmed: a mixture-of-experts design (only part of the network running per token), and ordinary hardware-aware serving. Latency also depends on where you are — the service currently runs from the US west coast, which is a real tax if your users are in India.
Calibration: the real idea
Speed and price are the headline. Calibration is the part that actually changes what you can build, and it's the least understood thing about Jev.
Jev's training method is called RLCD — Reinforcement Learning for Calibrated Decisions. It sits alongside the two methods that produced everything else you've used:
| Method | Rewards | Produced | Weakness |
|---|---|---|---|
| RLHF | Answers human raters prefer | Chatbots | Sycophancy, confident hallucination |
| RLVR | Answers a program can check | Reasoning models | Slow, costly, overconfident on judgement calls |
| RLCD | Probabilities that match real outcomes | System One models | Can't write; method unpublished |
What "calibrated" means
A model is well calibrated if, across many predictions, its stated probabilities match reality. Things it called 0.2 happen about 20% of the time. Things it called 0.8 happen about 80% of the time.
Calibration is a property of groups of predictions, not of any single one. A perfectly calibrated model can still be wrong about the ticket in front of you. What it buys you is that the number attached to that answer means something — and that's what you build the automation on.
The thing calibration unlocks
Once probabilities are trustworthy, you can set thresholds. This is the whole game:
TypeSafe's objection to RLHF
Worth understanding, because it explains the whole design. RLHF rewards what sounds good to a person. That reliably produces two things nobody wants in an automated system: sycophancy, and hallucinations delivered in a confident register. It also causes mode dropping — the model narrowing toward one favoured style and quietly losing the other valid outputs it used to produce.
The core point stands regardless of what you make of Jev: being convincing to a human and being reliable for unattended software are different optimisation targets. We have spent four years optimising hard for the first one.
How RLCD might work
TypeSafe has not published the algorithm, so this is background rather than description. The standard ways to reward calibration are log loss (punishes assigning low probability to the right answer, and punishes confident mistakes severely) and the Brier score (squared difference between predicted probability and what happened). Post-hoc methods like temperature scaling can sharpen or soften probabilities without changing which answer wins. Which of these RLCD uses, if any, is unknown.
What is known: Jev is reportedly trained exclusively on synthetic data, which Almeida has described as one of the better bets he's made.
Known: the name and the goal, the output contract, synthetic training data, a reported MMLU calibration error of about 0.031, and its positioning against RLHF/RLVR.
Unknown: the reward function, the architecture, the training procedure, the calibration curves and methodology, and any independent reproduction. There is no paper.
Reinforcement learning for calibration isn't new in itself — academic work on calibration-aware RL exists. What's new is the product shape: no text generation at all, typed probability distributions as the native output, and questions answered in parallel.
Jev vs an LLM
| LLMs | Jev | |
|---|---|---|
| Trained with | RLHF + RLVR | RLCD |
| Optimised for | Responses humans like; checkable answers | Probabilities that match outcomes |
| Output | Free-form text, parsed and validated | Typed values you defined in advance |
| Generation | Sequential, token by token | Parallel, one pass |
| Latency | Seconds to minutes | 70–500 ms |
| Input cost | $0.20–$10 / M, output ~5× more | $0.042 / M, output free |
| Confidence | Inconsistent, usually overconfident | A calibrated probability on every answer |
| Malformed structure | Possible even in the best models | Impossible by construction |
| Run-to-run consistency | Varies | Similar inputs, similar answers |
| Can write text or code | Yes | No |
| Best at | Chat, copilots, coding, creative work | Routing, classification, scoring, guardrails, tagging at scale |
Jev cannot return an invalid type or an option you didn't define. That part is genuinely guaranteed by construction.
Jev can still be wrong. It can confidently route a ticket to the wrong team from your own list. Type safety covers the shape of the answer, never its correctness. Anyone selling you the stronger version of this claim is overselling it.
"Couldn't an LLM already do this?"
Functionally, yes — an LLM with structured output returns the same labels. The differences are all in the properties around the answer:
- Speed. Autoregressive generation can't easily get under a second.
- Cost. You pay for output tokens and any reasoning tokens, and output is where LLM pricing hurts.
- Confidence. An LLM writing "91% confident" is generating characters that look like a number. It isn't a measured probability. Jev's probability is the model's output distribution.
- Reliability. No parsing failures, no JSON repair step, no retry logic for malformed output.
Which one, when
| Reach for Jev when… | Reach for an LLM when… |
|---|---|
| The answer is a label, score or yes/no | The answer is text, code or an explanation |
| You need it in under a second | A few seconds is fine |
| It runs thousands or millions of times | It runs occasionally |
| You need a confidence number you can act on | You need creativity or open-ended reasoning |
| The decision sits deep inside a pipeline | A human reads the output directly |
| Input is text or structured data | Input includes images or audio |
If you'd write an if statement but the condition is too fuzzy to code — Jev.
If the output needs to be words, code or multi-step reasoning — an LLM.
Where it fits
Jev belongs wherever software makes many small judgements that are too fuzzy for hand-written rules, but too frequent or too time-sensitive to hand to an LLM.
On its own
The common thread: fast enough to run on everything rather than a sample, cheap enough that running it on everything doesn't change your margins, and calibrated enough to know which cases are safe to leave alone.
Alongside an LLM
This is the more interesting half, and the architecture is easy to state: Jev decides, the LLM writes.
| System | Jev's job | The LLM's job | What improves |
|---|---|---|---|
| Support bot | Intent, urgency, refund eligibility | Write the reply | Faster replies, fewer wrong escalations |
| Coding / browser agents | Gate each tool call, judge whether the task is done | Plan and act | Safer autonomy, fewer approval prompts |
| Model routing | Rate task difficulty | Cheap model for easy, frontier for hard | Large cost savings, little quality loss |
| RAG / search | Judge relevance of each retrieved chunk | Answer from what survived | Less noise, fewer invented answers |
| Guardrails | Detect jailbreaks, injection, policy breaches | The actual task | Safety checks in milliseconds |
| Sales CRM | Score leads, spot buying signals | Draft the follow-up | Reps only touch live deals |
| Long agent sessions | Keep, truncate or drop each old tool result | Carry on working | Smaller context, no lossy summarising |
| Output verification | Score the LLM's answer before it ships | Generate | Bad output caught before a user sees it |
Already shipped
- LangChain
ModelRouterMiddleware— Jev picks the cheapest model that can handle each request. - LangChain
AutoModeMiddleware— Jev inspects risky tool calls (abashcommand, say) and blocks them before they run. This brings the "auto mode" safety pattern of closed coding harnesses to any agent. - Community work: browser agents running for fractions of a cent, a live trading agent, email triage at scale.
What actually changes
If you build automation for a living, here is the honest list of what a calibrated decision model moves — and it's less about capability than about which things stop needing a person.
Unattended becomes possible
Automate the confident cases, escalate the rest. This is the piece that was missing — not smarter AI, but AI that knows when it might be wrong.
Cost per decision collapses
A twenty-step agent that called an LLM at every branch becomes one LLM for the reasoning, plus Jev for the twenty small judgements.
It can sit deep in a system
No parsing failures and no malformed JSON means an AI decision can live several layers down and still be trusted by the layers above it.
It becomes testable
Similar inputs give similar answers, so the behaviour can be tested like ordinary software instead of spot-checked like a chatbot.
Decomposition beats one big prompt
TypeSafe found that many small independent questions inside coded logic is more reliable than asking one model to reason through all of it.
Decisions become auditable
Every call has its evidence, its question, its allowed answers and its probabilities. You can go back and look at why.
And one that's easy to miss: things that were never worth automating become worth automating. Calling a model on every row, every message, every event or every game frame used to be absurd on both latency and cost. That constraint moving is where the genuinely new use cases come from, and it's the Jevons point the name is making.
Is this a transformation?
Our read: significant, but evolution rather than revolution — at least for now.
The case for
It's a new category — the first frontier-level model trained to be trustworthy to software rather than pleasing to people. Calibration really is the missing piece for automation. And if it holds up, AI decisions become as composable as database queries.
The case against
Unpublished and unverified. Fast classifiers aren't new — fine-tuned BERT-style models have done this for years. Most AI value today still comes from generation. It's text-only. And OpenAI, Anthropic or Google could ship a "decision mode" whenever they like.
The likeliest shape of the next year or two is that serious AI stacks end up with two layers: a fast decision layer that routes, gates, scores, filters and verifies, and a reasoning layer that plans and writes. The real shift isn't Jev replacing LLMs. It's AI moving out of chat windows and into the background of ordinary software, making millions of invisible decisions a day that nobody reads.
The broader lesson, which outlives whatever happens to this particular model: the field is widening from one giant general model for everything, toward models built for the right constraints.
Cost, limits, access
| Item | Value |
|---|---|
| Input tokens | $0.042 per million ($42 per billion) |
| Output tokens | Free |
| Latency | 70–500 ms end to end |
choice options | Up to 255 |
score levels | 2 to 10 |
| Input types | Text, JSON objects, arrays — no images, audio or video |
| Model name | jev-latest |
| Endpoint | POST /v1/systemone |
| Open source | No — hosted model. The tooling (SDKs, LangChain integration, MCP) is open. |
Where to get a key
- TypeSafe console —
console.typesafe.ai(early access / waitlist) - Docs —
docs.typesafe.ai - Gateways — Vercel AI Gateway (
experimental_evaluatein the AI SDK), OpenRouter, Cloudflare - LangChain —
pip install langchain-typesafe, then setTYPESAFE_API_KEY
jevtypesafeai.com is not official. The site states plainly that it is an independent platform not affiliated with TypeSafe AI, and it lists a price roughly ten times the official one. If you're buying access, buy it from TypeSafe or a major gateway.
What to stay sceptical about
This section exists because most of what's written about Jev right now repeats TypeSafe's own numbers without saying so. Here's the other side.
- The benchmarks are self-reported. The evals were built by TypeSafe's team, and they use the average of two frontier models as the "reference answer" — a proxy for ground truth, not ground truth.
- Type-safe is not the same as correct. Evaluate decisions against known outcomes before you let any of them trigger an action.
- Calibration may not transfer to your data. It has to be tested on your inputs, and re-tested as those inputs drift over time. Calibration measured elsewhere tells you very little about calibration here.
- The reported calibration figure covers mostly high-confidence predictions. It says much less about how the model behaves in the middle of the range — which is exactly where your escalation threshold will sit.
- Options are load-bearing. Adding or reordering choices can change results. Treat your option list as part of the system, and version it.
- The pricing may not be sustainable. TypeSafe concedes it can't yet prove the price isn't subsidised. They expect prices to fall; plan for the possibility they don't.
- It's early access. Availability, limits and model versions can change under you.
- Latency depends on geography. Serving is currently US west coast. From India that's a meaningful share of your budget before the model does anything.
- There is no paper. No calibration curves, no methodology, no independent reproduction. Everything structural in this page's section 4 and 5 is reconstruction, and we've flagged it as such where it is.
The idea is right and the interface is the most interesting thing to happen to production AI this year. The evidence is thin and entirely first-party. Those two things are both true, and you can act on the first while holding the second in mind — by measuring it on your own data before it touches anything that matters.
How to start
Not "migrate your stack". Pick one decision your system already makes badly, and measure.
- Pick one bounded workflow — a single routing or classification step. Something where you already know what the right answer looks like, and where being wrong is recoverable.
- Log predictions next to real outcomes. Don't act on them yet. Run Jev in shadow alongside whatever you do today, and write both to the same table.
- Measure accuracy within each confidence band — not overall. Overall accuracy tells you nothing about where to put a threshold. You want to know how often the 0.9-to-1.0 bucket is right, separately from the 0.6-to-0.7 bucket.
- Set thresholds from the cost of mistakes, not from round numbers. If a missed urgent ticket costs nine times what a needless escalation costs, escalate whenever the probability of urgent is above 0.1 — even though that feels far too low.
- Expand only where the evidence supports it. Each new workflow gets its own shadow period. Calibration on one task says nothing about calibration on the next.
Step three. It is tempting to look at overall accuracy, see a good number, and pick 0.8 as a threshold because it sounds sensible. The entire value of a calibrated model is in the per-band breakdown — skip it and you've bought a fast classifier and thrown away the part that made it interesting.
Glossary & sources
| Term | Meaning |
|---|---|
| System One Model | A model class returning fast, typed, probabilistic decisions instead of text |
| State | The context or evidence you send |
| Question | A typed decision you want made about the state |
| choice / score / noul | The three primitives: pick an option / rate on a scale / yes-no probability |
| Calibration | Stated probabilities matching real-world frequencies |
| RLHF | RL from Human Feedback — trains for human preference |
| RLVR | RL with Verifiable Rewards — trains for checkable answers |
| RLCD | RL for Calibrated Decisions — trains for honest probabilities |
| Autoregressive | Generating one token at a time, each depending on the last |
| Prefill | Processing the input tokens — parallel work |
| KV cache | Stored keys and values for processed tokens, reused later |
| Mode dropping | A model narrowing to a limited set of outputs after optimisation |
| Machine-native intelligence | AI with software-like properties: structured, testable, fast, cheap |
| Jevons paradox | Efficiency gains increasing total consumption |
Sources
Primary material from TypeSafe, plus the independent write-ups that informed the architecture and speed sections. Where the two disagree, we've said so in the text.
- TypeSafe AI — Introducing System One Models & Jev
- TypeSafe AI — Manifesto
- TypeSafe Docs — System One concepts
- TypeSafe Docs — AI primer
- LangChain — Building a harness with Jev
- Vercel — What is Jev?
- Bijit Ghosh — Inside Jev: architecture of a decision model
- Anthony Maio — Jev: the language model that won't
- systemonemodels.org — RLCD explained
- MindStudio — RLCD vs RLHF