Module 4 — Evaluation & ReliabilityLesson 11 of 19

Observability Is Not Evals

Reading time ~12 min · Quiz at the end

Industry surveys on agent engineering practice report a gap worth sitting with: roughly 89% of teams building production agents report having observability in place, while only around 52% report having evals. Those numbers are reported, not universal facts — survey methodology on a fast-moving practice always deserves a grain of salt — but the ratio is the finding, and it shows up consistently enough across different surveys to be a real signal about where the industry's attention went. The industry bought dashboards. It called that quality. Those are not the same purchase, and the gap between them is where a large share of confidently wrong production agents currently live, fully monitored, generating beautiful traces of their own mistakes.

This lesson draws the line between the two disciplines as sharply as possible, because the confusion between them is not a semantic quibble — it's a resourcing decision that determines whether your team spends its next quarter on the thing that actually predicts whether you can trust a change, or on the thing that only tells you what already happened.

The one-line distinction

Observability tells you what the agent did. Evals tell you whether it should have done it.

Say it a second way, because the distinction is easy to nod along with and then quietly forget under deadline pressure: a trace, a dashboard, a token count, a latency graph — every one of these is a record of behavior. None of them, on their own, contains a judgment about whether that behavior was correct. You can have a complete, beautifully instrumented trace of an insurance claims agent approving a duplicate payment, timestamped, with every tool call logged and every token counted, and the trace will tell you nothing is wrong. It just recorded what happened. Judging whether what happened was right requires a separate artifact — a definition of correct, applied systematically — and that artifact is an eval.

Key idea

Observability answers "what happened." Evals answer "was that right." A system can have perfect observability and zero evals, which means you can watch an agent be confidently, consistently wrong in real time, with full visibility into every step of how it got there, and still have no mechanism telling you it's wrong.

Why the gap exists

The 89/52 split isn't a random gap in engineering diligence. It reflects something true about the nature of each discipline: observability is a product you buy, and evals are a discipline you build. That difference in acquisition cost explains almost the entire gap. Observability tooling — tracing, logging, dashboards, cost and latency telemetry — is a mature, well-understood product category with vendors competing to make adoption easy. You install an SDK, you get traces. The engineering lift is real but bounded, well-documented, and largely the same regardless of what your agent actually does. It is, in the most literal sense, a checkbox you can buy your way toward. Evals have no equivalent shortcut, because an eval suite is not generic — it encodes what "correct" means for your specific workflow, and no vendor can sell you your organization's definition of a correctly adjudicated claim or a correctly prioritized service outage. Building that definition forces a question most enterprises have successfully avoided asking out loud for years: what does "good" actually mean here, specified precisely enough that a person or a program can check it? That question is uncomfortable because the honest answer is often "it depends on which senior adjuster you ask," and surfacing that disagreement is harder and slower than installing a tracing SDK. Teams under deadline pressure buy the thing that's buyable and defer the thing that requires a real specification.

Pitfall

Watch for a dashboard being presented as proof of quality in a steering committee. "We have full observability — every agent run is traced, every token is logged" is a true and useful statement about operational visibility. It is not evidence the agent is doing good work, and treating it as such is precisely the substitution this lesson is warning about. Ask the follow-up question directly: how do you know, systematically, whether a given run was correct? If the answer is "someone would probably notice," you have observability and not evals.

Necessary, not sufficient

None of this is an argument against observability — it is a genuinely necessary layer, and skipping it is its own kind of negligence. When an eval flags a regression, or a customer escalation lands, you need traces to diagnose why: which tool call went wrong, what context the model saw, where in the reasoning chain the failure originated. Observability is the diagnostic instrument. Evals are the thing that tells you a diagnosis is needed in the first place.

The trap is treating the diagnostic instrument as if it were the diagnosis. A claims agent can run for months with immaculate traces — clean tool calls, reasonable latency, no errors thrown — while systematically misapplying a coverage exclusion on a specific policy type, because nothing in the trace says "this was wrong," only "this is what happened." The failure is invisible to observability by construction, because observability was never designed to know what correct looks like. It takes an eval — someone or something checking the output against a known-correct answer — to surface that kind of silent, well-behaved, confidently wrong pattern.

The velocity argument

