Decision Models

rule

Definition

A decision model takes a piece of state and a set of typed questions, and returns a probability for each answer the caller supplied. It produces no text. Removing generation buys three properties an LLM cannot offer together: the answer is always one of the permitted options, every answer carries a calibrated confidence, and all questions about the same state are answered in a single forward pass, in tens to hundreds of milliseconds.

TypeSafe AI named the class "System One" models when it launched Jev on 15 September 2026, borrowing Kahneman's split between fast, intuitive judgement and slow deliberation. Within a month Kev, Strands Decider, Cloudflare, OpenAI, Microsoft and Liquid AI had all shipped models with the same interface. The framing is the one behind dual-process agent design, with the fast loop now served by a model built for it.

checklist

Question Types

Every model in the class shares the same three question types, which Jev introduced. OpenAI's Decisions API renames noul to predicate but keeps the shape. The caller writes the options; the model only distributes probability across them.

list
ChoiceOne option from a supplied list

A categorical pick, returned as a probability distribution over every option plus a separate confidence. The model cannot answer outside the list. Jev accepts up to 255 options.

Example: Which team should handle "My payouts have been failing for 3 days"? Billing, sales or retail.

linear_scale
ScoreA position on an ordered rubric

A graded rating against levels the caller defines. Jev accepts two to ten levels and can return a fractional position between them.

Example: Rate the sentiment of this review from very negative to very positive.

toggle_on
NoulA probability between 0 and 1

A yes or no question answered as how true the statement is. Values near 1 lean yes. Jev returns the probability alone, with no separate confidence field.

Example: Are the tool's argument values grounded in something the user said?

account_tree

Architecture

The class is defined by its interface, not its internals. Four constructions produce it.

ConstructionModelsTrade
Purpose-builtJevStrongest reported results; architecture unpublished, weights closed
LLM torso, new headStrands Decider, Kev, Clef, Microsoft-Decision-1, Nimble, Tev1A few hundred lines of training over a Qwen base; closer to a cross-encoder than a new model
Encoder with decision headLaya, Von, d1-omni, GLiNER2.5-DecideUnder 500M parameters and CPU speed; accuracy falls past about 20 options
Logit readout, no trainingSemIfAny frozen LLM; weaker calibration

Whichever route, the interface differs from an LLM asked to reply in one word on every row below.

PropertyLLM with constrained outputDecision model
Output headVocabulary-sized language-model head, decoded token by token.A scoring head over the supplied options. No vocabulary, no decoding loop.
Invalid outputPossible: malformed JSON, an option not on the list, or prose around the answer.Impossible by construction. Probability mass exists only on the supplied options.
ConfidenceToken log-probabilities where exposed, typically overconfident; frontier APIs rarely expose them.A calibrated probability per option, trained so that 0.9 means right about nine times in ten.
Several questionsOne call per question, or one long structured answer decoded sequentially.All questions about the same state in one forward pass.
LatencySeconds, dominated by output tokens.Tens to hundreds of milliseconds, growing roughly linearly with input length.
Training objectiveNext-token prediction, then preference tuning.Answer accuracy and calibration against outcomes.
bolt

Jev

TypeSafe AI's hosted model, and the one that defined the class. TypeSafe was founded by Diogo Almeida, a former OpenAI researcher and co-author of the 2022 RLHF paper. Jev is post-trained with Reinforcement Learning for Calibrated Decisions (RLCD), which rewards probabilities that match outcomes rather than responses that humans prefer. Vercel reported that 13% of its paid AI Gateway users had called Jev within 24 hours of launch.

Released15 September 2026. Version 1.13 as of 22 September 2026.
AccessHosted only, through the TypeSafe API and OpenRouter. Weights are not published.
ArchitectureUndisclosed beyond a parallel sampler that produces all outputs in a single query rather than autoregressively.
Context64,000 tokens across the state and all questions, and 32,000 for the state plus the longest question.
Latency70 to 500 ms end to end, network included.
Price$0.042 per million input tokens, with no charge for output. TypeSafe says the price may be subsidised.
Input stateA string, a JSON object or an array of text.

TypeSafe publishes nine known weaknesses: literal reading, unreliable arithmetic, date ordering, a single hop of indirection at most, sensitivity to context, adversarial inputs, contradictory state, contradictory invariants, and no text output.

hub

Strands Decider 2B

AWS's open source entry, released under Strands Labs with weights on Hugging Face and the training data, scripts and every version's changes in the repository. It takes a Qwen3.5-2B-Base torso, removes the language-model head, and replaces it with a pointer head of about a million parameters. The head compares the hidden state at an <answer> position with the hidden state at each option's last token, and a masked softmax over those scores serves all three question types. The released checkpoint is v19; an earlier slot-head design performed significantly worse.

