A storefront assistant should read, not remember
The rule that kept the Informatica chat agent honest — anything a shopper acts on is fetched live through a tool, never produced by the model.
Every chat-agent demo shows you the answer it got right. The interesting question is where the answer came from.
On the Informatica storefront assistant, the rule is simple and it’s load-bearing: the model drafts, a system of record decides. Anything a shopper might act on — a price, a stock level, what’s in the cart, an order’s status — is read live through a tool call, never generated from the model’s own idea of the catalogue.
Tools at runtime, not training
The assistant loads its tools when it starts, from two MCP servers: Shopify’s Storefront MCP for search, cart and policies, and the Customer Account MCP for order status. The model never sees a product catalogue in its context that it could paraphrase incorrectly. It sees a search_shop_catalog tool, calls it, and answers from what comes back.
The nice property here is that the catalogue can’t drift from the answer. When a price changes in Shopify, the next call returns the new price — there’s no index to rebuild and no cache to invalidate on the assistant’s side.
Add-to-cart has to be real
An assistant that says “added to your cart” and updates its own idea of the cart is worse than useless — the shopper gets to checkout and it’s wrong. This one resolves the variant GID and writes to the real storefront cart, so the sentence and the cart stay the same thing.
Where it stops
Checkout. The assistant can assemble a cart and hand off; the payment step stays on Shopify’s own checkout. Web search is wired in for the occasional question the catalogue genuinely can’t answer, but that’s the edge, not the pattern.
The pattern is: if the shopper will act on it, fetch it.