Skip to main content

Overview

A ContextRequest is an operator-generated, bid-safe request sent to downstream brand agents after upstream consent, policy, and monetization eligibility have already been resolved. It is derived from a valid PlatformRequest, but it is not a PlatformRequest. The ContextRequest is the object that brand agents receive and bid on. It is optimized for:
  • Auction-safe context — no raw interaction text, no full message history, no internal operator reasoning
  • Operator-enriched intent — the intent block is operator-generated and downstream-safe, not a pass-through of platform signals
  • Allowed creative constraints — what formats the platform surface supports
  • Usage restrictions — explicit may/may-not permissions for data handling
  • Traceability — every ContextRequest links back to the originating PlatformRequest
A ContextRequest MUST NOT contain raw interaction text, full message history, or internal operator reasoning.

Top-Level Fields


Traceability

Every ContextRequest MUST contain:
  • A unique context_id identifying this specific auction context
  • The canonical upstream message_id for per-turn traceability
This two-ID design keeps concerns separate:
  • message_id: upstream canonical message-turn identifier
  • context_id: operator-generated auction identifier derived from (session_id, message_id)
The operator is the author of the ContextRequest; the platform is the source of the upstream interaction.

operator

Identifies the system that generated this ContextRequest.

platform

Identifies the upstream AI platform where the user interaction originated. This is not the entity generating the ContextRequest — that is the operator.
The platform block replaces the old producer object. The platform is the AI host where the interaction occurred. The operator is the system that generated the ContextRequest. These are two distinct roles.

session


surface

A unified surface descriptor that replaces the old fragmented placement, device, geography, and language fields.

auction

Timing constraints for the auction.

intent

The intent in a ContextRequest is operator-generated and downstream-safe. It is used for bidding and creative selection. It may differ from any platform-provided or platform-derived intent found earlier in the upstream pipeline. That difference is valid and expected.

intent.iab_content

IAB content taxonomy mapping derived from the operator’s classification. Brand agents use this for vertical targeting and creative selection.
The intent block MUST NOT include classification_reasoning or any internal operator logic. Only expose the outputs that brand agents need to act on: type, phase, confidence, summary, and relevance score.

allowed_formats

Creative formats allowed by the operator for this auction. Valid values: "weave", "tail", "product_card", "bridge"

verticals

Array of normalized topical verticals identified by the operator (e.g. ["crm", "smb_software"]).
Downstream-effective consent permissions. Brand agents do not receive the full upstream consent envelope — only the permissions relevant to their participation.

usage_constraints

Explicit usage restrictions that downstream brand agents MUST respect.

Processing Rules

  1. Not a PlatformRequest. A ContextRequest is derived from a PlatformRequest, but the operator is the author. The platform is the source of the upstream interaction.
  2. No raw interaction leakage. A ContextRequest MUST NOT contain raw query_text, raw messages, or classification_reasoning. The intent.summary is the only natural-language field, and it is operator-generated and sanitized.
  3. Intent may differ from upstream. The intent in a ContextRequest is operator-generated. It may differ from any platform-provided or platform-derived intent in the originating PlatformRequest. That difference is valid and expected — the operator applies its own classification, normalization, and policy.
  4. Usage constraints are binding. If usage_constraints.may_store is false, the brand agent MUST NOT persist the context data beyond the auction. If retention_ttl_seconds is set, the brand agent MUST discard data after that TTL.
  5. Consent is downstream-scoped. The consent block contains only the permissions relevant to brand agents, not the full upstream consent model.

Example


What Changed from the Previous Schema


  • Platform Request — The upstream request that the ContextRequest is derived from
  • Bid — The response brand agents send back to the operator
  • Platform Response — The operator’s auction outcome after evaluating bids