generative-ui
assistant-ui Generative UI
Always consult assistant-ui.com/llms.txt for the latest API.
Generative UI inverts the usual tool-rendering relationship. Instead of one hand-written component per tool call, you ship a vocabulary of components and let something assemble a tree from it: either the model, through the present tool, or your backend, through a message part or a LangGraph event. @assistant-ui/react-generative-ui ships a default vocabulary of 27 components (cards, facts, tables, charts, forms, controls) plus converters that turn the same tree into Slack Block Kit, a Microsoft Teams Adaptive Card, or an A2UI surface, so a composition built once can render in the browser and outside it.
References
- ./references/vocabulary.md -- the 27 default components and how to add your own with
defineGenerativeComponents - ./references/actions.md --
$actiondispatch,createActionRegistry, and the$inputshapes interactive components send back - ./references/renderers.md --
MessagePrimitive.GenerativeUIand its allowlist, the Slack and Teams converters, and why the two spec shapes do not interchange - ./references/a2ui-openui.md -- A2UI surfaces over AG-UI and the third-party OpenUI integration
- ./references/tokens.md -- the shared token arrays and how to restyle or override the vocabulary
Which generative UI pattern?
Two questions separate the patterns: does the model compose the layout or do you bind it ahead of time, and does the UI originate from a tool call or from a part your backend emits.