TL;DR: TypeSafe's RLCD is a training objective for calibrated decisions. The same three letters also name a 2023 research paper about chatbot alignment. RLHF trains a model to write text people prefer. Jev is claimed to return a typed value and a probability. Ballet reads that return value. A later step still decides what to do.
Builders who see "RLCD" on a Jev page and need to know which claim is structural, which claim is a training objective TypeSafe has named, and which claim Ballet will not make for you.
Search for RLCD and the first paper you find is Yang, Klein, Celikyilmaz, Peng, and Tian, Reinforcement Learning from Contrastive Distillation (2023, published at ICLR 2024). That method builds preference pairs from two contrasting prompts, trains a preference model, and then runs a reinforcement-learning alignment loop. The result is still generated text. It is a way to align a chatbot without human labels.
TypeSafe uses the same three letters for a different phrase: Reinforcement Learning for Calibrated Decisions. Their launch post (15 September 2026) and their AI primer describe it as a third post-training path, beside RLHF and RLVR. They have not published the reward function, the base model, or a paper. The name is theirs. The procedure is not public.
TypeSafe's primer starts from a pretrained language model and names three adaptations:
| Method | What it optimizes | What you get |
|---|---|---|
| RLHF | Responses people prefer | Chat text. Their primer says this can also reward sycophancy and confident-sounding hallucinations. |
| RLVR | Outputs a program can check | Reasoning models, described as strong at mathematics and slower. |
| RLCD | Decisions whose probabilities match how often they are right | A typed value and a probability. No prose. |
RLHF, in that primer, is the method behind InstructGPT and ChatGPT. Diogo Almeida, a TypeSafe cofounder, is a co-inventor of that work. Their objection is specific. Preference optimization causes what they call mode dropping: the model favors a style, such as instruction following, and puts less probability on other outputs. A sentence can be compelling to a person and still be a poor fit for unattended automation.
A chat model can still classify. The claim is about the number. A confidence you ask that model to write is shaped by what raters liked.
The primer states the RLCD output contract in three lines: the model does not generate text; it returns decisions and probabilities; a higher probability should correspond to a greater chance that the answer is correct.
Calibration, in their words, is a property of a group. Across many predictions, outcomes assigned 0.2 should happen about 20% of the time, outcomes assigned 0.8 about 80% of the time, and outcomes assigned 1.0 all of the time. The same page says these rates describe groups of predictions. They are not a guarantee about any single answer.
The launch post separates claims that have different evidence.
The output stays inside the options you defined. TypeSafe says a value outside that schema is mathematically impossible, and that their "0% type errors" figure is not an empirical measurement. A wrong label inside the options is still possible. "Cannot hallucinate," on that page, means the answer has the type you asked for.
The sampler emits the answers in one query. They contrast this with generating one token at a time. Latency that does not grow with a long written answer is something you can time. The training recipe behind it is not.
The published speed and price. The launch post says 70–500 ms end to end, measured from laptops on the US West Coast, and $0.042 per million input tokens, with output not charged. They say they cannot prove the price is unsubsidized. Ballet does not treat either figure as an SLA. A separate routing comparison is in What is an evaluation agent?.
TypeSafe has not published an expected calibration error, a Brier score, or a reliability diagram for Jev. Independent write-ups from the first week of the launch do not agree with each other. Calibration is a property of a model on a distribution. Check it on a labeled sample of your own records.
An evaluation agent calls typesafe-ai/jev with the fields you name. It returns a choice, a score, or a probability, and a confidence where that question type has one. It does not write the reply, update the CRM, or call tools.
Read the number. Leave a low confidence as a low confidence inside the classify step. A later step routes, parks the run for a person, or hands the stored answer to a language agent. The probability is an input to that policy.