Skip to content
Agent Month

You shipped AI features with no evals. Here’s how to fix that.

3 min readevalsqualityci-cd

Be honest: when you change a prompt, do you know whether quality went up or down? For most teams the answer is no. The feature shipped, it seemed to work, and now every prompt tweak and model swap is a blind deploy. The cost of a bad output only shows up after it reaches a customer.

This is the single most common gap we find in production AI. The good news: you don’t need to halt the roadmap to close it. Evals can be added incrementally, and even a small suite changes how the team ships.

Why “it seemed fine” isn’t enough

LLM behavior is non-deterministic and sensitive to changes you’d never expect to matter. A reworded instruction, a new model version, a provider’s silent update — any of these can shift quality. Without evals you find out from an angry user, a spike in support tickets, or a metric you can’t explain. Evals turn quality from a vibe into a number you can gate on.

Start absurdly small

The mistake is treating evals as a giant upfront project. Don’t. Start with one route and ten examples.

  1. Pick your highest-stakes route — the one where a bad output costs the most.
  2. Collect ten real, representative inputs from production logs.
  3. For each, write down what a good output looks like — or a rule that distinguishes good from bad.

That’s a working eval set. It’s not comprehensive; it doesn’t need to be. It catches regressions on the thing that matters most, today.

Pick a scoring method that fits the task

  • Exact / structural match — for anything with a correct answer: classification, extraction, JSON shape. Cheap and unambiguous; use it wherever you can.
  • Rubric scoring — for open-ended output, a checklist (“cites a source”, “no PII”, “answers the question”) scored programmatically or by a judge.
  • LLM-as-judge — a model grades the output against your criteria. Powerful for nuance, but the judge itself needs validating against human labels so you’re not just measuring one model’s opinion of another.

Most production setups end up using all three across different routes.

Wire it into CI

An eval suite that runs manually gets run never. The whole point is to make it a gate: every change that touches a prompt, a model, or retrieval runs the evals, and a quality drop blocks the merge the same way a failing unit test does. Now “did this change hurt quality?” is answered before deploy instead of after.

Then watch production

Offline evals catch regressions you can foresee. Production traffic surfaces the ones you can’t. Add lightweight online monitoring — sample real outputs, score them with the same rubric, and alert when quality drifts. This is also where you harvest your next eval cases: every bad output in production is a test you were missing.

We build this layer on openclawOS — tracing, prompt versioning, and regression detection — so the offline suite and the online monitor share one definition of “good.”

The payoff compounds

Once evals exist, everything downstream gets safer and faster. You can finally cut costs by downgrading models — because you can prove quality held. You can adopt new models the day they ship. You can let juniors and agents move fast, because the gate catches what they miss.

Evals feel like overhead until the first time they catch a silent regression before a customer does. After that, nobody on the team wants to ship without them. If you shipped AI with none, building this layer is the highest-leverage thing you can do next.

Bleeding money on LLM costs?

We cut 30–60% in four weeks, documented. Book a 30-minute technical call.