Band III · Control · “unreliable, unmeasured”
How do I know if my LLM changes actually helped?
Short answer
You need an eval set: real inputs from production with a way to score each output. Start from failures you have actually seen, score them with code checks where possible and a model grader where not, and run the set on every prompt, model or retrieval change. Traces show what happened; only evals show whether it got better.
By Lattice editorial · Tool facts verified · method
Check in this order
- 01
Capture production traces you can sample from
Layer 09 · Evaluation & Observability
An eval set built from invented inputs measures your imagination. Real traffic is where the failures are.
- Langfuse
- Use when
- Self-hostable tracing, prompts and evals in one place.
- Skip when
- You want a fully managed product with a support contract.
- Arize Phoenix
- Use when
- OpenTelemetry-native evaluation you can run yourself.
- Skip when
- You want a vendor support contract behind it.
- Helicone
- Use when
- Gateway-level observability with per-request cost and latency.
- Skip when
- You need eval primitives more than traffic logs.
- Langfuse
- 02
Turn real failures into a scored golden set
Layer 09 · Evaluation & Observability
Start small and real. A golden set that is never updated becomes a benchmark you overfit to.
- Braintrust
- Use when
- Making evaluation, rather than tracing, the primary workflow.
- Skip when
- You need open formats and self-hosting.
- promptfoo
- Use when
- Declarative red-teaming and regression tests that run in CI.
- Skip when
- You need a managed UI rather than a test runner.
- Braintrust
- 03
Score with code first, a model grader second
Layer 09 · Evaluation & Observability
Deterministic checks are cheap and do not drift. Reserve model graders for what code cannot judge, and spot-check them.
- 04
Version prompts so every score maps to a change
Layer 08 · Prompt Engineering
A score you cannot tie to a specific prompt version is an anecdote.
- Agenta
- Use when
- Open-source prompt management with a playground and versioning.
- Skip when
- You need eval depth rather than prompt ergonomics.
- PromptLayer
- Use when
- A prompt registry with request logging and regression tests.
- Skip when
- You need self-hosting.
- Agenta
Looks like a fix, is not
- Judging a change by reading a handful of outputs by eye.
- Treating a public benchmark score as a proxy for your task.
- Building a dashboard of traffic metrics and calling it evaluation.
Quick answers
- What should I check first?
- Capture production traces you can sample from. An eval set built from invented inputs measures your imagination. Real traffic is where the failures are.
- What looks like a fix but is not?
- Judging a change by reading a handful of outputs by eye. Treating a public benchmark score as a proxy for your task. Building a dashboard of traffic metrics and calling it evaluation.