Jev, Laya-MLX, and the Rise of 'System 1' Decision Models
Not every AI call needs to generate text. Jev and Laya-MLX return typed decisions in single-digit milliseconds instead โ here's how they work and when to reach for one.
Most of what production LLM agents do isn't "generate a paragraph." It's "is this true or false," "which of these five categories does this belong to," "should this tool call proceed." You reach for GPT-5 or Claude, wrap the answer in a JSON schema, pay for 500+ tokens of reasoning, and wait 800ms-2s for a decision that has exactly one bit of real information in it. September 2026 brought two releases that attack this waste directly: Jev, from TypeSafe AI, and Laya (via the open-source Laya-MLX runtime). Both belong to a new category their creators call "System 1" models โ a nod to Daniel Kahneman's fast, intuitive thinking versus slow, deliberate reasoning.
The problem: autoregressive generation is the wrong tool for a decision
An autoregressive LLM produces its answer one token at a time, each token conditioned on every token before it. That's the right mechanism when the output is genuinely open-ended โ a summary, a chat reply, a code diff. It's a wildly inefficient mechanism when the output space is {true, false} or {category_a, category_b, category_c}. You're paying for a text-generation loop to eventually emit a token that happens to render as "true".
The costs compound in agent pipelines specifically:
- Latency stacks. A router step, a moderation check, and a "should I retry" check inside one agent turn can each cost 300ms-1s if each is a separate LLM call.
- Token cost stacks. Structured-output wrapping, system prompts, and few-shot examples for a simple classification routinely cost more tokens than the actual answer.
- Confidence is an afterthought. Getting a genuine probability out of an LLM's text output requires prompting tricks (log-prob inspection, self-consistency sampling) that the API often doesn't expose cleanly.
What Jev and Laya actually do differently
Both models skip text generation entirely. They take a typed question (a claim to score, a set of choices to rank, a state to evaluate) and return a typed value โ a probability, a class label with a confidence score, a ranked list โ in one forward pass. No decoding loop, no token-by-token sampling.
| Jev | Laya / Laya-MLX | |
|---|---|---|
| Maker | TypeSafe AI (founded by ex-OpenAI RLHF/InstructGPT engineer Diogo Almeida) | Convai Innovations (open weights); Laya-MLX is a community MLX runtime port |
| Access | Hosted, limited early access (launched Sept 15, 2026) | Open weights, runs fully local |
| Backbone | Proprietary, purpose-built "System 1" architecture | Fine-tuned ModernBERT-large (~421M params) + learned decision head |
| Output | Typed values with probability/confidence estimates | Probabilities over choices, scores, or truth values |
| Where it runs | TypeSafe's API | Apple Silicon via MLX, no PyTorch/Transformers dependency, as little as ~1GB RAM |
| Throughput | Not yet independently benchmarked publicly | ~395 questions/sec on M3 Max in the multilingual checkpoint |
| Best fit | Teams wanting a managed decision endpoint alongside an existing LLM stack | Teams wanting to eliminate the LLM call entirely for a decision, on-device or self-hosted |
Neither is a replacement for a generative model in the tasks generative models are good at. They're a replacement for the decision layer that today gets bolted onto an LLM via a JSON-schema prompt.
Use case: replacing an LLM moderation gate with Laya-MLX
Say you run a support-agent pipeline where, before a draft reply goes out, you check three things: is this reply factually grounded in the retrieved context, does it contain a promise the company can't keep, and is the tone appropriate. Today that's probably three LLM calls (or one call with three fields in a JSON schema) โ each adding latency and cost to every single reply, including the 95% that are obviously fine.
Here's the same gate with Laya-MLX doing the triage, and the LLM reserved only for the cases Laya is unsure about:
# pip install laya-mlx
from laya_mlx import LayaModel
laya = LayaModel.load("aac6fef/laya-mlx") # loads once, ~1GB resident
def grounded_check(reply: str, context: str) -> dict:
return laya.decide(
question="Is this reply fully supported by the given context?",
text=reply,
context=context,
choices=["supported", "unsupported"],
)
def promise_check(reply: str) -> dict:
return laya.decide(
question="Does this text make a commitment the company might not be able to keep (refund guarantee, delivery date, feature promise)?",
text=reply,
choices=["safe", "risky"],
)
def gate_reply(reply: str, context: str, llm_fallback):
grounded = grounded_check(reply, context)
promise = promise_check(reply)
# Laya returns a confidence score per decision โ this is the whole point:
# route to a slow, expensive model only when the fast model is unsure.
low_confidence = grounded["confidence"] < 0.85 or promise["confidence"] < 0.85
if grounded["label"] == "unsupported" or promise["label"] == "risky":
return {"action": "block", "reason": "flagged", "grounded": grounded, "promise": promise}
if low_confidence:
# escalate only the genuinely ambiguous cases to the LLM
return llm_fallback(reply, context)
return {"action": "send"}
At roughly 2-3ms per decision on Apple Silicon and no network round trip, this gate costs effectively nothing on the 90%+ of replies that are clearly fine, and reserves your GPT-5/Claude budget for the ambiguous tail where a real reasoning pass is worth the cost. That's the pattern worth internalizing: System 1 models aren't a competitor to your LLM, they're a pre-filter in front of it.
When to reach for a System 1 model vs. your existing LLM
| Situation | Use System 1 (Jev / Laya-MLX) | Keep the LLM |
|---|---|---|
| Binary/categorical decision with a clear rubric | Yes | Overkill |
| Need a calibrated confidence score to route on | Yes โ this is their core strength | LLM confidence is unreliable without extra tricks |
| High-volume, latency-sensitive gate (moderation, routing, retrieval reranking pre-filter) | Yes | Too slow/expensive at volume |
| Decision requires multi-step reasoning or world knowledge synthesis | No | Yes |
| Output needs to be free text, code, or a nuanced explanation | No | Yes |
| Fully offline / on-device requirement | Laya-MLX (open weights) | Only if you self-host an LLM too |
| Need a managed API with no local ML ops | Jev | Yes, either way |
Common pitfalls
- Treating "confidence score" as calibrated probability without checking. Confidence outputs from any model โ Jev, Laya, or an LLM's log-probs โ can be miscalibrated for your specific distribution of inputs. Validate on a held-out set from your actual traffic before trusting the threshold you pick.
- Using a decision model for tasks that need context synthesis. These architectures are built for typed judgments over given text/state, not for "read these five documents and figure out what's missing." Don't force multi-hop reasoning through a single forward pass.
- Skipping the fallback path. The value here is triage, not full replacement. A pipeline with no LLM escalation path for low-confidence or edge cases will silently misclassify the hard 5-10% it should have punted on.
- Assuming Jev's or Laya's numbers transfer to your domain. Both were trained on general question/decision data. Domain-specific rubrics (medical, legal, your internal policy language) may need fine-tuning or few-shot calibration before you trust them in production.
- Ignoring version and provenance for open weights. Laya-MLX is an independent community port of Convai Innovations' weights, not an official release โ pin versions and re-validate after any upstream model swap.
Next steps
If your agent pipeline has more than one LLM call whose entire job is producing a single label, score, or boolean, that's the call to profile first โ it's very likely a System 1 candidate. Start with Laya-MLX if you want to experiment locally with zero API cost; look at Jev if you'd rather consume this as a managed endpoint alongside your existing model provider.
If you're building production agent architectures and want to go deeper on routing, cost control, and when to reach for which model class, that's core material in Joinloop's AI engineering cohort.
Want to build this yourself?
Join a live cohort and go from reading about AI to shipping it, with practitioners who do it daily.