AGUI.Server
AGUI.Server is the .NET server-side adapter for AG-UI. It converts a
Microsoft.Extensions.AI.IChatClient stream into AG-UI protocol events, so you
can expose any chat client as an AG-UI endpoint that accepts RunAgentInput and
streams AG-UI events to a frontend UI.
The core idea
You do not learn a new agent programming model. You host anIChatClient.
The package adapts AG-UI request bodies into Microsoft.Extensions.AI
messages and options, calls your chat client, then converts the streamed
ChatResponseUpdate values back into AG-UI protocol events.
What it depends on
AGUI.Server is intentionally small:
- AG-UI protocol types from
AGUI.Abstractions Microsoft.Extensions.AI.Abstractions
The server package targets
net10.0, net9.0, and net8.0.What the hosting layer handles
The hosting layer handles the protocol details for you:- Converts
RunAgentInput.MessagesintoChatMessagevalues - Translates
RunAgentInput.Resumeinto MEAI approval and interrupt response content - Installs client-declared tools on
ChatOptions - Stores the original input under
ChatOptions.AdditionalProperties[AGUIConstants.RunAgentInputKey] - Emits
RUN_STARTEDand terminalRUN_FINISHEDoutcomes - Maps text, reasoning, tool calls, tool results, state, raw events, and interrupts to AG-UI events
- Streams the result as Server-Sent Events
Verification and framework ownership
Server tests verify thatRunAgentInput becomes ChatMessage and
ChatOptions, resume payloads become standard MEAI response content, lifecycle
events are emitted, and streamed ChatResponseUpdate values become the
expected text, reasoning, tool, state, raw, custom, and interrupt events. Raw
AG-UI events, including RUN_ERROR, pass through when supplied on
ChatResponseUpdate.RawRepresentation.
Microsoft.Extensions.AI bridge.
Framework-specific mappings belong to the consuming framework. For example,
Microsoft Agent Framework can use AGUI.Server for the common bridge, then map
its own workflow, step, and agent events with AGUIStreamOptions or raw AG-UI
events.
Server and client together
UseAGUI.Server when you are building an AG-UI server. Use
AGUI.Client when .NET code needs to consume an
AG-UI endpoint as an IChatClient.
Endpoints
Build the canonical ASP.NET Core AG-UI endpoint
Extensibility
Customize stream conversion with AGUIStreamOptions