Fast
For mechanical, low-risk tasks.
JEV FOR MODEL ROUTING
Not every AI task needs the same model. Give Jev the task, let it judge the work involved, then let application policy choose an execution tier.
01 / LIVE ROUTER
One request asks Jev for Task Kind, Reasoning Depth, and High Consequence. The selected execution lane comes from deterministic demo policy in this application, after Jev responds.
Run the selected preset as-is or edit the Task and Context first.
02 / HOW ROUTING WORKS
Plain-language work and optional context.
Choice, Score, and Boolean in one request.
Thresholds and routing rules owned by the app.
A tier for another system to consume.
03 / THE FOUR ROUTES
For mechanical, low-risk tasks.
For bounded work requiring normal reasoning and verification.
For cross-cutting or deep tasks requiring broader reasoning.
For high-consequence or insufficiently safe automatic routing.
04 / WHY POLICY COMES AFTER JEV
Classifies the task, scores reasoning depth, and estimates high-consequence probability.
Applies thresholds, handles missing distributions, selects a lane, and can stop for review.
The route is not a fourth model answer. That separation makes policy inspectable, testable, and adjustable without spending another model request.
In a larger AI system, a cheap typed judgment can keep every task from defaulting to the same expensive execution path. The application still decides which tradeoffs, permissions, and safeguards each lane requires.
05 / REAL-WORLD PATTERN
Public Jev coding-agent guidance describes a model cascade: Jev judges task difficulty and risk, then harness code chooses a small model, a stronger reasoning path, or a person. The independent community project gargpratyush/jev-router also routes fresh coding turns through abstract execution tiers.
These projects demonstrate an architecture, not results for this site. Jev Playground does not reproduce their code, publish their performance figures, or imply TypeSafe endorsement.
06 / IMPLEMENTATION
This compact example uses the same validated public endpoint as the live console. Provider setup and failure handling remain server-side; see the Jev API guide for integration details.
import type { Answer } from "./types";
const response = await fetch("/api/evaluate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
state: ["AI TASK", task, "", "CONTEXT", context].join("\n"),
questions: {
task_kind: {
type: "choice",
instructions: "Which task category best describes this work?",
criteria: {
mechanical: "A tiny deterministic correction.",
bounded: "Localized work with clear boundaries.",
cross_cutting: "Work spanning dependent modules or interfaces.",
security_or_data: "Security, privacy, migration, payment, or production-data work.",
unclear: "Insufficiently scoped or none of the other categories.",
},
},
reasoning_depth: {
type: "score",
instructions: "How much architectural reasoning and verification is needed?",
criteria: ["Shallow", "Moderate", "Deep"],
},
high_consequence: {
type: "boolean",
instructions: "Could a materially wrong result create significant or difficult-to-reverse harm?",
},
},
}),
});
const { result } = await response.json();
const route = chooseRoute(result.answers as Record<string, Answer>, 75);
// chooseRoute is deterministic application code.
// It can pause for review; it never asks Jev to execute the task.
return route;07 / LIMITATIONS
08 / SOURCES & NEXT STEPS