Choice
choice: 'account'Pick one option from a list you define.
- Routing tickets
- Picking the next agent tool
- Intent detection
Jev answers narrow questions about your data with a typed answer and a probability. It's built for the small calls inside an agent: route this, score that, is this safe. This page explains how it works, and lets you run it with your own key.
Most agents call a big general model for every step, including the trivial ones. Is this ticket billing or technical? Is this message safe? That's slow, expensive, and you still have to parse a paragraph to get the answer out. Jev skips the paragraph. You tell it the allowed answers up front and it picks one.
Subject: Login failed. Message: I reset my password twice and still cannot get in.
Waiting for the ticket…
parse the paragraph, hope it picked one teamWaiting for the ticket…if (answer.choice === 'account') route()* Illustration with scaled timings, not a live call. Run the real thing in the playground below.
It's named after William Stanley Jevons. In 1865 he noticed that as steam engines got more efficient, Britain burned more coal, not less, because cheap energy got used for more things. That's the Jevons paradox.
TypeSafe's bet is the same for AI decisions: make them nearly free and people will build things that were never worth doing at frontier-model prices. They call Jev a "System One" model, borrowing Daniel Kahneman's term for fast, intuitive thinking, as opposed to the slow, deliberate System Two that LLMs are good at.
Click a step to see which part of the code it maps to.
const result = await evaluate({
model: 'typesafe-ai/jev',
state: { subject: 'Login failed', message: 'Cannot access account' },
questions: {
department: {
type: 'choice',
criteria: { billing: '...', technical: '...', account: '...' },
},
},
});
result.answers.department
// { choice: 'account', probabilities: { account: 0.94, ... } }
You can mix them in a single call, for example route a ticket, score its severity and check if it asks for a refund, all against the same input.
choice: 'account'Pick one option from a list you define.
score: 2.86Grade something against an ordered rubric of 2 to 10 levels.
probability: 0.99How likely is a statement to be true, as a probability.
Pick a decision type and an example to see the exact call. To actually run it, clone the repo and add your own Vercel AI Gateway key. The free tier is enough.
This playground runs on your machine
It calls Jev with your own Vercel AI Gateway key, so it's switched off on the hosted site. Three commands and you're running it:
git clone https://github.com/itani404/jev-explained.git
cd jev-explained && npm install
echo "AI_GATEWAY_API_KEY=your_key" > .env.local && npm run dev
Meanwhile, the Code tab shows the exact call for the example you picked.
Drag the sliders. This uses list prices, so it's a rough estimate, but it shows why offloading small decisions matters once an agent runs thousands of times a day.
Assumes Claude Sonnet 5 returns a 30-token JSON answer. Jev output is free. List prices only, so treat it as an estimate. For measured numbers, see the independent tests.
98x cheaper for this workload (estimate)
Within a week of launch, developers ran their own comparisons against Claude. Jev really is much faster and cheaper, just not by as much as the launch numbers say.
5 to 6x faster
TypeSafe claimed 193.6x26 to 64x cheaper
TypeSafe claimed 444.6xClose to the big models
Sometimes a bit worse, sometimes betterSonnet was slightly more accurate (Brier score 0.344 vs 0.369).
Source: jev-aita on GitHub ↗When Jev was very confident it agreed with the other models 100% of the time. Below 0.70 confidence, only 72%.
Source: DEV Community ↗Jev matched the expected answer more often: 95% vs 74%.
Source: LiteLLM ↗Figures as reported by each source, published Sept 17 to 20, 2026. Different tasks and setups, so compare the pattern, not the exact numbers.
The launch was loud. Here's the part that usually gets skipped.
Jev guarantees the shape of the answer, never that it picked the right option. Look at the probability: in one independent test Jev agreed with other models 100% of the time when it was very confident, but only 72% of the time below 0.70. Send the unsure cases to a person, and test it on labeled examples from your own data before trusting it.
The 193.6x faster and 444.6x cheaper figures come from four workflow evaluations built by TypeSafe staff, and they describe them as the high end. Independent tests (see above) land closer to 5 to 6x faster and 26 to 64x cheaper.
Vercel, Cloudflare, LangChain and Langfuse added it within days. Fast adoption by platforms is not the same as years of production reliability.
Some people call it a rebrand of zero-shot classifiers, which have existed for years. The honest answer is somewhere in between: the idea is familiar, the packaging (typed schemas, calibrated probabilities, near-zero price) is what makes it practical inside agents.
TypeSafe has said it can’t yet prove the pricing isn’t subsidized. If your architecture depends on decisions being almost free, keep that risk in mind.