On September 15, 2026, a startup called TypeSafe AI — founded by Diogo Almeida, one of the researchers behind the original ChatGPT — shipped a model called Jev. Within three days, Vercel, Cloudflare, LangChain and Langfuse had all wired it into their stacks; by September 18, Vercel was calling it the fastest-adopted model in AI Gateway history, with close to 13% of paid teams using it inside the first 24 hours.
The framing everywhere was “the new AI model,” which is accurate, and “the new LLM,” which isn’t. Jev doesn’t write text. It doesn’t chat. Given a piece of context and a set of questions you define in advance, it returns typed, calibrated answers — a yes/no probability, a pick from a fixed list, a rating on a scale — and nothing else. That’s a genuinely different tool than GPT, Gemini or Claude, not a faster or cheaper version of the same one. This article covers how it actually works, where it does and doesn’t beat a traditional LLM on cost, and how to wire it into a LangChain pipeline or a Java/Spring AI service.
What “System One” actually means
TypeSafe calls Jev the first System One Model, a name borrowed from Kahneman’s fast, intuitive “System 1” thinking, in contrast to the slow, deliberate “System 2” reasoning frontier LLMs are increasingly tuned for. The architectural claim behind the name: a standard LLM generates autoregressively — one token at a time, each one conditioned on every token before it, which is exactly why it’s slow and why cost scales with output length. Jev generates all outputs in a single parallel pass instead. There’s no next-token loop, so there’s no output-length-dependent latency to pay for.
What comes out of that pass isn’t free text — it’s one of three typed primitives, evaluated independently and in parallel against the same input state:
- Noul — “is this statement true?”, returning a calibrated probability from 0 to 1.
- Choice — pick one option from a list you supply, with a confidence score attached.
- Score — rate the input against an ordered rubric (e.g. low / medium / high).
Because the space of valid answers is defined by the caller ahead of time, Jev structurally cannot emit something outside it — there’s no “almost the right enum value” the way there is with a JSON blob an LLM free-typed and you then have to parse and validate. TypeSafe’s marketing calls this zero hallucination, which is true in a narrow, important sense: it cannot invent a fourth option when you gave it three. It is not a claim that a 55% confidence answer is more likely to be right than a coin flip — a calibrated model is one where 55% means 55%, not one where every answer is correct.
That calibration is the other half of the pitch, and it comes from how Jev is trained. Instead of RLHF or RLVR — optimizing for the response humans prefer, or for a verifiable reward on a generated answer — TypeSafe uses a technique it calls Reinforcement Learning for Calibrated Decisions (RLCD), which optimizes directly for the model’s stated confidence matching its actual accuracy. The practical effect: a Jev score of 0.9 is empirically right about 90% of the time, where a traditional LLM asked to output a confidence number tends toward either blank overconfidence or noise uncorrelated with whether it’s actually correct.
flowchart LR
subgraph LLM ["Traditional LLM — autoregressive"]
direction LR
P1["Prompt"] -->|conditions| T1["token 1"] -->|conditions| T2["token 2"] -->|conditions| T3["...token N"]
end
subgraph JEV ["Jev — System One"]
direction LR
P2["State + typed questions"] --> PAR["Single parallel pass"]
PAR --> Q1["noul: 0.92"]
PAR --> Q2["choice: technical (0.81)"]
PAR --> Q3["score: 1.6 / 3"]
end
LLM ~~~ JEV
One more design detail worth knowing: choice questions support up to 255 options, using a two-stage scoring pass internally for large option sets — enough for real routing and classification taxonomies, not just yes/no toggles.
How it stacks up against GPT, Gemini and Claude
The honest comparison isn’t “which model is smarter” — it’s “which tool matches the job.” A frontier LLM and Jev solve different halves of most production AI systems.
| Jev (TypeSafe AI) | GPT / Gemini / Claude | |
|---|---|---|
| Output | Typed decision: noul, choice, or score | Free-form text (you parse/validate it yourself) |
| Sampling | Parallel, single pass | Sequential, one token at a time |
| Confidence | Calibrated by construction (RLCD) | Not calibrated; confidence must be prompted for and is often unreliable |
| Latency | 70–500 ms end-to-end | Hundreds of ms to several seconds, scaling with output length |
| Best at | Classification, routing, guardrails, scoring, extraction confidence | Open-ended generation, multi-step reasoning, conversation, code |
| Reported speed | 40–200x faster than frontier LLMs on narrow decision tasks (TypeSafe); Vercel measured 5–18x faster than GPT-5.6 Luna on live safety classifiers | — |
That speed gap is real but task-dependent, and worth treating with the same skepticism you’d apply to any vendor benchmark. TypeSafe’s own numbers (40–200x faster, up to ~445x cheaper) describe narrow decision tasks by design — the comparison is apples-to-oranges the moment you ask an LLM to do something an LLM is actually good at. As one early adopter, Armin Ronacher, put it: the discipline Jev imposes is reading the number rather than trusting it blindly — “if this only comes back with 50% probability, maybe this is a coin toss, and I disregard it.”
What it costs — and the catch in the headline number
TypeSafe prices Jev unusually: $0.042 per million input tokens, and output tokens are free. That’s viable specifically because Jev’s outputs are a handful of bytes — a probability, a label, a score — not paragraphs, so metering them wasn’t worth the complexity.
Here’s how that sits next to current LLM pricing, as of September 2026 (per-million-token, list price):
| Model | Class | Input $/MTok | Output $/MTok |
|---|---|---|---|
| Jev (TypeSafe AI) | System One | $0.042 | Free |
| GPT-5.6 Luna | LLM — small | $0.20 | $1.20 |
| Gemini 3.1 Flash-Lite | LLM — small | $0.25 | $1.50 |
| Claude Haiku 4.5 | LLM — small | $1.00 | $5.00 |
| GPT-5.6 Terra | LLM — mid | $2.00 | $12.00 |
| Gemini 3.1 Pro | LLM — mid | $2.00 | $12.00 |
| Claude Sonnet 5 | LLM — mid | $2.00 | $10.00 |
| Claude Opus 5 | LLM — frontier | $5.00 | $25.00 |
| GPT-6-Astra | LLM — frontier | $10.00 | $50.00 |
| Claude Fable 5.1 | LLM — frontier | $10.00 | $50.00 |
On raw per-token pricing, Jev is roughly 5–25x cheaper than even the smallest current LLMs, before output cost is factored in at all. But per-token price isn’t per-decision cost, and that gap doesn’t always survive contact with a real workload. Bryo AI benchmarked Jev against Gemini on an email-classification task and found Jev came out 10–20x more expensive in practice — because a short, well-prompted classification call to a cheap LLM like Gemini 3.1 Flash-Lite is also cheap, and Jev’s input-token billing (metered per billion, not per million, hinting at how small the intended requests are) doesn’t automatically win once you account for how compact the competing prompt was. Gemini also came out slightly more accurate on that particular task.
The lesson isn’t “the vendor lied” — the 40–200x and ~445x figures are real, on the workloads TypeSafe chose to measure. It’s that cost comparisons for either kind of model only mean something against your own prompts and your own accuracy bar. Benchmark both on the actual decision you need made before committing.
When to reach for it
| Use Jev when… | Use an LLM when… |
|---|---|
| The output is a fixed set of labels, a yes/no, or a rating | The output is open-ended text |
| You need a calibrated confidence number to act on (route, gate, escalate) | You need reasoning, drafting, summarization, or conversation |
| Latency budget is sub-second and the decision is narrow | The task genuinely requires multi-step reasoning |
| You’re screening or gating a more expensive model’s input or output | You’re the thing doing the actual generation |
In practice, the two compose rather than compete: Jev as a fast, cheap, calibrated front door — routing, guardrails, tool-call risk scoring, RAG chunk filtering — in front of an LLM that does the actual generation once Jev has decided the request deserves it.
Integrating with LangChain
TypeSafe published an official langchain-typesafe provider, exposed through a TypeSafeClassifier. You pass it a state (the context) and a dict of typed questions; it returns typed answers, not a chat message.
pip install langchain-typesafe
export TYPESAFE_API_KEY=...
from langchain_typesafe import Noul, Choice, Score, 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?"
),
"team": Choice(
instructions="Which team should handle this?",
options={
"platform": "Deploys, infrastructure, outages",
"billing": "Payments, invoicing, refunds",
},
),
"severity": Score(
instructions="How severe is the customer impact?",
levels=["Low", "Medium", "High"],
),
},
})
is_urgent = response.nouls["urgent"].noul # 0.94
team = response.choices["team"].choice # "platform"
severity = response.scores["severity"].score # 2.3
The pattern that matters most for production LangChain apps isn’t calling Jev standalone — it’s using it inside an agent’s middleware. TypeSafe and LangChain both document two: model-routing middleware, where Jev classifies request complexity before deciding which downstream LLM handles it, and AutoMode guardrail middleware, where Jev scores a proposed tool call’s risk before letting an agent execute it. Both slot into existing LangChain agent hooks — Jev is doing the same job a small classifier model would have done before, just faster and with a real confidence number attached.
Integrating with Java
TypeSafe hasn’t shipped an official Java SDK — the ecosystem’s response was community-built in the days after launch, and the most complete option today is spring-ai-community/spring-ai-typesafe, which wires Jev into Spring AI’s own SPIs (it’s still 0.1.0-SNAPSHOT at the time of writing, so pin carefully and expect API changes). A couple of narrower community clients — jev4j and typesafe-ai-java — exist as lighter, dependency-free alternatives if you don’t want Spring AI in the mix.
Maven setup:
<dependency>
<groupId>org.springaicommunity</groupId>
<artifactId>spring-ai-starter-typesafe</artifactId>
<version>0.1.0-SNAPSHOT</version>
</dependency>
export TYPESAFE_API_KEY=...
Spring Boot auto-configures a TypeSafeClient bean from spring.ai.typesafe.* properties. Calling it looks like the LangChain example, just statically typed:
SystemOneResponse response = typeSafeClient.systemOne(
"Help! My payouts have been failing for 3 days.",
Map.of(
"is_urgent", Noul.of("Does this convey urgency?"),
"department", Choice.builder()
.instructions("Which team should handle this?")
.option("billing", "Payments, invoicing, refunds")
.option("technical", "Bugs, outages, integrations")
.build(),
"frustration", Score.of("How frustrated is the customer?",
"Calm", "Frustrated", "Very angry")));
double urgency = response.noulValue("is_urgent"); // 0.92
String department = response.choiceValue("department"); // "technical"
double confidence = response.choice("department").confidence(); // 0.82
double frustration = response.scoreValue("frustration"); // 1.6
What makes this integration worth using over a hand-rolled HTTP client is the Spring AI advisor layer it ships alongside the raw client: JevGuardrailAdvisor screens prompts and responses for safety before they hit your agent loop, JevSelfRefineAdvisor judges an LLM’s answer against criteria and triggers a retry with feedback when it falls short, JevDocumentFilter/JevDocumentReranker slot into a RAG pipeline’s retrieval stage, and JevToolIndex picks the right tool for an agent call — including an explicit “none applicable” outcome, which a plain LLM-based tool router tends to fake its way around instead of admitting to.
If you’d rather skip any SDK, the whole API is one endpoint: POST https://api.typesafe.ai/v1/systemone, taking a state string and a map of typed questions, returning typed answers — a fine target for a RestClient or WebClient call if you don’t want a snapshot dependency in a production build yet.
Production checklist
- Don’t compare Jev’s per-token price to an LLM’s per-token price and call it a day — benchmark cost-per-decision on your actual prompts, both ways
- Treat a low-confidence Jev answer as genuinely uncertain, not as “probably right” — calibration means the number is honest, not that the task was easy
- Keep
choiceoption counts and descriptions tight; two-stage scoring handles up to 255 options, but a badly worded option list still produces a badly chosen answer - Pin the Spring AI TypeSafe starter version explicitly if you adopt it now — it’s a
0.1.0-SNAPSHOT, not a stable release - Use Jev to gate or route into an LLM, not to replace one — it has no path to open-ended generation by design
- Re-verify current pricing and SDK maturity before shipping — this is a six-day-old product as of this writing, and all of the above will move fast
Closing thoughts
The interesting thing about Jev isn’t that it’s cheap or fast — narrow classifiers already were. It’s that TypeSafe built an entire model class around treating calibrated confidence as the product, instead of a number an LLM begrudgingly bolts onto a text response when you ask nicely. For the part of an AI system that was always secretly a classifier wearing a chat-completion costume — routing, guardrails, scoring, extraction confidence — that’s a real architectural fit, not just a discount. For everything else, you still need something that can actually write.
Further reading: