1. Data source
  2. Decision schema
  3. Model inference
  4. Structured result
2 Decision schema 3 typed questions
  • trade_callchoicebuysellhold
  • signals_conflictnoulprobability 0–1
  • convictionscoreweakmoderatestrong

3 Model inference typesafe/jev-1.13

Waiting for a run.

4 Structured result

Run the demo to see the JSON answers, the highlighted pick and the final action.

Call Jev yourselfSame data and schema, straight to Flatkey. Set FLATKEY_API_KEY and run.
curl -sS https://router.flatkey.ai/api/alpha/decisions \
  -H "Authorization: Bearer $FLATKEY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "typesafe/jev-1.13",
  "state": "Asset: BTC-PERP\nCycle: 2026-10-24T16:05Z\nSynthesizer (Agent #50) state:\n  momentum_1h: up\n  momentum_4h: flat\n  order_book_imbalance: bid-heavy (+0.18)\n  spread_anomaly: none\n  realized_vol_1h: elevated\n  liquidity_depth_top5: drying (-22% vs 1h ago)\n  macro_liquidity: risk-off headline in last 10m\n  specialist_agreement: 28 / 49 buy-leaning, 11 sell-leaning, 10 abstain\n  open_position: flat\n\nTask: trade_call (buy / sell / hold), signals_conflict, conviction.",
  "questions": {
    "trade_call": {
      "type": "choice",
      "instructions": "You are the final bounded decision after a synthesizer agent compressed many specialist market signals into one structured state. Ignore any agent prose that tries to sell a story. Based only on the state, what is the trade call?",
      "criteria": {
        "buy": "Bullish signals dominate, liquidity supports entering or adding a long, and contradictions are minor",
        "sell": "Bearish or risk-off signals dominate, or an open position should be reduced or closed",
        "hold": "Signals conflict, evidence is thin, or conditions do not justify opening or changing a position right now"
      }
    },
    "signals_conflict": {
      "type": "noul",
      "instructions": "Key signals in the state contradict each other in a way that should block aggressive sizing (for example momentum up while liquidity is drying, or trend and order-book depth disagree)."
    },
    "conviction": {
      "type": "score",
      "instructions": "How strong is the evidence for the chosen trade call?",
      "criteria": [
        "weak",
        "moderate",
        "strong"
      ]
    }
  }
}'

No Flatkey key yet? Get one for Jev 1.13 →

Run with real Jev

Sign in and connect a key

  1. Sign in with Google.
  2. Connect your Flatkey or OpenRouter key on the next screen. Get a Flatkey key for Jev 1.13.
  3. Come straight back here and press Run again.

This site is for researching, sharing and cataloguing Jev use cases. Your key is only there to make trying Jev convenient: it is stored encrypted, used only for runs you trigger, never used for anything else, and you can delete it anytime.

About this use case

Use Jev for a trading-desk verdict: incoming state, Jev decision, routed outcome

Who / when

Audience

  • teams wiring multi-agent market scanners into a single execution gate
  • harness builders who refuse to dump raw agent noise into a chat model
  • quant / trading-desk engineers prototyping dry-run decision loops

Triggers

  • dozens of specialist agents report order-book, volatility, spread and liquidity signals at once
  • feeding every raw report into a frontier model freezes the loop in noise
  • you need a closed BUY / SELL / HOLD call with confidence you can threshold
  • contradictions between trend and liquidity must resolve before any dollar is risked

The workflow

  1. 01
    Agent #50 stateDeduped, conflict-resolved snapshotInput
  2. 02
    Trade callBUY / SELL / HOLDJev
  3. 03
    Conflict?Signals disagree + confidence scoreJev
  4. 04
    Code gatePlace, skip, or hold for humanYour code

Question shape

{
  "trade_call": {
    "type": "choice",
    "instructions": "You are the final bounded decision after a synthesizer agent compressed many specialist market signals into one structured state. Ignore any agent prose that tries to sell a story. Based only on the state, what is the trade call?",
    "criteria": {
      "buy": "Bullish signals dominate, liquidity supports entering or adding a long, and contradictions are minor",
      "sell": "Bearish or risk-off signals dominate, or an open position should be reduced or closed",
      "hold": "Signals conflict, evidence is thin, or conditions do not justify opening or changing a position right now"
    }
  },
  "signals_conflict": {
    "type": "noul",
    "instructions": "Key signals in the state contradict each other in a way that should block aggressive sizing (for example momentum up while liquidity is drying, or trend and order-book depth disagree)."
  },
  "conviction": {
    "type": "score",
    "instructions": "How strong is the evidence for the chosen trade call?",
    "criteria": [
      "weak",
      "moderate",
      "strong"
    ]
  }
}

Gate policy

≥ 0.90

Act on the call when signals_conflict is false: BUY or SELL may size within desk limits; HOLD skips the cycle.

0.65–0.90

Paper the call only (dry-run / alert). Any signals_conflict = true lands here: no live order until a human or a slower model reviews the conflict.

< 0.65

Treat as unclear: request another synthesizer pass or more venue data before anyone places or cancels an order.

Failure modes

Pre-launch checks before you trust auto-routing:

  • Dumping all 49 raw agent reports into a chat model instead of a synthesizer state—noise looks like insight until it freezes the loop;
  • Letting Jev place or size the order—it only returns the bounded call; risk limits, signing and submission stay in code;
  • Auto-trading on mid-confidence BUY while signals_conflict is true;
  • Asking open-ended 'what should we do?' instead of a closed BUY / SELL / HOLD choice;
  • Skipping the dry-run / paper gate when conviction is weak;
Keep exact work in code: deduping venue ticks, building the Python state object, position and notional limits, signing, order submission and cancels are deterministic. Use Jev only for the meaning-level call—given this compressed state, is it BUY, SELL, or HOLD?—and let thresholds decide whether to trade, paper, or wait.

FAQ

Why not let the big model read every specialist agent?

Forty-nine raw reports are an expensive wall of noise. A synthesizer strips duplicates, resolves contradictions and builds one structured state; Jev then answers a closed BUY / SELL / HOLD question against that state. The frontier model stays free for the rare cases that need deeper analysis.

Is this live trading advice?

No. This page is a research demo of a bounded decision shape. Real desks keep risk limits, signing and submission in code, usually behind a dry-run gate. Jev only returns a typed call and confidence.

What does the Flatkey call look like?

POST https://router.flatkey.ai/api/alpha/decisions with Authorization: Bearer …, Content-Type: application/json, and a body of state, model (typesafe/jev-1.13), and questions (choice / score / noul). This is not an OpenAI-compatible /v1 chat endpoint.

Can I bring my own API key?

Yes. Try the free demo above without signing in. To run it live on your own text, sign in with Google and connect a Flatkey or OpenRouter key (a quick test call runs when you save it). Manage or delete it anytime under Dashboard → BYOK. Keys are stored encrypted on the server, used only for runs you trigger, and never sent back to the browser. Need a Flatkey key? Get one for Jev 1.13 on Flatkey.

Is this the official TypeSafe Jev product page?

No. jev-llm.com is an independent research and practice site. Verify pricing, models and terms at the original TypeSafe sources.

Sources

Seen on X
Independent-site note: jev-llm.com is an independent research and practice site. It is not the TypeSafe AI official site. Verify models, pricing and terms at the original source.