You built your GenAI app, it works in your notebook, outputs look reasonable — now what? How do you know it’s actually production-ready? This is where evaluations come in.
Let’s break down the foundational evaluations from a development-to-deployment lens.
Why Evaluate GenAI at All?
Traditional software: same input → same output. You write unit tests, done.
GenAI: same input → different output every time. Your model can hallucinate, ignore instructions, misuse tools, or produce subtly wrong answers that look correct on the surface. Traditional testing isn’t enough.
Five reasons evaluations are non-negotiable:
- Non-deterministic outputs — same prompt, different results across runs
- Complex failure modes — hallucinations, instruction-ignoring, subtle incorrectness
- Cost-performance tradeoffs — you can’t optimize what you don’t measure
- Safety and compliance — guardrails against misuse and data leakage
- Continuous drift — model behavior changes with prompt updates, version changes, evolving user patterns
Development to Deployment Flow
Here’s how foundational evaluations map to your actual workflow from dev to prod:
┌─────────────────────────────────────────────────────┐
│ DEVELOPMENT PHASE │
├─────────────────────────────────────────────────────┤
│ 1. Build your GenAI feature │
│ 2. Eyeball test outputs (we all do it) │
│ 3. Create ground truth test cases │
│ 4. Run programmatic quality checks (Level 1) │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ EVALUATION PHASE │
├─────────────────────────────────────────────────────┤
│ 5. Instrument operational metrics │
│ 6. Add LLM-as-Judge quality gates (Level 2) │
│ 7. Run failure analysis on traces │
│ 8. Fix top failures with prompt changes │
│ 9. Evaluate agent behavior │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ DEPLOYMENT PHASE │
├─────────────────────────────────────────────────────┤
│ 10. Set up CloudWatch dashboards │
│ 11. Deploy with quality gates as CI/CD checks │
│ 12. Monitor operational metrics continuously │
│ 13. Run periodic failure analysis │
│ 14. Evaluate evaluators (Level 3 — Jury) │
└─────────────────────────────────────────────────────┘
Evaluation isn’t a one-time thing — it’s a continuous loop. Models drift, prompts change, user patterns evolve. Your evaluations need to run continuously.
The Four Pillars of Foundational Evaluation
A complete evaluation toolkit covers 4 sequential areas. Each builds on the previous one:
| # | Pillar | Key Question | Example Use Case |
|---|---|---|---|
| 01 | Operational Metrics | Is my system running well? | Email summarization |
| 02 | Quality Metrics | Are outputs actually good? | US cities demographic data |
| 03 | Understanding Failures | What’s going wrong? | Restaurant booking agent traces |
| 04 | Agentic Metrics | Is my agent making good decisions? | City info retrieval with web search |
The order matters — you can’t evaluate quality if your system is throttled or erroring out.
Operational Metrics — The Foundation
The question: Is my system running well? (cost, latency, throughput)
This is where development meets deployment reality. In dev, you care about “does it work?” In production, you care about “does it work fast enough, cheap enough, reliably enough?”
What this covers:
- Token usage tracking across multiple models (Nova Lite, Nova Pro, Claude)
- Cost calculation per invocation and per model
- Latency measurement — TTFT (Time To First Token) and TTLT (Time To Last Token)
- Throughput monitoring
- Custom CloudWatch metrics and monitoring dashboards
Quality Metrics — Is the Output Good?
The question: Are the outputs accurate, complete, and reliable?
Three progressively sophisticated approaches — this mirrors how you should actually approach evaluations in practice:
Level 1 — Programmatic Testing Against Ground Truth
When you have known-correct answers, compare directly. Deterministic, free, unambiguous. Start here always.
| Metric | What It Measures | When to Use |
|---|---|---|
| Exact Match | Output equals expected answer exactly | Short factual answers, classifications |
| Contains / Substring | Expected value present in output | Extraction tasks, keyword checks |
| F1 Score | Token overlap between output and reference | Summarization, longer text comparisons |
| BLEU / ROUGE | N-gram similarity to reference | Translation, summarization quality |
| Regex Match | Output matches expected pattern | Structured outputs, formatted data |
| Numeric Tolerance | Value within acceptable range of expected | Mathematical, statistical outputs |
| Set Equality | All expected items present (order-independent) | List generation, multi-label tasks |
Level 2 — LLM-as-a-Judge
When ground truth doesn’t exist or is too complex for programmatic checks, one model evaluates another model’s output using rubrics.
| Metric / Dimension | What It Measures | Scoring Approach |
|---|---|---|
| Accuracy | Factual correctness of the output | Binary pass/fail against rubric |
| Completeness | Whether all required information is present | Binary — did it cover all points? |
| Relevance | Output addresses the actual question asked | Binary — on-topic or not |
| Coherence | Logical flow and readability | Binary — makes sense or doesn’t |
| Faithfulness | Output grounded in source material (no hallucination) | Binary — supported by context or not |
| Instruction Following | Adherence to format/style/constraints specified | Binary — followed instructions or didn’t |
| Harmfulness | Presence of toxic, biased, or unsafe content | Binary — safe or flagged |
| Conciseness | No unnecessary verbosity or repetition | Binary — appropriate length or not |
Level 3 — LLM-as-a-Jury
Multiple evaluators, not just one. Adds confidence intervals, calibration against benchmarks, TPR/TNR reporting, and bias detection. This is for validating your judges themselves — an untested evaluator gives you false confidence.
Understanding Failures — Read the Traces
The question: What’s going wrong and what should I measure?
This is the most underrated step in the dev-to-deploy journey. Most teams skip from “it works in testing” to “ship it” without systematically understanding failure patterns.
The systematic process:
- Read agent traces — actually look at what your system did
- Write notes about what went wrong
- Group problems into categories
- Prioritize by frequency × severity
- Fix the top problem with a prompt change (validated via persona simulation)
- Bridge remaining problems into evaluator design
The key formula: frequency × severity = priority. Fix what happens often AND causes real harm first.
Agentic Metrics — Agent Decision Quality
The question: Is my agent making good decisions? (tool selection, routing, multi-step behavior)
Four evaluation dimensions:
- Task completion accuracy — did it actually solve the problem?
- Tool selection correctness — did it pick the right tools?
- Resource efficiency — did it use tokens/time wisely?
- Reliability — does it work consistently?
This involves multi-model comparison across Nova Micro through Claude Sonnet, ground truth validation, LLM-as-a-Judge scoring, and framework observability (e.g., Strands).
Key Principles to Remember
These 7 principles are gold for any GenAI deployment:
- Start simple, add complexity only when needed. Programmatic checks before LLM judges. Single judges before juries. Prompt fixes before evaluation infrastructure.
- Ground truth is gold. Known-correct answers are free, deterministic, and unambiguous. Use them whenever you have them.
- Evaluate your evaluators. An untested evaluator gives you false confidence. Judges need calibration. Metrics need validation.
- Operational metrics are the foundation. Can’t evaluate quality if your system is throttled, erroring, or too slow.
- Read the traces. No shortcut here. Look at what your system actually does.
- Binary decisions over scales. Pass/fail is clearer, more consistent, and more actionable than 1-5 ratings.
- Frequency × severity = priority. Focus on failures that happen often and cause real harm.
Building a GenAI feature is 20% of the work. Evaluating it properly for production is the other 80%. The foundational evaluation approach gives you the toolkit to bridge that gap — from “it works in my notebook” to “I can prove it works in production.”