Skip to content
Back to Blog

Jev vs Claude: Where a Decision Model Fits in a Claude Agent

Where does Jev go in a Claude agent? Move out the steps that need only one option or one probability: which tool to call, whether a call is allowed to run, whether the task is finished, whether to escalate to a stronger model. Call Jev from your agent code through the TypeScript SDK or the HTTP API. Claude keeps generating and reasoning; your code reads the returned probability and decides what happens next.

The difference in one line

Claude takes messages in and returns text or tool calls. Jev takes state plus questions in and returns probabilities. State is whatever you want judged — text or JSON.

DimensionClaudeJev (on system-one.dev)
OutputGenerated text, or a structured tool callSource: Claude tool use docs · Verified 2026-10-12One of your predefined options, levels or yes/no values, with probabilities; no generated textSource: System One decision primitives · Verified 2026-10-12
Explains its reasoningWrites a rationaleNo; probabilities only
InputsSee Claude's docsText and JSON; no images
MeteringBilled per token; see Claude pricingSource: Claude pricing · Verified 2026-10-12Credits per block and per question (below)

For the full comparison and the JSON Schema mapping, see Jev vs ChatGPT and Decision model vs structured output.

What Jev cannot do

  • Write replies, emails or code.
  • Explain its reasoning, or perform multi-step reasoning.
  • Serve as the main model of a coding agent. A coding agent needs generated code and tool calls; Jev's shape is state and questions in, probabilities out.
  • Read images.

All of that stays with Claude.

Four decision points inside a Claude agent

Picking a tool (Choice)

With many tools, Claude can pick wrong. List the candidate tools as Choice options plus a "none of these", let Jev pick one, and hand low confidence back to Claude or to the user. See agent tool routing.

Gating a call (Noul)

After Claude produces a tool call, ask a yes/no question before it runs — for example "would this command delete production data?" — then allow, block or escalate by probability. See agent guardrails.

Is the task done? (Noul)

Claude saying "done" is not proof. Split "done" into a few yes/no questions and pair them with deterministic checks such as tests before stopping or continuing. See agent stop conditions.

Should this escalate to a stronger model? (Score / Choice)

Score the request's difficulty, or pick a tier with Choice: easy requests go to a small model, hard ones to a stronger one. See model routing.

Wiring it up: a decision point in agent code

There are two integration paths — the TypeScript SDK @system-one-ai/core, or the HTTP API — both called from your own agent code.

The flow:

  1. Claude produces a candidate action (a tool_use block).
  2. Your code sends that action as state to Jev, with one or more questions.
  3. Jev returns probabilities.
  4. Your code applies thresholds: run, escalate to a stronger model, or ask a person.

The code below is illustrative and has not been run. The Claude side follows the tool_use shape in the Claude tool-use docs; the Jev side follows @system-one-ai/core usage shown elsewhere on this site. The thresholds are placeholders — choose your own on labelled samples.

ts// Illustrative code, not tested
import { booleanQuestion } from '@system-one-ai/core';
import type { EvaluationClient } from '@system-one-ai/core';

const gateQuestions = {
  destructive: booleanQuestion(
    'Would this tool call delete or overwrite production data?',
  ),
};

type ToolUse = { name: string; input: unknown };

// toolUse comes from the tool_use block in Claude's reply
export async function gateToolCall(client: EvaluationClient, toolUse: ToolUse) {
  const result = await client.evaluate({
    state: { tool: toolUse.name, input: toolUse.input },
    questions: gateQuestions,
  });
  const p = result.answers.destructive.probability;

  // Placeholder thresholds; re-select them on your own labelled samples
  if (p >= 0.8) return 'block';
  if (p >= 0.3) return 'ask_human';
  return 'run';
}

For how the client is created, see What is a decision model?. Select a model by its full model ID, read from GET /v1/models — don't copy IDs by hand.

Does it work in other languages

Jev handles non-English input, but accuracy is lower than in English.

Test on your own samples. One comparison worth trying: write questions and options in English while keeping state in the original language, then run both variants over the same data. That is a testing suggestion, not a conclusion.

Cost and trying it

Every 4KB is one block, and a smaller request still counts as one block. Cost = blocks × questions × the model rate.

  • Jev rate: 1 credit per question per block.
  • Blocks are counted over the whole request's bytes.
  • Example: a 9KB request with 2 questions is 3 blocks → 3 × 2 × 1 = 6 credits.

New accounts start with 100 credits, and credits never expire. See pricing.

Claude bills per token; see Claude pricing. The two meters differ, so per-unit prices are not directly comparable — cost both on your own typical request.

Want to try? Run a sample (sign-in required) — for example code review risk or NPC action choice (sample data).

Verified 2026-10-12

Frequently asked questions

What is the difference between Jev and Claude?

Claude generates text and tool calls; Jev answers predefined questions with an option, a score or a yes/no probability, and never generates text.

Can Jev replace Claude, or serve as a Claude Code model?

Neither. Jev produces no text; it can only take over the decision steps inside an agent.

Which steps in a Claude agent suit Jev?

Choosing a tool, gating a tool call, deciding whether the task is complete, and choosing whether to escalate to a stronger model.

How do the two connect?

In your agent code, call Jev through the TypeScript SDK or the HTTP API, then branch on the returned probability.

Does Jev support other languages?

It handles non-English input, but accuracy is lower than in English. Test on your own samples.

How is it billed, and how do I try it?

Every 4KB is one block (a smaller request is still one block). Cost = blocks × questions × the model rate; Jev is 1 credit. New accounts get 100 credits. Run a sample (sign-in required).