Evally
Agents

Model router

Send each prompt to the cheapest model that can handle it.

Classifies difficulty, tool use, output length and stakes in one call, then routes: small model for lookups and rewrites, mid-size for everyday work, frontier for hard or sensitive tasks, reasoning for research-grade problems. Most traffic is easy; stop paying frontier prices for it.

Try it live

Real calls to Jev. Pick an example or paste your own.

Examples
68
No verdict yet

Pick an example or paste your own input, then run it.

Under the hood

Every question and rule, in the open. Fork it to change any of them.

What it asks

Reads prompt, then asks 4 questions in one call.

  1. Q1DifficultyPick one

    How hard is the prompt for a language model to answer well?

    TrivialStandardHardExpert
  2. Q2Needs toolsYes / no

    Does answering the prompt require live data, browsing, running code or calling tools?

  3. Q3Long outputYes / no

    Does the prompt ask for a long output (a full document, many files, or a detailed report)?

  4. Q4High stakesYes / no

    Does the prompt involve medical, legal, financial or safety-critical decisions?

How it decides

Rules run in code, top to bottom. The first one that matches gives the verdict.

  1. 1
    If Difficulty is ExpertReasoning model
  2. 2
    If High stakes ≥ 0.7Frontier model
  3. 3
    If Difficulty is HardFrontier model
  4. 4
    If Difficulty: confidence < 0.45Mid-size model
  5. 5
    If Difficulty is Trivial and Needs tools < 0.5Small model
  6. ·
    DefaultMid-size model

Call it from your code

Every template runs as-is with an API key, no setup: POST /api/v1/judges/model-router/run.

curl -X POST https://tryevally.com/api/v1/judges/model-router/run \  -H "Authorization: Bearer $EVALLY_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "input": {    "prompt": "Make this sentence sound friendlier: '\''Your request has been denied.'\''"  }}'

Seen in the wild

Community builds on Jev that use this pattern. Not affiliated with Evally.

More in Agents