Whitepaper · 8 minute read
Evaluation-Driven Development for AI Systems: A Whitepaper
Evaluation-driven development is a method for building AI systems in which the definition of correct behavior, a golden dataset, and a scoring harness are created before the system, every change is gated on regression against them, and production output is sampled and scored continuously. It makes quality a measurement rather than an opinion.
Most AI projects that stall share a symptom: nobody can say, with evidence, whether the system is good. Demos look convincing, stakeholders disagree about individual outputs, and every change is a gamble because there is no way to know whether it made things better or worse. Evaluation-driven development is FISTA's answer to that problem. It treats the definition of correct as the first deliverable, the evaluation harness as the release gate, and production quality as a measured quantity.
This whitepaper is written for engineering leaders, product owners, and the risk functions that need evidence before approving automation. It covers the principle, the artifacts, the scoring methods, the release gates, the production loop, and the organizational arrangement that keeps it working. It expands on LLM evaluation explained and the AI evaluation and testing whitepaper with the end-to-end method.
Why must evaluation come first?
Probabilistic systems do not fail the way deterministic software fails. A prompt change can improve one category of case and quietly degrade another; a model upgrade can raise average quality and introduce a new failure mode; a retrieval tweak can fix hallucinations on one document set and cause them on another. Without a fixed reference and an automated way to score against it, none of those effects is visible until users find them.
Evaluation first inverts the usual sequence:
| Sequence | Build first | Evaluate first |
|---|---|---|
| Definition of correct | Emerges from demos and disagreements | Written down and agreed before building |
| Quality signal | Anecdotes and stakeholder opinion | Scores against a golden dataset |
| Change safety | Every change is a gamble | Every change is gated on regression |
| Launch decision | Confidence | Evidence against thresholds |
| Production quality | Unknown until complaints | Sampled and scored continuously |
The discipline is the software-engineering expression of the principle behind spec-driven development: if a task cannot be specified well enough to score, it is not ready to be delegated.
What are the artifacts?
Evaluation-driven development produces four artifacts, each with an owner.
- The correctness specification: the criteria an output must satisfy, written in language a domain expert and an engineer can both verify. It includes hard constraints (never do X), required content, format, tone where it matters, and the conditions under which the system must abstain or escalate.
- The golden dataset: representative inputs paired with verified expected outcomes, organized by category, difficulty, and failure mode. Building it is described in how to build a golden dataset.
- The scoring harness: code that runs the system against the dataset and scores each output against the criteria, producing per-category results and a comparison with the previous run.
- The production sampling pipeline: a process that draws real traffic, scores it with the same criteria, and routes misses back to the dataset and to the process owner.
These artifacts are versioned together. A change to the correctness specification changes the dataset and the harness, and the change is reviewed like code.
How should outputs be scored?
Use the cheapest method that is reliable for each criterion, and combine methods per output.
| Criterion type | Method | Notes |
|---|---|---|
| Exact or structural | Deterministic checks: schema validation, field equality, regex, numeric tolerance | Fast, cheap, unambiguous; use wherever possible |
| Retrieval quality | Precision and recall against labeled relevant documents | Isolates retrieval from generation |
| Groundedness | Claim-by-claim check against provided sources, mechanical or model-based | Central for RAG systems; see why RAG systems hallucinate |
| Subjective quality | Rubric-based model judge calibrated against human ratings | Publish agreement rate; recalibrate when models or rubrics change |
| Safety and policy | Classifiers plus rule checks for prohibited content and actions | Zero-tolerance criteria are hard gates |
| Task success (agents) | End-state verification: did the ticket get created with the right fields | Score outcomes, not transcripts |
Model-based judges are useful and dangerous. They scale human judgment, but they inherit model biases and drift with model versions. Calibrate them on a human-rated sample, report agreement, and re-check the calibration whenever the judge model or the rubric changes. The pattern is described in LLM evaluation explained.
How do release gates work?
Every change that can affect output quality goes through the harness before release: prompt edits, model upgrades, retrieval changes, tool changes, and configuration changes. The gate compares the new run with the baseline and blocks release when:
- Any zero-tolerance criterion fails on any example.
- Aggregate quality falls below the threshold the process owner set.
- Any category regresses beyond its tolerance, even if the aggregate improves.
- Cost or latency per case exceeds budget.
Category-level gates are the important detail. Aggregate scores hide the case where a change helps common cases and hurts rare, expensive ones. The gate design is expanded in AI regression testing, and its place in the delivery pipeline is described in the agentic SDLC whitepaper.
How does the production loop work?
Launch is not the end of evaluation; it is the point where the dataset starts learning from reality.
- Sample production traffic continuously, stratified by category and by confidence, with heavier sampling where the system is least certain.
- Score the sample with the same harness and criteria; where a criterion needs human judgment, route to reviewers with a queue and a service level.
- Route misses to the process owner for triage: is this a spec gap, a dataset gap, a model weakness, or a data-quality problem upstream?
- Add verified misses to the golden dataset so the failure cannot recur silently.
- Track drift: category mix, input distribution, and score trends over time. Rising misses in a stable spec usually mean the world changed. See what is model drift.
- Feed the numbers into autonomy decisions: the evidence that justifies moving an agent from suggest to act is exactly this data.
The human review queue that powers steps two and three is described in how to build a human review queue.
How do you evaluate agents that take actions?
Evaluating a classifier or a summarizer means comparing an output with a reference. Evaluating an agent means checking what it did, which requires a different setup.
- End-state verification. Run the agent in a sandboxed copy of the systems it touches, then inspect the resulting state: was the ticket created with the right fields, was the record updated correctly, was nothing else changed. Transcript quality is secondary to outcome correctness.
- Tool-call traces. Score the sequence of tool calls against the spec: required calls made, prohibited calls absent, parameters valid, approvals requested where the rules demand them. A correct outcome reached by a prohibited path is still a failure.
- Multi-step task suites. Golden examples for agents are scenarios, not single prompts: a starting state, a request, and the expected end state, including cases where the correct behavior is to stop and escalate.
- Adversarial cases. Include scenarios where retrieved content contains injected instructions, where data is missing, and where the request is out of scope, and score whether the agent declines correctly.
- Cost and step budgets. Record steps, tokens, and latency per scenario; a change that keeps outcomes but doubles steps is a regression.
The harness for this is described in how to build an agent evaluation harness. The organizational lesson is the same as for simpler systems: define the expected end state with the process owner before building, because that definition is the specification.
What does the organization have to change?
Evaluation-driven development fails when it is treated as an engineering task. It works when three roles are explicit.
| Role | Responsibility |
|---|---|
| Process owner | Owns the correctness specification and the thresholds; adjudicates misses; decides autonomy levels |
| Engineering | Owns the harness, the gates, the sampling pipeline, and the evidence reports |
| Reviewers | Score the human-judgment sample; their agreement rate calibrates the judges |
Two rules protect the integrity of the loop. Engineering cannot lower a threshold to ship; only the process owner can, and the change is recorded. And the golden dataset is a shared asset with a change process, not a file on an engineer's laptop.
What are the common failure modes?
- Evaluating after building. The dataset is assembled from whatever the system happens to do well.
- Aggregate-only gates. Rare categories regress unnoticed.
- Uncalibrated judges. A model grades another model and nobody checks it against humans.
- Static datasets. Production misses never make it back; the dataset drifts away from reality.
- Scoring transcripts instead of outcomes. An agent that sounds right but creates the wrong record passes.
- No owner for the definition of correct. Disputes about quality are settled by whoever argues loudest.
How does FISTA Solutions apply evaluation-driven development?
Evaluation-driven development is how FISTA Solutions builds every AI agent and AI system it delivers. Our forward deployed engineers start engagements by writing the correctness specification with your process owners, building the golden dataset and harness before the first prompt is tuned, gating every change on regression, and standing up the production sampling loop before handover. The AI enablement practice installs the method across teams so it survives the first project. It is the discipline behind FISTA's record of 150+ projects for 50+ companies with 47% average efficiency gains: outcomes that were measured, not asserted.
If your AI systems are being judged by demos rather than data, talk to FISTA on WhatsApp about an evaluation assessment, or start with how to build a golden dataset.
Share-ready article cover
Download the generated social format.
Clear answers
Questions raised by this field note.
Straightforward guidance for evaluating scope, fit, and the next step.
01What is evaluation-driven development?
Evaluation-driven development is a way of building AI systems that starts by defining what correct looks like, encoding it in a golden dataset and an automated scoring harness, and then using that harness to gate every change and to measure production quality. It is test-driven development adapted to probabilistic systems.
02How big does a golden dataset need to be?
Large enough to cover the cases that matter, not a fixed number. Start with a few hundred representative examples across the task's main categories, edge cases, and known failure modes, then grow it from production misses. Coverage of categories matters more than raw size, and every example needs a verified expected outcome.
03Can an LLM be used to grade another LLM?
Yes, for criteria that are hard to check mechanically, provided the judge is calibrated against human ratings on a sample and re-checked over time. Use exact checks wherever possible, rubric-based judges for subjective criteria, and keep humans in the loop for the sample that validates the judge's agreement rate.
04How does evaluation differ from monitoring?
Evaluation scores outputs against a known-correct reference before and after changes; monitoring tracks operational signals such as latency, errors, and cost in production. Evaluation-driven development connects them by sampling production traffic, scoring it, and feeding the results back into the dataset and the release gates.
05Who owns the evaluation?
The process owner owns the definition of correct and the acceptance thresholds; engineering owns the harness, the gates, and the sampling pipeline. Shared ownership is what keeps the dataset honest, because the people who know the domain decide what counts as right and the people who ship changes cannot lower the bar unilaterally.
Continue exploring
Related capabilities
Start with the hard problem
Need the outcome owned, not merely analyzed?
Tell us where delivery is constrained. We’ll map the fastest credible path from intent to verified production.