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 aretext 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 aretext 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.
suggestions: tap-ready follow-ups for your UI, like “in brown instead”.