The most counterintuitive claim in this lesson, and the one worth remembering when eval work gets deprioritized under a deadline, is that evals are not primarily a safety expense — they're a speed advantage. Industry surveys report that teams using evals ship several times more agent systems to production than teams that don't. That number should surprise you if you've been thinking of evals as the careful-but-slow option next to the fast-but-risky path of shipping on vibes. The mechanism is straightforward once you sit with it: every change to a prompt, a retrieval step, a tool, or a model version raises the same question — did this help or hurt? Without an eval suite, answering that question means a meeting: gather examples, argue about whether the new behavior is better or worse, rely on a few people's spot-checks and institutional memory, wait for someone senior enough to sign off on a gut call. That process takes days, and it doesn't scale past the second or third change of the week. With an eval suite, the same question is answered by running the suite: minutes, not meetings, and a number instead of a debate. Teams that can answer "did we break it" in minutes ship far more changes per quarter than teams that need a meeting every time, because the cost of trying something and finding out it was wrong drops by orders of magnitude. Evals are velocity infrastructure. The safety benefit is real but almost incidental to the speed benefit in terms of why the surveyed teams are actually shipping more.

In practice

A utility's field-ops copilot team wanted to swap in a new retrieval approach for crew-skill matching. Under the old process, that change would have triggered a two-week manual review cycle: a handful of dispatchers spot-checking a sample of proposed assignments, a meeting to discuss whether the new version "felt" better. With a 60-case golden set built from real historical dispatch decisions, the team ran the eval suite against both versions in an afternoon, saw the new retrieval approach improve match accuracy on 11 cases and regress on 3, inspected the 3 regressions directly, fixed a scoping bug in twenty minutes, and reran. Total elapsed time: one day, with a number to defend the decision instead of a room's collective impression.

Starting from zero: real cases beat synthetic ones

Teams building their first eval suite often reach for scale first — generate a thousand synthetic test cases with an LLM, cover every edge case imaginable, call it comprehensive. This produces an eval suite that looks impressive in a slide and teaches you almost nothing, because synthetic cases encode the test-writer's assumptions about what's hard, not the actual distribution of what goes wrong in your production workflow. Twenty real cases pulled from actual production history — actual claims that were actually misadjudicated, actual customer requests that actually confused the system — beat a thousand synthetic ones every time, because real cases carry the specific, unglamorous messiness (contradictory source documents, ambiguous phrasing, edge-of-policy scenarios) that synthetic generation systematically smooths over.

Start small and real: pull 20 to 50 actual cases from production or historical records, weighted toward the ones that were hard, disputed, or previously got escalated. Then get them labeled by the people who own the workflow — the senior claims adjuster, the dispatch supervisor, the CRM discount policy owner — not by the engineering team guessing at what correct looks like. This isn't a nicety; it's the only way the eval suite ends up encoding the organization's actual definition of correct rather than the engineering team's approximation of it.

Key idea

When two labelers disagree on what the correct answer should have been for a real case, that disagreement is not noise to average away — it's requirements discovery. It means your organization's definition of "correct" for that scenario was never actually settled, and the eval-building process just surfaced a policy gap that was previously invisible because no one had been forced to write down an answer and compare it against a colleague's.

Graded rubrics versus pass/fail

Not every task has a single correct answer that a pass/fail check can capture cleanly. Some do — did the tool call use the correct account ID, is the output valid JSON, does the approved discount fall within policy bounds — and those should be simple binary checks, because forcing a rubric onto a genuinely binary question just adds noise. But tasks like "summarize this claim for the adjuster" or "draft this customer response" have a quality gradient, not a single right answer, and pass/fail collapses that gradient into a false binary that either fails good-enough outputs for missing an arbitrary bar or passes mediocre ones for clearing it.

Task typeRight evaluation shapeExample
Structured, single correct answerPass/failDid the extracted policy number match the source document exactly?
Policy compliancePass/failIs the proposed discount within the approved range for this customer tier?
Open-ended generation with quality gradientGraded rubric (e.g., 1-5 on accuracy, completeness, tone)Does this claim summary capture every material fact an adjuster needs, in the right tone, without speculation?
Multi-step reasoning with partial creditGraded rubric with sub-criteriaDid the agent correctly identify the coverage issue even if it phrased the explanation awkwardly?

Design the rubric before you look at any model output, the same discipline a good hiring rubric requires before you look at any resume — otherwise you end up unconsciously adjusting the bar to fit whatever the model happened to produce, which defeats the point of having a rubric at all.

LLM-as-judge: useful, but calibrate it first

Using a model to grade another model's output against a rubric is an increasingly common way to scale evaluation past what human reviewers can keep up with, and it can work well — but only after you've proven it agrees with human judgment on cases where you already know the human answer. An LLM judge that hasn't been checked against real labeled cases is not a metric; it's an opinion with a decimal point attached, and decimal points make opinions look more rigorous than they are.

Calibration workflow, minimum viable version:
1. Take 30-50 cases already labeled by human domain experts (the golden
   set from the section above).
