← Fig. 1 — one request, end to end

Evals and Observability

How to know it is working, and how to know when it stops.

Fig. 2 — Measurement, detail at larger scale

Whether the output was any good, and whether retrieval found the right thing. A trace is one run, recorded.

Key plan — part 5 on Fig. 1
12lessons4parts6–8min a lesson82min in total

Figure 2 — the parts of this course, as links to their lessons

What the detail shows

  1. Live requests run across the top of the sheet. Three dotted taps hang off it — one at retrieval, one at the model, one at the output. A dotted line watches and carries nothing.
  2. The three taps run into one dotted line that feeds everything below.
  3. At the left it turns down into a hopper. The wide mouth is all your traffic; what drops out of the spout is the handful of cases you keep, ruled up as an eval set.
  4. The set is replayed offline, and splits to two instruments. The exact check has two stops and a needle against one of them: it passed or it did not. The judge is a model, drawn as one, and gives a reading on a scale.
  5. Both readings converge on one dial, the score.
  6. A dotted tap takes the judge off to a second, smaller dial, where its answers on A-or-B pairs are checked against a human’s.
  7. Along the bottom the same set is run before a change and after it. Two scales, a marker on each, meeting at a comparator.
  8. The difference has to pass a gate before anything ships. Past the gate the line is solid again.
  9. After it ships a dotted line keeps reading, onto a strip chart where the score drifts down across its own threshold on its own.
  10. At the right the output tap lands on a trace: one run end to end, its steps drawn as bars, with the field that is never logged struck out.
  11. The same tap carries on down a rail, and three gauges hang off it: quality, latency and cost.

Schedule of lessons

12 lessons

  1. Why "looks good" is not a metric

    3 lessons · 21 min

    1. Why "looks good to me" fails

      A demo of five examples tells you almost nothing about the other five thousand.

    2. Building an eval set from your own traffic

      Your users already wrote your test cases; you just haven't collected them.

    3. Offline evals and online evals

      One runs before a stranger sees the output, one runs after.

  2. Judging the output

    3 lessons · 21 min

    1. Deterministic checks and LLM-as-judge

      Reach for the cheap exact check first; save the model call for what actually needs one.

    2. How to trust a judge

      A judge is a model too, and it needs its own report card before you trust its scores.

    3. Pairwise comparison and human review that scales

      "Which is better, A or B" gets a cleaner answer than "rate this 1 to 5."

  3. Shipping a change

    3 lessons · 21 min

    1. Regression testing a prompt or model change

      Treat a one-line prompt edit like the code change it actually is.

    2. A/B testing and shipping a change safely

      An eval score is a hypothesis. A rollout is the experiment that checks it.

    3. Drift: when the model changes under you

      Your prompt didn't change, but the model behind the API did.

  4. Watching it run

    3 lessons · 19 min

    1. Tracing a multi-step run

      Build the record now, so the question you have not thought of yet is still answerable later.

    2. What to log, and what never to

      See what happened without collecting what you shouldn't have kept.

    3. Latency and cost as first-class metrics

      A correct answer that takes nine seconds and burns a fortune in tokens is still a problem.

Notes

It worked on the five cases you tried. Building a test set from real traffic, judging output at scale, catching a regression before a user does, and watching a live system without drowning in dashboards.

Every figure on this sheet is counted from the lessons themselves. Your progress is kept in this browser only — no account, nothing sent anywhere.