Decision playground.
Two engines, no keys.
Four agent-flavoured decision problems, answered by real models running in this tab. Pick an engine, edit the state and the questions, and read the distribution.
Nothing you type leaves this tab. Each engine downloads its weights from huggingface.co — those are the only network requests — and every runtime is served from this site. No API key is used, there is no server, and no account is involved. The cost is the download: Kev is about 375 MB, Laya about 680 MB, each once, cached afterwards.
Laya is the multilingual 0.3 B decision encoder (mmBERT) on Google’s LiteRT.js runtime (WASM/XNNPack, CPU). Kev is the 0.6 B decision model on ONNX Runtime Web (CPU). Neither offers a WebGPU path here and none is claimed.
Nothing has been downloaded. An engine loads only when you ask for it — never on page load.
The four problems
Every question runs once per engine run. The state is shared by that demo’s questions; edit anything and run again. Answers come from your run, not from a table.
1 · Tool selection
An agent with a typed tool shelf. Given the user’s goal, which tool should it call?
2 · Agent routing
The triage decision a router makes before any agent speaks.
3 · State-machine transitions
The guard between “what the user said” and “which edge fires”.
4 · Moderation
Yes/no with a probability, not a boolean. The ranking is the point.
5 · Chrome Built-in AI Classifier API proposal
The Chrome Built-in AI Classifier API proposal (as polyfilled by web-ai.studio using Laya on LiteRT.js). Runs directly via window.Classifier in this tab.
Generated JavaScript code
What this page is for
The four shapes — tool selection, routing, transition firing, moderation — are the decisions an agent platform makes constantly and an LLM makes expensively. A sub-billion-parameter decision encoder answers them locally in tens of milliseconds, and its distribution tells you when not to trust it. Edit a demo until the distribution flattens: that flatness is the honest signal to escalate to a bigger model, and it is the thing a generated yes/no hides from you.
Each engine reports its own checkpoint, token count and milliseconds after every run. Latency is one machine's measurement; treat it as such. Looking for GBNF single-token logit extraction on GGUF models? See SemIf / OpenJev.