Lab · Workflows · Agent with tools behind a UI

Agent with tools behind a UI

A customer asks Halden's support chat about a duplicate $84.90 charge on order 48213. AG-UI carries the chat–agent hop: a RunAgentInput, then a stream of events. MCP carries the agent–helpdesk hop, where the tools live, and each MCP call shows in the chat as AG-UI tool-call events. When the helpdesk answers the refund with “input required” and a signed requestState, the agent parks the call in the chat's shared state and asks the customer with the chat's own confirm_refund tool. The answer comes back in the next RunAgentInput and becomes the MCP retry.

Real: @ag-ui/client and @ag-ui/core 1.0.2, the MCP TypeScript SDK v2 (2026-07-28, client and server), the HMAC on requestState, a LangChain agent. Simulated: the hosts, the ticket, and the agent's decisions unless you connect a model. Turn on Intercept: raise the approved amount in the RunAgentInput and the helpdesk rejects the retry; flip a decline into an approval and nothing does.

Simulationscripted modelready

Experiments

Who decides for the agents

Scenario