A equipe de .NET da Microsoft, em colaboração com a CopilotKit, anunciou um SDK oficial para .NET do protocolo AG-UI, um padrão que define como agentes de inteligência artificial se comunicam com aplicações e interfaces voltadas aos usuários. O pacote foi publicado no repositório do AG-UI junto com os pacotes para TypeScript e Python e está disponível via NuGet sob a licença MIT.
A mudança prática é que qualquer serviço .NET agora pode se comunicar diretamente por meio do AG-UI, sem depender de uma implementação específica de uma determinada estrutura de agentes. O suporte ao AG-UI no Microsoft Agent Framework, conhecido pela sigla MAF, também passou a ser baseado nos novos pacotes de SDK.
O que o pacote acrescenta?
O AG-UI busca resolver um problema comum em aplicações com agentes de longa duração. Os agentes podem enviar tokens gradualmente, chamar ferramentas, delegar tarefas a subagentes ou alterar o estado da aplicação durante a execução da solicitação. Sem um protocolo comum, os frontends precisam entender formatos de eventos diferentes para cada estrutura ou serviço.
O protocolo transforma essas interações em eventos tipados, entre eles RUN_STARTED, TEXT_MESSAGE_CONTENT, STATE_DELTA e RUN_FINISHED. O cliente decide como exibi-los, seja em uma aplicação web, terminal, aplicação móvel ou plataformas de conversa como Slack e Teams.
Suporte ao servidor e ao cliente
O pacote inclui dois caminhos complementares. O AGUI.Server transforma o agente em um endpoint compatível com AG-UI, enquanto o AGUI.Client permite que uma aplicação .NET se conecte a qualquer agente compatível com o protocolo. A integração baseia-se no IChatClient, a camada de abstração para conversas do Microsoft.Extensions.AI.
No lado do servidor, a função ToChatRequestContext decompõe a solicitação AG-UI recebida nas mensagens e opções esperadas pelo cliente, e então AsAGUIEventStreamAsync transforma o fluxo da resposta em eventos do protocolo. Essa conversão também cria eventos de início e término da execução e fecha blocos abertos de texto ou raciocínio antes de passar para outra mensagem ou chamada de ferramenta.
Os usuários do Microsoft Agent Framework podem contar com a integração do ASP.NET Core, que fornece as funções AddAGUIServer() e MapAGUIServer() para reduzir o código de configuração do endpoint.
Componentes do SDK e compatibilidade
O pacote é composto por cinco componentes publicados via NuGet:
- AGUI.Abstractions: modelos do protocolo para eventos, mensagens, ferramentas, estado e interrupções.
- AGUI.Formatting: formatação dos dados na transmissão, com suporte padrão a Server-Sent Events.
- AGUI.Protobuf: suporte opcional a Protobuf, abrangendo um subconjunto dos tipos de eventos.
- AGUI.Client: consumo de fluxos AG-UI.
- AGUI.Server: produção de fluxos AG-UI.
O SSE continua sendo o formato padrão e oferece suporte a todos os tipos de eventos mencionados no SDK, enquanto o suporte a Protobuf se limita a um subconjunto.
O que muda para os usuários do Agent Framework?
O modelo básico de programação não muda para os usuários atuais, e o formato dos eventos continua compatível, o que significa que os frontends existentes podem continuar funcionando com um servidor atualizado. No entanto, alguns nomes de interfaces mudaram: AddAGUIServer() e MapAGUIServer() substituíram AddAGUI() e MapAGUI(), e os namespaces e as classes foram transferidos para os pacotes AGUI.Client, AGUI.Server e AGUI.Abstractions.
O cliente oferece suporte ao consumo de AG-UI a partir do .NET Framework 4.7.2, enquanto a exposição do endpoint exige uma versão atual do .NET.
Por que este anúncio é importante?
O lançamento oferece aos serviços .NET um caminho unificado para lidar com várias interfaces sem reconstruir a camada de fluxo de eventos para cada aplicação. Ele também permite a troca de funções entre componentes escritos em C#, Python e TypeScript, mantendo a camada de integração baseada no IChatClient. Isso é especialmente valioso para organizações que desejam conectar um único agente a interfaces web, aplicações internas ou diferentes canais de conversa.
O SDK, contudo, não elimina a necessidade de criar o servidor ou escolher como exibir os eventos; ele cuida do protocolo, enquanto a arquitetura web e o endpoint continuam sendo responsabilidade da aplicação. Além disso, o suporte a Protobuf não abrange todos os eventos, razão pela qual o SSE continua sendo a opção padrão completa.