AGENTS & WORKFLOWS / CHOICE

AI Agent Tool Selection with Jev

Try AI agent tool routing with Jev: choose weather lookup, web search, a calculator, or no tool before an agent takes its next step.

By AIJev Editorial · Reviewed September 18, 2026 · Interactive walkthrough

The scenario

An assistant has several tools, but calling all of them makes a simple request slow and noisy. A small routing step can select the capability needed for the next turn. The useful question is what information is missing, rather than which tool name appears in the user’s text.

Define the decision boundary

The result selects a capability, not a tool invocation. Validate arguments and permissions separately. No tool is a meaningful answer when the request can be handled without external data.

From input to next step

  1. List the available capabilities and the latest user request.
  2. Select one capability for the immediate next step.
  3. Validate the proposed tool arguments before executing it, then inspect the returned data.

Try it. Then change one thing.

Compare the original scenario with a deliberate variation. You can edit either input, run Jev, inspect the result, and share your decision card. Loading an example does not send a model request.

What to look for: Weather API is a plausible result for current Tokyo weather. The example has not fetched any weather data; run Jev to obtain a real routing decision.

Start with the original input, then compare the variation. Run each scenario to see the real model response. Switching scenarios resets the form and result.

⌘ Playground v1.13
typesafe/jev-1.13↗
01 / INPUT
52 / 20,000
A
B
C
D
50 free / IP decisions per day↻ --:--:--
02 / OUTPUT
⑂

A little context.
A clear decision.

Give Jev a state and a question.
Your decision, probabilities, and insights
will appear right here.

Ready when you are
START WITH AN EXAMPLE
FROM PLAYGROUND TO PRODUCTION

Take the pattern to
your next build.

Inspect the request shape.
Build with Jev through its official docs.

Visit Jev official docs ↗
AIJEV PLAYGROUND REQUEST SHAPE.
{
  "playground": "https://aijev.net",
  "language": "JavaScript",
  "request": {
    "model": "typesafe/jev-1.13",
    "state": "A user asks: What is the weather in Tokyo right now?",
    "questions": {
      "decision": {
        "type": "choice",
        "instructions": "Which tool should the agent use?",
        "criteria": {
          "Weather API": "Weather API",
          "Web Search": "Web Search",
          "Calculator": "Calculator",
          "No tool": "No tool"
        }
      }
    },
    "provider": {
      "allow_fallbacks": false
    }
  },
  "note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}
AIJev Playground only Not a public integration API

Experiment: remove the need for live information

Look for No tool. Compare this with a request for today’s humidity, where freshness changes the required capability.

Use the second scenario tab above to load this variation. Compare the returned decision as well as any probabilities: a changed answer can reveal an unclear policy, and an unchanged answer can reveal that the relevant detail was not captured by your question.

Use this pattern in your application

This playground request shape uses the original scenario. It is a reference for the input, not a public integration endpoint. For application integration, follow the official TypeSafe documentation linked in our Jev API guide. Keep API keys on the server and validate the returned type before taking action.

{
  "playground": "https://aijev.net",
  "language": "JavaScript",
  "request": {
    "model": "typesafe/jev-1.13",
    "state": "A user asks: What is the weather in Tokyo right now?",
    "questions": {
      "decision": {
        "type": "choice",
        "instructions": "Which tool should the agent use?",
        "criteria": {
          "Weather API": "Weather API",
          "Web Search": "Web Search",
          "Calculator": "Calculator",
          "No tool": "No tool"
        }
      }
    },
    "provider": {
      "allow_fallbacks": false
    }
  },
  "note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}

How to evaluate this workflow

Test requests that need each tool and requests that need none. Measure unnecessary calls, incorrect selections, and end-to-end task completion. Include questions with multiple steps rather than assuming one selection completes the entire task.

Save a held-out set before changing your instructions. Compare new versions against the same examples, and review disagreements instead of assuming a valid response is a correct one. For escalation design, see confidence-based routing.

Frequently asked questions

Can this choose a sequence of tools?+

This example chooses one next action. A controller can ask again after observing the result, while enforcing a maximum number of calls and handling failures.

Are these results from a real customer deployment?+

No. These are original educational scenarios. The expected outcomes are editorial hypotheses; clicking Run Jev sends the displayed input to the model and shows its actual response.

Can I adapt this example to my own workflow?+

Yes. Replace the context, define your choices or rubric, and test against examples from your domain. The playground uses text input. Do not include credentials or unnecessary personal information.

References & further reading

Background on routing and evaluation workflows. Our requests and experiments below are original educational examples, not customer deployments. See Anthropic: Building effective agents.

For the underlying decision primitives, read TypeSafe’s System One documentation and our guide to Choice, Score, and Noul.