jev_ask
Ask Jev typed questions about one state and get answers with probabilities.
Jev is not a chat model: it returns a typed answer per
question and nothing else — no prose, no justification, no tool calls. It pays
off on BATCHES — many rows or profiles to triage with the same rubric (see
jev_items). A single case you can judge yourself does not need Jev.
⚠️ The state is sent to a third party (OpenRouter, which passes it to TypeSafe): put in it only the fields the judgement needs, never a whole record or document.
Put the WHOLE rubric in one call: the questions of one call are answered in parallel, each extra question costs about 48 input tokens, and the state is charged once. They cannot see each other's answers, so a question that depends on another's answer needs a second call.
Returns — {model, answers, usage}:
answers[name] is {type: "noul", noul: 0.96}, or
{type: "choice", choice, probabilities, confidence}, or
{type: "score", score, probabilities, legend, confidence}.
model names the exact snapshot that answered — store it next to the
answer, it is what makes a threshold reproducible.
usage carries input_tokens, output_tokens (free) and cost in USD.
A probability near 0.5 means "as likely as not", never "medium": pick two thresholds and leave the band between them to a human or to a stronger model.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"state": "<state>",
"questions": "<questions>"
},
"name": "jev_ask"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _org | No | Org (id) de CET APPEL. `oto_list_orgs()`. | |
| model | No | another model id (default: the pinned dated snapshot). | |
| state | Yes | what Jev judges — a flat or nested object (`{"title": …, "company": …}`), at most 16 KB of JSON. Send the fields that matter, not the whole record: the state is billed per token. | |
| _group | No | Équipe (id) de CET APPEL, sous son org parente. | |
| _run_id | No | OBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas. | |
| _project | No | Projet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`. | |
| _instance | No | Instance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`. | |
| questions | Yes | `{name: {type, instructions, criteria}}`. `noul` — criteria `{"true": …, "false": …}`, both described; `choice` — one entry per option, each described; `score` — an ORDERED list of levels, low to high. `criteria` is required. |