SherlockLiu Logo SherlockLiu
Back to all posts
Engineering

Jev vs LLM: TypeSafe's Model That Returns Decisions, Not Text

SL
Sep 19, 2026 21 min read
Jev vs LLM: TypeSafe's Model That Returns Decisions, Not Text

Every model you’ve used in the last three years shipped the same contract: you send text, it sends text back. You parse what comes out, hope the JSON is valid, and write a retry loop for when it isn’t.

On September 15, 2026, TypeSafe AI announced a model that breaks that contract entirely. Jev doesn’t generate text. It won’t write you a paragraph, explain its reasoning, or produce a single token of prose.

What it does instead: you hand it a piece of unstructured state — a log line, a support ticket, a JSON blob — along with a list of typed questions. It hands back typed answers. A choice from an enum you defined. A score on a rubric you defined. A yes or no. Each one carrying a calibrated probability.

TypeSafe calls this a System One Model, and claims it’s a new model class rather than a new model.

In this part

  1. What Jev actually is — the 101, and why "function call" describes it better than "model".
  2. How it differs from an LLM — four real differences in training, generation, output, and philosophy.
  3. Why calibration is the actual product — the feature that makes automated handoff possible.
  4. Designing an SRE agentic system with both — a concrete architecture on a real stack, and which model owns which stage.
  5. What hasn't been proven yet — because it's four days old and every number is the vendor's own.

What Jev Actually Is

TypeSafe’s own framing is the clearest one: “a frontier-intelligence function call — unstructured state in, typed probabilistic decisions out.”

That’s worth sitting with, because “function call” is doing real work in that sentence. You don’t have a conversation with Jev. There’s no system prompt, no message thread, no chat history. You call it the way you’d call a library function, except the implementation happens to be a frontier model.

You hand it the state — a log line, a ticket, a diff — plus your questions. It hands back one typed answer per question:

You supply Jev returns
severity as a Choice of P1–P4 P2, confidence 0.91
owning_team as a Choice of your teams payments, confidence 0.97
is_duplicate as a yes/no false, confidence 0.88

In the published Python SDK that looks like this:

from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

response = TypeSafeClient().system_one(
    state={"alert": alert_payload},
    questions={
        "owning_team": Choice(
            instructions="Which team owns this service",
            criteria={
                "payments": "Billing, checkout, ledger",
                "auth": "Login, sessions, tokens",
                "platform": "Cluster, networking, CI",
            },
        ),
        "is_duplicate": Noul(
            instructions="This repeats an already-open incident"
        ),
    },
)

team = response.answers["owning_team"]
team.choice       # "payments"
team.confidence   # 0.97

Note Noul — even the yes/no type returns a probability rather than a hard boolean. The calibration isn’t a feature bolted onto the output; it is the output.

No parsing. No “please respond only with valid JSON.” No retry loop for malformed output. Because the valid answers were defined before the call, TypeSafe’s claim is that an invalid one isn’t in the space of things the model can emit.

How It Differs From an LLM

Four differences, and they compound.

1. It’s trained on a different objective

This is the deepest difference, and the one that produces the others.

An LLM is trained with RLHF — reinforcement learning from human feedback. Human raters rank outputs by preference, and the model optimizes for what raters approve of. The reward signal is, fundamentally, what sounds right to a person reading it.

Jev is trained with what TypeSafe calls RLCD — Reinforcement Learning for Calibrated Decisions. Instead of rewarding the answer a rater liked, it rewards the model for producing a confidence score that matches how often it’s actually right.

The distinction in one line: RLHF optimizes for approval, RLCD optimizes for epistemic honesty.

There’s a detail here that makes the claim harder to wave away. TypeSafe’s founder, Diogo Almeida, is a former OpenAI researcher — the fourth author on Training language models to follow instructions with human feedback, the 2022 paper that introduced InstructGPT and put RLHF at the centre of how modern models get aligned. The person arguing that RLHF is the wrong objective for software decisions is one of the people who built it.

