Jev judgmentsbeta

The small, fast judgment model that runs next to your agent's LLM, what it decides, what it is sent, and how to turn it off.

Your agent’s main model writes the replies. Next to it, Kletso runs a second, much smaller model that does not write anything: Jev, TypeSafe’s System One model. Jev answers typed questions about a piece of state and returns an answer with a probability, in roughly 100–300 ms. Kletso uses it where ordinary code needs a little semantic understanding and where asking the big model would be slow, expensive or unreliable.

Jev runs on Kletso’s own TypeSafe key. It is not metered on your provider key and is not billed to you.

Where Jev runs

PlaceWhat it decidesWhat happens with the answer
Turn gate (every user message, before the LLM)intent: answers the UI just shown · new request · chit-chat · wants a human · abuse or injection. picked_option: which option of the UI last shown the message selects, or none, or skip. abuse: probability the message is abusive or tries to override the assistant’s instructions.A picked option is attached to the user message as a structured value, so the model and the stored history have one deterministic reading of “3”, “option 1” or “my usual crew”. A clear request for a human adds a hint that makes the model call handoff when hand-off is enabled. Abuse or injection adds an “untrusted message” hint.
RulesAn optional yes/no question you write, judged over the event properties and the user’s context (“Is this a high-value cart left by a first-time buyer?”).The rule fires only when the probability is at or above your threshold (default 0.7). See Triggers.
Conversation tags (after each assistant turn)Topic (question, purchase, support issue, navigation, feedback, onboarding, other), sentiment (0–2), probability the conversation is resolved, probability the user wants a human.Chips in Conversations; aggregated in Analytics.
WorkflowsThe Decision (Jev) node: your own Choice, Noul and Score questions over templated state.The answers map becomes the node’s output, so a Condition node can branch on vars.<nodeId>.intent.choice == 'refund'. See Workflows.
VoiceThe avatar’s mood for the sentence being spoken.Replaces the keyword heuristic when Jev is available; the heuristic stays as a fallback.

Jev never produces text or UI. If TypeSafe is unreachable, rate-limited or slow, the turn, rule, tag or workflow step runs exactly as it did before Jev existed.

Why a turn gate

Multi-step flows (an onboarding quiz, a form filled one question at a time) depend on knowing which question the user was looking at when they typed “3”. The LLM used to infer that from history; with history windows, retries and terse prompts it sometimes guessed wrong and repeated the question. The gate reads the UI that was actually on screen, maps the message to one of its options with a calibrated probability, and writes that reading into the turn before the big model sees it.

A picked option looks like this in the stored user message and in the model’s history:

{ "value": { "picked": "My usual crew", "componentId": "q2", "surfaceId": "sfc_q2a7",
             "questionId": "Q2", "step": 2, "confidence": 0.96 } }

Only options with confidence of at least 0.6 are attached. When your app already sends a structured answer with KletsoOutbound.value(...) the gate skips the option question: the value is already exact.

What is sent to TypeSafe

For the turn gate: the user’s latest message, the assistant’s previous text, and a compact copy of the UI last shown (component types, labels, options). For rules: the event name, its properties and the public context keys. For tags: the last few turns of the transcript. For workflows: the state you template into the node. Sensitive context keys are never included.

TypeSafe does not train on these requests. The data leaves Cloudflare for TypeSafe’s API for the duration of the call. Kletso’s privacy page will list TypeSafe as a sub-processor; until then this page is the notice.

Limits of the model

Jev is a decision model, not a reasoning model. TypeSafe documents its edges, and Kletso’s uses stay inside them:

  • Text only; English is the primary language, other languages are handled but less accurately. Test on your own content before relying on a semantic rule in another language.
  • Not for arithmetic, counting, or date comparison. Keep those in code or in the LLM.
  • Reads instructions literally. A semantic rule should state the exact condition, including boundary cases, rather than hint at it.
  • 64k tokens per request; Kletso sends far less.
  • Rate limits are set by TypeSafe and can change; when a call is throttled the fallback path runs.

Inspecting and turning it off

  • Every judgment is an event: judge.turn in the conversation timeline carries the answers, their probabilities, the latency and the token count.
  • Per agent: Agent → Behaviour → Jev turn judgments switches the gate off for that agent. Rules, tags and workflow nodes are configured where they live.
  • Analytics shows a Jev judgments card with calls, tokens and the estimated cost at TypeSafe’s list price, for transparency; it is not charged to you.

Last updated 2026-09-28 · Report an issue with this page