← Use cases

Using Jev with Composio

Composio gives your agent hundreds of real tools (GitHub, Slack, Gmail, and more). Jev is TypeSafe AI's decision model — it doesn't call tools itself, but Composio ships an official TypeSafe provider that hands Jev the fetched toolset and a plain-language request, and gets back one typed answer: run this tool, run it once you supply these arguments, or don't run anything. Each answer carries a calibrated confidence score, and choosing a tool never generates free-form text.

Normally an LLM picks the tool: you describe the tools, it emits a tool-call, and you parse and validate that call before running it. Jev is a different primitive — a single non-autoregressive pass that returns a typed value from a finite set, not generated text. Composio's TypeSafe provider uses that to turn "which of these tools answers the request?" into a typed decision over the toolset you fetched, so the selection step is calibrated and can't hallucinate a tool that isn't in the set.

state + questions your input, typed Jev parallel sampler typed answer + confidence one round trip
The decide step is one Jev call: the fetched toolset plus your request is the state, and Jev's typed answer — which tool, with a confidence score — becomes the thing Composio executes.

Decide, then execute — they're separate steps

The key idea is that choosing a tool and running it are two steps. provider.decide(tool_set, request) asks Jev which tool fits; it does not execute anything. You read the result's kind and act on it:

Because selection and execution are decoupled, you get a natural safety gate: a destructive tool only runs when you execute it (the provider requires an explicit confirm=True / confirm: true for those), and arguments you pass yourself override Jev's.

Set it up (Python)

The TypeSafe provider is a Composio plugin. Install Composio, the provider, and the pinned TypeSafe SDK, then set two keys — one for Composio, one for TypeSafe:

# Composio's docs pin the TypeSafe SDK to 0.6.0:
pip install composio composio-typesafe typesafe-sdk==0.6.0

export COMPOSIO_API_KEY="your-composio-key"   # from your Composio project
export TYPESAFE_API_KEY="your-typesafe-key"   # from TypeSafe
from composio import Composio
from composio_typesafe import TypesafeProvider

provider = TypesafeProvider()            # reads TYPESAFE_API_KEY
composio = Composio(provider=provider)   # reads COMPOSIO_API_KEY

# Fetch the tools you want Jev to choose among:
tool_set = composio.tools.get(
    user_id="example-user",
    tools=["HACKERNEWS_GET_USER", "HACKERNEWS_GET_TOP_STORIES"],
)

# Jev picks one — this DECIDES, it does not execute:
decision = provider.decide(tool_set, "Look up the Hacker News user 'pg'")

if decision.kind == "call":
    # inspect decision's tool + args, then run the execute step
    ...
elif decision.kind == "partial":
    # supply the arguments in `missing`, then execute
    ...
elif decision.kind == "abstain":
    # nothing fit confidently — read decision.reason / decision.candidates
    ...

There's a TypeScript provider too (@composio/core, @composio/typesafe and the pinned @typesafe-ai/sdk, with zod, on Node.js 24.17+). The shape is the same: decide returns a typed call / partial / abstain, and a separate execute step runs the chosen tool.

Pin the model in production

The provider's default model is jev-latest, which moves over time — and because Jev's confidence is calibrated, a new version can shift what a given threshold means. For production, pin a versioned model id (TypesafeProvider(model="...")) so your tool-selection behaviour stays stable until you choose to upgrade. See the context and versioning notes on the JevBench and context-window pages.

Shortlisting a big toolset

If you have far more tools than you want to hand Jev at once, the provider also exposes a helper that ranks your raw tools against the request and keeps only the most relevant top-k, so the decide call sees a focused set. Check Composio's TypeSafe provider docs for the current helper name and limits.

Note on the project

The TypeSafe provider is maintained by Composio as part of its provider ecosystem — it's Composio's integration, not a TypeSafe AI product. What it needs from our side is a TypeSafe key (and the hosted Jev model behind it). Follow Composio's own docs for install, the exact method signatures, and supported versions; this page explains the decide-vs-execute model and how Jev fits.

FAQ

What does the Composio TypeSafe provider do?

It lets Jev choose which Composio tool to run from a plain-language request. You fetch a toolset with composio.tools.get(...), call provider.decide(tool_set, request), and Jev returns a typed answer — call (run this tool), partial (run it once you supply the missing arguments), or abstain (nothing fit) — each with a calibrated confidence score. Jev decides; a separate execute step runs the tool.

Does Jev execute the tool itself?

No. Jev is a decision model, not an LLM with tool calling — it only picks. provider.decide(...) selects a tool but does not run anything; you inspect the result and run a separate execute step. Destructive tools need an explicit confirm=True, and any arguments you pass override Jev's, which gives you a built-in safety gate.

How do I install it?

Composio's docs pin the TypeSafe SDK to 0.6.0: pip install composio composio-typesafe typesafe-sdk==0.6.0 (there's a TypeScript provider too, on Node.js 24.17+). Then set COMPOSIO_API_KEY and TYPESAFE_API_KEY. See Composio's TypeSafe provider docs for the exact, current steps.

Should I pin the Jev model?

Yes, in production. The provider defaults to jev-latest, which changes over time, and because Jev's confidence is calibrated a new version can shift what a threshold means. Pin a versioned model id (TypesafeProvider(model="...")) so tool selection stays stable until you deliberately upgrade.

Is this an official TypeSafe product?

The provider is maintained by Composio as part of its provider ecosystem, not by TypeSafe. It works with the hosted Jev model using a TypeSafe key the same way your own code would. Use Composio's docs for install and method details.

See also: Jev over MCP · Jev for coding agents · Jev for computer use · Jev API · Playground

Let Jev pick the tool

Grab a TypeSafe key, add the Composio provider, and turn "which tool?" into a typed, calibrated decision. Try Jev free in the browser first.

▶ Try Jev freeGet an API key →
Jev + Composio — pick the right tool with a typed decision · Jev by TypeSafe AI