That’s not proof he’s right. It does mean the critique comes from someone who knows precisely what he’s critiquing.

If Jev says it’s 90% confident, TypeSafe’s claim is that it will be correct about 90% of the time — not as a vibe, but as a trained property. That’s a very different thing from an LLM saying “I’m fairly confident,” which is text that was rewarded for sounding reassuring.

2. It generates in one pass, not one token at a time

An LLM is autoregressive: it emits one token, feeds it back in, emits the next. Every token depends on the one before it, which is why latency scales with output length and why you watch answers stream in.

Jev uses what TypeSafe calls a parallel sampler — all outputs produced simultaneously, in a single query.

Two Ways to Produce an Answer LLM — autoregressive The disk is each token depends on the one before it you get a string — then you parse it and handle it when parsing fails 3 – 329 seconds Jev — parallel sampler severity: P2 0.91 owning_team: payments 0.97 is_duplicate: false 0.88 all three answers, one pass, already typed 70 – 500 ms

Figure: the latency gap isn't an optimization — it falls out of the architecture. Nothing has to wait for the previous token, because there are no tokens. (Latency figures are TypeSafe's own.)

3. It cannot produce a malformed answer

Because valid outputs are defined in the schema up front, TypeSafe says type errors are mathematically impossible — not unlikely, not rare, but outside the space of things the model can emit.

They report a 0% structured-output error rate, against 0.58% for GPT-5.6 Terra and 5.73% for Opus 5 on the same evaluation.

Worth being precise about what this does and doesn’t mean, because “can’t hallucinate” is doing a lot of marketing work: Jev can still be wrong. It can confidently route a ticket to the wrong team. What it can’t do is return a team that wasn’t in the list you gave it, or a severity that isn’t a valid severity. The shape is guaranteed; the judgment is not.

4. It’s aiming at System 1, not System 2

The name is a deliberate nod to Daniel Kahneman’s Thinking, Fast and Slow. System 2 is slow, deliberate reasoning — which is exactly what chain-of-thought LLMs do, and do well. System 1 is fast, intuitive judgment.

TypeSafe founder Diogo Almeida’s argument is that most software decisions want a fast System 1 answer, and the industry has been serving them with System 2 machinery — paying seconds of latency and cents per call for a decision that’s really just “which bucket does this go in?”

Here’s the whole comparison in one place:

  LLM Jev
Training objective RLHF — what human raters prefer RLCD — confidence that matches accuracy
Generation Autoregressive, token by token Parallel, single pass
Output A string you parse and validate A typed value, constrained to your schema
Confidence Text that sounds confident A calibrated number, 0–1
Philosophy System 2 — deliberate reasoning System 1 — fast bounded judgment
Latency 3–329 s 70–500 ms
Input cost $0.20–$10 per million tokens $0.042 per million tokens
Output cost ~5× input None — there are no output tokens
Can explain itself Yes No

Jev’s figures are TypeSafe’s published numbers; the LLM column is the range across current frontier models.

Why Calibration Is the Actual Product

The speed and the price are the headline. Calibration is the thing that actually changes how you build systems.

An uncalibrated confidence score is decoration. If a model says “95% sure” and is right 60% of the time, you can’t do anything with that number except display it. A calibrated score is a control input — you can write a threshold against it and let software act on the result.

(Necessary, but not sufficient — there’s a sharp catch in what calibration alone buys you, which the limitations section comes back to.)

That turns confidence into routing logic:

A Calibrated Number Is an Escalation Policy confidence ≥ 0.95 Act automatically close the duplicate, scale the pod, suppress the alert 0.70 – 0.95 Page a human useful signal, not sure enough to act unsupervised < 0.70 Escalate to the LLM this needs investigation and language, not a bucket

Figure: the threshold is the handoff mechanism — it's what lets a fast model and a smart model share one workflow safely.

