Skip to content
Kvezo
Writing

Jun 28, 2026 · 8 min read

The Evaluation Problem: Why Production AI Quietly Dies

AI systems rarely die in a way anyone notices. There's no outage, no stack trace, no page at 3 a.m. The demo impressed everyone. The pilot got a budget. And then, somewhere over the following months, the thing quietly stops being trustworthy — a few wrong answers here, a confidently incorrect summary there — until the people who were supposed to rely on it go back to doing the work by hand. Nobody can point to the moment it failed, because it never failed loudly. It eroded.

This is the evaluation problem, and it's the single most common reason production AI doesn't make it. Not model quality. Not infrastructure. The inability to answer one deceptively simple question, continuously and at scale: is this output actually correct?

The demo is not the system

A demo proves an AI system can be right. Production requires proving it is right — on inputs you haven't seen, on the day after the model provider ships an update, on the long tail of cases that never appear in a curated demo. Those are different claims, and the gap between them is where most projects fall in.

The reason the gap is so easy to miss is that AI output is plausible by construction. A language model is optimized to produce text that looks like a correct answer. When it's wrong, it's usually wrong in a fluent, confident, well-formatted way. Traditional software fails conspicuously — it throws, it returns null, it 500s. AI fails by handing you something that reads exactly like success. You can't catch that by glancing at it. You catch it only if you have something to check it against.

What evaluation actually means

Evaluation, in the sense that matters, is not "we tried a few prompts and it seemed good." It's having an oracle — a definition of correct that a machine can apply to an output and return a verdict without a human in the loop. That's the whole game. If checking correctness requires a person to read the output and use judgment, you don't have evaluation; you have spot-checking, and spot-checking does not scale past the demo.

The hard part is almost never building the harness that runs the checks. The hard part is defining correct precisely enough that a machine can apply it. That definitional work is what teams skip, because it's slow and unglamorous and feels like overhead next to the thrill of a working demo. Skipping it is exactly how the system dies quietly later.

Vibes don't scale

There are really only two questions you can ask about an AI output, and they lead to completely different futures.

TWO QUESTIONS YOU CAN ASKONLY ONE SCALES“Does it look reasonable?”subjective · manual · doesn't scale“Does it conform to the spec?”objective · automated · every change
Fig. 1 — Vibes don't scale: only spec-conformance can be checked automatically, on every change.

The first — does this look reasonable? — is the one most teams default to. It's fast, it's intuitive, and it's a trap. It's subjective, so two reviewers disagree. It's manual, so it can't run on every change. And it scales linearly with human attention, which means it doesn't scale at all: ten thousand outputs a day is ten thousand judgment calls nobody is making.

The second — does this conform to the spec? — is the one that survives. It's objective, so the verdict is reproducible. It's automatable, so it can run on every output, every deploy, every model upgrade. The cost of asking it ten thousand times is roughly the cost of asking it once. That property — constant cost per check — is the only thing that lets evaluation keep pace with a system that's actually in production.

The spec is the oracle

So where does an objective definition of correct come from? This is the thread that connects evaluation back to how the system was built in the first place. If you have a behavioral spec — a precise, versioned account of what correct behavior is — then you already have your oracle. The same artifact that tells you what to build tells you whether what you built is right.

THE SPEC IS THE ORACLEPASS / FAIL, AUTOMATICALLYAI outputcandidateSpec oracledefines correctConformsship itViolatesblock itFIG. — THE CHECK RE-RUNS ON EVERY SYSTEM CHANGE
Fig. 2 — The spec as evaluation oracle: every candidate output is graded pass/fail against it.

That's the move: a candidate output goes in, the spec grades it, and you get a verdict you can act on automatically. Conforms — ship it. Violates — block it, before it reaches anyone. The AI is no longer being judged on whether it sounds confident. It's being judged on whether it satisfies a contract you wrote down on purpose. (This is the same living spec that drives spec-driven development — the system describing itself well enough that intelligence has something to stand on.)

This reframes the whole problem. "Make the AI better" is an unbounded, unmeasurable goal. "Raise the conformance rate against the spec from 91% to 99%" is an engineering target with a number attached. You can chart it, regress against it, and tell — definitively — whether last week's change helped or hurt.

Evaluation is a gate, not a phase

The most expensive mistake teams make is treating evaluation as a phase: a thing you do once, before launch, to feel ready. AI systems don't hold still. The model provider updates the weights underneath you. Your prompts change. The data distribution drifts as the real world moves. Any one of those can silently degrade quality, and none of them announce themselves.

So evaluation has to be a gate, not a phase — wired into the pipeline the way tests are. Every change to the system, including changes you didn't make, runs against the spec before it reaches production. A drop in conformance fails the build, exactly like a failing unit test. That's the difference between a system that decays invisibly and one that tells you the moment it starts to. The point isn't to evaluate once and pass; it's to make passing a precondition for shipping, forever.

When there's no spec yet

Most teams reading this don't have a clean behavioral spec, and won't tomorrow. That's fine — evaluation is a ladder, not a leap, and the rungs are worth climbing in order.

Start with a golden set: a few dozen real inputs paired with known-correct outputs, checked into the repo. It's small, it's incomplete, and it will still catch more regressions than any amount of eyeballing. Then add graded checks for the properties you can state crisply even without a full spec — must cite a real source, must never invent an account number, must return valid JSON, must stay within policy. Each check you can automate is one more failure mode that can't come back. Over time those accumulated checks become the spec: a precise, executable definition of correct, assembled from the failures you refused to ship twice.

The trap to avoid is waiting for the perfect, complete evaluation before you build any. A partial oracle that runs on every change beats a perfect one that lives in someone's head.

Evaluation is the product

It's tempting to treat evaluation as the tax you pay to ship the real work. It's closer to the opposite. In a system whose outputs are plausible whether or not they're correct, your ability to tell the difference — automatically, continuously, at scale — is the actual product. It's what converts an impressive demo into a system someone can depend on, and depend on next quarter.

The teams whose AI quietly dies aren't the ones with worse models. They're the ones who never built the thing that would have told them it was dying. Define correct. Make it checkable. Run the check on every change. That's not the unglamorous part of building production AI — it's the part that decides whether you have production AI at all.