Released1 October 2026, as strands-decider-2B-hobson-v19.
AccessOpen weights under Apache 2.0, run locally through a CLI or Python library.
Parameters1.9 billion. Rank-16 LoRA adapter on the torso, head run in fp32.
ContextEvaluated at 3,072 and 4,096 token windows.
LatencyMedian 115 ms and p95 299 ms on an RTX 3090. Median 153 ms for short tasks on an M3 MacBook.
Accuracy0.723 on the JevBench public set (167 of 231), with every easy task correct, 0.875 on standard and 0.505 on hard.
CalibrationExpected calibration error 0.052. On unseen short classification tasks, answers at 0.9 confidence or above are right about 95% of the time.
Training11 hours on one RTX 3090, or 1 hour 10 minutes on eight H100s.

The project preregisters each training run: predictions and failure conditions are written before training and outcomes appended without editing them. Six retrains of one recipe varied by a standard deviation of 3.2 tasks, so the maintainers treat a difference under about 10 tasks between two single runs as unresolved.

deployed_code

Kev

Jared Palmer's open family, built as a drop-in for Jev. It is the Strands Decider recipe at larger sizes, and a Kev server answers the same requests as TypeSafe's API, so TypeSafe's SDK and any framework that takes a base URL work against it unchanged.

ReleasedKev 1.0 in late September 2026, after Qwen2.5 and Qwen3 prototypes that remain published but are no longer developed.
AccessOpen weights under Apache 2.0. Self-hosted through its own server; Kev-4B is also on OpenRouter.
Sizes0.8B, 4B and 9B as rank-16 LoRA adapters plus a pointer head on frozen Qwen3.5 bases. 27B as a full fine-tune of Qwen3.8-27B, shipped as 51 GB of bf16 weights.
Hardware0.8B on any 4 GB GPU. 4B and 9B on an L40S, H100 or 32 GB Mac. 27B on an 80 GB GPU, about 66 GB resident.
Latency18.1 ms of model time for six questions on an H100 with Kev-4B, 41.5 ms on an L40S. 721 ms for five questions on an Apple M5, 136 ms with the state cached.
AccuracyHeld-out new-source test: 0.697 (0.8B), 0.838 (4B), 0.852 (9B), 0.889 (27B). Jev scored 0.857 on the matching dev split.
CalibrationKev-9B calibration error falls from 0.103 to 0.041 after temperature scaling. Confident errors (0.9 or above on a wrong answer) at 2.4%, against 3.7% for Jev.
AutomationAt a 5% error budget, the 4B, 9B and 27B checkpoints automate 52% to 69% of new-source decisions, against 70% for Jev.
Independent checkOpper.ai, 25 September 2026: Kev-4B within two points of Jev on arXiv categories, Stack Exchange and GitHub labels, with Jev better calibrated.
compare_arrows

Comparison

DimensionJevStrands Decider 2BKev
ConstructionPresented as a new architecture with a parallel sampler; details unpublishedPretrained Qwen3.5-2B torso with its language-model head replaced by a pointer headRank-16 LoRA plus pointer head on frozen Qwen3.5 at 0.8B to 9B; full fine-tune of Qwen3.8 at 27B
DeploymentHosted APILocal CPU or GPU, including Apple siliconSelf-hosted server speaking the TypeSafe API; 4B also hosted on OpenRouter
Weights and dataClosedOpen, with training data and scriptsOpen weights and training code; datasets carry their own licences
Reported accuracy67.8% on TypeSafe's own four-workflow benchmark72.3% on the JevBench public set (different tasks, not comparable)83.8% (4B) to 88.9% (27B) on the author's held-out sources, where Jev scored 85.7%
Latency floorBounded by the network round tripBounded by local hardwareBounded by local hardware; tens of milliseconds on a datacentre GPU
ContextUp to 64,000 tokensA few thousand tokensNot stated in the repository
Cost modelPer input tokenHardware already ownedHardware already owned, or per token through OpenRouter
CustomisationNone beyond the promptRetrainable on a single consumer GPURetrainable; ships a fine-tune and deploy skill for coding agents

The choice is mostly a deployment one. Jev for the strongest model behind an API, Strands Decider for a small machine or offline, Kev for the open recipe scaled up to a datacentre GPU.

apps

Other Models

The independent hub at systemonemodels.org listed 26 decision models by mid October 2026. They fall into three patterns.

