Back to Blog
EngineeringAIEvaluation
•
October 25, 2026
•
9 min read

0.97 and Wrong: Moving Cereby Mini's Edit Check to a Decision Model

Mini's edit-or-reply check was sure of itself even when it was wrong. What we found, what replaced it, and why Mini still makes two calls.


A student has a history essay open. They ask Cereby Mini to add a paragraph about the arms race, read what it wrote, and then ask: "why did you mention the Dreadnought?" Instead of an answer, Mini proposes another edit to the page, one nobody asked for.

Behind that edit was a verdict and a number: "edit this page, 97% sure." The exchange is made up for this post, but the verdict is what Cereby really returned for it, every time we tried. In our test set it happened seven times, and six of them looked just like this one: a question asked right after an edit.

The step that made that call is the edit-or-reply check. Every message typed into Mini goes through it first, and it decides one thing: change the page (shown side by side for the student to accept or reject), or answer in chat. We introduced that split in Make This Punchier. This post is about the model behind it: what was wrong with it, what we replaced it with, and a test of whether Mini needs the check at all.

To be fair about scale: Mini is a small feature, with 59 paid turns in the last 90 days, and a wrong edit costs the student one click to reject. But every Mini reply waits for this check, so it is worth getting right.

The confidence was copied

The old check asked a small, fast language model (Google's Gemini Flash-Lite) to read the message and write back its answer as a short line of text: the verdict, plus how confident it was. Its instructions included 24 example answers, and every example came with one of six confidence numbers, from 0.90 to 0.99.

So we counted what it actually wrote. Across 381 answers, almost every confidence was one of those six numbers, copied straight from the examples:

A copied number still looks like a measurement, which is why nobody noticed. The giveaway is the wrong answers: every one of them was as confident as the right ones. Nothing in Cereby read the number anyway. It was never logged or used, and neither was how long the check took.

There was one more problem: the check had no time limit. If the AI provider stalled, a student's message could wait for minutes before Mini even started its reply. We fixed that first and shipped it on its own: six seconds per attempt, ten in total. Cereby now also records how long the check takes and what it decides.

A model built for yes-or-no questions

Our question only has two answers, and there is a kind of AI model made for exactly that. A decision model does not write a reply. You give it some text and a question, and it returns the probability that the answer is yes, as a number between 0 and 1. It cannot copy a confidence from an example, because it does not write one.

We use OpenAI's decision model through Vercel AI Gateway, the service Cereby already uses to reach AI providers. It gets one question: "Is the latest message asking for the document to be changed?" If it cannot answer for any reason, the old check takes over, so Mini never gets stuck.

We tried eleven decision models, and a few scored a little higher than OpenAI's. But Cereby's privacy screen names OpenAI, Anthropic and Google as the companies that receive a student's work, so we kept that promise and chose OpenAI's.

How we tested it

The check had never been tested, because there was nothing to test it against. So we wrote 206 example messages, each labelled with the right answer: polite requests that sound like questions ("could you make this shorter?"), questions that sound like requests ("tell me how to rewrite the thesis"), messages in Spanish, French and Haitian Creole, and follow-ups that only make sense after the previous turn. All of them were made up; no student's messages were used.

We tuned on a third of them. The other 127 we set aside and ran only once, at the end, after writing down in advance what would count as a win. That way the result could not be nudged after we saw it.

What changed

On those 127 messages:

Old checkNew check
Right answers119123
Questions answered with an unwanted edit70
Edit requests answered in chat instead14
Cost per check$0.000148$0.000047

Overall accuracy is too close to call. What changed is the kind of mistake. The new check made no unwanted edits; its four misses were edit requests it answered in chat, and each one came with a probability between 15% and 41%, which is the model saying it was unsure. The old check was 97% sure of answers that were wrong.

It is also faster: a typical check takes less than half the time. We timed both 376 times each, one call at a time:

Why Mini still makes two calls

Every Mini message makes two AI calls: one to decide, one to write the reply. The obvious question is why not do both in one call, and let the model that writes the reply decide for itself?

We had reasons. Each prompt does one job: the instructions for writing an edit are long (the editor's formatting rules, maths, diagrams), while the instructions for a chat answer are short. Put both together and a small model has more chances to mix them up, writing an edit into the chat or answering a question with page HTML. Cereby also decides several things before the reply exists, like how creative the model should be and when to charge, and all of them depend on knowing the mode first.

But reasons are not results, so we built the one-call version, tuned it like the other, and ran both over the same 127 messages:

It was closer than we expected. One call was a little faster, about a fifth of a second per message, because it skips a round trip. A blind AI judge rated the quality of the two designs' replies about even. But one call made one more mistake, its mistakes were the intrusive kind (edits nobody asked for), and every question cost about 2.7 times as much, because each one carried the long editing instructions. One of the conditions we had written down in advance was that one call make no more mistakes. It missed by one message, so Mini keeps two calls, with a much faster first one.

Two surprises

Wording still matters. Our first try asked the decision model a bare question, and it said "could you make this shorter?" was not a request to change anything, because it reads like a question. Adding one sentence about polite requests fixed it. A decision model has no examples to copy, but its instructions are still a prompt.

"Yes please" needs context. The old check only read the student's own messages. But "yes please" means "edit the page" after "Want me to update the ingredients?" and "keep talking" after "Want me to explain why?". Once the check could see the start of Mini's previous reply, it got this right.

What this taught us

A confidence that a model writes is just more text, and text can be copied. A probability the model calculates can say "I'm not sure", and that is where the new check's mistakes landed.

If nothing reads a number, nobody notices when it is wrong. The first thing we shipped was a record of what the check decides and how long it takes.

Test the design you are defending, too. Our reasons for two calls held up, but by one message, not by a mile.

What's next

Production now records every check, so we can replace these test numbers with real ones as students use Mini. The new check's few misses all sat in its "unsure" range, which suggests sending only those messages back to the old check, but choosing that rule fairly needs a fresh set of test messages.