This is also the answer to an objection you should be forming about now. TypeSafe’s own benchmark puts Jev at 67.8% accuracy — wrong on roughly one case in three. How can you possibly let that act unsupervised?

Because calibration means the errors aren’t spread evenly. They concentrate in the low-confidence band — which is exactly the band you never act on alone. The ≥0.95 slice is a different population from the aggregate.

That’s the whole trick, and it’s worth stating plainly: you don’t need a model that’s right 95% of the time. You need one that knows which 95%.

The rule

  • Use Jev where the answer space is known in advance — routing, scoring, classification, extraction, guardrailing. Bounded questions only.
  • Use an LLM where the output is the explanation — investigation, writing, code, anything a human needs to read and be persuaded by.
  • Never ask Jev "why". It returns a decision and a probability and nothing else. If your audit trail needs a rationale, that's an LLM's job by construction.

Designing an SRE Agentic System With Both

The abstract case is fine, but the split gets much clearer against a real stack. Here’s ours: OpenTelemetry + New Relic (how we collect and query telemetry), AWS EKS (where the services run), incident.io (which pages people and tracks incidents), and Slack (where humans actually talk during one).

If the telemetry layer underneath this is unfamiliar, the Practical OpenTelemetry series covers how the signals get collected and the Observability Engineering series covers what you do with them once they arrive. This post assumes both and focuses only on who decides what.

One architectural constraint shapes everything, and it’s easy to miss: Jev has no knowledge of the world beyond the state you hand it. It cannot look anything up. It doesn’t call tools. It doesn’t query New Relic. It’s a pure function — state in, decision out.

So the orchestrator pulls the state and hands Jev slices of it. Tool-calling and investigation belong to the LLM. That single fact decides most of the design.

One Reliability Loop, Two Kinds of Model 1 · Observe JEV OTel + New Relic, aggregated into windows and candidates thousands/min — the pre-filter matters 2 · Alert JEV "page-worthy?" + confidence a threshold replaces a static alerting rule 3 · Triage JEV severity · owner · duplicate? opens incident.io, posts the Slack channel 4 · Research LLM queries New Relic, reads deploy history + runbooks, forms a hypothesis 5 · Mitigate LLM PROPOSES · JEV GUARDS rollback / scale / flag on EKS — Jev scores it against a safety rubric before it touches prod 6 · Learn LLM + JEV LLM writes the postmortem; Jev classifies hundreds of past incidents for patterns what we learned tunes detection Jev — bounded, high-volume, sub-second LLM — open-ended, needs language Both, composed

Figure: the left half of the loop is cheap and constant; the right half is expensive and rare. Cost follows volume, and volume follows the stage.

The economics are the whole argument — but they need doing out loud, because “cheap” has a ceiling even at $0.0004 a decision.

Do not point Jev at every span. At a million decisions a minute, $0.0004 each is $400 a minute, which is nobody’s line item. The pre-filter still matters: aggregate spans into windows, let cheap deterministic rules nominate candidates, and hand Jev the thousands of judgement calls a minute that are actually ambiguous. That’s $0.40–$4.00 a minute, which is a line item — and still a hundred times more volume than an LLM could touch.

At $0.18 per decision — Opus 5’s cost on TypeSafe’s benchmark — the same thousands-per-minute workload is $180 a minute, and the conversation stops being about architecture and starts being about budget.

The reverse holds just as firmly. Stage 4 is where an incident actually gets solved, and it’s pure System 2 work: correlate a latency spike against a deploy three hours ago, notice the runbook is stale, propose a theory. Jev structurally cannot do any of that. It has no tools, no memory beyond what you pass it, and no capacity to explain.

Two implementation details this design lives or dies on:

The static alert rules stay. Replacing a deterministic threshold with a probabilistic one sounds elegant until Jev is unavailable and nothing pages. Keep the old rules running underneath as a floor — Jev’s job is to suppress the noisy ones it’s confident are benign and raise the ones static thresholds miss, not to become the only path to a page.

