Put System One decisions in the harness
Which model to use, whether a tool call is too risky, whether to retry or stop: those control decisions should not be another frontier LLM call. A System One layer belongs in the harness. Policy stays in your code.
On September 15, TypeSafe AI launched Jev, its first System One model. Founder Diogo Almeida’s post is blunt about what it is not. Jev is not a chat LLM. It does not generate strings. You send shared state and typed questions. You get calibrated probabilities and confidence scores back. Choice, Score, and Noul are the question shapes. Training uses Reinforcement Learning for Calibrated Decisions. TypeSafe claims roughly two orders of magnitude faster and cheaper on System One tasks versus comparable LLM wrappers. The name nods to Jevons: cheaper intelligence unlocks more use, not less.
Two days later, LangChain published Building a Harness with Jev. Sydney Runkle and Hunter Lovell put the operator pattern in the open. Agents still loop: model decides, tool runs, results come back. Tool calling and structured outputs made that loop fit software. Every branch still burned another chat model call. Jev slots in as TypeSafeClassifier: state in, classification out. Middleware can route models from those probabilities. AutoModeMiddleware risk-gates tool calls before execute. Coding harnesses kept that classifier step closed-source. LangChain treats the same pattern as something any agent can run.
The speed claim matters because of how the call is shaped. System One models evaluate every question on a shared state in parallel. Adding another Noul or Choice barely moves latency and only adds cheap question tokens. Output tokens are typed values, not a story you parse. Schema matching is guaranteed. That is the opposite of asking a frontier model for JSON and hoping the braces hold. TypeSafe’s workflow evals put Jev on a Pareto frontier against LLM wrappers doing the same compute graph. You can argue about reference models and West Coast latency. You cannot argue that string generation is free when the only job is a branch.
This is the decision control plane inside the loop. Issue 6 asked who owns the harness. Issues 7 through 9 treated registries, agent docs, and extension allowlists as control surfaces. Issue 10 is the branch that fires on every turn. If your agent needs a yes or no, a score, or a discrete route, that is install, policy, and control work. It is not prose. Burning Astra or Sol to answer “is this shell call too risky?” is the expensive habit. A calibrated decision API makes those gates fast and branchable. The harness still owns what auto, review, and escalate mean.
Keep the split clean. Frontier models stay for generation and hard reasoning. System One calls stay for high-frequency control. Never let the classifier invent new actions. Map probabilities to your own policy table. Put risk checks before shell, network, and credential-touching tools. Log state hash, question ids, and probabilities with the branch you took, so a gate that fails open has an owner to page. When teams still prompt an LLM to “return JSON with risk_level,” treat that as debt once a calibrated decision API exists for that question shape.
Jev will not write your agent. It will not replace the loop. It makes the loop’s control plane look like software again: typed inputs, typed outputs, policy you can read in code.
Inventory these moves before the next harness change:
- List every place the loop currently asks an LLM for a classification (route, risk, done, retry) and mark which could be a typed decision call.
- Keep policy in code: map probabilities to auto, review, or escalate. Never let the classifier invent new actions.
- Put risk checks before tool execution for shell, network, and credential-touching tools.
- Log which decision call caused which branch (state hash, question ids, probabilities) so you can page an owner when a gate fails open.
- Budget frontier tokens for generation and hard reasoning. Budget System One calls for high-frequency control.
- Treat “LLM as JSON classifier” as technical debt once a calibrated decision API exists for that question shape.
The loop still needs a brain for open work. It should not pay frontier rates for every gate.