JEBADIAH
Billboard poster: a robot sheriff in a black hat and duster holds a gavel at a wooden bench at sunset over a Texas frontier town. The headline reads JUDGE JEB, the specialized decision model for JDE. Three lit signs on the bench read ALLOW, ASK and BLOCK. Along the bottom: Observe, Measure, Calibrate, Trust, Automate.

Jebadiah · open decision models

Public Jeb knows how to decide. Judge Jeb learns how you decide.

Jeb is a family of open models that answer one kind of question: a question with a fixed set of answers. You get a probability for every answer, not a paragraph to parse. It runs on your own hardware.

Observe → Measure → Calibrate → Trust → Automate

What Jeb does

He doesn’t talk much. He just decides.

A support desk gets a ticket. It needs four answers before anyone reads it: which team, whether to reply today, how upset the customer is, and whether they want money back. Here is what Jebadiah 9B v2 returned on our fleet on 26 September 2026.

Incoming ticket

“Payouts failing again. Third payout this week bounced with error PAYOUT_REJECTED. I have to pay two contractors by Friday and your status page says everything is fine. What is going on?”
Unassigned
Jeb 9B v2 · four questions about 1.3 s end to end

Which team takes it?

choice
Billing0.878
Technical0.107
Account0.009
Sales0.007

Reply today?

noul
P(true)0.917

How frustrated is the customer?

score
0 · Calm0.009
1 · Mildly annoyed0.095
2 · Frustrated0.493
3 · Angry0.402

Expected level 2.29 on a 0 to 3 scale: between frustrated and angry.

Is the customer asking for a refund?

noul
P(true)0.020

What a chat model gives you

“This sounds like a billing issue, though it could involve the technical team since there's an error code. The customer seems quite frustrated, so it would be good to respond promptly...”

Now write code that turns that into a route, a priority and a refund flag. Then do it again when the wording changes.

What Jeb gives you

Numbers your code can use as they are. Route to billing because 0.878 clears your bar. Page someone because frustration sits at 2.29. Skip the refund flow at 0.020. The same question asked twice gets the same numbers.

choice

Pick one of several named options. Jeb returns a probability for each.

noul

A yes or no statement. Jeb returns the probability that it is true, from 0 to 1.

score

An ordered scale. Jeb returns a probability per level and the expected level.

Public Jeb · the generalist

Three sizes. Open weights.

Every model is Apache-2.0 and trained on public data only. The score is our own eval, not a leaderboard: a macro average over public decision sets the models never trained on.

Jebadiah 27B

Base: Qwen3.8-27B

78.9our eval
bf16
55.6 GB
Q8_0
29 GB
Q4_K_M
16.8 GB
Q8 agrees
260 of 260

Decision Index

Results tonight

The Decision Index is a public benchmark for typed decision engines. Jeb's run is in progress. This space holds the score when it lands, with a link to every per-question record.

“Q8 agrees” is how often the 8-bit GGUF gives the same answer as the full weights on 260 held-out questions. Smaller downloads, same decisions.

All three live in one Hugging Face collection, with mirrors on ModelScope.

Run it anywhere

Your hardware. Your call.

The standalone server

One command serves any Jeb model with a playground page and the POST /v1/systemone endpoint. It speaks Jev's wire format, so an existing Jev client works once you change the endpoint.

github.com/getainode/jebadiah

# from the server/ folder of the repo
uv sync
uv run jebadiah-serve --model frontier-infra/jebadiah-4b-v2

# playground   http://localhost:8000
# decisions    POST http://localhost:8000/v1/systemone

llama.cpp

Download a GGUF and run scripts/decide_gguf.py from the same repo. Q8_0 is the one that matches the full weights.

MLX on a Mac

Each model has an MLX build for Apple silicon, in the -MLX repos on Hugging Face.

AINode

An open-source local AI platform for NVIDIA GPUs. It loads Jeb and serves decisions across a cluster. github.com/getainode/ainode

A note on chat apps

Chat-only apps will load the weights, but they cannot produce decisions. A decision reads the probability of each answer, which a chat window never shows. Use the server or the scripts.

LM Studio is the exception, through its local server: scripts/decide_lmstudio.py gets decisions from it (up to 20 options per question). On the 9B Q8 it matched the full weights on 257 of 260 questions; the 9B is the only size tested so far.

Judge Jeb · the specialist

One base model. Two roles.

Public Jeb answers general questions. Judge Jeb is an adapter on the same base, trained on the decisions one engine actually asks, and on the outcomes people approved.

