AG-UI as the Agent–UI Contract Layer
AG-UI is a typed event contract between an agent backend and a frontend, turning streamed agent state into UI. This diagram maps the layers and shows where human review plugs in.
YelpDaniel Andrade Groppe, Services Tech LeadExplainer
Yelp Assistant is the first large-scale consumer LLM product at Yelp, connecting users with local professionals via chat. To iterate quickly across iOS, Android, and web while avoiding long app-store update cycles, the team chose a hybrid architecture: the top bar and input bar are native, while the chat content area is server-driven using Yelp’s CHAOS framework. The view and data are separated — the client fetches a CHAOS view template once, then conversation data hydrates that template on each turn. The backend sends MessageEvent objects, quick replies, and client actions (such as DisableChat) to control the UI. This hybrid approach enabled rapid iteration, but required building new CHAOS components for text input and network requests, and posed cross-platform consistency challenges.
Yelp built the Assistant UI with a hybrid architecture using CHAOS, its server-driven UI framework, combined with native UI elements. The top bar and input bar are native-driven while the chat content area is server-driven. The view (template) and data are separated: the client fetches a CHAOS view configuration once as a blueprint, then incremental conversation data hydrates that template on each turn. The backend returns MessageEvent objects, quick replies, and client actions such as DisableChat to control the UI. Two failure modes (recoverable and non-recoverable) handle errors by retrying or disabling input.
Yelp built the Assistant with a hybrid native/server-driven UI to avoid slow app-store update cycles; only the chat content area is server-driven.
Separating view (template) from data lets the client fetch a CHAOS blueprint once and hydrate it incrementally with each conversation turn.
The backend controls the UI by returning MessageEvent objects, quick replies, and client actions such as DisableChat to remove the input bar when the chat ends.
After a message is sent, the chat is turn-based: the user must wait for the bot to reply or fail before sending another message.
The backend includes a DisableChat client action in its last response, which removes the text input bar from the UI.
In the first failure mode, the client retries several times before asking the user to resend. In the second, the client permanently disables the chat.
Summaries are generated from the original by a language model. Check the original before relying on it.
See the idea
AG-UI is a typed event contract between an agent backend and a frontend, turning streamed agent state into UI. This diagram maps the layers and shows where human review plugs in.
Keep reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
One useful email. Unsubscribe anytime.