Code and dense tables are folded away. Open any of them on demand.
What is the difference between System 1 and System 2 AI?
System 1 AI is a fast decision model that answers a fixed question about some text (pick an option, rate it, or say yes or no) in one pass, with a probability. System 2 AI is a reasoning model, usually an LLM, that works step by step and writes text. The names come from Daniel Kahneman's Thinking, Fast and Slow.
Daniel Kahneman's Thinking, Fast and Slow (2011) popularised a two-part model of human thinking. System 1 is fast, automatic and intuitive: you recognise a face, read a sign, or notice that someone is angry without deciding to. System 2 is slow, effortful and deliberate: you multiply 17 × 24, compare two mortgage offers, or check a proof line by line.
The framing is a useful metaphor for AI systems, not a claim about neuroscience. TypeSafe, the company behind the Jev decision API, names its product category "System One models" and says in its documentation that the name comes from Kahneman's concept: "System 1 thinking is fast and intuitive. System 2 is slower and more deliberate. Here, the emphasis is on fast, focused judgments." The open-source Laya model, which powers Laya Studio, describes itself the same way: a "non-autoregressive System 1 decision model".
Mapped onto software, the split looks like this:
| System 1 (decision model) | System 2 (reasoning model / LLM) | |
|---|---|---|
| Output | A typed answer from a set you define, with probabilities | Free text, code, tool calls, chains of thought |
| Work per call | One forward pass over input + options | Many sequential decoding steps, often thousands |
| Latency | Tens to hundreds of milliseconds | Seconds, sometimes minutes with reasoning modes |
| Failure mode | Picks the wrong option (with a probability you can inspect) | Wrong answer, malformed output, invented facts, refusals |
| Best at | Classify, route, score, flag, filter | Explain, plan, write, multi-step reasoning, novel tasks |
The value of the framing is practical. Most of what an automated system asks a model is not "write me an essay" but "which of these five buckets does this belong in, and how sure are you?" That is System 1 work. Paying System 2 prices and latency for it is the main reason many LLM-backed workflows end up slow and expensive.
For a longer discussion of the architectural difference behind this split, see encoder vs decoder models and non-autoregressive models.
What does a System 1 decision model do?
A System 1 decision model takes two inputs:
- State: the thing being judged. A support ticket, an email, a chat transcript, a JSON record, an agent trace.
- Typed questions: what you want to know about the state, with the allowed answers spelled out.
It returns one typed answer per question, each with a probability distribution. It does not generate prose. In the Jev wire protocol, which Laya also speaks, there are three question types:
| Type | Question shape | Answer |
|---|---|---|
choice | Which of these options? | The chosen key, a probability per option, a confidence |
score | Where on this ordered rubric? | An expected level (a float), probabilities per level, a confidence |
noul | Is this statement true? | P(true) |
See choice, score and noul for the full semantics.
A complete Laya Studio request looks like this:
Show technical detailsHide technical details· bash sample
The response shape comes straight from the open-source package (agent.py), with a routing block added by the language router:
Show technical detailsHide technical details· json sample
(The numbers above are illustrative.) Three things matter for the System 1 / System 2 comparison:
- There is nothing to parse. The answer to
departmentis always one of the keys you supplied. No regex over free text, no JSON-mode retries. output_tokensis 0. Laya does not generate. All three questions are answered in one batched forward pass.- Every answer carries a distribution. That distribution is the hook that lets you decide, in code, when System 1 is enough and when to escalate.
Note one limit from the Laya model card: action.act_probability "carries no usable signal yet" (it reads 1.0 for almost every input). Gate on confidence or the probabilities instead.
Is System 1 AI faster and cheaper than an LLM?
The strongest argument for a System 1 layer is arithmetic. An LLM generating a JSON object token by token pays one decoder step per output token, on top of reading the prompt. A decision model reads the input once and scores every option in parallel.
Figures from the Laya model card (Tesla T4 GPU, measured in-process, byte-identical questions for each checkpoint):
| Questions per call | English checkpoint | Multilingual checkpoint |
|---|---|---|
| 1 | 39.5 ms | 32.8 ms |
| 5 | 84.5 ms | 40.1 ms |
| 10 | 158.6 ms | 72.3 ms |
| 50 | 771 ms | 337 ms |
These are model-side numbers on a GPU. A hosted API such as Laya Studio adds network round-trip time on top, so measure from your own region before you set a latency budget.
For context on the System 2 side, TypeSafe's launch post states that end-to-end response time for frontier models is "3 to 329 seconds", against "70ms-500ms" for its own System One model. The independent Decision Model Benchmark (DMB) by nibzard measured Jev at 264–276 ms p50 and a range of constrained LLMs at roughly 0.3 to 5.6 seconds. It also noted that Jev's speed advantage over the fastest LLM setup it tested (gpt-oss-120b on Cerebras) was about 1.2x, not the 40–200x in the vendor claim. That nuance matters: if you run a small LLM on very fast inference hardware with reasoning turned off, the latency gap narrows a lot. The gap stays large against reasoning-mode models.
Cost follows the same shape:
- LLMs bill for input and output tokens, and output tokens are usually priced higher. A classification prompt with a long label list and a JSON answer pays for both.
- Jev bills input tokens only: "$0.042 / MTok ($42 per billion tokens)", with output tokens "FREE (too cheap to meter)", per TypeSafe.
- Laya Studio bills per input token: 1 credit = 1 input token, 30% below Jev's list price, with 5 free runs. See /pricing for current plans. Self-hosting the open-source model costs only your hardware.
For budgeting details, see the cost of using an LLM as a classifier and latency budgets for agents.
When should you use a System 1 model?
Use a decision model when all of the following hold:
- The answer space is known in advance. You can list the options (departments, intents, severity levels) or phrase the question as true/false.
- The judgment is local to the input. The answer is in the ticket, email or record, not in a chain of lookups.
- The volume is high or the latency budget is tight. Every message, every agent step, every document.
- You want to act on uncertainty. You need a probability to threshold on, not a yes/no that may or may not be reliable.
Typical System 1 workloads:
| Workload | Question types | Example page |
|---|---|---|
| Support ticket triage | choice (queue), score (urgency), noul (refund requested) | /use-cases/support-ticket-triage |
| Email routing and phishing flags | choice, noul | /use-cases/email-routing |
| Intent detection | choice | /use-cases/intent-detection |
| Agent tool routing | choice over tools, noul "needs a tool?" | /use-cases/agent-tool-routing |
| Content moderation | noul per policy, score for severity | /use-cases/content-moderation |
| Security alert triage | noul true positive, score severity | /use-cases/security-alert-triage |
Laya's own benchmarks show where the fit is strong and where it is not. On the application themes in the project's BENCHMARKS.md (400 cases each), the English checkpoint scores 0.993 on email spam and 0.980 on phishing, though both sources were in its training mix. On held-out jailbreak detection it scores 0.708, and on held-out toxicity moderation 0.530, "barely above chance on a balanced split". A System 1 model is not automatically good at every classification task. Test on your own data.
When do you still need System 2 reasoning?
A decision model cannot do the following, by design or by current capability:
- Generate anything. Replies, summaries, code and explanations need a generative model. TypeSafe's Jev documentation says the same about its own model: it "does not generate text, write code, or hold a conversation."
- Open-ended extraction. A decision model can pick a span from candidates you supply, but it cannot invent a field value that is not in the option list.
- Arithmetic, counting and date comparison. TypeSafe's "Jev 1.13 jaggedness" page lists math and numbers, counting, and date/time comparison as known failure modes and recommends doing that work in code. The same advice applies to Laya: keep arithmetic in your program.
- Multi-hop reasoning. Questions that need several inference steps ("is the customer's plan eligible given the policy on page 4 and their signup date?") belong to a reasoning model or, better, to code that breaks the question into atomic checks.
- Very large label spaces without preparation. Laya's option budget is shared: at default settings a 77-option question gets only about 3–4 tokens per label, and the model card reports 0.425 accuracy on Banking77 against Jev's published 0.870. Jev documents support for up to 255 options per Choice. For LLMs, the DMB benchmark notes that "every LLM handles 512 options".
- Zero-shot on narrow, synthetic workflows. The Laya card is direct about this: the base checkpoints are "near chance on typed-decisions zero-shot" (0.362 against a 0.461 majority-class baseline), and the 0.766 result belongs to the checkpoint fine-tuned on that benchmark. "Laya is a fast base to specialise, not a zero-shot decision engine."
The practical conclusion is not "System 1 replaces LLMs". It is that a System 1 layer can answer the simple, high-volume questions in front of an LLM, and hand the rest to it.
How do you combine System 1 and System 2? Escalation patterns
The standard pattern is confidence-gated escalation. Ask the decision model first. If it is confident, act. If not, escalate to a reasoning model or a person. TypeSafe documents the same idea as "confidence-gated routing"; see also act / escalate routing.
Pattern 1: gate on confidence
Show technical detailsHide technical details· python sample
The threshold (0.6 here) is not universal. Choose it from your own logged data: pick the threshold at which accuracy on the auto-handled slice meets your error budget. Calibrated probabilities explains how to check that the numbers mean what they say before you rely on them.
Pattern 2: speculative fan-out
Because extra questions in the same call are cheap, ask everything you might need up front and let code decide what to use. Laya's model card reports 10 questions batched in 72.3 ms on the multilingual checkpoint, against 32.8 ms for one. TypeSafe's docs call this "speculative fan-out".
Show technical detailsHide technical details· typescript sample
This is the model-routing preset (router_questions) shipped in the open-source laya package: a System 1 call decides which System 2 model, if any, should handle the request.
Pattern 3: System 1 as a guardrail around System 2
Run decision questions on the LLM's input and output: jailbreak attempt, prompt injection, sensitive data, harm severity. The package ships these as guard_questions. Be realistic about accuracy: Laya's held-out jailbreak figure is 0.708–0.762 depending on checkpoint, so treat it as one layer of defence, not the only one.
Pattern 4: System 2 as teacher, System 1 as student
Label a sample of your traffic with a reasoning model or with people, then fine-tune a decision model on it. The Laya card's typed-decisions result is an example: fine-tuning on the benchmark's 1,200-case training split took accuracy from 0.362 to 0.766, above the 0.735 teacher self-agreement ceiling.
Why does calibration make the split work?
Escalation only works if the System 1 model's confidence is meaningful. A model that reports 0.95 on answers it gets right half the time will auto-handle cases it should escalate.
This is a real risk, not a hypothetical one. The Laya model card documents that its English checkpoint, given Khmer text, scores 0.000 accuracy at 0.952 confidence, and its mean confidence "never drops below 0.885 at any accuracy level" on non-English languages. Laya Studio addresses that particular failure by routing on script before the forward pass, sending non-English text to the multilingual checkpoint. See language routing. The general lesson holds: check calibration before trusting a threshold.
On the Jev side, the DMB benchmark found that on forced-uncertainty items, where the correct behaviour is to express doubt, every LLM it tested admitted ignorance on 97.3–100% of items, while Jev did so on 49.7%, with an ECE of 0.246. AbdelStark's jev-benchmarks pilot found Jev assigned zero probability to the true label on 16% of DAIR Emotion examples. Laya ships over-confident too, and the card reports that refitting temperatures moves its mean ECE from 0.466 to 0.081.
The takeaway: no System 1 model's confidence should be trusted without measuring it on your own traffic. Expected calibration error and temperature scaling cover the tools.
Which system should answer? A decision checklist
Use this table to decide which system should answer a given question in your pipeline:
Show technical detailsHide technical details· 8 rows × 3 columns
| Question about the call | If yes | If no |
|---|---|---|
| Can you list every valid answer? | System 1 candidate | System 2 |
| Are there fewer than ~20 options (Laya) or 255 (Jev)? | System 1 candidate | Split into a hierarchy, shortlist, or use System 2 |
| Is the answer stated or implied in the input itself? | System 1 candidate | System 2 or code |
| Does it involve arithmetic, dates or counting? | Do it in code | — |
| Is the latency budget under ~500 ms? | System 1 | Either |
| Does the output need to be read by a person as prose? | System 2 | System 1 |
| Is the input in a non-English language? | Use a multilingual System 1 checkpoint and verify accuracy | — |
| Do you have labelled examples? | Measure, calibrate, and consider fine-tuning | Start with a pilot and log everything |
Most real systems end up with both: a System 1 layer that handles the bulk of simple decisions in tens of milliseconds, and a System 2 layer for the long tail.
Try it
Laya Studio is a hosted API powered by the open-source Laya model (Apache-2.0, by Convai Innovations). It is an independent service, not affiliated with Convai Innovations or TypeSafe, and it speaks the same /v1/systemone wire format as TypeSafe's Jev. Create an account, read the docs, or compare plans on /pricing. For a direct comparison of the two System 1 APIs, see Laya vs Jev. For how decision models compare to prompting a general LLM, see Laya vs LLM classifiers.
Frequently asked questions
What is the difference between System 1 and System 2 AI?
Is a System 1 model just a text classifier?
Can a System 1 model replace my LLM?
How fast is a System 1 model compared with an LLM?
How do I decide when to escalate to an LLM?
Are System 1 models hallucination-free?
Does Laya Studio work with code written for TypeSafe Jev?
Is ChatGPT System 1 or System 2?
Sources
- Laya model card (Hugging Face)
- Laya BENCHMARKS.md
- TypeSafe docs: System One
- TypeSafe: Introducing System One Models & Jev
- TypeSafe docs: Jev 1.13 jaggedness
- TypeSafe docs: Jev with coding agents
- nibzard: Decision Model Benchmark
- AbdelStark: jev-benchmarks
- Kahneman, Thinking, Fast and Slow (publisher page)
Last updated . Laya Studio is an independent hosted service for the open-source Laya model (Apache-2.0, © Convai Innovations) and is not affiliated with Convai Innovations or TypeSafe.
Next articleNon-autoregressive models: how AI can decide in a single passWhat non-autoregressive models are and why they answer in one pass instead of token by token: how they work, how fast they are, and where they fall short.