cloud
Hosted platformsOpenAI, Microsoft, Cloudflare, Together, Upstage

Per input token with no output charge, $0.038 to $0.10 per million. Compete on context length and latency.

tune
Open Qwen fine-tunesKev, Strands Decider, Clef, Nimble, Tev1

LoRA plus pointer head on a Qwen base. Cheap enough to train that most appeared within two weeks.

compress
Encoder modelsLaya, Von, d1-omni, GLiNER2.5-Decide

Under half a billion parameters, single-digit milliseconds on a CPU, weak on long option lists.

ModelVendorReleasedWeightsConstructionNotes
Decisions APIOpenAIBeta 6 Oct 2026Closedgpt-6-luna, own endpointText and images. $0.10 per million input tokens. Claims 10x faster than Responses.
Microsoft-Decision-1Microsoft FoundryOct 2026ClosedPost-trained Qwen3.5-9BText only, 32,768 tokens, $0.042 per million. Benchmark figures unpublished.
Clef, Clef-flashCloudflare1 Oct 2026Open, Apache 2.0Qwen3.8-27B and Qwen3.5-9BWorkers AI, 64,000 tokens, Jev-API compatible. Clef-flash median 38.8 ms. Clef-omni added images on 9 October.
d1, d1-3B, d1-omniLiquid AI29 Sep; open 7 Oct 20263B and 600M openLFM2.5 decoder and encoder, vision and audiod1-3B 8 ms on an RTX 4090, 48.57 on Decision Index v0.2.1.
LayaConvai Innovations18 Sep 2026Open, Apache 2.0ModernBERT-large head, 421M39.5 ms on a T4. 0.425 on Banking77 against Jev's 0.870.
Tev1-4BTogether AI23 Sep 2026ClosedQwen3.5-4B fine-tuneHosted only, experimental.
Solar DecideUpstageBeta 22 Sep 2026ClosedUndisclosedJev schema. 512,000 token context.
Decider 1meraGPT22 Sep 2026ClosedUndisclosedJev schema. 4,096 token requests.
pplx-decider 27BPerplexityOct 2026Open, Apache 2.027B, own endpointHosted and on Hugging Face.
NimbleBespoke LabsSep 2026OpenLoRA on Qwen3.5-9B90.1% against Jev's 93.2% on its own set. MLX scorer.
SemIfTheoLeeCJSep 2026No trainingLogits of frozen Qwen3.5-4B0.845 agreement with Jev. llama.cpp, MLX, WebGPU.
GLiNER2.5-DecideFastino Labs24 Sep 2026Open, Apache 2.0340M encoderSmallest on the hub. 38 to 167 ms.
Imajev-4BIndependentSep 2026Open4B, image inputLed JevBench in September; fell under v1.6.1. Self-reported.
leaderboard

Benchmarks

JevBench, maintained independently by Benchmark Heaven, is the shared yardstick for the class. Each task gives a model state and a bounded rubric and scores the typed answer. Tasks are tiered from easy (explicit facts, clear intent) through standard and judge to hard, with the hard tier written by frontier LLMs.

AxisWhat it measures
IntelligenceChance-corrected accuracy per tier, clipped at zero, so guessing earns nothing.
CalibrationExpected calibration error, plus how closely the returned distribution matches the gold distribution.
SpeedMedian and 95th percentile latency on a logarithmic scale, with 100 ms as the reference point.
CostDollars per thousand decisions on a logarithmic scale.

The composite combines the four axes by harmonic mean, so a weak axis cannot be offset by a strong one. Cost and speed carry equal weight with accuracy, which is how Imajev-4B and Plumb-4B ranked above Jev 1.13 on the September board before the v1.6.1 re-measurement moved them down. Scores are not comparable across method versions. Two other indices exist, the Jev Decision Index on Hugging Face and the Artificial Analysis Decision Index, and the three disagree on a leader.

extension

Framework Support

Frameworks added decision models as a separate primitive from chat models, because the call shape differs: state and typed questions in, probabilities out. LangChain shipped langchain-typesafe two days after Jev launched. Its docs name only Jev, but the base URL setting accepts any server with the same contract, which is how it reaches Kev.

