What a closed loop of routing, editing and QA agents looks like in production, based on Uber's AI Engineer World's Fair talk and the published record around it.

Research report
What a closed loop of routing, editing and QA agents looks like in production.
A reading of the AI Engineer World's Fair talk by Jai Chopra and Soumya Gupta of Uber's computer vision team, with the published record around it: what the system does, how it is evaluated, and what the talk leaves unproven.
Inside
On Uber Eats a photo is usually the first thing a customer sees of a merchant, and the merchants least likely to have a good one are the small independent restaurants: no time, no in-house skill, no budget for a photoshoot. Uber's computer vision team set out to close that gap with generative editing rather than with photographers.
The figures the speakers used to frame the stakes are the marketplace figures, not the product's. Uber Eats runs at roughly a 90 billion dollar annual run rate, adds millions of items a month at about 20 percent year on year growth, and operates across 10,000 cities.
Customers distrust images that look generated, so the value of an edit collapses the moment it reads as synthetic. The team states six goals: preserve authenticity and trust, improve quality selectively, optimise globally without flattening the marketplace, ship safely, learn continuously, and stay cost efficient. Two of those pull against the others, which is why so much of the talk is about gates rather than about generation.
"We want to stay faithful to the original image, preserve the brand of the merchant, and avoid everything looking the same. If we have the same prompt for every photo, the diversity of the marketplace is going to collapse." Jai Chopra, as recorded in the BigGo episode summary.
Four stages run in sequence, with one feedback loop in the middle. A multimodal model reads the photo alongside the item name and metadata and writes a structured description. A router turns that description into one decision: enhance, or leave the original alone. Only images routed for enhancement reach the editing agent.
The editing stage is a loop, not a single pass. A prompt generation agent writes instructions specific to that image, the edit is made, and a QA agent scores the result against the input. A failed result is not discarded: the QA feedback goes back into the next prompt. Every agent output is logged in a flat JSON structure, deliberately flat so that people who do not write code can read a single case or aggregate thousands.
If an image never clears the gate, the enhancement is dropped and the original is kept. Uber takes the coverage loss rather than publish a photo it cannot stand behind.
Each stage is measured on its own terms, and the ground truth is human. The team assembles a representative set of images across geographies, dish types and quality levels, gives labellers objective written guidelines to hold subjectivity down, and tunes each agent against that golden set until the guardrail metric is met.
| Stage | How it is measured | Guardrail |
|---|---|---|
| Router | Confusion matrix against human labels | Recall: no bad image slips through |
| Editor | Pass at K across iterations | Iteration cap on compute |
| QA gate | Pairwise comparison, input against output | Yes, no or unsure on four dimensions |
| Publish gate | Policy plus holistic re-check | Redundant by design |
The router is treated as a classifier and read off a confusion matrix. Recall is the guardrail: the team would rather waste compute enhancing a good photo than let a bad one through. Both errors were illustrated. A strong photo of a cheeseburger sent for editing costs money for no lift and risks damaging an image that was already fine. The worse case is the miss: a photo showing six chicken wings for an item described as eight passes the router, and the editing agent may then invent the missing two, which breaks faithfulness outright.
The QA gate does not score an image in isolation. It compares output against input and answers yes, no or unsure on faithfulness, completeness, naturalness and realism, a rubric agreed with product, design, policy and legal. Unsure is a real verdict with teeth: where the model cannot count the wontons in a bowl, it declines rather than guesses, and the edit is rejected. Because the editor iterates, the headline metric is pass at K, the pass rate by the Kth attempt. The talk's example, sweet potato fries rejected for portion size and unrealistic plating, passed on the second pass.
An offline model aligned to human labels will still drift, and the long tail of a global marketplace guarantees new failures. So the alignment step runs on a cadence in production rather than once before launch. Production images are sampled, sent to labellers under the same guidelines, and compared against what the agents decided.
Mismatches go to what the team calls the diagnoser: an agent one level above the pipeline whose job is to work out which component is at fault. It then triggers an auto-tuning pipeline of two sub-agents. Reflect reads the mismatches, strips the noise and names the systemic issue. Synthesize takes that reading plus the current configuration and writes a new one. The updated agent is benchmarked against the golden dataset, and only registers as a new version in the agent store if it clears the guardrails. The next production run picks it up.
"This is completely config driven and doesn't require human in the loop. Your diagnoser agent can write your config and trigger the auto-tuning pipeline." Soumya Gupta, quoted in the episode summary.
The same diagnoser is the entry point for three other signals, which is the part worth copying. Internal staff test the feature before public release and leave structured feedback. Once live, merchants and internal product and design teams leave thumbs up, thumbs down and free text. And the marketplace itself reports back through conversion: items added to cart, orders completed, sliced by geography, device type and dish category so a regression in one segment can be tuned without disturbing the rest. All of it lands in one place that decides what to retune.
"You want to start with your logging, because if you don't start with it, you have nothing to optimize for, let alone set up a self-learning loop." Jai Chopra.
The failure catalogue is the most useful part of the talk, because it is specific and because most of it is not fixable by better prompting. These are the modes the QA gate exists to catch.
| Failure mode | What happens | Example given |
|---|---|---|
| Faithfulness | Elements appear that were never there | Shrimp added to a dish without any |
| Completeness | Legitimate elements are removed | Sauce under the sushi disappears |
| Reward hacking | A change that satisfies the critic and helps nobody | One generic bowl swapped for another |
| Coherence | Objects behave impossibly | A plate sits over the sauce |
| Uncertainty | The count cannot be verified visually | Wontons in a bowl: unsure, so reject |
Reward hacking is the one that should give any team pause. After a first attempt was rejected as too creative, the editing agent turned conservative and produced edits that changed pixels without improving anything, swapping one generic ceramic bowl for another. The critic was satisfied and the customer gained nothing. It is a predictable consequence of scoring an agent against a gate rather than against an outcome, and it appeared here in production rather than in a lab.
Object coherence and physics failures are different in kind. The team traces them to limits in the underlying frontier image models rather than to their own orchestration, and works with the model providers on them. That is a dependency Uber cannot engineer away, and it sits directly upstream of a consumer-facing surface.
Uber's public framing is narrow and careful. The July 2025 newsroom post describes AI that detects and enhances low-quality food images by improving lighting, resolution, framing and plating, so that restaurants can show their dishes more accurately. The same post reports 1.5 million merchants across more than 11,000 cities, and that 78 percent of merchants using its AI tools call them effective.
Press coverage did not accept the framing. Engadget ran the launch under the headline "Uber Eats is stuffing AI slop into your meal", noting that Uber's own example turns a close-up phone photo into a wider shot of a plated dish, which means the model invents parts of the image that were never photographed. MobileSyrup reported the same replating behaviour, moving food out of takeout boxes and onto plates. By early 2026 TODAY was covering the wider pattern across delivery apps, where DoorDash describes adjusting lighting, replating and modifying backgrounds on user photos.
The tension is real and the talk names it: the system uses generative editing to produce images that must not look generated. The engineering answer is refusal. Faithfulness and completeness are gate criteria, unsure blocks publication, and a photo that cannot be improved within the iteration budget stays as the merchant shot it. Whether customers accept that line is a separate question, and one no eval in the system measures.
Sources disagree on scale. The talk cites 10,000 cities; Uber's own July 2025 post says more than 11,000. Different dates and different definitions, most likely, but neither figure should be quoted as current without checking.
Two other guardrails sit outside the model. The rubric behind the QA gate was agreed with product, design, policy and legal rather than set by the engineering team, which is what makes a refusal defensible when a merchant asks why their photo was left alone. And merchants have a channel back: thumbs up, thumbs down and free text from merchants, design and other product teams inside Uber all route into the same diagnoser that handles drift, so a complaint about a specific market can trigger a retune of that market rather than a global change.
This is a conference talk by the team that built the system, not an audited result. Four claims carry weight in the retelling and none of them is closed.
| Claim | Status |
|---|---|
| Conversion improved | Asserted in the talk, never quantified. No figure, no baseline, no window. |
| The system runs without humans | True for config updates only. Human labellers still produce the ground truth every cycle. |
| Quality is reliably judged | The rubric and prompts are proprietary, so no outside party can reproduce or audit the result. |
| It pays for itself | Cost of the iteration loop, four gates and continuous relabelling is never discussed. |
One further caveat about this report. The talk recording is the primary source, and the architecture described here is corroborated across three independent written accounts of it. The direct quotations come from a published episode summary rather than from a verified transcript, so treat them as close paraphrase unless checked against the recording.
Three numbers would turn this from a credible architecture into a proven one: the share of submitted photos the router sends for editing, the pass rate at the first and the final iteration, and the conversion difference between edited and untouched items over a defined window. None is published. Until they are, the sound conclusion is that the design is well reasoned and the outcome is unmeasured in public, which is a reason to copy the gates rather than the claimed result.
Little of this depends on food photography. Five practices carry across to any generative feature that reaches customers.
| Practice | Why it earns its keep |
|---|---|
| Log flat, log first | Nothing downstream, evals or tuning, exists without it. Flat JSON keeps it readable by non-engineers. |
| A router before a generator | Selective work is the cost control and the authenticity control at once. |
| One diagnoser, many signals | Drift, dogfooding, user feedback and business metrics route through a single tuning decision. |
| Refuse rather than ship | An unsure verdict that blocks publication is cheaper than a public bad output. |
| Score improvement, not difference | Otherwise the loop optimises for passing the gate. |
The through line is that the interesting engineering is not in the generation step. It is in the routing decision before it, the gates after it, and the feedback plumbing that keeps all of them aligned once real traffic starts to drift. Uber's own summary of the philosophy is that evals are not an offline exercise but a system that runs continuously.
The cost side of this is unstated in the talk. Four gates, an iteration loop and a standing human labelling budget are the price of the safety, and any team copying the pattern should price it before committing to the coverage target.
The pattern is also legible to non-engineers, which matters for approval. Routing, gates and a tuning loop map onto a review process a policy or brand owner already understands, and the flat log is what lets them audit a single decision.
The architecture, the eval methods and the failure modes are reported consistently across sources 02, 03 and 04, all of which describe the same recording. Scale and product framing come from Uber's own newsroom post, source 05. The critical reading in section 8 draws on the ZenML assessment and on the press coverage in sources 06 and 07. Nothing here comes from Uber engineering blog posts or filings: none address this system.
Uber spends most of its engineering on deciding when not to edit a photo. That is the transferable lesson, and it is the opposite of where most generative features put their effort.
Build grounded agents
See how lowtouch.ai turns enterprise rules, policies, and semantic context into governed agents running inside your appliance.
About the Author

Pradeep Chandran
Lead - Agentic AI & DevOps
Pradeep Chandran is a seasoned technology leader and a key contributor at lowtouch.ai, a platform dedicated to empowering enterprises with no-code AI solutions. With a strong background in software engineering, cloud architecture, and AI-driven automation, he is committed to helping businesses streamline operations and achieve scalability through innovative technology. At lowtouch.ai, Pradeep focuses on designing and implementing intelligent agents that automate workflows, enhance operational efficiency, and ensure data privacy. His expertise lies in bridging the gap between complex IT systems and user-friendly solutions, enabling organizations to adopt AI seamlessly. Passionate about driving digital transformation, Pradeep is dedicated to creating tools that are intuitive, secure, and tailored to meet the unique needs of enterprises.