Talk Session 4: Agent Evaluation & Benchmarks
Evals: The Engine for Agent Improvement
Aayush Agrawal — Product Lead, Uber
Every agent team rationally decides to ship first and think about evals later, and every one of them ends up trapped in a loop of retrofitting evals and forensically reconstructing why the agent broke. Uber's platform team spent a year making evals the default — tracing on from day one, starter-kit evaluators pushed into Slack, CLI experiences that let product teams own the process — and replaced the question "is your eval above 90%?" with "do you actually trust your eval?"
TL;DR
- The problem isn't that teams don't want evals — it's friction. Every team wanted high-quality production agents, and every team said "let me just ship the agent and I'll think about eval later" — a perfectly rational call when you're trying to prove product-market fit. The cost is getting caught in a relentless loop of retrofitting evals and reconstructing why the agent broke. The platform team's job was to remove those friction points one by one.
- Four interventions: (1) tracing on from day one in every environment; (2) automatically derived starter-kit evaluators pushed straight into Slack; (3) CLI experiences and skills that move eval ownership out of engineering and into product teams; (4) changing the narrative — the one thing no tool could fix.
- The best evidence was a failure. Voice ride-booking had a 95%+ offline eval, but the production eval showed turns per session running way above average. The cause: a rider booking to SFO while someone in the background said "hey, I want pizza" — and the agent took it as input and started rerouting them to the nearest pizza place.
- The destination is turning eval from a score into an engine: traces → failures automatically categorized → proposed updates to the agent and the evaluators → teams accept or reject. A score tells you about something you already know; an engine continuously moves the agent toward what the customer cares about.
Key Points
Three shows of hands (~03:01)
Agrawal closed out the Compass Stage. He warmed up the room with three questions:
- Who took an Uber today? (a few hands)
- More importantly: who has actually written an eval for an agent in production? — "let's see who the real builders are."
- And the last one, which you should be proud of: did those evals tell you something that changed the way you shipped your product?
That third question is the dividing line: treating eval as a checkbox versus an eval that actually changes your product direction. Getting every agent team to the second state is what Uber spent over a year on.
Context: the Uber agent platform (~03:02)
Uber ships agents across its ecosystem — externally (booking a ride by voice) and internally. Powering all of it at enterprise scale is the Uber agent platform, which he manages, with a range of components so agent teams don't have to worry about infrastructure. This talk is about the eval piece.
The diagnosis: a rational decision and an inevitable loop (~03:02–03:03)
The pattern he saw across every team: everyone wanted high-quality production agents, and everyone did the same thing — "let me just ship the agent and I'll think about eval later."
He's fair about it: it was a very rational decision. They were trying to prove product-market fit; they wanted to see whether the thing even worked.
But it caught them in a relentless loop of retrofitting evals later and trying to figure out why that agent broke.
The platform team's conclusion was that there were true friction points stopping teams from reaching that state earlier — so make it frictionless.
Four interventions to make eval the default (~03:03–03:05)
1. Tracing from day one, in every environment.
(He noted this had come up across the day's talks.) The moment first development starts, tracing is on in every single environment. That gives teams the foundation for everything else: build an agent, vibe with it, send it out, and all the information about how it's been changing over time is already there rather than something to retrofit.
2. Starter-kit evaluators, delivered in Slack.
Once teams had data, the next blocker was that they didn't know how to start developing an eval — not the best way to write one, and not where.
So the platform used the context of how the agent was built plus its documentation to work out the best starter-kit evaluators, and sent those insights directly to the builders in Slack.
His illustration: "I don't know what an LLM judge is, but I do know what it means to have a tool contradiction, and make a change because of that."
3. CLI experiences to get eval out of engineering's hands.
He drew a sharp distinction: evals for agents are very different from QA tests — they're not purely engineering.
That gap had to be bridged so the teams closest to the customer — product and customer teams — could understand them. CLI experiences really democratized that: by building skills that manage the eval, product teams were able to own the entire process.
4. Changing the narrative — the one they couldn't tool their way out of.
The last intervention was, in his words, something they couldn't build a tool away for: changing what people believe an eval is for.
They shifted teams from asking "is your eval 90% plus?" to:
- Do you actually trust your eval?
- What have you changed about your roadmap because your evals told you that?
- How quickly have you been able to update your datasets? Is your dataset five months old and not really up to date with your product?
The result: shipping faster, and catching issues much earlier in the product lifecycle.
The pizza case (~03:05–03:06)
Uber is launching rider voice booking soon, and their evals surfaced this:
- The offline eval was 95%+ — looks great.
- But the production eval showed the number of turns per session running way above average.
Digging in, they found a customer trying to book a ride to SFO while somebody in the background said "hey, I want pizza." The agent took that as an input and started rerouting them to the nearest pizza place.
The lesson: the agent needed to understand true intent, and to have no-ops for when it shouldn't be listening at all.
He stressed that this was only possible because they had both evals and the product teams in the loop.
The endgame: from eval-as-default to eval-as-engine (~03:06)
Uber's arc: these interventions made eval the default, and now they're moving to the next stage — eval as an engine:
traces → failures automatically categorized → proposed as updates to the agent and to the evaluators → teams accept or reject → an improvement feedback loop.
His closing contrast:
On one side, an eval metric — a score for something you already know. On the other, an engine that helps you continuously improve agents, tuned toward what the customer cares about.
"That's what makes each of your trips magical at Uber."
Quotes
"That's the difference between having eval as a checkbox versus an eval actually changing your product direction." (~03:01)
The line his three opening questions were designed to draw.
"They said that, hey, let me just ship the agent and I'll think about eval. And it was a very rational decision." (~03:02)
He doesn't blame the teams — he treats it as a friction problem for the platform to solve.
"We changed teams' narratives from 'hey, is your eval 90% plus?' to 'do you actually trust your eval?'" (~03:04)
The one intervention no tool could deliver.
"Is your data set five months old and not really up to date with your product?" (~03:05)
Eval datasets rot, and a rotten dataset hands you a reassuring but meaningless score.
提到的專案與資源 / Projects & Resources
| 名稱 Name | 說明 | Description | 備註 Notes |
|---|---|---|---|
| Uber agent platform | 支撐 Uber 內外部 agent 的企業級平台,講者管理其產品 | Enterprise platform powering Uber's internal and external agents; the speaker is its product lead | 內含 tracing、eval 等元件 / includes tracing and eval components |
| Rider voice booking | 即將推出的語音叫車功能,pizza 案例的來源 | Upcoming voice ride-booking feature; source of the pizza anecdote | 演講時尚未上線 / not launched at talk time |
| Eval starter kit(evaluators) | 依 agent 建構脈絡自動推薦、推播到 Slack 的入門 evaluator | Starter evaluators derived from each agent's build context and pushed to Slack |
逐字稿勘誤 / Transcript Corrections
| 字幕原文 Heard as | 應為 Should be |
|---|---|
| Aayush Agawal | Aayush Agrawal |
| no ops | no-ops |
| get proposed as sol as updates | get proposed as updates |
| an LLM judges | an LLM judge |
| pizza space | pizza place |
| evolution(指 eval 的演進) | evolution(語意正確,唯與 session 名 "Evaluation" 易混) |
待確認 / To Verify
- Uber agent platform 是否有對外公開名稱或技術部落格可引用。/ Whether the Uber agent platform has a public name or engineering blog post to cite.
- 「managed eval 的 skills」與 CLI 體驗的具體形態(是否為 Claude Code 式的 skills,演講中未說明)。/ The concrete form of the "skills that manage the eval" and the CLI experiences — not specified on stage.
- 自動失敗分類(traces → categorized failures → proposed updates)所用的技術棧與是否對外開放。/ The stack behind automatic failure categorization and whether any of it is externally available.
- 語音叫車 95%+ 離線 eval 的評分口徑。/ What the 95%+ offline eval actually measured.