RLCD, Reinforcement Learning for Calibrated Decisions, is the training method behind TypeSafe's Jev. Today: what calibration means, how RLCD rewards it, what we know about Jev's architecture, and how to use it in production.
Two of the 40 answers are wrong. The model sounded equally confident on all 40.
Fast and intuitive. "Is this email spam?" "Which team should get this ticket?" Picks an answer in about 70–500 ms and returns a probability.
Slow and deliberate. Writes code, drafts replies, reasons step by step. Takes seconds or minutes and produces free text.
Sources: TypeSafe launch post · TypeSafe model docs · Wikipedia
TypeSafe calls it "a frontier-intelligence function call." You define the possible answers. Jev can only pick from your list, so it cannot invent a category you never offered.
🌦️ The weather forecaster test. Collect every day she said "70% chance of rain". If it rained on about 70% of those days, she is calibrated.
Bar heights are illustrative, for teaching.
Bar heights are illustrative.
Mode dropping. RLHF teaches the model to favour one style of answer, and the probability of every other answer drains away. What is left reflects what raters liked, not how often the answer is right.
Truth is 1 if the answer was right and 0 if it was wrong. Drag the slider and watch how being confidently wrong explodes.
Task: "Does this code contain a security bug?" Pick an example and watch one step. This is the general idea of calibration training, not Jev's published recipe.
| Case | Said | Truth | Penalty |
|---|---|---|---|
| A · right & sure | bug 95% | bug | 0.003 |
| B · wrong & sure | bug 98% | clean | 0.960 |
| C · unsure | bug 52% | either | 0.23–0.27 |
Bar heights are stretched to make small differences visible. Read the numbers.
Average penalty = q·(1−p)² + (1−q)·p²
q = how often it is really right. p = what it says.
TypeSafe has not published its recipe. An independent team did, using Qwen3-1.7B, with open code. This is the best public picture of what RLCD can look like.
Source: Gao & Wang, OpenJev-RLCD (arXiv 2609.38850) · code on GitHub
Sources: TypeSafe launch post · Learn Jev: what is known about RLCD · Wikipedia: Jev
Not TypeSafe's blueprint. A safe picture that matches everything they have published.
# POST https://api.typesafe.ai/v1/systemone { "model": "jev-latest", "state": "My card was charged twice.", "questions": { "category": { "type": "choice", "instructions": "What kind of request?", "criteria": { "billing": "charges, refunds", "bug": "something is broken", "how_to": "how do I…", "other": "none of these" } }, "urgent": { "type": "noul", "instructions": "Is this urgent?" } } }
Also on OpenRouter as typesafe/jev-1.13, and in Pydantic AI as typesafe:jev-latest.
confidence = (pmax − 1/n) / (1 − 1/n)
= (0.82 − 0.25) / 0.75 = 0.76
60 simulated tickets from a calibrated model. Number on each tile = confidence.
jev-1.13.0, not jev-latest, once you've tuned a threshold.Email pattern and habits 1–3: RoboNuggets "Jev use cases" guide. Habit 4: TypeSafe model docs.
In three weeks, three organisations shipped the same idea: typed answers, no generated text. Learn the pattern. Then pick the product that fits the hardware and the budget.
Sources: TypeSafe launch post · Strands Decider blog · OpenAI Decisions docs · DevDay 2026 recap
Same three of our use cases, same states, same options, same gold labels, run against all three systems. 88 decisions each. Strands ran locally on an M2 Pro; Jev and the Decisions API were called over the internet from Dubai.
Latency is not like for like: Strands has no network hop but modest hardware; their own figure is ~115 ms on an RTX 3090. Jev cost uses TypeSafe's published $0.042/1M input; Luna uses OpenAI's $0.10/1M input, output unbilled on both.
Split every choice decision by whether the model reported 0.8 confidence or above. If the gate is real, accuracy inside the two buckets should differ sharply. It does, on all three.
| system | decisions at ≥0.8 | accuracy there | decisions below 0.8 | accuracy there | separation |
|---|---|---|---|---|---|
| Jev | 66 | 98.5% | 8 | 37.5% | 61 points |
| Strands 2B | 48 | 97.9% | 26 | 84.6% | 13 points |
| Luna | 59 | 100.0% | 15 | 80.0% | 20 points |
Choice decisions only (74 of 88). Yes/no questions carry no confidence field in any of the three APIs, by design. Run it yourself: 17_Decision_Models/comparison/benchmark.py