Note · 8 min read
Jev is changing how we build AI systems
TypeSafe AI built a model that makes structured decisions instead of writing text. Why that split between code, Jev, and the LLM matters more than another benchmark.
AI infrastructure has drifted in a strange direction the last few years. The moment a problem needs even a little language understanding or context, the answer is almost always the same: call an LLM.
Need to classify a support ticket? LLM.
Need to decide if a document is relevant? LLM.
Need to judge whether an agent should be allowed to run a command? LLM again.
It all works, but there is an obvious problem. Most of these tasks do not need text generation at all. If the system has to pick one of three known answers, it is fairly pointless to run a generative model that produces tokens just to end up saying "technical."
Jev is built for exactly that gap.
TypeSafe AI built it as a model for structured decisions. It does not write prose, does not explain its answer, and is not trying to be a chatbot. It takes system state, a question, and the possible outcomes, then returns a decision along with probabilities.
That looks like a small interface change, but it actually changes how you can design an entire AI system.
If I am building a lead-qualification system, I mostly do not need a paragraph explaining why some company is a good lead. I need an estimate of whether it fits the ICP, whether there is a clear pain point, whether there is buying intent, and how urgent the request is. Those are signals the rest of the system can act on.
Jev covers that with three basic question types: Choice, Score, and Noul. Choice picks between predefined options, Score rates something on a scale, and Noul returns the probability that a claim is true.
The real value is not just that the result comes back in a known format. It matters more that you get a confidence figure alongside the decision.
Say a system is scoring a lead and one option comes back at 52% and another at 46%. Technically there is a winner, but that is not a decision I would want passed downstream automatically as fact.
That is where confidence becomes part of the architecture itself.
When a call is confident enough and the cost of being wrong is low, the system can proceed on its own. When the result is unclear, it can escalate to a stronger model or a human. Jev does not set that threshold itself. That stays in the code, and depends on what you are actually trying to automate.
That is an important difference from a lot of today's agent systems, where the model tries to understand the situation, make the decision, and decide what happens next, all at once.
With Jev, the model estimates. The software still controls the consequence.
The space between plain code and an LLM
The best description of Jev I have seen is "a smart switch statement."
Plain code is perfect when there is an exact rule. If the user lacks permission, block the action. If the API returns a given status, retry. If the amount is above some number, trigger a different rule.
AI just complicates that.
The problem shows up when the decision depends on meaning.
"When you get a chance, take a look at the Stripe integration issue" and "Stripe has been down for three days, we're losing sales, and this needs to be fixed today" read as obviously different in urgency to a human.
Code does not see that.
You can build keyword lists, regexes, and extra rules, but you end up with a system that only works for the phrasings you already anticipated.
An LLM understands meaning, but for this kind of problem it is often a far bigger tool than the job requires.
Jev sits exactly between those two worlds. Code knows what to do once it has the result. Jev handles the semantic part that plain code cannot reliably compute.
That is probably its most important role.
Where it gets genuinely useful
One thing TypeSafe emphasizes is that Jev can answer several independent questions over the same state in a single call, processed in parallel.
That completely changes how I would approach something like lead qualification.
Instead of asking for one generic answer to "is this a good lead," it is far more useful to separately score company fit, pain, buying intent, urgency, and whatever other signals matter.
A company can match the ideal customer profile perfectly while having no pain I actually solve right now. Another can have strong pain but be entirely the wrong size. A third can be a great fit and show buying intent, but have zero urgency.
A single rolled-up AI answer hides those differences.
If I get several separate scores back, the business logic stays in my system. I decide how much each signal is worth and what happens when certain ones line up.
That is a far healthier way to automate than stuffing the whole decision process into one giant prompt.
The same logic gets even more useful with AI agents.
Today's agent loop often calls a large model for nearly every decision. The model picks a tool, evaluates the result, judges whether something is risky, checks if the task is done, and then decides what to do next.
Most of those steps are not generation at all. They are judgments.
If a coding agent wants to run a shell command, I do not need another model to write an essay about that command. I need a reliable read on whether it is read-only, whether it is reversible, whether it deletes data, or touches production.
LangChain has built exactly this pattern into a Jev middleware for tool risk gating, and the same applies to model routing. Jev can judge whether a request should go to a small model, a stronger model, or some other path.
This is where Jev is best understood not as a replacement for the LLM, but as a decision layer around it.
The LLM does the work that needs reasoning and generation. Jev makes the frequent, bounded decisions around that work. Code decides what is allowed to happen. A human stays as the fallback for cases where risk or uncertainty is too high.
The economics may matter more than the model itself
TypeSafe currently lists pricing at $0.042 per million input tokens, with no charge for output. They have also published results claiming up to roughly 200x faster and several hundred times cheaper than the LLM approach they benchmarked it against in certain workflows.
Those numbers are a vendor benchmark, and I would not treat them as a guaranteed result in a real system.
But the headline numbers are not even the most important part.
What matters more is what happens once a semantic decision becomes cheap enough to run practically everywhere.
You can score every lead. Every support ticket. Every retrieved document. Every meaningful tool call. Every LLM output before you let it flow further through the system.
At scale, the gap widens further. Something that used to be too expensive to run across a million rows at once becomes a perfectly realistic part of a data pipeline.
That is probably where this kind of model can make the biggest difference.
Jev can still be wrong
The one thing worth being careful about is the claim that Jev "does not hallucinate."
That is technically true only in a very narrow sense.
If you let it choose between billing, technical, and sales, it will not invent a fourth category. It will not return a paragraph when you expect an enum, and it will not change the shape of the output.
But it can confidently return billing, in a perfectly valid format, when the correct answer was actually technical.
The output is valid. The decision is not.
So type safety should not be confused with accuracy.
Confidence thresholds, eval sets, and fallback paths are not something you bolt on later. They are part of the core architecture if you want to use a model like this seriously.
In the same way, there is no point using Jev for a problem plain code already solves exactly. Math, dates, exact string operations, and hard business rules still belong in code. On the other side, when you need to write code, an email, an analysis, or any genuinely new piece of content, that is where a generative model belongs.
Jev occupies the space between those two cases: you already know the possible outcomes, but the system still needs to understand meaning to pick the right one.
And that is really the whole point.
For the last few years, intelligence in software has been treated as almost synonymous with generation. The model gets a prompt and returns text.
But real software is made up of far more decisions than text.
Which user is the priority? Which model should get called? Is the result good enough? Is the action risky? Does the retrieved document actually support the claim? Should the agent keep going or stop?
For problems like these, a generative model is often capable, but not necessarily the right tool.
Jev shows what a different approach looks like: a model that is not trying to control the workflow and is not trying to produce the final result. Its job is much narrower. Turn messy context into a structured judgment that software can act on immediately.
Even if Jev is no longer the best model in this category a year from now, the category itself makes a lot of sense.
The LLM stays where reasoning and generation are needed. Code stays where an exact rule exists. In between, a distinct layer is showing up for decisions that need understanding, but not another generated answer.
That is a much bigger shift than one more new AI model.
Continue through FloBitLab
Want this built for your team?
Tell me what you are trying to ship. I can take on the complete build, a defined technical scope, or work with your existing team.