Microsoft hat die neuen Blazor-AI-Komponenten angekündigt. Dabei handelt es sich um ein experimentelles Paket für Entwickler von Blazor-Anwendungen, die Interaktionen mit intelligenten Agenten in die Oberflächen ihrer Anwendungen integrieren möchten, anstatt sich auf eine herkömmliche Chat-Oberfläche zu beschränken. Die Komponenten bieten ein Zustandsmodell und UI-Elemente zum Anzeigen gestreamter Antworten, von Tool-Aufrufen, Genehmigungsanfragen, gemeinsamem Zustand und generierten Oberflächenerfahrungen.
Für die Nutzung des Experiments sind das .NET 11 RC1 SDK sowie die experimentelle Paketversion Microsoft.AspNetCore.Components.AI erforderlich. Die Komponente ChatPage bietet einen sofort nutzbaren Einstiegspunkt mit einer Nachrichtenliste, einem Eingabefeld, einer Streaming-Anzeige und einer Möglichkeit zum erneuten Versuch. Auf Programmierebene verwaltet UIAgent den Interaktionszustand und kapselt IChatClient aus Microsoft.Extensions.AI. Anschließend wandelt es Aktualisierungen der gestreamten Antwort in beobachtbare und erneut renderbare Inhaltsblöcke um.
Vom Chat zur vollständigen Anwendungsoberfläche
Das Paket beschränkt sich nicht auf die Anzeige von Text. ContentBlock repräsentiert einen Teil der Interaktion mit Identität, Rolle, Lebenszyklusstatus und Änderungsbenachrichtigungen. Es gibt eigene Blöcke für Gesprächsinhalte, Tool-Aufrufe, Genehmigungen und Aktionen der Benutzeroberfläche. Für Entwickler, die ein individuelles Layout benötigen, stellt das Paket zudem Low-Level-Elemente wie AgentBoundary, MessageList, MessageInput und BlockRenderer bereit.
Die Anwendung kann außerdem serverseitig ausgeführte Tools verwenden, etwa ein Wetter-Tool, und dessen Aufruf sowie Ergebnis in eine benutzerdefinierte Razor-Komponente umwandeln. Ebenso ermöglichen Frontend-Tools die Ausführung von Funktionen, die der Anwendung gehören, beispielsweise die Navigation, das Öffnen eines Fensters oder das Ändern der Oberflächenfarbe. Aktionen, die eine menschliche Entscheidung erfordern, unterbrechen die Interaktion über FunctionApprovalBlock, bis der Benutzer zustimmt oder sie ablehnt.
Verbindung mit entfernten Agenten über AG-UI
Die Blazor-AI-Komponenten funktionieren mit jedem IChatClient. Außerdem können sie über AGUIChatClient aus dem AG-UI-.NET-SDK mit entfernten Agenten verbunden werden. AG-UI dient als offenes, ereignisbasiertes Protokoll zur Vereinheitlichung der Kommunikation zwischen Agenten und benutzerorientierten Anwendungen, ohne bestimmte UI-Komponenten vorzuschreiben.
Das Beispiel AgenticUI zeigt eine Architektur, die eine Blazor-Web-App, einen auf ASP.NET Core basierenden Agentenserver und Aspire AppHost miteinander verbindet und dabei Microsoft Foundry sowie das Microsoft Agent Framework verwendet. Die Ereignisse werden über HTTP und Server-Sent Events gesendet, während die Blazor-Anwendung ihre eigene Darstellungsschicht beibehält.
Was ändert sich in der Praxis?
Die Komponenten geben der Anwendung die Kontrolle darüber, wie das Ergebnis des Agenten dargestellt wird. Entwickler können einen Tool-Aufruf als benutzerdefinierte Karte anzeigen, einen strukturierten Zustand zwischen Benutzer und Agent synchronisieren, einen Vorschlag vor seiner Übernahme als überprüfbare Änderung darstellen oder einen laufenden Plan aktualisieren, sobald der neue Zustand eintrifft. Außerdem unterstützen sie die Verarbeitung von vom Modell bereitgestellten Zusammenfassungen der Schlussfolgerungen, wobei betont wird, dass es sich um vom Modell gesendete Zusammenfassungen und nicht um die interne Gedankenkette handelt.
Diese Schicht erweitert die Rolle von Blazor von der Darstellung eines Chats hin zum Aufbau eines Arbeitsbereichs, in dem Benutzer und Agent zusammenarbeiten. Sie hebt jedoch die Verantwortlichkeiten der Anwendung nicht auf. Die Eingabe von Bildern, Dateien und Audio sowie die Verarbeitung modellspezifischer Medien bleiben Aufgaben der Anwendung und der KI-Dienste. Zudem sind die Komponenten weiterhin experimentell. Das bedeutet, dass sich ihre Programmierschnittstellen und ihre Nutzungserfahrung aufgrund des Feedbacks im Repository dotnet/aspnetcore ändern können.
Fazit für Entwickler
Microsoft richtet sich an Entwickler, die Agenten in Anwendungen mit klarer Architektur und definierten Arbeitsabläufen integrieren möchten, statt einen separaten Chatbot hinzuzufügen. Der zentrale Vorteil besteht darin, Streaming, Tools, Zustand und Genehmigungen in einem anpassbaren Blazor-Modell zu vereinheitlichen und gleichzeitig die endgültige Entscheidung über Darstellung und Verhalten der Benutzeroberfläche bei der Anwendung zu belassen.