DEV Community

Cover image for Measure an AI agent before you call it ready to ship
Conor Bronsdon
Conor Bronsdon

Posted on Originally published at chainofthought.show

Measure an AI agent before you call it ready to ship

The Chain of Thought collection on AI evaluation has five episodes. Read in order, they make a ship gate: define the measurement, engineer the eval, check the trust bar, wire the eval into release, and seed it with the failures that matter.

How do I know the agent is still a demo?

An agent that looks finished in a demo is often unmeasured. On Every AI Agent Has an Evaluation Gap, Alex Ratner of Snorkel AI frames the evaluation gap as a hypothesis: AI capabilities have advanced faster than our ability to define and measure them precisely. The collection page ties that gap to the moment an agent leaves the demo, when capability has outpaced measurement.

Ratner maps the gap as what blocks agents from real enterprise work. In the same episode he walks through Snorkel's $3M Open Benchmarks Grant and explains why pure environment vendors don't actually understand how AI works. I would not treat an environment as a substitute for a measurement. If I cannot write down what better means on the task, the agent stays a demo.

Before I widen a rollout, I write a short definition of the task and a score I can recompute. If I cannot define the measurement, I cannot tell whether a change helped, and I cannot defend a deployment.

When does an eval deserve to run on the request path?

Explaining Eval Engineering with Vikram Chatterji treats evaluation as an engineering discipline. The episode summary describes the common habit: teams write evals like unit tests, check a box, and move on. That habit fails for agents that make real decisions for customers and spend real money. The marker I would follow is to author, test, and measure the evals.

The episode page adds that once an eval is accurate enough, it can run as a runtime control. I would author the eval, test it on cases I already understand, and measure how often it matches a reviewer. Only then would I put it on the request path. One green run does not justify that step.

What latency bar should I write down?

Trust is the bar for shipping agents. That is how the collection page frames The AI Agent Trust Gap with Philipp Krenn of Elastic. He recalls a 200-millisecond Elasticsearch query that once felt unacceptably slow, while a five-second LLM answer is now treated as perfectly fine. I would record both numbers for any system under review. The latency older search work rejected, and the latency the model is allowed to use, are one view of the trust gap.

If a five-second answer is being treated as fine, I want that decision written down next to the 200-millisecond bar Krenn remembers, with a guardrail on the same path as the agent.

Where should the eval sit when we ship?

How Engineering Leaders Can Future-Proof Their AI Strategy is a re-shared conversation with Andrew Zigler about evaluation-driven development, and the collection page states its case plainly: build the eval loop into how you ship.

I would make that loop a rule of the pipeline. A change to the agent runs its eval before release, and a failed eval has a named owner. I would delay a release until that run is part of the ship.

Which failure belongs in the first eval set?

The collection page calls Practical Lessons for GenAI Evals the most-cited starting point for evals on the show. Chip Huyen and Vivienne Zhang discuss practical GenAI evaluation as agents and multimodal models become more common. Generative AI is harder to assess than traditional software.

The first case I would save comes from Chip Huyen's account of LinkedIn's job-fit bot. Asked if someone was a good fit for a role, it answered that they were a terrible fit. That reply finishes the question and still fails a user-facing eval. I want a set that includes judgment failures of that kind.

The episode also covers objective criteria for open-ended tasks, hallucinations, and human-in-the-loop systems. I would score a small set with criteria a second person can apply, and I would keep a person in the loop until the eval is accurate enough to act as a runtime control.

# Sketch only: the order of checks above. Not a guest's system or a vendor SDK.
def ship_gate(measurement, eval_report, trust, ship_path, cases):
    if not measurement:
        return "demo"
    authored = eval_report.authored and eval_report.tested and eval_report.measured
    if not authored:
        return "prototype"
    if eval_report.accurate_enough:
        eval_report.use_as_runtime_control = True
    if trust.five_second_answer_treated_as_fine and trust.old_bar_was_stricter:
        return "trust_review"
    if not ship_path.eval_runs_before_release:
        return "eval_outside_ship_path"
    if any(case.harmful_judgment for case in cases):
        return "hold"
    return "ship"
Enter fullscreen mode Exit fullscreen mode

Checklist

  • Write the measurement before the agent leaves the demo. If capability is ahead of that definition, you are still in the evaluation gap.
  • Author, test, and measure the eval. Use it as a runtime control only after it is accurate enough.
  • Record the latency you used to reject and the latency you now accept. Krenn's contrast is about 200 milliseconds versus a five-second answer.
  • Run the eval before release, with a named owner for failures, so the loop is part of how you ship.
  • Seed the set with judgment failures, such as a job-fit bot that tells someone they are a terrible fit, and keep a person in the loop until the eval earns the runtime role.

More on this topic, with the related episodes, is on Chain of Thought. It draws on this episode.

Subscribe to the Chain of Thought newsletter for new episodes and write-ups like this one.

Drafted with AI assistance from the episode transcripts.

Top comments (0)