Объяснение A2UI: что делает (и не делает) протокол агента к пользовательскому интерфейсу
A2UI — это декларативный протокол JSON, который позволяет агентам ИИ описывать интерфейсы для рендеринга клиента. Как это работает, какие рендереры существуют и чего не делают.
Главное
A2UI (Агент для пользовательского интерфейса) — это открытый декларативный протокол JSON, созданный Google. Агент ИИ отправляет описание интерфейса, и клиент отображает его с помощью своих собственных компонентов вместо выполнения кода агента. Это способ перемещения структуры и данных пользовательского интерфейса через границу доверия, а не системы анимации, библиотеки компонентов или готового средства визуализации. ExodeUI не является средством визуализации A2UI и не связан с Google.
Что такое A2UI?
A2UI — это протокол для интерфейсов, управляемых агентами. Вместо того, чтобы возвращать стену текста или выполнять сгенерированный код, ИИ-агент отправляет поток сообщений JSON, описывающих пользовательский интерфейс: какую поверхность создать, какие компоненты она содержит и какие данные их заполняют. Клиент получает эти сообщения и отображает результат с использованием компонентов, которым он уже доверяет. A2UI был создан Google и имеет лицензию Apache 2.0 при участии CopilotKit и сообщества открытого исходного кода. По состоянию на октябрь 2026 года текущей производственной спецификацией была версия 0.9.1, а версия 1.0 была кандидатом на выпуск.
Проблема, которую A2UI пытается решить
Агенты хорошо умеют давать полезный ответ и плохо предоставляют его в качестве интерфейса. В текстовом ответе не может быть сравнительная таблица, форма заказа или личный кабинет. Генерация произвольного HTML или JavaScript решает проблему представления и создает проблему безопасности, поскольку теперь клиент выполняет код, который он не писал. A2UI выбирает третий путь: агент описывает пользовательский интерфейс в ограниченном формате, а клиент решает, как его отображать. Агент может использовать только компоненты, одобренные клиентом, а на выходе будут данные, а не исполняемый код.
Как строится поверхность A2UI
Протокол использует небольшой набор типов сообщений. Точная схема меняется в зависимости от версии, поэтому проверьте спецификацию перед ее реализацией, но форма остается стабильной.
- createSurface: сообщает средству визуализации создать новую поверхность, которая является областью интерфейса, которую агент может обновить.
- updateComponents: добавляет или изменяет определения компонентов на этой поверхности.
- updateDataModel: изменяет данные, отображаемые компонентами, без повторной отправки структуры.
- deleteSurface: удаляет поверхность, когда она больше не нужна.
Рендереры и транспорты
A2UI не зависит от транспорта. Спецификация описывает сообщения, а не то, как они передаются. В проекте перечислены реализации средств рендеринга для Angular, Flutter, Lit, React и Markdown, а также транспортные привязки для AG-UI, A2A и MCP, с возможностью использования WebSockets, SSE и REST. В этой гибкости и заключается суть: один и тот же ответ агента может быть отображен веб-клиентом, мобильным приложением или настольным приложением, каждое из которых использует свою собственную систему дизайна.
Чего не делает A2UI
A2UI легко перечитать. Он не предоставляет библиотеку компонентов, которую можно добавить в приложение, и сам по себе ничего не визуализирует: вам нужен модуль рендеринга и каталог компонентов, которыми управляет клиент. Он не решает, как будет двигаться пользовательский интерфейс. Он не заменяет MCP, который предоставляет модели инструменты и данные, или AG-UI, который переносит события взаимодействия между агентом и внешним интерфейсом. И это не устраняет необходимости инженерной проверки: сгенерированные интерфейсы по-прежнему должны обрабатывать загрузку, пустые состояния и состояния ошибок, разрешения и доступность.
A2UI против AG-UI против MCP
Эти три фактора часто упоминаются вместе, поскольку они решают разные уровни одной и той же проблемы. Полезное сокращение: A2UI описывает интерфейс, AG-UI обеспечивает взаимодействие, а MCP предоставляет агенту инструменты и данные. В собственной документации A2UI AG-UI описывается как транспортная привязка для A2UI, а A2UI также может перемещаться по MCP. Это дополняющие друг друга, а не конкурирующие стандарты. Если вы выбираете интеграцию, начните с того, что ваш клиент может визуализировать и какой транспорт он уже поддерживает, а не с протокола с наибольшим импульсом.
Где подходят анимация и взаимодействие
A2UI описывает структуру и данные. Движение — это забота клиента: рендерер решает, появится ли поверхность мгновенно, затухает или переходит из предыдущего состояния. Это хорошая новость для продуктовых команд, поскольку система анимации остается в клиенте, где она может учитывать систему дизайна и настройки специальных возможностей. Это также означает, что реализация A2UI не анимируется автоматически. Если сгенерированный интерфейс требует нажатия кнопки, перехода состояния или реакции талисмана, клиент должен обеспечить это поведение. ExodeUI может воспроизводить интерактивное движение в клиенте и имеет сервер MCP для инструментов кодирования AI, но он не является рендерером A2UI и не должен описываться как таковой.
Пример реализации для продакшена
// Simplified shape of an A2UI message stream (schema differs by version).
{ "createSurface": { "surfaceId": "cart" } }
{ "updateComponents": { "surfaceId": "cart", "components": [ /* ... */ ] } }
{ "updateDataModel": { "surfaceId": "cart", "data": { /* ... */ } } }
{ "deleteSurface": { "surfaceId": "cart" } }Ключевые принципы
- A2UI — это протокол JSON для интерфейсов, описываемых агентом, созданный Google и лицензированный под лицензией Apache 2.0.
- Клиент выполняет рендеринг со своими собственными компонентами; агент не выполняет произвольный код пользовательского интерфейса
- Он определяет сообщения и оставляет клиенту рендеринг, транспортировку и движение.
- Это не система анимации или библиотека дополнительных компонентов.
- ExodeUI не является средством рендеринга A2UI и не связан с Google.