UberExplainer
Cart Assistant: Agentic Grocery Shopping on Uber Eats
Summary
Cart Assistant addresses grocery requests that begin as lists, recipe images, or vague plans and turns them into draft carts shoppers can review and edit. It uses a multi-prompt state graph that assigns planning, candidate retrieval, semantic relevance, constraint enforcement, quantity selection, guardrails, assembly, and content refinement to focused stages. LLMs handle ambiguity and structured outputs, while backend APIs, deterministic arithmetic, validation, optimization, and aggregation manage inventory, pricing, eligibility, sellable units, and cart construction. The design separates retrieval language from reasoning context, preserves quantity provenance, supports parallel item processing, and uses deterministic checks plus an LLM judge against synthetic and production-derived cases. According to the conclusion, this decomposition makes the system more controllable and inspectable while producing useful draft carts without removing shopper review, editing, and decision-making.
Context
Cart Assistant changes grocery shopping from a search-first process, where shoppers manually find products one by one, to a cart-first flow: intent, draft cart, user review, and checkout. The system is designed for messy natural-language or image-based requests that include item context, quantities, preferences, and price constraints.
Approach / What changed
The implementation uses a multi-prompt state graph. A planner creates structured items with search terms, context, quantities, and constraints; backend services retrieve and enrich candidates; focused model steps judge relevance and reason about quantities; deterministic systems enforce prices, eligibility, validation, arithmetic, and cart assembly. Guardrails cover inputs, intermediate state, and generated content, while asynchronous execution and evaluation compare candidate changes with baselines.
Takeaways
Retrieval language and reasoning context are stored separately, allowing concise inventory queries while preserving details such as “gluten-free is a strict user constraint” for later decisions.
Quantity resolution combines LLM reasoning about human expressions and packaging with deterministic arithmetic and validation, while preserving whether a quantity was explicit or system-estimated.
Evaluation combines rule-based verification with a human-calibrated multimodal LLM judge across synthetic requests and anonymized production-derived edge cases.
FAQ
How does Cart Assistant handle a request with both item-level and cart-level price limits?
The planner attaches an individual limit to the relevant item, such as milk under $5. A total limit, such as eggs, bread, and milk under $30, is recorded at cart level and enforced later using actual prices, availability, deals, and promotions.
Why is quantity selection a separate stage?
Shoppers use quantities such as 12 eggs, 2 cups of flour, or snacks for a party, while stores sell cartons, packages, bunches, and weights. Cart Assistant combines model reasoning with deterministic checks so the result maps to purchasable units and remains sellable.
How does the system keep an LLM workflow controllable?
Focused model calls are surrounded by deterministic retrieval, validation, optimization, and aggregation. Guardrails also check supported intents, prompt-safety boundaries, product constraints, generated content, and grounding in catalog and cart data.
Source and freshness
- Source
- uber.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.