Jev Skill Router
Watch Jev send each task to the one tool that can actually do it — with the confidence behind every pick. The routing decision in front of your agent's tool loop, live. No key, just press route.
Tool routing is one Jev call in front of your agent's loop. Get an API key →
A live demo — the same typed choice returns a clean enum you switch on directly (no parsing, no malformed tool names) at $0.42/M input tokens.
The same demo is one Jev call
- Take each incoming task
- Ask Jev which tool from your toolbox should handle it
- Route in parallel in front of your agent's tool loop
- Call the tool Jev picked — or just answer when it's 'none'
const results = await Promise.all(items.map((item) => // items = user tasks
fetch("https://jevtypesafeai.com/api/v1/decide", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.JEV_API_KEY}` },
body: JSON.stringify({
state: item,
questions: {
skill: { type: "choice", instructions: "Which tool should handle this?",
criteria: { web_search:"search", run_code:"compute", read_file:"read doc",
sql_query:"query DB", send_email:"email", calendar:"schedule",
image_gen:"make image", none:"no tool" } },
},
}),
}).then((r) => r.json())
));
call(results[i].answers.skill.choice, task); // → "web_search"See a real decision WEB_SEARCH · 196ms
Task from the user: “What's the weather in Tokyo right now?”
How it works
An agent with tools has to answer one question before it does anything: which tool should handle this request? Here every task is a single Jev call that returns a typed choice over a fixed toolbox — web_search, run_code, read_file, sql_query, send_email, calendar, image_gen, or none — plus a calibrated confidence and a clarity score, all streamed in parallel.
It's the routing decision that sits in front of an agent's tool loop, made visible: watch each task land on the tool that can actually carry it out, with the odds behind the pick.
Build it into your agent
With a hosted key the same Jev call becomes your tool router: a typed enum per request at $0.42/M input tokens, in milliseconds, that you switch on directly — no JSON parsing, no hallucinated tool names, no malformed arguments to catch. Route to the right tool the first time, fall back to plain chat when the answer is 'none', and gate the risky tools (send_email, run_code) behind a confidence threshold.
FAQ
Does Jev really pick a tool for each task?
Yes — every task is an independent Jev call returning a typed choice over the toolbox, with the probability behind the chosen tool. The batch runs in parallel and the routing decisions stream in live.
How is this different from an LLM's function calling?
A chat model returns free-form text you have to parse and can hallucinate a tool name or bad arguments. Jev returns a typed enum you switch on directly, with calibrated confidence — so you can gate low-confidence or high-risk routes instead of trusting a string.
Is it free? Can I route my own tasks?
Free, no key — a rate-limited call to the live Jev API on a sample task list. To route your agent's real traffic against your own toolbox, wire the same call in with a hosted key.
More: Model Router demo · Agent Loop Detector · All Jev tools · Jev API docs