DocsFeatures
Decisions with Jev
Use Jev, TypeSafe's classifier model, on your own TypeSafe connection for routing, guardrails, tool gating, triage, reranking, evals and control loops.
INFRO is in private early access. Running these examples requires an early-access account, an active trial or subscription entitlement, and your own provider connection. Self-serve purchasing is not generally open. See Early access.
Jev answers typed questions about a piece of state — yes or no, one option of a set, or a level on a rubric — with calibrated probabilities and a confidence, and generates no text. That makes it the engine for the decisions a control plane takes around a model call. INFRO runs it in nine places, each on your own TypeSafe connection, with INFRO's routing, budgets, failover and request log around every call.
Every Jev call runs on your own TypeSafe connection and your TypeSafe account bills it; every other decision model runs on your own account with its provider. INFRO charges nothing per decision; the estimated provider cost of each call is on its row in the request log, separate from your INFRO subscription.
The nine use cases
| # | Use case | What INFRO does | Where |
|---|---|---|---|
| 1 | Model routing | Classify each prompt on a route and send each class to its own model with route rules. | A route with a prompt classifier — Routes |
| 2 | Guardrails | Check prompts for injection, jailbreaks, harmful or off-topic requests before they reach the model. | A guardrail policy with classifier checks — Guardrails |
| 3 | Tool-call gating | Ask before an agent runs a tool: allow, ask a person, or deny. Pin the tools that never need a model. | A decision policy — POST /v1/decisions/{slug} |
| 4 | Inbox triage | Sort messages into reply now, later or archive — one at a time or in batches of up to 500. | A decision policy — POST /v1/decisions/{slug} |
| 5 | Reranking | Order retrieved passages by relevance to a query with POST /v1/rerank. | The rerank endpoint — POST /v1/rerank |
| 6 | LLM evals | Score an answer against a rubric — on demand, or on a sample of live traffic per model. | A decision policy — POST /v1/decisions/{slug} |
| 7 | Bulk labeling | Label rows in batches of up to 500 per call, with a per-label summary to merge across batches. | A decision policy — POST /v1/decisions/{slug} |
| 8 | Real-time control | Decide inside a control loop with a deadline; past it, a safe fallback answers instead. | A decision policy — POST /v1/decisions/{slug} |
| 9 | Confidence gate | Act above 0.9, confirm from 0.5, hand to a person below — thresholds kept in policy, not in code. | A decision policy — POST /v1/decisions/{slug} |
Connect TypeSafe
Add a TypeSafe connection under Providers with your TypeSafe API key — or a connection to any provider of another decision model: OpenAI, Cloudflare, Perplexity, Inception, Liquid AI, Upstage, Azure or OpenRouter. Decision policies, classifier checks, route classifiers and eval monitors default to the model typesafe/jev-1.13; any of them can name another decision model, or a route, to fail over across several keys or providers.
Confidence bands
Every decision carries a band computed by INFRO from the answer's confidence and the policy's thresholds: act at or above bands.act, confirm at or above bands.confirm, otherwise human. The default thresholds are 0.9 and 0.5. A yes-or-no answer's confidence is its distance from a coin toss, scaled to 0–1: a probability of 0.97 or 0.03 is a confidence of 0.94; 0.55 is 0.10. Keeping thresholds in the policy means changing one needs no deploy.
What is recorded
- Each decision, batch, rerank and system call is a row in the request log with its outcome, band, confidence and option probabilities, and its estimated provider cost.
- A call INFRO makes for another request — a guardrail check, a route's prompt class, an eval — is its own row, linked to that request (
parent_request) and listed under it in the request detail. - The state, the prompt and the response are never recorded by these features. Payload capture, when your organization enabled it, is unchanged.
Limits
| Limit | Value |
|---|---|
| State per decision | 128 KB of JSON |
| Items per batch | 500 |
| Batch concurrency on your connection | 1–16, default 8 |
| Deadline | 50–10000 ms |
| Options per choice | 2–64 |
| Levels per score | 2–10 |
| Pins per policy | 50 |
| Classes per route classifier | 2–20 |
| Eval monitors running at once | 5 per organization |