Skip to main content
Glama

Ask Jev about one state

jev_ask
Read-only

Ask typed yes/no, choice, or score questions about a single state such as a diff, log, or file in one call, and get back a verdict, probability, and decision (auto, confirm, or review).

Instructions

ONE state, N questions: ask every typed question (noul yes/no p, choice label, score level) about one state in one call; answers come back with verdict, p and decision (auto | confirm | review). Use for: judging one failure log, one diff, one file, one command. For many items use jev_batch. Or run a recipe: {recipe:"classify"|"decide"|"verify_claim"|"rerank"|"self_consistency"|"find_lines"|"locate", args}. Not for: counting, dates, arithmetic, test pass/fail (exit code), summaries, judging whether a bug report is real or a patch fixes it. Refs instead of pasting: "$file:a.ts#L1-80", "$diff", "$log:x.log". If it returns unavailable / rate_limited / budget_exceeded, judge inline; do not retry in a loop. Example: {state:{diff:"$diff:staged"}, questions:{leak:{type:"noul",instructions:"Does diff add a hardcoded credential?"}}}

Input Schema

NameRequiredDescriptionDefault
argsNoArguments of the recipe.
cacheNoUse the response cache (default true).
stateNoWhat the questions are about: a string, or an object/array with named fields. Refs are expanded on the server, never paste files: "$file:src/a.ts#L10-80", "$diff" (uncommitted) / "$diff:staged" / "$diff:<ref>", "$log:test.log". Name untrusted fields untrusted_*.
detailNoAdd probabilities and routing reasons (more tokens).
imagesNoImages by placeholder like "<shot>", written inside a state string. Off unless the user set JEV_IMAGES=1.
presetNoDecision preset: gate (default) | triage | review_filter | strict. Thresholds live in config.
recipeNoRun a named recipe instead of raw questions; pass its args. See instructions for one example each.
questionsNoQuestions by unique name (names are never shown to the model). Put every question about this state in one call.
long_contextNoLong-context header (262k tokens, slower, less accurate). "auto" uses it only when over the 64k/32k limits.

Output Schema

NameRequiredDescriptionDefault
idNo
errorNoOnly on a failed call (isError): kind, message, fix, retryable, plus cause / loc / status / request_id when known.
modelNo
usageNo
recipeNo
answersNo
warningsNo
model_overriddenNo
secrets_redactedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint, and the description goes well beyond that: it discloses the return shape (verdict/p/decision), the recipe mode, server-side ref expansion, and critically the degradation behavior (unavailable / rate_limited / budget_exceeded) with an instruction not to retry in a loop. That failure-mode guidance is exactly the kind of context structured fields cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core constraint and organized into Use for / Not for / refs / failure behavior / example – every sentence earns its place. The density and shorthand ("noul", "$diff:staged") make it slightly harder to parse on first read, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with nested objects and an output schema, the description covers the remaining gaps an agent would otherwise stumble on: which state to pass, how to reference files instead of pasting, which recipes exist, and what to do when the service degrades. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds value by naming the three question types (noul yes/no p, choice label, score level), the recipe form with the args convention, and a full worked example call. It stops short of explaining preset, detail, cache, long_context or images beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a precise verb+resource+cardinality constraint ("ONE state, N questions") and immediately states that answers come back with verdict, p and decision. It explicitly contrasts with the sibling jev_batch for the many-item case, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives positive triggers ("judging one failure log, one diff, one file, one command"), an explicit alternative for the many-item case ("For many items use jev_batch"), and a concrete not-for list excluding counting, dates, arithmetic, exit codes and patch-correctness judgments. This is the strongest form of routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools