j.jevmanual.
OfficialChecked 2026-09-21·jev-1.13.0

How Jev Works: State, Questions, Probabilities and Decisions

Follow the public API from application state to typed judgments and code-controlled actions.

On this page1. Your application creates state2. You define typed questions3. Jev evaluates the questions4. Jev returns probability distributions5. Your code owns the actionWhy questions should be atomicWhy Jev is not a chat model

This page explains Jev through its public API. TypeSafe has not published enough detail to independently reconstruct its internal architecture.

1. Your application creates state

Prepare the material to evaluate. For support, that might be the ticket message, account plan, and relevant policy excerpt. Avoid sending a full customer history when only one message is relevant. State can be a string, object, or array.

State and typed questions enter Jev; typed answers return to code, which chooses act, review, or escalate.

2. You define typed questions

Give each judgment its own key. A department Choice selects from categories. An urgency Score evaluates an ordered rubric. A refund_requested Noul estimates whether one proposition is true. The question ID is an application identifier; TypeSafe says it is not used in inference. Put the actual meaning in instructions and criteria.

3. Jev evaluates the questions

Questions in a request share the same state and are evaluated in parallel. Do not write a second question that assumes it can read the first answer. If question B requires a result from question A, make a second call or combine results in code.

4. Jev returns probability distributions

Choice supplies the selected category and probabilities over all categories. Score supplies a probability-weighted value and a legend mapping level indices to your rubric. Both include confidence. Noul supplies the probability of yes.

Inspect the distribution when a result is surprising. “Billing” at 0.46 with another category at 0.44 is a different operational situation from a concentrated billing distribution. Neither is authorization to refund a payment.

5. Your code owns the action

Code validates the answer, checks policy, applies thresholds, and chooses a handler. Uncertainty should have a defined destination: another question, missing-data request, human review, or a safe fallback. Timeouts and malformed outputs need that same explicit handling.

Why questions should be atomic

“Is this urgent, valid, and eligible for a refund?” combines three decisions whose errors have different costs. Split them. A refund request can be urgent and still ineligible; one overloaded label hides that distinction.

Why Jev is not a chat model

The API does not ask for a conversation completion. It asks for decisions over predefined answer spaces. Use an LLM when the next step is to draft a message, explain a conclusion, or generate code. Use deterministic functions for exact computation.

Search the manual