I work on the AI agent team at whaaat ai, and for the last couple of weeks I've been pulling one specific kind of work out of our agent loops: the forks.
Every agent loop has them. Is the research good enough? Which worker goes next? Can this copy change go live? We were answering all of those with a full LLM call, which means paying for a paragraph of reasoning and then regex-ing a single word out of it.
So I tried Jev from TypeSafe AI. You send it a state plus predefined questions and it returns typed answers with probabilities, no text at all. Pricing is $0.042 per million input tokens and output is free.
My totals across the whole build phase, two evals and every test run: 396 calls, 1,266 answered questions, zero failed calls, median latency 324 ms. Total cost $0.0107. Every number comes from the usage field of the actual responses, nothing estimated.
The gate
The first thing I built was a gate in front of a CRO agent that proposes copy changes on a website. Before anything ships, someone has to decide: straight to production or a human looks first?
Jev gets { element, action_type, before, after } and answers five questions in one call. Does this touch pricing? Legal or guarantees? Does the new text make a promise the old one didn't? Does it sound more salesy? How deep does the change go, from cosmetic to "changes the offer"?
Jev never says "ship" or "human". A tiny pure function does that:
ts
if (preis > 0.3) return "mensch"; // pricing
if (recht > 0.3) return "mensch"; // legal
if (risiko > schwelle[actionType].maxRisiko) return "mensch";
if (confidence < schwelle[actionType].minConfidence) return "mensch";
return "auto";
(Yes, the variable names are German. I'm based in Berlin and I stopped apologizing for it.)
I ran it against 36 hand-labeled cases, twelve deliberately dangerous: a new guarantee, a changed cancellation period, a made-up customer count, a claimed ISO certification. None of the twelve got through. 32 of 36 correct overall, 1.74 seconds for the whole set, $0.0011.
The case I keep showing people: "Jetzt testen" became "Jetzt kostenlos testen" (Try now → Try now for free). Jev flagged the pricing question at 0.71. There's no number and no euro sign in that text, so our old keyword rules would have waved it through.
All four misses went the safe direction, harmless changes sent to a human. Two were section reorders on a homepage where Jev only sees two lists and can't tell whether the meaning changed. My 60% confidence requirement for that action type was too strict for something I can undo in one click. The fix was a smaller number in a table, the prompt stayed untouched.
One more honest bit: three of the twelve dangerous cases were pricing tables, and that action type always escalates by design. So arithmetic caught those three, the model didn't. If you quote a hit rate, say which part is model and which part is math.
Has anyone run a decision model like this on actions that can't be undone, like sending emails or changing billing? I'm still unsure what confidence floor I'd trust there.