Use cases· Last updated

Routing decision workflow with Jev

Not every request deserves the same handler. Jev classifies cheaply; code sends work to a lookup, a specialist LLM, a costlier model, or a human.

This unofficial page is the decision workflow slice of the intent and model routing pack. Intent: apply the Jev (TypeSafe System One) decision model to intent and model routing decision workflow. Primary search language: Routing Jev decision workflow. Confirm patterns on docs.typesafe.ai. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.

Independent angle (cover ≠ clone): Routing glossary + compare vs rules/queues; ranked-route floors. Not a clone of a rival intent-routing glossary page.

Routing use-case context

Intent and model routing is a workflow, not a chat. Assemble a narrow state, ask the primitives below, and let the front-door router branch. TypeSafe’s docs say a good question is a snap decision a knowledgeable person could make in a few seconds — not an open-ended analysis of the latest user request.

Hub: Intent routing. Compare, when the other tool is the real job: rules and queues.

Decision Workflow inputs

Keep only fields the questions name:

{
  "user": { "message": "Where is order 8831?", "locale": "en" },
  "session": { "authenticated": true, "plan": "free" },
  "catalog": { "handlers": ["order_status", "product_question", "return_exchange", "complaint", "other"] }
}

Point instructions at user.message, session.authenticated. Drop full order-line JSON when the intent might be a product question; every historical session turn.

Decision signals and actions

Id Type Job
intent Choice order_status / product_question / return_exchange / complaint / other
complexity Score used when the intent is a complaint
model_class Choice optional: cheap / standard / careful (model routing)

All of these share state and run in parallel. Code owns the graph:

def route(ans):
    intent = ans["intent"]
    if intent.confidence < FLOOR:
        return "human"
    if intent.choice == "order_status":
        return "sql_lookup"
    if intent.choice == "complaint":
        c = ans["complexity"]
        if c.score > 1 or c.confidence < FLOOR:
            return "human"
        return "complaint_llm"
    if intent.choice == "other":
        return "human"
    return f"llm:{intent.choice}"

Do not treat a Noul of 0.5 as a “medium” intent and model routing score — it means yes and no are equally likely. Conjunctions stay in your code.

Guardrails and escalation

TypeSafe’s confidence-gated examples use a lower bar for recoverable reads than for irreversible actions. Those numbers are illustrations. For intent and model routing, treat complaint_auto_llm as the high bar (opening a refund/complaint LLM path or jumping to a costly model). Tune on labels — see offline evaluation.

Low confidence, intent == other, or a policy miss → human or safe default; do not open a refund path or jump to a costly model.

Evaluation and rollout notes

Shadow: Record selected handler next to the current rules engine; serve the old route.

Canary: Auto-act order_status only; keep complaint on the old path.

Pin jev-1.13.0 (the versioned id) after you fit thresholds. jev-latest and the marketing line jev-1.13 can move. Log the response model. TypeSafe’s published list price for jev-1.13 is $0.042 per million input tokens (vendor claim — confirm on the models page); output tokens are free on that same page. Unused distractors still bill as input.

Official Python and JavaScript SDKs read TYPESAFE_API_KEY and retry documented 429/529. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.

Pack map

Slice Page
Graph and primitives you are here
What may enter state input contracts
What to gather first evidence collection
Atomic rules policy checks
Act / review / abstain confidence thresholds
Reviewer payload human handoff
What to persist audit trail
How it breaks failure modes
Labeled replay evaluation
Shadow → canary production rollout

FAQ

Does Jev execute the front-door router action? No. It returns typed answers. Your front-door router code calls queues, models, or humans.

Why several questions in one request? TypeSafe’s fan-out pattern: extra questions are cheap versus another HTTP call. Intent + complexity (+ optional model_class) belong in one request. Do not pay a second System One call just to pick the specialist prompt.

Where is the rest of the Routing pack? Start with Routing input contracts and Routing confidence thresholds. Cluster hub: Use cases.

Is intent a reserved API field? No. You name the key. See glossary: intent.

When do rules beat Jev? When the route is already in structured data. Compare traditional routing.

What this page does not claim

Disclaimer

This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai.

Primary documentation: https://docs.typesafe.ai. Hub: Use cases.

Sources

Public TypeSafe or adjacent documentation only. No private claims.