← Back to Repo Pulse
UCP Feature January 29, 2026 · View PR #95 →

UCP Intent Field: Teaching AI Agents to Communicate Shopping Context

A new field enables AI agents to express buyer intent in natural language — unlocking personalization without authentication.

Author
Ilya Grigorik
Distinguished Engineer & Technical Advisor to CEO, Shopify
Former Google (Analytics, Chrome, Search). Founder & CTO of PostRank (acquired by Google). Author of High Performance Browser Networking (O'Reilly). Former co-chair of W3C Web Performance WG.

Ilya is the second-most active contributor to UCP, shaping core protocol architecture including context signals, schema composition, and error handling.

The Problem: Anonymous Agents, Generic Results

When a human shops online, merchants personalize the experience based on browsing history, past purchases, and account preferences. But when an AI agent shops on behalf of a user, none of that context exists — the agent appears as a blank slate.

Without personalization signals, merchants return generic results. An agent searching for "shoes" gets the same results whether the user wants running shoes for a marathon or formal shoes for a wedding. This creates friction: more queries, more back-and-forth, worse outcomes.

The key insight: AI agents know things about user intent that don't require authentication to share. "Looking for a gift under $50" or "need something durable for outdoor use" are valuable signals that don't expose PII.

What Changed

New intent Field in Context

UCP's context object — which carries provisional buyer signals like location, currency, and postal code — now includes an optional intent field:

{
  "context": {
    "country": "US",
    "currency": "USD",
    "postal_code": "94043",
    "intent": "looking for a gift under $50, something unique and handmade"
  }
}

The intent field is a freeform string that describes the buyer's purpose. Unlike structured filters, it allows natural language expression of complex shopping goals.

Non-Identifying Constraint Clarified

The PR also clarifies that context signals "SHOULD be non-identifying" — addressing reviewer concerns about PII leakage in freeform fields. This means:

Use Cases Across the Shopping Journey

Originally proposed for catalog search, the intent field applies across the entire shopping journey:

Catalog Search

GET /catalog/search?q=shoes
Context: { "intent": "need running shoes for trail running, wide fit" }

→ Merchant returns trail running shoes, prioritizes wide-fit options

Cart Recommendations

POST /cart
Context: { "intent": "planning a camping trip next month" }

→ Merchant suggests related items: tent stakes, headlamp, camp stove

Checkout Personalization

POST /checkout
Context: { "intent": "this is a gift, needs to arrive by Dec 24" }

→ Merchant highlights gift wrapping option, prioritizes expedited shipping

Why This Matters for AI Agents

1. Enables Semantic Search Without Login

Today's e-commerce search is keyword-based. An agent might need to translate "something for my dad who likes fishing" into specific product queries. With intent, the agent can pass the natural language goal directly to the merchant, who can apply their own ML models for relevance.

2. Reduces Round-Trips

Without intent, agents must iteratively refine searches based on results. With intent, merchants can factor in the full context upfront, returning better results on the first query.

3. Preserves User Privacy

Intent signals what the user wants without identifying who they are. This is crucial for privacy-conscious users who want personalization without account linking.

Technical Details

Schema Change

The change adds a single property to context.json:

"intent": {
  "type": "string",
  "description": "Background context describing buyer's intent 
    (e.g., 'looking for a gift under $50', 'need something durable 
    for outdoor use'). Informs relevance, recommendations, 
    and personalization."
}

Backward Compatibility

The field is optional. Merchants that don't support intent simply ignore it. This makes it a non-breaking addition that platforms can adopt incrementally.

Progressive Disclosure

Intent can be refined throughout the session. An agent might start with a broad intent ("shopping for kitchen items") and narrow it as the user provides more context ("specifically looking for a stand mixer, KitchenAid preferred").

Relationship to Risk Signals

This commit pairs interestingly with the risk & abuse signals proposal. Together, they show UCP's approach to the personalization-vs-privacy tradeoff:

Signal Type Purpose Identifying?
intent Personalization, relevance No (by design)
signals.buyer_ip Fraud prevention, rate limiting Potentially (device-level)
signals.device_id Bot detection Yes (device fingerprint)

Intent is explicitly non-identifying. Risk signals are potentially identifying but optional. This gives platforms granular control over the privacy-utility tradeoff.

What's Next