Uber、本番環境のAIエージェント評価手法を公開
本文の状態
日本語全文を表示中
詳細モードで約23分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Arize AI Blog
Uber は音声エージェントが子供の話すピザ注文を誤って実行した事例から、評価システムの構造的欠陥を特定し、ツールよりも設計やフィードバックループの構築こそが本質的課題であると指摘する。
AI深層分析を開く2026年8月15日 02:36
AI深層分析
キーポイント
生産環境での予期せぬ失敗事例
母親の乗車予約に対し、背景の子供のピザ注文を誤って実行した事象が発生し、セッション長の急増を通じて検知された。
評価システムの構造的欠陥
ツールやプラットフォームの整備は進んでいるが、生産環境での振る舞いを継続的にテストや製品判断に転換する仕組みが不足していることが判明した。
評価の本質的課題の再定義
Uber の分析では、評価における最大の難関はツール選定ではなく、デフォルト設定、所有権モデル、そして日常開発に組み込まれたフィードバックループの設計にあると結論付けた。
多様なチームへのプラットフォーム支援
技術成熟度の異なる複数のチームを対象に、モデルアクセスから評価プラットフォームまでを含む包括的なエージェント基盤を提供しているが、開発優先で評価が遅れる傾向が見られた。
トレーシングのデフォルト化による可視性の向上
Uber はエージェントのデプロイ時にトレーシングを自動的に有効化し、失敗時の意思決定経路や中間出力を記録可能にした。これにより開発者は断片的なログから再構築する手間なく、本番環境での実際の挙動を把握できる。
重要な引用
The incident had slipped through the team's offline evaluations.
Far fewer have built an evaluation system that consistently turns production behavior into new tests, product decisions, and better agents.
the hardest part of evals isn't the tooling. Instead, it's designing the defaults, ownership models, and feedback loops that make evaluation part of everyday product development.
That second purpose matters because production traces reveal more than whether an agent succeeded.
編集コメントを表示
編集コメント
この事例は、AI エージェントの品質保証において「ツール」から「プロセス設計」へと視点をシフトさせる必要性を浮き彫りにしている。技術的な評価機能の実装だけでなく、組織文化や開発フローにどう組み込むかが成否を分ける重要な示唆となっている。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
Arize:Observe 2026 の会場で、Uber のシニア AI プロダクトマネージャーである Aayush Agrawal 氏は、あるエピソードを共有しました。
母親が Uber の音声エージェントにサンフランシスコ国際空港への乗車予約を依頼します。その背後で子供は「ピザも食べたい」と言います。エージェントは両方のリクエストを聞き取りましたが、子供の発言を単なる雑談として処理するのではなく、近くのピザ屋へとルートを変更し始めました。
この事象は、チームがオフラインで行っていた評価では見逃されていました。実際に問題が発覚したのは、セッションの平均会話ターン数が 4〜5 から最大 20 に跳ね上がった後でした。会話デザイナーがその痕跡をたどり不具合を発見し、予約以外のリクエストに対するエージェントの処理方法を変更しました。
Agrawal 氏にとって、ピザへの迂回ルートは単なる記憶に残るエッジケースではありませんでした。それは、チームがエージェント評価に取り組む際の構造的な弱点を露呈させたのです。多くのチームは評価の必要性を理解しており、すでに実行に必要なプラットフォームや判定者、データセット、ダッシュボードを持っています。しかし、生産環境での振る舞いを継続的に新しいテストや製品決定、そしてより良いエージェントへと転換させる評価システムを構築できているのは、ごく一部に過ぎません。
そこで Uber のエージェントプラットフォームチームは、このギャップを埋めるために 1 年以上かけて調査を行いました。その結論が Agrawal 氏の講演の中心となるテーゼです。評価において最も難しいのはツールではありません。むしろ、評価を日々のプロダクト開発の一部として定着させるためのデフォルト設定、所有権モデル、フィードバックループをどう設計するかこそが最大の課題なのです。
Uber のような大規模プラットフォームにおいて、この取り組みは実際の重大な結果を伴います。エージェントが失敗すれば、誰かが乗車できなくなったり、収入を失ったり、注文が混乱したりする可能性があります。したがって、評価はリリース前のスコアを生成するだけでなく、チームが生産環境でエージェントが何をしているかを理解し、予期せぬ行動から学び、次に何を構築すべきかを決める手助けをする必要があります。
なぜ生産環境での AI エージェント評価がチェックボックス化してしまうのか
Uber のエージェントプラットフォームは、技術的成熟度が大きく異なる多様なチームをサポートしています。
ある運用チームが初めて個人用生産性エージェントを構築している一方で、インフラグループはパイプラインの障害デバッグ用のエージェントを作成したり、消費者向けプロダクトチームが乗車予約を行うエージェントをエンジニアやデザイナー、研究者とともに専任で開発したりします。
これらのチームに共通するのは、「スピード」と「品質」への優先度です。しかし、その目標達成への道筋は非常に異なります。
これらを支えるため、Uber はモデルアクセス、AI ガードレール、再利用可能なスキルとエージェント、コードファースト SDK、管理されたデプロイメント、ローコードビルディングツール、そして評価プラットフォームを含む広範なエージェントプラットフォームを構築しました。しかし、これらの機能が利用可能であっても、チームは繰り返し同じパターンに従っていました。つまり、まずエージェントを構築し、評価を後回しにするのです。
これは製品品質への無関心から生まれたことではありませんでした。各チームは、エージェントが機能することを実証し、実現可能な製品体験を見つけ、迅速にリリースすることを試みていました。その段階では、評価は製品自体が完全に開発される前に設計すべき追加システムのように感じられました。
ツールをさらに増設しても、この行動様式を変えることはできませんでした。チームにはすでにツールがありました。必要だったのは、意思決定の回数を減らし、より早く有用なフィードバックを提供する評価ワークフローです。この洞察から、Uber は異なるプラットフォーム戦略へと舵を切りました。つまり、信頼できるエージェントの評価に関連するプラクティスを、デフォルトの開発パスの一部として組み込むのです。
完全なトレーシングを備えた AI エージェント評価の開始
多くのエージェントチームは、ユーザーの入力とエージェントの最終応答を記録するログから始めます。この記録は単純なアプリケーションには有用ですが、何かが起きた際に開発者が必要とする「軌跡(トラジェクトリ)」という部分が欠落していることがよくあります。
本番環境のエージェントは、複数のツールを呼び出し、ドキュメントを取得し、計画を更新し、アクションを再試行し、応答する前に中間出力を生成することがあります。最終的な回答が失敗した場合、入力と出力のログだけでは、どの意思決定が問題を引き起こしたのかを示すことはできません。
Uber の調査では、チームがエージェントの完全な観測機能を追加するのは、そのエージェントが本番環境に導入された後であるケースが多いことが判明しました。実際にインシデントが発生すると、開発者は断片的なログや不完全な記録から行動を再構築する必要に迫られます。そこでプラットフォームチームは、トレーシングを任意の統合機能から、デプロイプロセスに自動的に組み込まれる要素へと変更しました。
Uber の管理されたエージェントシステムを通じてデプロイされるエージェントには、初期段階からすべての環境でトレーシングが適用されます。デプロイプロセスでは、適切な Arize 環境と権限も同時に設定されます。コードファースト SDK を使用するチームは、小さな設定変更を行うだけでトレーシングを有効にできます。
このデフォルト設定には二つの目的があります。一つは、開発者がデバッグに必要な証拠を提供すること、もう一つは、後で意味のある評価を行うために必要な本番データを生成することです。
2 つ目の目的が重要なのは、本番環境のトレーシングデータから得られる情報が、単にエージェントが成功したかどうかを超えた洞察を含んでいるからです。そこには、ユーザーが何を求めているか、エージェントがその要求をどのように解釈しているか、どのパスが最も時間を消費するか、生成された回答とツールの出力がどこで矛盾しているか、そして元のテストセットでは予測できなかった行動は何かといった情報が含まれます。
この記録に基づき、Uber のチームは実際にユーザーが体験するエージェントの評価を開始できるようになりました。これがエージェント観測プラットフォームの中核的な役割です。本番環境で何が起こったかを、次の評価と改善のサイクルへとつなぐことです。
トレーシングから有用なシグナルへの経路を自動化する
トレーシングは可視化の問題を解決しますが、別の課題を生むこともあります。つまり、チームが大量の行動データを保有する一方で、それを洞察に変換するための明確なプロセスがないという状況です。
開発者は以下のような判断を迫られることになります。
どのトレースを評価例として採用すべきか
このエージェントに適した評価器は何か
評価器をどれくらいの頻度で実行するか
どのような閾値が意味のある回帰を示すのか
結果はどこに表示すべきか
誰が対応すべきか
それぞれの判断には手間がかかりますが、これらが積み重なると、評価作業が小さな社内プラットフォームプロジェクト化してしまう恐れがあります。
Uber はこの負担を軽減するため、すでに保有していた情報を利用しました。プラットフォームにはエージェントの設定情報、本番環境でのトレースデータ、そして意図された動作に関する文脈情報が含まれています。これらの入力から、各エージェントに特化した評価器を作成し、継続的に実行して、Slack などのツールを通じて関連するアラートを配信しています。
例えば、あるチームは「評価対象の約 30% のケースで、エージェントがツールの出力と矛盾している」というアラートを受け取りました。このアラートの背後にある LLM-as-a-judge(LLM を裁判官として用いる手法)という技術の詳細を理解していなくても、製品上の問題であることは明確でした。結果は具体的かつ明白だったため、すぐに調査を開始することができました。
このアプローチは、これまで評価スイートを作成した経験がないチームにとっての「コールドスタート」問題を解決する助けとなりました。ローンチ前にありとあらゆる失敗を予測させるのではなく、プラットフォームがエージェントの初期行動を活用して、実践的な出発点を提示しているのです。
開発者は依然として、生成された評価結果を検証し、微調整する必要があります。自動化によって、その微調整が価値を持つに至るまでのコストを大幅に下げることができました。
本番環境の失敗事例から評価用データセットを構築する
評価用データセットには、扱いにくいライフサイクルが存在します。チームは最初のデータセットを作成することに苦労し、その後、それを関連性を保ち続けることにも同じくらい苦労することになります。
リリース前に集められたデータセットは、ユーザーがどのように行動するかという前提に基づいています。しかし、エージェントが本番環境に到達すると、これらの前提はすぐに陳腐化します。新しいユーザーの意図が現れ、モデルの挙動が変化し、ツールの進化も進み、製品自体にも新機能が追加されます。
Uber では、チームの成熟度に応じて異なるデフォルトを設計しました。
- チームの状態:評価のデフォルト / 結果
- データセットが存在しない:本番環境での失敗事例をキャプチャし、初期のオフラインデータセットとして構成する / 最初のテストセットは、実際のエージェントの挙動を反映したものである
- データセットが既に存在する:人間のアノテーターと共に本番環境の失敗事例を見直し、有用な例をオフラインセットに昇格させる / データセットは製品とともに進化していく
- 複雑な多ターンエージェント:エージェントの文脈と代表的な本番環境のトレースを用いてシミュレーションを生成する / 合成された会話は、現実的な相互作用に基づき維持される
各ワークフローの背後にある原則は同じです。本番環境が継続的に、次のオフライン評価ラウンドを改善していくことです。
これは、特に複数回の対話を行うエージェントにとって極めて重要です。汎用的なユーザーシミュレーターは、一見妥当な会話を生成できても、実際の製品で起こる制約や習慣、割り込みといった要素を見逃す可能性があります。エージェントのコンテキストと実稼働時のトレースを組み合わせることで、チームは、エージェントが対応すべき会話により近いシミュレーションを作成できます。
その結果、オンラインでの振る舞いとオフラインテストの間でフィードバックループが形成されます。本番環境で弱点が露呈し、人間がそれを確認します。するとその事例が評価用データセットに登録され、将来のエージェント版はそれを適切に処理できることを証明しなければなりません。
数ヶ月間手つかずのままのデータセットは、安心させるスコアを出し続けるかもしれません。しかし、製品がテストケースで定義された範囲から離れていくにつれ、そのスコアの意義は次第に薄れていきます。
AI エージェントの評価を横断的なワークフローへ
従来のソフトウェアテストは主にエンジニアリング部門が担ってきました。一方、エージェントの評価にはより幅広い専門知識が必要です。
エンジニアであれば、ツールの呼び出しが成功したかどうかを判断できます。会話デザイナーなら、エージェントが割り込みを自然に処理できたかを評価するのに適しています。オペレーションの専門家なら、どのエッジケースが実際の後続コストを生むかを知っています。プロダクトマネージャーなら、その回答が意図された顧客体験を支えているかどうかを理解できるでしょう。
Uber では、エージェントの評価に必要な専門知識は、ユーザーに最も近い現場の担当者が保有していました。しかし当初、評価インターフェースはエンジニアリングワークフローを中心に設計されていました。
プラットフォームチームは、プロダクト・デザイン・運営チームが評価器を検索し、事例を確認し、評価基準の維持に参加できるよう、ユーザーインターフェースを通じて評価機能を公開する取り組みを開始しました。これにより、エンジニアは他者の代わりにすべての判断を評価ルールに変換する必要がなくなりました。
コーディングエージェントの台頭は、この業務に対する新たなインターフェースを生み出しました。Uber はチームメンバーが自然言語の指示でトレーサビリティを確認し、障害の原因を検証し、評価ライフサイクルの一部を管理できるスキルを開発し始めました。
これにより参画範囲が広がりましたが、エンジニアリングの厳密性が失われることはありませんでした。計測・統合・システム動作の責任は依然として開発者が担い、ドメイン専門家も「良い行動とは何か」を定義するプロセスに直接貢献できるようになりました。
音声による予約処理での障害事例は、この仕組みの有効性を示しています。会話デザイナーが生産環境での不具合を特定し、チームが得た知見を毎週の評価器とデータセットの更新に反映させました。その相互作用について最も深い理解を持つ担当者が、証拠に基づいて直接行動を起こすことができました。
評価の質は、それがどのような意思決定を変えるかによって測るべきです
トレース機能の改善、自動評価器の作成、データセット管理の簡素化、アクセス権限の拡大を行った後でも、Uber には一つの課題が残っていました。それは、期待したほど製品品質が向上しなかったという点です。
各チームは依然として、評価を「リリースのゲート」として扱っていました。
主な関心事は、「エージェントが特定のスコアに達したか」でした。結果が必要な閾値を超えれば、チームはすぐにリリースできるのです。この状況が続くと、チームは目標数値に合わせてデータセットや評価器を最適化してしまうようになりました。
つまり、合格点を取ったとしても、それは単にテストスイートへの適合に成功しただけで、評価システムが製品について新たな知見をもたらしたことを示しているとは限りません。
Uber は、評価スイートが実際に役立っているかどうかを判断する際、より厳しい問いかけを行うようになりました。これはハメル・フサイン氏などの実務家が提起してきたのと同じ種類の質問です。
「あなたの評価結果を信頼できますか?」
チームが評価者の判断に疑念を抱いている場合、洗練されたダッシュボードにはほとんど価値がありません。
「評価の低下があればリリースは止まりますか?」
チームが評価結果の悪化を無視してでもリリースを進めるなら、その評価器は誰も重要だと考えていない行動を測定している可能性があります。
「評価の結果によって、どのような製品判断が変わりましたか?」
有用な評価はロードマップに影響を与え、設計の変更を促し、不足している機能に気づかせたり、エージェントの構築方法を変えたりします。
データセットはいつ最終更新されたのか。生産環境の挙動を反映しなくなったデータセットは、危険なまでの過信を生む恐れがあります。
チームが新しいモデルやシステム変更をテストできるのはどれくらいか。モデルリリースの評価に数週間の準備が必要であれば、その評価システムはエージェント開発のスピードを支えることはできません。
これらの問いが会話を一変させました。議論の焦点は「評価スコアが存在するか」から、「それを巡る学習プロセスの質」へと移ったのです。
プラットフォームチームがこれらを導き出したのは、単一のホワイトボードセッションでの話ではありませんでした。所有権、責任、そして評価を維持するために必要な実務について、エージェントチームと詳細な議論を行いました。また、他の組織の評価実践者たちともアプローチを比較しました。
一部の対話は不快なものでした。なぜなら、評価が形式的な手続きのために存在しているケースを露呈させたからです。しかし、その不快感は生産的なものでした。リリースを認証するための評価スイートと、製品を改善するための評価スイートを区別する手助けとなったのです。
生産環境の指標は、評価者が見逃す失敗を明らかにします
音声による予約失敗の事例は、評価システムが単なる直接品質スコアだけでは不十分であることを示しています。チームのオフライン評価者は、子供が背景で無関係な要求をするというシナリオを含めていませんでした。しかし、エージェントの行動指標が劇的に変化したため、生産環境側で問題が露呈したのです。
セッションあたりの平均ターン数が混乱の指標となりました。会話が通常の 4〜5 ターンから 15〜20 ターンに拡大すると、その急増はチームが原因を把握する前にも、エージェントが struggling(苦戦している)ことを示すシグナルになります。
これはより広範な評価戦略を示唆しています。エージェントの品質指標には以下が含まれます:
タスク完了と結果の精度
ツールの選択とツール結果の一貫性
会話の長さ
繰り返されるアクションやリトライ
エスカレーション頻度
レイテンシとトークン使用量
ユーザーによる修正
放棄率
エージェントの軌跡における予期せぬ変化
これらの指標は単独では失敗の原因を説明できません。しかし、完全なトレース(追跡ログ)と組み合わせることで、調査すべき箇所を特定できます。また、プロダクション環境でのエージェントのパターンによって必要な基準も異なります。会話長の急増は、マルチターン型アシスタントにとって重要ですが、シングルショットタスク型エージェントではそれほど問題になりません。
重要な設計上の判断は、アラートを証拠と結びつけることです。セッション長さの急増は、関連するトレースへとチームを導くべきであり、それが調査や評価器の更新、新しいデータセット例の作成を支える必要があります。
evals を活用した継続的なエージェント改善ループの実現
Uber の長期的なビジョンは、エージェントが後退した際にチームにアラートを通知するだけにとどまりません。これは Observe で通して議論されている転換点、つまり人間によるエージェント開発から体系的なエージェント改善への移行を指しています。
本番環境で稼働するエージェントが生成したトレースには、ユーザーのニーズや失敗のパターン、システムの挙動に関する証拠が含まれています。評価システムはこれらの証拠を整理し、 recurring な問題を特定して、エージェントがどのように変更すべきかを提案することができます。
プラットフォームチームが説明する改善ループは以下のようになります。
image 本番トレースから評価へ、そして次のバージョンのエージェントへとつながる、継続的なエージェント改善ループ
このモデルでは、評価(evals)が本番の証拠と次世代のエージェントを結びつけるエンジンとなります。Uber はこの考え方を軸に、評価支援コパイロットの開発を進めています。同システムは、エージェントの設定情報や製品ドキュメント、アーキテクチャ文書、本番トレース、過去の評価結果など、複数のコンテキストソースから情報を引き出すことができます。
これらのコンテキストを基に、コパイロットは関連する一連の失敗を特定し、評価スイートの変更を推奨したり、エージェントの修正案を提案したりします。その後、候補となる変更をオフラインテストで実行し、その比較結果をビルダー(開発者)に提示します。この方向性は、観測性(observability)、評価(evals)、実験(experimentation)が一つの継続的なループを形成する「自己改善型エージェント工場」へと業界全体が進んでいる動きと一致しています。
ただし、人間のレビューは依然として中心です。システムは証拠を収集・整理し、信頼できる候補を作成するために必要な人的労力を削減します。最終的に、提案された変更が製品を向上させるかどうかの判断は、エージェントビルダーが行います。
このワークフローは、本番環境での問題発見から検証済みの修正版のリリースまでの期間を劇的に短縮できる可能性があります。また、評価プロセスに先行的な役割を持たせることも可能です。顧客からの苦情や公的なインシデントを待たずとも、システムが新たな傾向を検知し、チームが介入する猶尚があるうちに手を打つことが可能になります。
最も優れた評価は、開発者が次に何を構築すべきかを示すものであるべきです。
Uber の経験は、多くのエージェントチームが現在歩み始めている進化の軌跡をたどるものです。
当初、評価は後付けのものとして扱われていました。プラットフォームのデフォルト設定により導入が容易になり、本番環境のデータを取り込むことでより実態に即した内容へと進化しました。また、横断的なチームによる所有権の確立が判断力を高め、より良い問いかけによって結果と製品開発を結びつけることができました。
プラットフォームチームが得た中心的な教訓は、信頼性の高い評価ワークフローは、エージェントの構築・運用方法から自然に生まれるべきだという点です。トレーシング(追跡)は最初のデプロイメント時から開始し、評価者はエージェントの文脈を参照し、データセットにはレビュー済みの本番環境での失敗事例を取り込み、顧客と最も近い立場にある人々が参画できる体制を整える必要があります。
これらの要素が整った後、評価スコアはより豊かなシステムの出力の一つに過ぎなくなります。より重要な出力は「意思決定」です。どの不具合を修正するか、どの動作を再設計するか、どのモデルを検証するか、どのデータセットを更新するか、あるいはどのバージョンのエージェントをリリースするかといった判断です。
評価システムがスタックの中で確固たる地位を得るためには、それがチームの次の構築内容に一貫して影響を与えることが必要不可欠です。
本記事は、Arize AI において「大規模なプロダクション環境における AI エージェントの評価方法」について解説しています。
原文を表示
At Arize:Observe 2026, Aayush Agrawal, a senior AI product manager at Uber, shared a story during his talk.
A mother asks an Uber voice agent to book a ride to San Francisco International Airport. In the background, her child says, “I want pizza too.” The agent hears both requests. Instead of treating the child’s comment as ambient conversation, it begins rerouting the ride toward a nearby pizza restaurant.
The incident had slipped through the team’s offline evaluations. Production caught it indirectly, after the average session length jumped from four or five conversational turns to as many as 20. A conversational designer followed the traces, found the failure, and changed how the agent handled requests unrelated to booking.
For Agrawal, the pizza detour signaled more than a memorable edge case. It exposed a structural weakness in how teams approach agent evaluation. Most teams know they need evals. Many already have the platforms, judges, datasets, and dashboards required to run them. Far fewer have built an evaluation system that consistently turns production behavior into new tests, product decisions, and better agents.
So, Uber’s agent platform team spent more than a year studying that gap. Its conclusion became the central thesis of Agrawal’s talk: the hardest part of evals isn’t the tooling. Instead, it’s designing the defaults, ownership models, and feedback loops that make evaluation part of everyday product development.
At Uber’s scale, that work carries real consequences. When an agent fails, someone may miss a ride, lose income, or have an order disrupted. Evaluation therefore has to do more than produce a score before launch. It must help teams understand what their agents are doing in production, learn from behavior they never anticipated, and decide what to build next.
Why production AI agent evals become a checkbox
Uber’s agent platform supports teams with dramatically different levels of technical maturity.
An operations team might be building its first personal productivity agent; an infrastructure group might create an agent for debugging pipeline failures; or a consumer product team might have dedicated engineers, designers, and researchers building an agent that books rides.
These teams share two priorities: speed and quality. Their paths toward those goals look very different.
To support them, Uber built a broad agent platform that included model access, AI guardrails, reusable skills and agents, code-first SDKs, managed deployment, low-code building tools, and an evaluation platform. Yet even with those capabilities available, teams repeatedly followed the same pattern: they built the agent first and postponed evaluation.
This rarely came from indifference toward product quality. Teams were trying to prove that an agent could work, find a viable product experience, and ship quickly. During that phase, evaluation could feel like an additional system to design before the product itself had fully been developed.
Installing more tools did little to change that behavior. Teams already had tools. Instead, they needed an evaluation workflow that required fewer decisions and delivered useful feedback sooner. That insight led Uber toward a different platform strategy: make the practices associated with reliable agent evaluation part of the default development path.
Start AI agent evaluation with complete tracing
Many agent teams begin with logs that capture a user’s input and the agent’s final response. That record can be useful for simple applications, but often leaves out the part developers need when something goes wrong: the trajectory.
A production agent may call several tools, retrieve documents, update its plan, retry an action, and generate intermediate outputs before responding. When the final answer fails, input and output logs cannot show which decision created the problem.
Uber found that teams often added fuller observability only after an agent had entered production. When a real incident occurred, developers had to reconstruct the behavior from fragmented logs or incomplete records. So, the platform team changed tracing from an optional integration into an automatic part of deployment.
Agents deployed through Uber’s managed agent system received tracing in every environment from the beginning. The deployment process also provisioned the appropriate Arize environment and permissions. Teams using the code-first SDK could enable tracing through a small configuration change.
This default served two purposes. It gave developers the evidence required for debugging, and it created the production data needed for meaningful evaluations later.
That second purpose matters because production traces reveal more than whether an agent succeeded. They show what users ask for, how the agent interprets those requests, which paths consume the most time, where tools disagree with generated answers, and which behaviors the original test set failed to anticipate.
With that record, teams at Uber could begin evaluating the agent their users actually experience. That is the core job of an agent observability platform: connect what happened in production to the next round of evaluation and improvement.
Automate the path from traces to useful signals
Tracing solves the visibility problem, but can introduce a second problem: teams now have a large volume of behavioral data and no clear process for converting it into insight.
A developer may need to decide:
Which traces should become evaluation examples?
Which evaluators are appropriate for this agent?
How often should those evaluators run?
Which thresholds indicate a meaningful regression?
Where should the results appear?
Who is expected to respond?
Each decision adds friction, but together, they can turn evaluation into a small internal platform project.
Uber reduced that burden by using information it already possessed. The platform had the agent’s configuration, its production traces, and contextual information about its intended behavior. From those inputs, it could create evaluators tailored to the agent, run them continuously, and deliver relevant alerts through tools such as Slack.
One team, for example, received an alert showing that the agent contradicted tool outputs in roughly 30 percent of evaluated cases. Team members did not need to understand the LLM-as-a-judge technique behind the alert before recognizing the product problem. The result was concrete enough to investigate immediately.
This approach helped solve the cold-start problem for teams that had never designed an evaluation suite. Instead of asking them to anticipate every relevant failure before launch, the platform used early agent behavior to give them a practical starting point.
Developers still needed to inspect and refine the resulting evaluations. Automation lowered the cost of reaching the point where that refinement became worthwhile.
Build evaluation datasets from production failures
Evaluation datasets have an uncomfortable lifecycle. Teams may struggle to create the first one, then struggle just as much to keep it relevant.
A dataset assembled before launch reflects assumptions about how users will behave. Once the agent reaches production, those assumptions begin to age. New user intents appear, model behavior changes, tools evolve, and the product itself gains capabilities.
Uber designed different defaults for teams at different stages:
Team state
Evaluation default
Result
No existing dataset
Capture production failures and assemble them into an initial offline dataset
The first test set reflects real agent behavior
Existing dataset
Review production failures with human annotators, then promote useful examples into the offline set
The dataset evolves with the product
Complex multi-turn agent
Generate simulations using agent context and representative production traces
Synthetic conversations remain grounded in realistic interactions
The principle behind each workflow is the same: production should continuously improve the next round of offline evaluation.
This is especially important for multi-turn agents. A generic user simulator can generate plausible conversations while missing the constraints, habits, and interruptions found in the actual product. By combining agent context with real traces, teams can create simulations that better resemble the conversations their agent needs to handle.
The result is a feedback loop between online behavior and offline testing. Production exposes a weakness, a human reviews it, the example enters the evaluation dataset, and future versions of the agent have to demonstrate that they can handle it.
A dataset that remains untouched for months may continue producing a reassuring score. But that score becomes less and less meaningful as the product moves away from what’s defined by the test cases.
Make AI agent evaluation a cross-functional workflow
Traditional software testing often sits primarily with engineering. Agent evaluation depends on a wider set of expertise.
An engineer can determine whether a tool call completed successfully. A conversational designer may be better equipped to judge whether the agent handled an interruption naturally. An operations specialist may know which edge cases create real downstream costs. A product manager may understand whether an answer supports the intended customer experience.
At Uber, much of the subject-matter expertise required to evaluate an agent lived with the people closest to the user. The evaluation interfaces, however, had originally been designed around engineering workflows.
The platform team began making evals accessible through user interfaces that allowed product, design, and operations teams to inspect evaluators, review examples, and participate in maintaining evaluation criteria. Engineers no longer had to translate every judgment into an evaluation rule on someone else’s behalf.
The rise of coding agents created another interface for this work. Uber began developing skills that allowed team members to ask a coding agent about traces, investigate failures, and manage parts of the evaluation lifecycle through natural-language instructions.
This broadened participation without removing engineering rigor. Developers still owned instrumentation, integrations, and system behavior. Subject-matter experts could contribute directly to defining what good behavior looked like.
The voice-booking incident illustrates the value of that arrangement. A conversational designer identified the production failure and incorporated what the team learned into its weekly evaluator and dataset updates. The person with the most relevant understanding of the interaction could act on the evidence directly.
Measure eval quality by the decisions it changes
After Uber improved tracing, automated evaluator creation, simplified dataset management, and expanded access, one problem remained: product quality was not improving as much as expected. Teams were still treating evaluation as a launch gate.
The dominant question was whether an agent had reached a particular score. Once the result crossed the required threshold, the team could ship. Over time, this encouraged teams to optimize their datasets and evaluators around the target number.
But that meant a passing score could quietly signal the agent had learned to satisfy the test suite. It did not necessarily show that the evaluation system was teaching the team anything new about the product.
Uber began asking a more demanding set of questions (the same kinds of questions raised by practitioners like Hamel Husain) when evaluating whether an eval suite is actually useful:
Do you trust what your evals are telling you? A polished dashboard has little value when the team doubts the evaluator’s judgments.
Would an evaluation regression stop a release? When a team would ignore a decline and ship anyway, the evaluator may be measuring behavior that nobody considers important.
Which product decision changed because of an evaluation result? Useful evals influence the roadmap, prompt a design change, reveal a missing capability, or alter how an agent is built.
When was the dataset last updated? A dataset that no longer reflects production behavior can generate dangerously misplaced confidence.
How quickly can the team test a new model or system change? When evaluating a model release requires weeks of preparation, the evaluation system cannot support the pace of agent development.
These questions changed the conversation. They shifted attention from the existence of an evaluation score toward the quality of the learning process around it.
The platform team did not arrive at them during a single whiteboard session. It held detailed discussions with agent teams about ownership, accountability, and the practical work required to maintain evals. It also compared approaches with evaluation practitioners at other organizations.
Some of those conversations were uncomfortable because they exposed cases where evaluation existed largely for procedural reasons. That discomfort was productive. It helped distinguish an evaluation suite that certified a launch from one that improved the product.
Production metrics can reveal failures your evaluators miss
The voice-booking failure also shows why evaluation systems need more than direct quality scores. The team’s offline evaluators had not included a scenario in which a child made an unrelated request in the background. The production system still exposed the problem because the agent’s behavioral metrics changed dramatically.
Average turns per session became a proxy for confusion. When conversations expanded from a typical four or five turns to 15 or 20, the spike indicated that the agent was struggling even before the team knew why.
This suggests a broader evaluation strategy. Agent quality signals can include:
Task completion and outcome accuracy
Tool selection and tool-result consistency
Conversation length
Repeated actions or retries
Escalation frequency
Latency and token usage
User corrections
Abandonment
Unexpected changes in agent trajectories
None of these metrics independently explains the failure. Together with complete traces, they can identify where to investigate. Different production agent patterns also need different criteria; conversation-length spikes matter more for multi-turn assistants than for single-shot task agents.
The important design choice is to connect the alert to the evidence. A spike in session length should lead the team to the relevant traces, which should then support an investigation, an evaluator update, and a new dataset example.
Using evals to power a continuous agent improvement loop
Uber’s longer-term vision extends beyond alerting teams when an agent regresses. It points toward the same shift discussed throughout Observe: from human-operated agent development to systematic agent improvement.
The traces generated by a production agent contain evidence about user needs, failure patterns, and system behavior. An evaluation system can organize that evidence, identify recurring problems, and suggest how the agent should change.
The improvement loop described by the platform team looks like this:
imageThe continuous agent improvement loop, connecting production traces to evaluation and the next version of the agent
In this model, evals become the engine connecting production evidence to the next version of the agent. Uber has started building an eval copilot around this idea. The system can draw from several sources of context, including the agent configuration, product documents, architectural documents, production traces, and previous evaluation results.
Given that context, the copilot could identify a group of related failures, recommend changes to the evaluation suite, propose an agent modification, run the candidate against offline tests, and present the comparison to the builder. That direction aligns with the broader industry move toward self-improving agent factories, where observability, evals, and experimentation form one continuous loop.
Human review remains central. The system assembles the evidence and reduces the labor required to produce a credible candidate. The agent builder decides whether the proposed change improves the product.
That workflow could dramatically shorten the distance between discovering a production problem and shipping a verified fix. It also gives evaluations a proactive role. Instead of waiting for a customer complaint or a public incident, the system can identify emerging patterns while the team still has time to intervene.
The best evals should inform what developers build next
Uber’s experience traces an evolution that many agent teams are now beginning.
Evaluations start as an afterthought. Platform defaults make them easier to adopt. Production data makes them more representative. Cross-functional ownership improves their judgment. Better questions connect the results to product development.
The platform team’s central lesson is that reliable evaluation workflows should emerge naturally from the way agents are built and operated. Tracing should begin with the first deployment, evaluators should draw from agent context, datasets should absorb reviewed production failures, and the people closest to the customer should be able to participate.
Once those pieces are in place, an eval score becomes only one output of a much richer system. The more important output is a decision: which failure to fix, which behavior to redesign, which model to test, which dataset to update, or which version of the agent to ship.
An evaluation system earns its place in the stack when it consistently changes what the team builds next.
The post How Uber evaluates AI agents at production scale appeared first on Arize AI.
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み