Microsoft объявила о выпуске новых компонентов Blazor AI — экспериментального пакета, предназначенного для разработчиков приложений Blazor, которые хотят интегрировать взаимодействие с интеллектуальными агентами непосредственно в интерфейсы своих приложений, а не ограничиваться традиционным интерфейсом чата. Компоненты предоставляют модель состояния и элементы интерфейса для отображения потоковых ответов, вызовов инструментов, запросов на согласование, общего состояния и сценариев генерируемого интерфейса.
Для работы требуется .NET 11 RC1 SDK и установка экспериментального пакета Microsoft.AspNetCore.Components.AI. Компонент ChatPage предоставляет готовую точку входа, включающую список сообщений, поле ввода, индикатор потоковой передачи и возможность повторной попытки. На программном уровне UIAgent управляет состоянием взаимодействия и оборачивает IChatClient из Microsoft.Extensions.AI, а затем преобразует обновления потокового ответа в отслеживаемые блоки содержимого, допускающие повторный рендеринг.
От чата к полноценному интерфейсу приложения
Пакет не ограничивается отображением текста. ContentBlock представляет часть взаимодействия с идентификатором, ролью, состоянием жизненного цикла и уведомлениями об изменениях; также существуют специальные блоки для диалогового содержимого, вызовов инструментов, согласований и действий на стороне интерфейса. Для тех, кому нужна индивидуальная компоновка, пакет предоставляет низкоуровневые элементы, такие как AgentBoundary, MessageList, MessageInput и BlockRenderer.
Приложение также может использовать инструменты, выполняемые сервером, например инструмент погоды, и преобразовывать его вызов и результат в специальный компонент Razor. Аналогичным образом инструменты интерфейса позволяют выполнять функции, которыми владеет приложение, например переходить по страницам, открывать окно или изменять цвет интерфейса. Действия, требующие решения человека, приостанавливают взаимодействие через FunctionApprovalBlock, пока пользователь не одобрит или не отклонит их.
Подключение удалённых агентов через AG-UI
Компоненты Blazor AI работают с любым IChatClient, а также могут подключаться к удалённым агентам через AGUIChatClient из AG-UI .NET SDK. AG-UI выступает открытым протоколом на основе событий, предназначенным для унификации взаимодействия между агентами и пользовательскими приложениями, не навязывая конкретные компоненты интерфейса.
Пример AgenticUI демонстрирует архитектуру, объединяющую Blazor Web App, сервер агентов на базе ASP.NET Core и Aspire AppHost с использованием Microsoft Foundry и Microsoft Agent Framework. События передаются через HTTP и Server-Sent Events, тогда как приложение Blazor сохраняет собственный слой представления.
Что меняется на практике?
Компоненты предоставляют приложению контроль над способом отображения результата работы агента. Разработчик может отображать вызов инструмента в виде специальной карточки, синхронизировать структурированное состояние между пользователем и агентом, показывать предложение как изменение, доступное для проверки перед применением, или обновлять план непосредственно по мере поступления нового состояния. Также поддерживается обработка сводок рассуждений, предоставляемых моделью, при этом подчёркивается, что это сводки, отправленные моделью, а не её внутренний ход рассуждений.
Этот слой расширяет роль Blazor: от отображения чата до создания рабочего пространства, в котором пользователь и агент сотрудничают, однако не отменяет обязанностей приложения. Обработка изображений, файлов и аудио, а также работа с мультимедиа модели по-прежнему остаются задачами приложения и сервисов искусственного интеллекта. Кроме того, компоненты всё ещё являются экспериментальными, поэтому их программные интерфейсы и пользовательский опыт могут измениться на основе отзывов, поступающих в репозиторий dotnet/aspnetcore.
Итог для разработчиков
Microsoft ориентируется на разработчиков, которым необходимо интегрировать агентов в приложения с чёткой архитектурой и рабочими процессами, а не просто добавлять отдельного чат-бота. Основная ценность заключается в объединении потоковой передачи, инструментов, состояния и согласования в настраиваемой модели Blazor при сохранении за приложением окончательного решения о представлении и поведении интерфейса.