Jev by Typesafe AI: A Hands-On Look at a Model That Only Makes Decisions Typesafe AI's Jev, the company's first public model, entered early access in mid-September as a "System One" model that returns typed decisions with probabilities instead of generating text. Typesafe says Jev was built on a new model architecture, a parallel sampler and a training method called Reinforcement Learning for Calibrated Decisions (RLCD), and accepts text-only state as a string, JSON object or array. A hands-on playground test on self-written support tickets found the model routes tickets, scores frustration and flags refund requests, though the author did not measure accuracy against labelled answers or run other models. Most AI news this year is about models that write more, reason longer and cost more per answer. Jev, from Typesafe AI https://typesafe.ai/blog/introducing-system-one-models-and-jev , goes the other way. It never writes a word. It reads some text, answers a set of typed questions and returns probabilities. I spent an evening in the Typesafe playground running support tickets through it. This post covers what Jev is, how its three question types work, and what I saw, especially how its confidence numbers behave when a ticket is unclear. A note on scope before you read further. This is a playground test https://console.typesafe.ai/playground on short tickets that I wrote myself . I did not measure accuracy against labelled answers, and I did not run other models. Where I compare costs with other models, it is arithmetic on list prices, and I say so. Disclosure: I used an AI assistant to help draft and edit this post. The tests, screenshots and results are from my own runs in the Typesafe playground, and I edited the text myself. Typesafe AI came out of stealth in mid-September, and Jev is its first public model. It is in early access. Typesafe calls Jev a “System One” model, after Kahneman’s split between fast, intuitive thinking and slow, deliberate thinking. A normal LLM is the slow side: it writes explanations, code and emails. Jev is the fast side. You give it text and a few questions with a fixed set of possible answers, and it returns a decision with probabilities. It does not write replies, produce code or explain its reasoning. The name comes from William Stanley Jevons: Typesafe expects cheaper intelligence to increase demand for it, the way more efficient steam engines increased the use of coal. The company says it built a new model architecture, a parallel sampler and a training method called Reinforcement Learning for Calibrated Decisions RLCD for this. https://docs.typesafe.ai/concepts/how-to-build-with-system-one https://docs.typesafe.ai/concepts/how-to-build-with-system-one A useful way to think about it is a smart if statement. Code can check order.total 100. It struggles with "is this customer angry?" or "which team should handle this?" Jev handles that kind of judgment and hands your code a value it can branch on. You send one request containing a state and a set of questions . The model evaluates each question against the state in parallel and returns one response: typed answers, plus probabilities and a confidence for Choice and Score questions. Your code then branches, sorts and routes on those values. The diagram at the top of this post shows the flow. The state can be a string, a JSON object or an array of text. Jev currently accepts text only. Images, audio and video are not supported yet. You define the possible answers through three question types, which Typesafe calls primitives: I used the playground at console.typesafe.ai with support tickets and these three questions: { "refund requested": { "type": "noul", "instructions": "The customer explicitly asks for a refund", "criteria": { "true": "The message clearly asks for money back, a refund or a credit", "false": "The message does not ask for money back" } }, "department": { "type": "choice", "instructions": "Which team should handle this?", "criteria": { "billing": "Payment or subscription issues", "technical": "Bugs or integration problems", "sales": "Pricing or account questions", "other": "Anything else" } }, "frustration": { "type": "score", "instructions": "How frustrated the customer appears", "criteria": "Calm, just stating facts", "Frustrated but civil", "Very angry, strong language" }} These are close to the example in Typesafe’s own documentation, which routes a ticket to a team, scores frustration and checks for a refund request. That makes this the kind of task Typesafe expects Jev to do well, so keep that in mind when reading my results. The ticket: “Hi, I was charged twice for order A-104 last week. This is the second time this has happened and I’m really fed up. Please refund the duplicate today or I’ll cancel my subscription.” I changed the ticket a few times: Two things stood out. The refund probability tracked whether the customer asked for money back, not whether the word “refund” appeared. And Score returns values between levels, such as 0.72, not just 0, 1 or 2. The