

Connect a single Agent to 3 surfaces: React, Slack, Teams
Build one agent that talks to three surfaces: Slack, Teams, and React
Join us as Tyler Slaton wires up an agent once with CopilotKit and AG-UI, then ships it into three places people already work.
Most teams build the agent three times. One for the web app, one for the Slack bot, one for Teams — three codebases, three sets of tools, three chances for the behavior to drift. The agent isn't the hard part. The surfaces are.
In this session, we build one agent and give it three front doors. Same brain, same tools, same state. Slack, Teams, and a React app, all driven over AG-UI.
And not text-only. The agent renders real UI in each surface: an approval card in Slack, a scheduler grid in Teams, a full generative UI panel in React. Same agent event, rendered natively per surface.
Very few slides. Mostly code.
What we'll cover
Connecting an agent to a React frontend with AG-UI, and what the protocol handles for you so you don't have to build it yourself.
Taking that same agent into Slack and Teams without forking it — where the surface-specific code actually starts and stops.
Generative UI per surface, so the agent returns components instead of walls of text, and each platform renders in its own native idiom.
Human in the loop across surfaces, so a user can approve, reject, or edit an action from wherever they are — and the agent sees one decision, not three.
Shared state between the agent and every surface. This is the part most implementations get wrong.
Bring all of your friends, along with technical questions and we'll see you there!