A tiny model that decides, in about 30 milliseconds, whether your assistant should answer straight away or reason first. It makes simple questions fast and hard ones careful, without the user choosing.
Modern models can "think" before they answer: they work through the problem in a hidden scratchpad first. That makes them much better at maths, trade-offs and diagnosis. It also makes every answer slower, often several times slower.
Fast and cheap. But a quick answer to "which loan is cheaper over seven years?" is often confidently wrong.
Careful, but "what's on my calendar today?" now takes as long as a tax question. Users feel the lag on every message.
Most apps put a toggle in front of the user. Most users never touch it, or leave it on and wonder why everything is slow. The better design makes the decision for them.
Psychologists describe two modes of thought: a fast, intuitive one and a slow, deliberate one. A think gate gives your product the fast mode as a separate, very small model. It reads the message, makes one typed decision (direct or think) and routes it. The big model then answers in the right mode.
I expected the model choice to matter most. It mattered less than the definition. My first rubric treated "Can this model run on that machine?" as a simple lookup. The person using the assistant called it hard, and they were right: feasibility and sizing questions get confidently wrong quick answers. Fixing the definition lifted the big model's labelling agreement with the user from 63% to 92%, before any training.
Rule of thumb from the final rubric: think when a quick answer is likely to be wrong or shallow (feasibility, sizing, decisions, document review, any money arithmetic, diagnosis). Answer directly for lookups, paths, status, "what did you mean", standard how-tos, and single edits.
All gates were tested on the same 148 real questions taken from one person's assistant sessions. Half needed thinking and half didn't. I labelled them, and the user confirmed the 30 most borderline labels. Everything ran locally on one NVIDIA GB10 desktop AI box (128 GB unified memory).
| Gate | Accuracy | Hard questions caught | Needless thinking | Speed | Memory |
|---|---|---|---|---|---|
| Kev-0.8B, fine-tuned | 86% | 84% | 6.1% | 32 ms | 4 GB GPU |
| Kev-4B, as released | 84.5% | 78% | 4.7% | 118 ms | 14 GB GPU |
| Big model + rubric | 92%* | 93% | 4.7% | 302 ms | uses main model |
| Needle embedding + classifier | 78% | 85% | 14% | 9 ms | 0.1 GB CPU |
| Keyword rules | 55% | 11% | 0.7% | 0 ms | none |
"Needless thinking" is the share of all messages that were simple but got sent to the slow path. It's the cost users feel most, because every one is a simple question answered slowly.
Yes, this is real model training, but only of the small 0.8B gate. The main assistant model is never touched. And it's the light kind of training, called LoRA: the gate's own weights stay frozen, and we train two small add-ons that sit on top of them.
{"state": "Can a 120B model run on one 128 GB box, and how fast?",
"questions": {"mode": {"type": "choice",
"instructions": "Should the assistant reason step by step first?",
"criteria": {"think": "feasibility, sizing, decisions, money...",
"direct": "lookups, paths, status, how-tos..."},
"label": "think"}}}python -m kev.train --data train.jsonl --base Qwen/Qwen3.5-0.8B-Base --init_from jaredpalmer/kev-0.8b --epochs 2 --lr 2e-5 --batch 1 --accum 8 --dtype bf16 --checkpointing 1 --device cuda --out runs/think-gateStarting from the released model keeps what it already knows about decisions. Kev's README reports a from-scratch run on another task falling to 0.33, against 0.83 when starting from the checkpoint.
python -m kev.serve --run runs/think-gate exposes the same /v1/systemone API, so the product's code doesn't change between the stock and tuned gate.| Measured cost of the run | Value |
|---|---|
| Training time (2 passes over 1,627 questions) | 695 s, about 12 minutes |
| Text processed | 466,000 tokens |
| Peak GPU memory | 3.4 GB |
| New weights produced | 44 MB |
| Accuracy on real questions, before and after | 68% to 86% |
What it is not: it isn't training the main chat model, it isn't full fine-tuning (the 0.8B base stays frozen), and it isn't only prompt writing, although the rubric mattered most. For contrast, the Needle gate in the results table had no model training at all: we trained only a simple linear classifier on top of Needle's frozen embeddings, which is why better labels couldn't lift it.