FrameworkPrimitiveModels reached
LangChain (Python and JS)TypeSafeClassifier runnable; experimental model router and tool-gating middlewareJev by default. Kev, Clef, Solar Decide or OpenRouter through the base URL setting.
LangSmithTypeSafe Compatible Endpoint provider for evaluatorsJev, OpenRouter, or a self-hosted server such as Kev.
Vercel AI SDKexperimental_decide with a decision model factoryJev direct or via AI Gateway, which also lists GPT-6 Luna, Microsoft-Decision-1, d1 and Laya.
TanStack AIdecide() with a TypeSafe adapterJev through TypeSafe, AI Gateway, Cloudflare or OpenRouter.
Cloudflare Workers AIModel bindingJev, Clef, Clef-flash, Clef-omni.
AWS Strands AgentsIntervention handlers around tool and model callsStrands Decider locally, or any model the handler calls.
OpenAI SDKdecisions.creategpt-6-luna. Reaches Jev through AI Gateway.

The LangChain middleware is experimental and its constructor changed between alpha releases. Pin a version.

alt_route

Agent Integration

The Strands Decider repository ships a worked example that gates a tool call. An agent with a weather tool is prompted to be eager, so asked "What's the weather?" with no location it guesses a city. Before the call runs, an intervention handler asks the decision model two noul questions about the conversation and the proposed call, then maps the probabilities to an action.

  1. 1. The agent proposes a tool call. The before_tool_call intervention fires before the tool executes.
  2. 2. The handler sends the conversation and the proposed call as state, with two noul questions: are the argument values grounded in facts the user provided, and is it premature to call the tool before clarifying.
  3. 3. The decision model returns a probability for each, locally, in one pass.
  4. 4. A threshold turns the probabilities into an action. Ungrounded arguments return Guide rather than Deny.
  5. 5. The model gets its turn back with the feedback and asks the user which city they meant.

Strands interventions return one of four typed actions. The handler is plain Python with no opinion about its contents, so a decision model, a Cedar policy or another agent can sit behind the same interface. Equivalent hooks exist around the model call and around the whole invocation.

ActionEffect
ProceedThe tool call runs unchanged.
GuideThe call is withheld and the model gets its turn back with feedback, so it can correct course rather than fail.
ConfirmExecution stops and a person is asked to approve.
DenyThe call is blocked outright.

The questions, threshold and policy in the example were chosen by hand. The point it makes is about cost: a check that completes locally in a couple of hundred milliseconds can sit on every tool call, where an LLM judge would add seconds to the step it guards.

category

Use Cases

The fit is a decision that recurs at volume, has an answer space known in advance, and sits in a path where latency or cost rules out an LLM call.

call_splitModel Routing

Score each request for difficulty and send it to a small or a frontier model. The router costs less than the saving it produces.

buildTool Selection

Pick the tool for a step from the registered set, with a confidence that can trigger a fallback to the LLM when low.

fact_checkArgument Checking

Confirm that tool arguments are grounded in the conversation before execution, as in the Strands example.

support_agentTriage

Assign tickets, alerts or emails to a queue and a priority at ingestion volume.

policyGuardrails and Policy

Classify inputs and outputs against a policy rubric on every turn, cheaply enough to run on all traffic rather than a sample.

gradingEvaluation

Replace an LLM judge on rubric questions with fixed answers, returning a score with a calibrated confidence rather than a rationale.

inventory_2Memory and Context

Decide whether a turn is worth storing, or which context items are relevant to the next step.

psychology_altHybrid Agents

The decision model handles rote choices and hands the hard ones to an LLM, reducing both cost and latency on the common path.

error_outline

Limitations

A typed output guarantees the format of the answer, not its correctness. Vendor claims that the model cannot hallucinate refer to the first.

visibility_offNo Rationale

The output is a number. Where an audit or regulator needs the reasoning behind a decision, a bare confidence does not meet the requirement.

blockClosed Answer Space

The model can only distribute probability across the options supplied. If the right answer is missing, it picks the nearest wrong one, possibly with high confidence.

trending_downShallow Reasoning

A single parallel pass is weaker than step-by-step reasoning on multi-hop, arithmetic or date-ordering problems. Strands Decider gets about half of JevBench's hard tier right.

tuneCalibration Scope

Calibration is fitted on short classification tasks. On long multi-step documents or rubrics unlike the training data, confidence is less trustworthy.

gpp_maybeAdversarial Inputs

State written to steer the decision moves the probabilities like any other model input. A decision model used as a guardrail is itself an attack surface.

shuffleNon-Deterministic Content

The format is fixed, but the answer can vary between versions and calls. Thresholds tuned against one version need rechecking after an upgrade.

Related: Fast and Slow Brain for the System 1 and System 2 split these models serve, Judge and Escalation for the LLM judges a decision model can replace on simple verdicts, Guardrails and Stream Safeguards for the runtime checks they make affordable, and Steering for what a Guide action does to a run in flight.