Our evals were green for a month straight while real users were quietly getting worse answers
"At first I thought the reports were just noise because every prompt change was going through the same eval suite and passing. If quality had actually regressed, surely the eval would've caught it. That's literally what it's there for.
Eventually I started comparing the eval cases against actual production traces instead of the outputs.
Turns out they barely looked alike anymore.
The eval set had been written months earlier around the kinds of inputs we expected users to send. It wasn't a bad dataset either. It just slowly stopped matching reality. Production had drifted into messier prompts, more ambiguous requests, weird combinations of asks, edge cases we'd never thought to include. The agent still handled the old distribution pretty well. It just wasn't seeing that distribution anymore.
Looking back, the annoying part is the green check actually made us more confident shipping prompt changes. We kept thinking ""nothing broke"" because the benchmark never moved, while production had already moved somewhere else.
We've started pulling real production traces back into the eval set every so often instead of treating it like something you build once. We use OrqAI for evals now, so feeding traces back into the dataset is fairly painless, but I don't think the tooling is really the point. It feels more like eval sets have to evolve with production or they slowly become benchmarks for a product you shipped six months ago.
The part I still haven't figured out is multi-turn conversations.
Most eval frameworks still feel very request-response oriented. Our worst failures usually aren't one bad answer. They're five or six reasonable answers that collectively take the conversation somewhere dumb. Every individual turn looks fine if you inspect it on its own.
We're still opening traces and trying to spot the moment things started drifting.
Curious how other teams deal with this. Are you continuously refreshing your eval sets from production traffic, or has anyone actually found a decent way to evaluate conversation trajectories instead of individual responses?"