A Microsoft anunciou os novos componentes Blazor AI, um pacote experimental voltado para desenvolvedores de aplicações Blazor que desejam integrar interações com agentes inteligentes às interfaces de suas aplicações, em vez de se limitarem a uma interface de conversa tradicional. Os componentes fornecem um modelo de estado e elementos de interface para exibir respostas transmitidas em fluxo, chamadas de ferramentas, solicitações de aprovação, estado compartilhado e experiências de interface geradas.
O experimento exige o uso do SDK .NET 11 RC1 e a adição do pacote experimental Microsoft.AspNetCore.Components.AI. Ele oferece o componente ChatPage como um ponto de entrada pronto, incluindo uma lista de mensagens, um campo de entrada, um indicador de transmissão e a possibilidade de tentar novamente. No nível programático, o UIAgent gerencia o estado da interação, envolve o IChatClient do Microsoft.Extensions.AI e transforma as atualizações da resposta transmitida em blocos de conteúdo observáveis e sujeitos a nova renderização.
Da conversa a uma interface de aplicação completa
O pacote não se limita à exibição de texto. O ContentBlock representa uma parte da interação com identidade, função, estado do ciclo de vida e notificações de alteração, e há blocos específicos para conteúdo conversacional, chamadas de ferramentas, aprovações e ações do front-end. Para quem precisa de um layout personalizado, o pacote oferece elementos de baixo nível, como AgentBoundary, MessageList, MessageInput e BlockRenderer.
A aplicação também pode usar ferramentas executadas pelo servidor, como uma ferramenta de clima, e transformar a chamada e seu resultado em um componente Razor personalizado. Da mesma forma, as ferramentas do front-end permitem executar funções pertencentes à aplicação, como navegar, abrir uma janela ou alterar a cor da interface. Já as ações que precisam de uma decisão humana interrompem a interação por meio do FunctionApprovalBlock até que o usuário as aprove ou rejeite.
Conectando agentes remotos por meio do AG-UI
Os componentes Blazor AI funcionam com qualquer IChatClient e também podem ser conectados a agentes remotos por meio do AGUIChatClient, do AG-UI .NET SDK. O AG-UI funciona como um protocolo aberto baseado em eventos para padronizar a comunicação entre agentes e aplicações voltadas ao usuário, sem impor componentes de interface específicos.
O exemplo AgenticUI apresenta uma arquitetura que reúne uma Blazor Web App, um servidor de agentes criado com ASP.NET Core e o Aspire AppHost, usando Microsoft Foundry e Microsoft Agent Framework. Os eventos são enviados por HTTP e Server-Sent Events, enquanto a aplicação Blazor mantém sua própria camada de apresentação.
O que muda na prática?
Os componentes dão à aplicação o controle sobre a forma de exibir o resultado do agente. O desenvolvedor pode mostrar uma chamada de ferramenta como um cartão personalizado, sincronizar um estado estruturado entre o usuário e o agente, exibir uma sugestão como uma alteração que pode ser revisada antes de ser aplicada ou atualizar um plano diretamente à medida que o novo estado chega. Eles também oferecem suporte ao processamento de resumos de raciocínio fornecidos pelo modelo, ressaltando que são resumos enviados pelo modelo, e não a cadeia interna de pensamento.
Essa camada amplia o papel do Blazor, que deixa de apenas exibir uma conversa e passa a criar um espaço de trabalho no qual usuário e agente colaboram, mas não elimina as responsabilidades da aplicação. A entrada de imagens, arquivos e áudio, bem como o processamento das mídias específicas do modelo, continuam sendo tarefas da aplicação e dos serviços de inteligência artificial. Além disso, os componentes ainda são experimentais, o que significa que suas APIs e a experiência de uso podem mudar com base nos comentários enviados ao repositório dotnet/aspnetcore.
Conclusão para desenvolvedores
A Microsoft tem como alvo desenvolvedores que precisam integrar agentes a aplicações com arquitetura e fluxos de trabalho claros, e não apenas adicionar um robô de conversa separado. O principal valor é unificar transmissão, ferramentas, estado e aprovação em um modelo Blazor personalizável, mantendo nas mãos da aplicação a decisão final sobre a apresentação e o comportamento da interface.