On this page, as on the posters: solid frames exist today, dashed frames are work in progress.

Poster titled Public Jeb vs Judge Jeb, One base model. Two roles. Two robot cowboys flank two panels. Public Jeb, the generalist: general System 1 decisions, public typed-decision data, public and open, broad routing, classification and control questions, outputs probabilities JDE can use. Judge Jeb, the specialist: specialized judge for JDE, trained on JDE decision shapes and approved outcomes, private or customer-specific, environment-specific decision boundaries, probabilities calibrated for allow, ask or block. A flow runs from Public Jeb base to Judge Jeb adapter to JDE calibration to the allow, ask and block signs.
Public Jeb is the base. Judge Jeb adapts it to your domain. JDE calibrates per judge and turns answers into action.
In training

Judge Jeb

  • An adapter on the same Jeb base
  • Trained on JDE's decision shapes and approved outcomes
  • Private when it is trained on a customer's data

Its first training data comes from JDE's own ledger: decisions recorded in shadow mode, then labeled by what actually happened.

Open source · MIT

JDE, the Jev Decision Engine

Jeb is the model. JDE asks the question and turns the answer into allow, ask or block.

  • Judges. Several models can answer the same question.
  • Per-judge calibration. Each judge's numbers are fitted so 0.8 means 0.8.
  • Bands. Every answer lands in allow, ask or block.
  • Ledger. Every decision and its outcome, kept.

github.com/Titanium-Devops/jde

ALLOWMove forward
ASKGet clarity
BLOCKPrevent risk
Poster titled How Judge Jeb Works. Jeb is the model; JDE asks the question and turns the answer into allow, ask or block. Public Jeb and Judge Jeb feed the JDE / Jev decision engine, which holds judges, per-judge calibration, bands and a ledger. The engine answers who asks, such as a help desk agent, and coding-agent hooks such as completion checks and ask-gates. A dashed loop shows the shadow-mode ledger becoming labeled data for Judge Jeb. A bar at the bottom reads DecisionBench, which measures any judge inside an engine.
The whole loop. Decisions go into the ledger, the ledger becomes training data, and Judge Jeb gets better at your calls.

Coding-agent hooks

“All tests pass.” Did they?

In design · shadow mode first

A coding agent finishes and says it is done. A distiller reads the session and reduces it to one question with the evidence attached. Jeb answers. JDE puts the answer in a band.

RequestFix the login timeout, add a test.
ClaimAll tests pass.
EvidenceRan pytest tests/test_login.py → 1 passed
Questionnoul “The evidence supports every part of the claim.”

Jeb's answer

0.34

ALLOW
ASK
BLOCK

One test file ran. “All tests” is a bigger claim than that, so the agent gets asked, not waved through. Where the band edges sit is set per judge by calibration.

Agent session→Distiller→One question→Jeb→Band

DecisionBench

Measure the judge where it works.

Coming

Leaderboards score a model alone. DecisionBench scores a judge inside an engine, the way it will be used, and runs the same way on every model. The code and data will be public.

Threshold error

How often it acts above the line when it should not have.

Recalibration cost

How many labels it takes to recalibrate.

Flips

Whether the same question gets a different answer.

Noise

How much the numbers wobble between runs.

Speed

Time per decision.

Cost

What each decision costs to run.

Proof points

Same dirt. Higher intelligence.

A customer ran a blind test of Jeb against Jev, the hosted decision model Jeb's wire format comes from. The numbers below are theirs.

0 flips

Across 5,800 calls, no answer changed on a repeat. The probabilities were identical from run to run.

277/290

Jeb 9B v2's total, against Jev's 282. Close, and Jev still leads on coverage checks (3 misses to Jeb's 7).

37 vs 35

Jeb beat Jev on the added-requirement checks: 37 of 40 right, to Jev's 35.

Listed

awesome-jev

In the OmniJev gallery, merged.

Hosted

Hugging Face

All weights, GGUF and MLX.

Mirrored

ModelScope

All three sizes.

Requested

Ollaya

Support requested, not yet shipped.

Who builds it

Built in Texas. For what comes next.

Jason Brashear

Builds and trains the Jeb models, and builds AINode.

Frontier Infra

The Hugging Face organization that publishes the weights.

AINode

The open-source local AI platform that serves Jeb on our own GPUs. github.com/getainode

Work with us

Need a judge for your own decisions?

Placeholder. Contact details and an offer go here, or this block is removed.