Built for software, not for chat
A chat model is the right tool when you need a draft, a summary, or an explanation. It is an awkward tool when the next step in your product is a branch: route this ticket, block this action, score this lead. Someone then has to read the paragraph and hope the wording stays stable.
Jev takes the situation you already have — a ticket, a message, a JSON object, an array of text — and answers questions whose shape you fixed in advance. The current model is text only. Images, audio, and video are not supported yet. What comes back is a typed value and a probability, which is something a program can store, compare, and act on.
Three kinds of answer
Every question is one of three shapes. A choice asks Jev to pick one label from a list you wrote: billing, technical, or account. It returns the winner and a probability for each option.
A score places the input on a scale you define, such as how urgent a message is. The result can land between the marks, so you are not forced into a blunt bucket.
A noul is TypeSafe's name for a yes-or-no question. Does this message ask for a refund? The answer is a probability between 0 and 1. Your code compares that number to a threshold you chose. You can ask several of these about the same state in one call. The model judges. Your application decides whether to route, queue, block, or ask a person.
Where it earns a place
Use it where you already know the answer space. Support routing. Refund detection. A check before an agent is allowed to call a tool. A quality score on a draft before it is sent. On those jobs a small typed result is more useful than a fluent paragraph, and it is cheap enough to put on a hot path.
The pattern that is showing up in real stacks is a pairing. A language model writes or reasons in the open. Jev handles the repeated judgments in between. LangChain has published a way to drop it into an agent harness as that check. That is the right mental picture: a colleague of the chatbot, doing the part the chatbot is bad at.
What you still own
Jev does not know facts you forgot to send. If a decision needs a balance, a policy, or a fresh document, your code fetches it first and puts it in the state. It also does not click, send, or update a record. Thresholds, permissions, and the audit log stay in your system.
The questions are the surface a human has to review. Vague questions produce vague probabilities. Write them the way you would write a rule for a new teammate, and keep them in one file so someone can still read them without a tour of the codebase.
