Lev
Clojure System One engine on Jolt that routes typed questions to Laya encoders, a llama.cpp 'thinker', Clef or TinyDecide.
Overview
Lev (jlt-commons) is a System One decision engine written in Clojure on Jolt, which hosts Clojure on Chez Scheme. It answers typed questions over a state with calibrated probabilities and can put several kinds of model behind one API: Laya's ModernBERT or mmBERT encoders with a decision head (one pass for all questions, about 100 ms on a laptop CPU); a 'thinker', any GGUF chat model via llama.cpp, whose candidate answers are scored by token log-probabilities, optionally after thinking; Cloudflare's Clef, a 27B model with a joint schema head; and TinyDecide, a 6 MB model for short topic routing that is at chance on inference tasks.
Requests can name a model or be routed by content to an encoder, and a confidence gate can answer on the encoder first and escalate only unsure cases to the thinker. On a 120-case in-distribution set plus the adversarial authored144 set, the README reports the English encoder strong on AG News (97.5%) but weak on SST-5 and authored144 (61%), while Qwen3.5-4B as thinker reached 95% on authored144 at about 170 ms per question; a gate at 0.5 reached 92.4% at 270 ms per case.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which topic or option fits the state? | — |
| Yes / no | Is this statement true of the state? | — |
| Yes / no | Is the encoder confident enough, or should the thinker answer? (gate) | — |
How it works
- Configure encoders, thinkers, Clef or TinyDecide
- Request names a model or is routed by content
- Encoder answers; low-confidence questions escalate to the thinker
- Return calibrated probabilities
Strengths
- Mixes fast encoders with stronger escalation models
- Runs on local CPU and GPU
- Honest per-model benchmark
Caveats
- Niche runtime (Clojure on Chez Scheme)
- Encoders weak on adversarial sets
- Thinker mode needs a GPU for speed
At a glance
- Type
- Model
- Status
- research
- Language
- Clojure
- Runtime
- Jolt (Chez Scheme) with llama.cpp
- Has code
- yes
Use cases and integrations
How curated lists describe it
System One decision engine in Clojure on Jolt, answering typed questions over a state with calibrated probabilities.
MrJev/awesome-jev
Frequently asked questions
Which models can it use?
Laya encoders, any GGUF chat model via llama.cpp, Cloudflare Clef and TinyDecide.
How does escalation work?
A confidence gate answers on the encoder and sends unsure questions to the thinker.
Is it related to the Qwen-based lev?
No, it is a separate project with the same name.
Related projects
0.8B open System One model with task adapters that makes millisecond decisions in front of a larger local model like Qwen3.8-27B.
ModelbetaPythonvLLM Semantic Router's Apache-2.0 decision models (0.6B to 27B) answering up to 64 typed questions per input in one forward pass.
ModelbetaPythonMangaba AI's local, calibrated typed-decision model for Portuguese text, trained to optimize the Brier score; proprietary since v5.
ProjectproductionPython- blink★ 22
Open one-pass typed-decision model with a dependency-free C99 runtime that also builds to a 66 KB WebAssembly module.
ServicebetaC - Foq★ 11
Local open alternative to Jev using a 1.58-bit ternary 8B model to answer booleans, choices, scores and Pydantic extraction in ~25 ms.
ProjectbetaPython Runs the open Laya decision model entirely in a browser tab with WebGPU and ONNX Runtime Web: no server, no API key.
ServicebetaTypeScript