Skip to main content
A message has a role (user or assistant) and a list of parts. Parts are the blocks your UI renders — text, an image the shopper sent, or product cards from a catalog tool.

What the shopper sends

User parts are text and image. You can send either, or both.
image.url accepts a data: URL or a public https:// URL. data: URIs are uploaded and rewritten server-side. If you send only an image, Channel3 searches for products matching it.

What the agent sends

Assistant parts are text and tool. A tool part is one catalog call. Render output.products as product cards — same Product type as the Search API. Buy URLs already carry your affiliate tracking. tool_name is search_products, show_products, or compare_products. The model may also run an internal lookup (lookup_products) that never appears in your UI.
The assistant message may also include suggestions: tap-ready follow-ups for your UI, like “in brown instead”.