Google's Universal Commerce Protocol (UCP) — announced Oct 2025 — turns every grocer's domain into an agent endpoint. Search agents, comparison-shopping agents, retail-media agents will start pinging grocer.com for real-time inventory, pricing, and personalized cart-building. Grocers without a UCP endpoint go invisible. Delectable ships the gateway, in their GCP project, in 15 minutes.
The deployment topology that closes a deal in 90 seconds. Google's agent on the left, the grocer's GCP project in the middle, Delectable SaaS on the right. The Vertex inference, BigQuery scans, Cloud Run hosting, Cloud SQL queries are all in the customer's tenant — flowing through their committed-use line.
Or any UCP-compliant client agent. Discovers the gateway via the well-known manifest.
Vertex AI Gemini · Vector Search · BigQuery · Cloud SQL + pgvector. All in their billing.
Food intelligence graph · alternatives · meal plans · mission classification. SaaS multi-tenant.
Each intent corresponds to one underlying commerce capability in the Delectable platform. Every request fans out to GCP-native services in the grocer's tenant and returns a typed UCP response that Google's agents can parse.
Semantic product search, personalized + ranked. Vertex Vector Search lookup + Shopper HyperGraph re-ranking. ~3 vector lookups per call.
Real-time inventory per store. Sub-MB BigQuery partitioned scan. Returns store-level stock + ETA for delivery.
Base + promo prices with loyalty resolution. Cloud SQL lookup + pricing rule engine. Per-shopper, per-store, time-windowed.
ILP-optimized cart from an ingredient list or meal-plan intent. Gemini Pro reasons over the qualified subset. 490ms end-to-end.
Dietary-aware substitutions. Food HyperGraph traversal + Vector Search. The slide that proves Gemini can't hallucinate gluten-free.
Multi-day meal plan with consolidated shopping list. Most compute-intensive intent — Vertex inference + recipe graph.
Active promos by SKU or category. BigQuery promo table scan + loyalty membership filter. Closes the agentic shopping loop.
/.well-known/ucp — Google's agent introspects the manifest, calls the intents it needs.
Same pattern Joseph references on slide 7. Reproduced here so an FSR can demo the apply flow
in front of a customer's IT team. The Terraform bundle lives at commerce/deploy/customer-tenant/ in the Delectable repo.
# In the customer's GCP project (e.g. giant-eagle-commerce) cd ~/code/delectable/commerce/deploy/customer-tenant ./build_image.sh giant-eagle-commerce us-central1 ./apply.sh giant-eagle-commerce giant-eagle prod # 15 minutes later: ucp_gateway_url = "https://giant-eagle-prod-ucp-gateway-xxxx.a.run.app" ucp_discovery_url = "https://giant-eagle-prod-ucp-gateway-xxxx.a.run.app/.well-known/ucp" ucp_dispatch_url = "https://giant-eagle-prod-ucp-gateway-xxxx.a.run.app/ucp/v1/agent" # Provisioned (all in customer GCP): # - Cloud Run service (gateway) # - BigQuery dataset + 4 tables # - Cloud SQL + pgvector instance # - Secret Manager secrets # - IAM bindings # - Artifact Registry repo
Every resource is provisioned in the customer's project under their committed-use discount. Zero data crosses to Delectable on this provisioning path. The grocer's security team approves once.
Google's agent asks the gateway for a gluten-free substitute. The gateway calls Vertex Vector Search + Delectable food graph + Cloud SQL. Returns a typed UCP response in ~340ms.
POST /ucp/v1/agent Content-Type: application/json Authorization: Bearer [google-agent-token] { "intent": "find_alternatives", "shopper_handle": "opaque:sha256:f3a...", "consent_scopes": ["dietary_preferences"], "context": { "original_sku": "30041500000094", "constraint": "gluten_free", "max_price_delta_pct": 15, "store_id": "ge-pgh-shadyside" } }
HTTP/2 200 Content-Type: application/json X-UCP-Trace-Id: 7b3a... { "intent": "find_alternatives", "latency_ms": 343, "alternatives": [ { "sku": "30041500004021", "title": "GE Brand · Gluten-Free Multigrain Bread", "price": 4.49, "availability": "in_stock", "intelligence_source": "food_hypergraph_v3", "confidence": 0.94 } ], "reasoning": "Substituted on dietary_flag mismatch. Closest match by ingredient_lineage + nutrition_tier." }
Note the intelligence_source: food_hypergraph_v3 field — that's the attribution. That's why every
call bills the grocer's tenant: Vertex Vector Search ran in their project, BigQuery scanned their
inventory in their project, Gemini Pro generated the reasoning string in their project.
A single agentic-basket request is not one Gemini call. It's a multi-stage fan-out across Vertex AI inference, knowledge-graph traversal, ML-model serving, vector search, BigQuery analytics, content + recipe search, and logging — every stage billed to the customer's GCP project. Eighteen+ Google services light up on a single shopper utterance.
| Workload | What runs per UCP request | GCP service billed |
|---|---|---|
| i. Reasoning + retrieval | ||
| Gemini Pro inference | The 20% reasoning hop · cart build, substitution logic, meal-plan generation · 100–500 grounded tokens per call | Vertex AI |
| Vector Search lookups | Semantic match for find_products · 3+ lookups per call on the grocer's embedding index | Vertex Vector Search |
| Retail Search rank | Catalog ranking for grocer.com surface · personalized ordering + business guardrails | Vertex Retail Search |
| Recipe + content search | "Friday family dinner" → recipe corpus + CMS editorial content scanned for relevance | Discovery Engine |
| Meal-plan generation | Multi-day plan with consolidated shopping list · second Gemini reasoning pass over recipe set | Vertex AI |
| ii. Knowledge graph + IA ontology | ||
| Memgraph / KG traversal | Substitution graph traversal · ingredient → alternative · dietary-equivalent walking · recipe ↔ SKU resolution | Compute Engine · GKE |
| IA ontology lookup | 27 cross-cutting taxonomies applied · dietary, allergen, cultural, occasion, mission | Cloud Run · BigQuery |
| iii. ML model fleet · Vertex Model Build/Run + BigQuery ML | ||
| Propensity model | Per-shopper × SKU purchase-likelihood scoring · ranks the qualified candidate set | Vertex AI · BigQuery ML |
| Mission classifier | "Weekly stockup" vs "quick trip" vs "specialty" vs "fill-in" vs "gift" — shapes basket composition | Vertex AI |
| Dietary + restrictions model | Gluten-free, vegan, kosher, halal, low-FODMAP, pregnancy-safe filters applied with grounding | Vertex AI |
| Flavor DNA model | Flavor-compound similarity for substitution ranking · "keep the umami profile" | Vertex AI · BigQuery |
| Allergen graph model | Top-9 allergens + sesame avoidance graph applied per shopper-household profile | Vertex AI |
| Pantry decay model | Predicts what's left in shopper's pantry vs what needs repurchase · informs auto-fill suggestions | Vertex AI · BigQuery |
| Household deaveraging | "Mom buys gluten-free for daughter, regular for adults" — segment-of-one resolution per household | Vertex AI · BigQuery |
| iv. Data, state, and pricing | ||
| BigQuery scans | Inventory + pricing partitioned scans · ~50KB / request · hundreds per hour per shopper | BigQuery |
| Pricing rule engine | Base + promo + loyalty resolution · per shopper, per store, time-windowed | Cloud SQL |
| Embeddings (pgvector) | In-tenant embedding storage + retrieval for catalog + recipes | Cloud SQL + pgvector |
| Session state cache | In-flight cart, conversation memory, agent scratchpad | Memorystore Redis |
| Catalog + media reads | SKU images, recipe media, PDF nutrition labels referenced in agentic responses | Cloud Storage (GCS) |
| v. Runtime, security, observability | ||
| Cloud Run gateway | UCP gateway + per-module microservices · paid per ms · min instances on critical path | Cloud Run |
| Secret + key access | Bearer token + API key reads on every request · CMEK envelope encrypt/decrypt | Secret Manager + KMS |
| Structured logs + traces | Every request emits structured logs · traces · audit events for governance + SOC 2 | Cloud Logging · Trace |
| Analytics writes | Every basket + agent-decision event written to BigQuery analytics tables · feeds Looker dashboards | BigQuery streaming inserts |
That's ~18 distinct services billed on every UCP call. At 1.2M requests/month for a Tier-2 grocer, the fan-out compounds: Vertex AI calls (~6 per request across the model fleet), KG traversals, BigQuery streaming inserts, GCS reads, log writes. The deck's $1.6M/yr Tier-1 model captures this; the deck's slide-8 "21 services" understates it. Every request is a multi-service consumption event.