Direct answer: Jev is an AI model from TypeSafe that makes decisions rather than text. You send one state and a set of typed questions, and Jev returns answers your code can read: one probability, one option from your list, or one value on your ladder. TypeSafe calls this class System One and released it on 15 September 2026.

It holds when: your question is closed, which means you write the answer space yourself. Limits: Jev writes no sentence, explains no reasoning, and performs no arithmetic.

We wrote this explainer from the official TypeSafe documentation and our own use on 20 and 21 September 2026. The prices and technical limits come from the official pages, not from memory.

Jev answers, it does not compose

A normal language model produces text. You ask for an answer, then your code reads a sentence and guesses the meaning. That guessing step is what usually breaks.

Jev removes the step. You write the question together with its answer space, and the answer comes back as data. There is no sentence to parse and no format to miss.

A diagram of the 3 Jev question shapes: Noul returns a number from 0 to 1, Choice returns one option with a probability spread, and Score returns one value on a ladder
The 3 answer shapes. You always write the answer space, so your code knows the shape that will arrive.

The 3 question shapes

Noul: a yes or no question

Noul returns one number between 0 and 1. That number is the probability the answer is yes. Example: "Does this message request a refund?". Source: the TypeSafe Noul page.

Choice: pick one from your list

Choice returns one option, a probability for each option, and confidence. You write the option list, up to 255 options. Write options that do not overlap, because that list decides the answer. Source: the TypeSafe Choice page.

Score: a value on your ladder

Score returns one value on an ordered ladder of 2 to 10 levels. The value is probability weighted, so 1.4 sits between level 1 and level 2. Source: the TypeSafe Score page.

All 3 can travel in the same request. The example below sends one customer sentence and 3 questions at once.

{
  "state": "Pesanan saya belum sampai dan saya sudah menunggu 5 hari.",
  "model": "jev-latest",
  "questions": {
    "minta_refund": { "type": "noul", "instructions": "Apakah pesan ini meminta pengembalian dana?" },
    "tim": {
      "type": "choice",
      "instructions": "Tim mana yang harus menangani pesan ini?",
      "criteria": {
        "pengiriman": "Paket, resi, dan keterlambatan",
        "tagihan": "Pembayaran, invoice, dan refund",
        "teknis": "Aplikasi, akun, dan error"
      }
    },
    "kekesalan": {
      "type": "score",
      "instructions": "Seberapa kesal penulis pesan ini?",
      "criteria": ["Tenang", "Kesal", "Marah"]
    }
  }
}

Confidence decides whether you may act

Every answer carries its own confidence number. Probability answers "how likely". Confidence answers a different question: "may my code act without a person".

That split is what makes a decision model usable in production. You set the threshold in code, for example 0.80 for an automatic action, and the rest goes to a human queue. Source: the TypeSafe confidence page.

TypeSafe writes that calibration is measured across groups of answers, not on a single answer. High confidence therefore does not guarantee that one answer is right.

What Jev does not do

Jev does not replace a generative model. They do different parts of the same flow.

A diagram of the division of work: fixed rules catch patterns, Jev decides the step, and the generative model writes the reply for a person
The order inside one chat turn. Rules tag patterns, Jev picks the step, then the generative model writes the sentence.
JobThe right tool
Write a reply for a customerA generative model
Pick 1 route out of 3Jev
Add up an invoicePlain code
Catch an invoice numberFixed rules
Rate how frustrated a customer isJev
Compare 2 datesPlain code

TypeSafe publishes the weak edges of jev-1.13 itself, reviewed on 17 September 2026. The model reads literally, is weak at arithmetic, and degrades when the state is large and full of irrelevant detail. Source: the jev-1.13 jaggedness page.

Price and technical limits

MeasureValue
Input token price0.042 USD per 1M tokens
Output token priceFree
Context limit64k per request, 32k for the state plus the longest question
Rate limit250,000 tokens per second, 1,200 requests per minute
Accepted inputText, JSON objects, and arrays of text

Every question in one request is evaluated in parallel, and the state is billed once. Stacking 12 questions into one call therefore costs less than 12 separate calls. Source: the TypeSafe models page and the fan-out pattern.

In our test one single question from Jakarta finished in a median of 760 milliseconds, network travel included.

When a decision model earns its place

Use a decision model when 3 things hold. First, your answer is closed. Second, the volume is large. Third, the decision repeats against the same rubric.

We used it on our own CRM assistant: 227 production conversations judged in 20.8 seconds for 0.0094 USD. The full story and the wiring are in our guide to auditing conversations with Jev.

Rama Digital recommends: start from the one decision you repeat most, not from the whole system. One correct rubric beats 10 half-written ones.

How to read the answer that comes back

A Jev answer uses a fixed shape, so your code reads it without extra guards. Each key inside answers carries the name you wrote in the request.

ShapeFields returnedHow to use it
NoulnoulCompare it with your threshold, for example 0.8
Choicechoice, probabilities, confidenceUse choice for the route and confidence for the gate
Scorescore, legend, probabilities, confidenceRound it when you need a level rather than a fraction
The whole requestusage.input_tokensMultiply by the price to cost every run

One detail matters. The question key is not sent to the model, so naming a question really_important changes nothing. Only instructions and criteria decide the answer.

The mistakes people make when writing questions

These 4 mistakes appear most often, and every one of them lives in the rubric rather than the model.

  • A question about taste. "Is this reply good" carries no condition. Write a condition someone else can check.
  • Overlapping options. When 2 options can both be right, the probability splits and confidence falls.
  • Criteria that fight the instruction. The instruction asks for one thing, the criteria describe another, and the answer follows either.
  • A state that is too fat. Sending a full customer history to judge one reply lowers the answer quality and raises the cost.

Test your rubric on 10 records whose answers you already know. When Jev and you disagree on more than 2, fix the rubric first. Source: the guide to building with System One.

Frequently asked questions

Is Jev a chatbot? No. Jev produces no sentence at all. It returns numbers, choices, and confidence that your code reads.

Does Jev work in other languages? Yes. The state and the questions may be written in another language, and in our test the answers followed the rubric we wrote.

How is it different from plain classification? Plain classification needs training data and a threshold you tune. Jev uses a rubric you write in sentences, then returns probabilities with their confidence.

Are the answers always identical? For the same state the answer is generally stable, but probabilities still move a little. That is why your cut-off belongs in code.

What does a trial cost? A small trial costs almost nothing. Our audit of 287 calls and 1,100 questions stopped at 0.0094 USD.

Next step

The remaining limit: a decision model gives numbers, not repairs. You still write the rubric, set the threshold, and change the system. We wrote about testing your own system in Chaos engineering for vibe coders.

If you want us to map the decision points worth handing to a machine, open AI Diagnostic. To talk it through first, pick an AI Diagnostic slot.

Sources