That constraint isn’t new, incidentally. The rule that every page must be actionable and novel predates all of this by a decade — Jev changes who evaluates it, not what it says.

“Jev guards” means a real rubric, not a vibe. The questions it scores before an action touches EKS are the boring, specific ones — blast_radius as a Choice of single-pod / service / region, touches_persistent_data as a yes/no, is_reversible_within_5min as a yes/no. Anything that comes back region-wide, data-touching, or irreversible goes to a human regardless of how confident the LLM was when it proposed the action.

The lesson

Stop asking "which model is better" and start asking "what shape is this decision?" Bounded, repeated, and high-volume wants a System One model. Open-ended, rare, and explanation-shaped wants an LLM. The interesting engineering is in the threshold between them — not in picking a winner.

What Hasn’t Been Proven Yet

Jev is four days old as of writing. Everything above that sounds like a fact is TypeSafe’s own reporting, and it deserves saying plainly:

Every benchmark is vendor-published. There is no independent evaluation, no third-party benchmark suite, and no public access — it’s a waitlist. Here are their numbers on their own four-workflow evaluation, averaged across all four (security incident response, observability, invoicing, customer service):

Model Accuracy Cost/case Latency
Jev 67.8% $0.0004 0.4 s
GPT-5.6 Terra 67.9% $0.0304 10.1 s
GPT-5.6 Sol 74.1% $0.0836 23.3 s
Opus 5 73.1% $0.1761 37.8 s

Read honestly, that table says Jev reaches parity with a mid-tier model at roughly 1/76th the cost and 25× the speed — and that the frontier models still hold an accuracy lead of five points, rising to over six at the top end. Both halves matter.

Calibration alone is a weaker guarantee than it sounds. This is the caveat worth internalising, and it’s a standard property of calibration rather than a knock on Jev specifically: a model that always predicts the base rate can be perfectly calibrated and contribute nothing to any individual decision. “Well calibrated” and “useful” are different properties. You should measure both.

Calibration is a property of a distribution, not a model. It was calibrated on some mix of inputs. Your log format changes after a migration; your team names change after a reorg; your incident mix shifts after a platform move — and nothing tells you the confidence scores drifted with them. Log every decision with its confidence, bucket the outcomes, and check that the 0.9 bucket really does come in around 90%. If your inputs drift, that’s where you’ll see it first.

RLCD is a name, not yet a published algorithm. TypeSafe has described what it’s meant to do without publishing enough for anyone outside to evaluate it — a gap others have flagged too.

The pricing may not be real. Nobody outside TypeSafe can tell whether the price is subsidised — and free output tokens at frontier quality is not obviously a sustainable position.

And it can’t explain itself — which, in a regulated domain or a serious postmortem, is sometimes the entire requirement.

Key takeaways

  • Jev isn't a smaller LLM — it's a different contract. State in, typed decision out, no text anywhere. "Function call" describes it better than "model".
  • The training objective is the root difference. RLHF optimizes for what a human rater approves of; RLCD optimizes for confidence that matches reality. Everything else follows from that.
  • Calibration, not speed, is what changes your architecture. A trustworthy probability is a threshold you can write code against — which is what makes automated handoff between a fast model and a smart one safe.
  • Cost follows volume, and volume follows the stage. Observing telemetry and investigating one incident are different economic problems; serving both with one model means overpaying for one and underserving the other. Cheap still isn't free — a pre-filter in front of the cheap model matters more than people expect.
  • "LLM proposes, Jev guards" is the reusable pattern. Let the model that can reason suggest the action, and the model that can't hallucinate a schema score it against a safety rubric before it runs.
  • Treat every number as a vendor claim until someone independent checks. It's four days old, access is gated, RLCD is unpublished, and "well calibrated" does not automatically mean "useful".

References

</content> </invoke>

Comments