Skip to main content

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 an IChatClient. 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: It is framework-agnostic: it does not depend on ASP.NET Core or any web framework. You host the adapter inside the web framework of your choice (the samples and docs use ASP.NET Core). It also does not depend on the .NET AG-UI client package. The server and client packages share protocol types, but remain independent.
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.Messages into ChatMessage values
  • Installs client-declared tools on ChatOptions
  • Stores the original input under ChatOptions.AdditionalProperties[AGUIConstants.RunAgentInputKey]
  • Emits RUN_STARTED and RUN_FINISHED
  • Maps text, reasoning, tool calls, tool results, state, raw events, and interrupts to AG-UI events
  • Streams the result as Server-Sent Events

Server and client together

Use AGUI.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