2. Run the LLM judge against the same cases, using the same rubric.
3. Compare: where judge and human agree, note it. Where they disagree,
   read the case and figure out why — ambiguous rubric wording, judge
   bias toward verbose answers, a genuine judge error.
4. Refine the rubric or the judge prompt until agreement is high enough
   to trust (teams commonly target 80-90% agreement, adjusted for how
   consequential the workflow is).
5. Re-run calibration whenever the rubric, the judged task, or the judge
   model changes. Calibration is not a one-time certificate.

Skipping calibration is how teams end up with an eval dashboard showing a reassuring 94% quality score that means nothing, because the judge was never checked against a human who actually knows what a correct claim summary looks like. An uncalibrated LLM-as-judge score is observability wearing an eval's clothing: it looks like a quality signal, traces beautifully in a dashboard, and carries none of the actual verification an eval is supposed to provide.

Pitfall

A marketing content-ops team used an LLM judge to score generated campaign copy on "brand voice alignment" and watched the score climb steadily over two months of prompt iteration. Only when a brand manager reviewed a sample directly did the team discover the judge had developed a preference for longer, more adjective-heavy copy that had nothing to do with actual brand guidelines — the score went up because the copy got more verbose, not more on-brand. A 30-case calibration against the brand manager's own ratings, done before trusting the judge, would have caught this in an afternoon instead of two months.

In practice

This week, pick one agent workflow your team currently monitors only with observability tooling — traces, logs, dashboards, but no systematic correctness check. Pull 20 real cases from its production history, weighted toward the disputed or escalated ones, and get them labeled by whoever actually owns that workflow's definition of correct. Don't build tooling yet — just get the 20 labels and read through any disagreements between labelers yourself. That disagreement is your first real finding, and it will tell you more about what your eval suite needs to check than a week of dashboard-watching would.

Key takeaways

Check your understanding

1. What is the core distinction this lesson draws between observability and evals?

Both disciplines apply throughout the lifecycle — observability remains necessary in production for diagnosis, and evals should run continuously, especially on every change, not just pre-launch.
The lesson doesn't argue for skipping evals due to cost — it argues the opposite, that skipping evals is what actually slows teams down, since it forces meetings instead of automated checks.
Correct. This is the lesson's stated one-line distinction: observability is a record of behavior, evals are a judgment about whether that behavior was correct.
Both observability and evals can apply to any part of the system — tool calls, intermediate reasoning, or final output. The distinction is about behavior-versus-correctness, not which part of the pipeline is covered.

2. Per the lesson, why do industry surveys reportedly show much higher adoption of observability (~89%) than evals (~52%)?

The lesson doesn't cite compute cost as the driver — the 20-real-cases approach it recommends is deliberately lightweight, not compute-intensive.
Correct. The lesson frames this directly: observability is bought off the shelf, while an eval suite has to encode your specific organization's definition of correct, which forces a harder, more uncomfortable specification question that teams under deadline pressure tend to defer.
The lesson doesn't cite regulation as the explanation for the adoption gap — the explanation given is about buy-vs-build difficulty and the difficulty of defining "correct."
No sequencing dependency like this is claimed in the lesson; the two disciplines are presented as parallel, addressing different questions, not as one being a prerequisite for the other.

3. Why does the lesson recommend 20 real production cases over 1,000 synthetically generated test cases when building a first eval suite?

Cost isn't the stated reason — generating synthetic cases is often cheap and fast, which is part of why teams are tempted to reach for them first; the lesson's objection is about validity, not cost.
LLM-as-judge can technically be applied to any case set, synthetic or real — that's not the distinction the lesson draws.
No such regulatory claim appears in the lesson.
Correct. The lesson states synthetic cases smooth over the specific, unglamorous messiness — contradictory documents, ambiguous phrasing, edge-of-policy scenarios — that real production cases carry, making a small real set more informative than a large synthetic one.

4. What must happen before an LLM-as-judge score can be trusted as a real quality metric, according to the lesson?

Correct. The lesson's calibration workflow requires comparing the judge's scores against a human-labeled golden set and investigating disagreements until agreement is high enough to trust — skipping this step produces "an opinion with a decimal point," not a metric.
The lesson never requires or suggests the judge model must match the generating model — the calibration requirement is about agreement with human labels, not model identity.
The lesson explicitly says the opposite: calibration should be re-run whenever the rubric, task, or judge model changes — it is not a one-time certificate.
The lesson explicitly discusses using LLM judges with graded rubrics (its table lists graded rubrics for open-ended generation), so this restriction is not stated or implied.