Командировка в Питер (Рубрика #Travel)
Сегодня тревел-пост про комадировку в Питер, куда мне нравилось приезжать и раньше. Но в прошлом году у нас открылся новый офис, который подальше от метро, но супер уютный и удобный. Кроме того, в этот приезд нам как часть стратсессии коллеги устроили посещение Эрмитажа, но в закрытом режиме с отдельным гидом и почти пустыми залами и это было бомбически. Я люблю искусство, но я очень не люблю толпы людей, поэтому я редко хожу на большие мероприятия (концерты, популярные музеи и так далее). А тут получилось очень здорово - крутой музей и почти весь наш ... Теперь я и в другие музеи хочу ходить в таком режиме:))
#Travel
Сегодня тревел-пост про комадировку в Питер, куда мне нравилось приезжать и раньше. Но в прошлом году у нас открылся новый офис, который подальше от метро, но супер уютный и удобный. Кроме того, в этот приезд нам как часть стратсессии коллеги устроили посещение Эрмитажа, но в закрытом режиме с отдельным гидом и почти пустыми залами и это было бомбически. Я люблю искусство, но я очень не люблю толпы людей, поэтому я редко хожу на большие мероприятия (концерты, популярные музеи и так далее). А тут получилось очень здорово - крутой музей и почти весь наш ... Теперь я и в другие музеи хочу ходить в таком режиме:))
#Travel
🔥41👍13❤12
Dronescapes (Рубрика #Travel)
У меня в библиотеке есть большое количество красивых книг, которые я люблю иногда лтстать по вечерам, особенно когда устаю от рабочих вопросов днем. Одна из таких книг это "Dronescapes", которая вышла в те времена, когда дроны использовали в основном фотографы и выкладывали их на сайт https://www.dronestagr.am/ (инстаграм для дронов). Я помню, что 10 лет назад, когда я увлекался фото, то очень хотел попробовать квадрокоптеры для фото, но тогда не сложилось, но зато теперь можно, сидя вечером и попивая чай, наслаждаться чужими красивейшими фото:)
#Culture
У меня в библиотеке есть большое количество красивых книг, которые я люблю иногда лтстать по вечерам, особенно когда устаю от рабочих вопросов днем. Одна из таких книг это "Dronescapes", которая вышла в те времена, когда дроны использовали в основном фотографы и выкладывали их на сайт https://www.dronestagr.am/ (инстаграм для дронов). Я помню, что 10 лет назад, когда я увлекался фото, то очень хотел попробовать квадрокоптеры для фото, но тогда не сложилось, но зато теперь можно, сидя вечером и попивая чай, наслаждаться чужими красивейшими фото:)
#Culture
1👍13🔥7❤4🤩1
[1/2] Google открыл A2UI - протокол, который позволяет агентам “говорить UI”, а не только текстом (Рубрика #AI)
15 декабря 2025 команда A2UI в Google публично выложила проект A2UI (Agent-to-User Interface) - открытый формат + библиотеки рендеринга, чтобы “удалённые” AI‑агенты могли возвращать сложные интерфейсы (формы, карточки, списки, кнопки) как данные, а не как исполняемый код. Этот протокол призван решить проблему текстовых чатов, когда простые пользовательские действия (забронировать столик, заполнить поля, выбрать время) превращаются в долгую переписку “вопрос‑ответ‑уточнение”. A2UI предлагает вместо этого дать агенту возможность сгенерировать контекстную форму/карточку из каталога компонентов и отрисовать её в вашем приложении. Сам протокол доступен на GitHub.
По сути это работает примерно следующим образом - агент генерирует декларативное описание UI в JSON, клиент рендерит это нативными компонентами своего приложения.
Ключевые принципы (сформулированы в README проекта):
- Security‑first: агент не присылает JS/HTML/код. Он присылает данные, которые проходят валидацию, а UI строится из каталога заранее разрешённых компонентов (Button/Card/TextField/и т.д.). Это снижает риск UI‑инъекций и “случайного RCE через UI”
- LLM‑friendly + инкрементальные апдейты: UI описывается “плоской” структурой (adjacency list) с ID‑ссылками, поэтому агент может стримить интерфейс и патчить отдельные компоненты по ID, не пересылая всё дерево
- Framework‑agnostic: один и тот же A2UI‑пейлоад может быть отрендерен в разных клиентах (web/mobile/desktop) — потому что “как рисовать” решает клиент
- Transport‑agnostic: A2UI - это формат/контракт сообщений, его можно гонять поверх разных “транспортов” (включая A2A и AG‑UI)
На практике (в версии v0.8, stable/public preview) сообщения обычно идут как JSON Lines (JSONL): одна строка = одно сообщение. Есть 4 ключевых типа:
-
-
-
-
Сам стрим может выглядеть примерно так
Но надо отметить, что спека все еще дорабатывается и между v0.8 (stable) и v0.9 (draft) уже есть изменения в деталях и даже названиях envelope‑сообщений
Теперь давайте обсудим, а почему этот протокол нам интересен и чем он лучше альтернатив.
1. Одной из альтернатив является генерация HTML/JS/React‑кода агентом.
Здесь у нас есть проблема с безопасностью и контролем - вам либо нужно исполнять непроверенный код, либо городить тяжёлую песочницу. В A2UI у нас вместо кода данные, а рендеринг идет только из доверенного каталога компонентов.
2. Другой алтернативой являются iframe‑подходы / “UI как ресурс” (например, MCP Apps)
В статье Google прямо сравнивает A2UI с MCP Apps: там UI часто приходит как “opaque payload” (например HTML) и рендерится в sandboxed iframe. Но A2UI выгодно отличается “native‑first” подходом: агент отправляет blueprint нативных компонентов, и UI наследует стиль/дизайн‑систему/доступность хост‑приложения, вместо отдельного “мини‑веба в iframe”.
3. Платформенные end2end экосистемы (например, OpenAI ChatKit)
Плюс таких решений - интеграция в рамках одной платформы. Минус - переносимость и работа в мульти‑агентных сценариях с разными вендорами. A2UI целится в переносимый UI‑контракт для ваших собственных клиентов и enterprise‑mesh сценариев.
4. Просто возьмём AG‑UI и хватит
AG‑UI решает вопросы интеграция агента и UI), а A2UI - описывает сам формат UI‑ответа. Google явно позиционирует A2UI как комплементарный слой: подключили хост через AG‑UI → можете использовать A2UI как формат для UI‑ответов, в том числе от внешних агентов
Продолжение о том, а почему этот проект так интересен в посте-продолжении.
#Engineering #AI #Agents #Software #Architecture #RnD #ML #DistributedSystems
15 декабря 2025 команда A2UI в Google публично выложила проект A2UI (Agent-to-User Interface) - открытый формат + библиотеки рендеринга, чтобы “удалённые” AI‑агенты могли возвращать сложные интерфейсы (формы, карточки, списки, кнопки) как данные, а не как исполняемый код. Этот протокол призван решить проблему текстовых чатов, когда простые пользовательские действия (забронировать столик, заполнить поля, выбрать время) превращаются в долгую переписку “вопрос‑ответ‑уточнение”. A2UI предлагает вместо этого дать агенту возможность сгенерировать контекстную форму/карточку из каталога компонентов и отрисовать её в вашем приложении. Сам протокол доступен на GitHub.
По сути это работает примерно следующим образом - агент генерирует декларативное описание UI в JSON, клиент рендерит это нативными компонентами своего приложения.
Ключевые принципы (сформулированы в README проекта):
- Security‑first: агент не присылает JS/HTML/код. Он присылает данные, которые проходят валидацию, а UI строится из каталога заранее разрешённых компонентов (Button/Card/TextField/и т.д.). Это снижает риск UI‑инъекций и “случайного RCE через UI”
- LLM‑friendly + инкрементальные апдейты: UI описывается “плоской” структурой (adjacency list) с ID‑ссылками, поэтому агент может стримить интерфейс и патчить отдельные компоненты по ID, не пересылая всё дерево
- Framework‑agnostic: один и тот же A2UI‑пейлоад может быть отрендерен в разных клиентах (web/mobile/desktop) — потому что “как рисовать” решает клиент
- Transport‑agnostic: A2UI - это формат/контракт сообщений, его можно гонять поверх разных “транспортов” (включая A2A и AG‑UI)
На практике (в версии v0.8, stable/public preview) сообщения обычно идут как JSON Lines (JSONL): одна строка = одно сообщение. Есть 4 ключевых типа:
-
beginRendering-
surfaceUpdate-
dataModelUpdate-
deleteSurfaceСам стрим может выглядеть примерно так
{"surfaceUpdate": {"surfaceId":"main","components":[ ... ]}}
{"dataModelUpdate": {"surfaceId":"main","contents":[ ... ]}}
{"beginRendering": {"surfaceId":"main","root":"root-component"}}Но надо отметить, что спека все еще дорабатывается и между v0.8 (stable) и v0.9 (draft) уже есть изменения в деталях и даже названиях envelope‑сообщений
Теперь давайте обсудим, а почему этот протокол нам интересен и чем он лучше альтернатив.
1. Одной из альтернатив является генерация HTML/JS/React‑кода агентом.
Здесь у нас есть проблема с безопасностью и контролем - вам либо нужно исполнять непроверенный код, либо городить тяжёлую песочницу. В A2UI у нас вместо кода данные, а рендеринг идет только из доверенного каталога компонентов.
2. Другой алтернативой являются iframe‑подходы / “UI как ресурс” (например, MCP Apps)
В статье Google прямо сравнивает A2UI с MCP Apps: там UI часто приходит как “opaque payload” (например HTML) и рендерится в sandboxed iframe. Но A2UI выгодно отличается “native‑first” подходом: агент отправляет blueprint нативных компонентов, и UI наследует стиль/дизайн‑систему/доступность хост‑приложения, вместо отдельного “мини‑веба в iframe”.
3. Платформенные end2end экосистемы (например, OpenAI ChatKit)
Плюс таких решений - интеграция в рамках одной платформы. Минус - переносимость и работа в мульти‑агентных сценариях с разными вендорами. A2UI целится в переносимый UI‑контракт для ваших собственных клиентов и enterprise‑mesh сценариев.
4. Просто возьмём AG‑UI и хватит
AG‑UI решает вопросы интеграция агента и UI), а A2UI - описывает сам формат UI‑ответа. Google явно позиционирует A2UI как комплементарный слой: подключили хост через AG‑UI → можете использовать A2UI как формат для UI‑ответов, в том числе от внешних агентов
Продолжение о том, а почему этот проект так интересен в посте-продолжении.
#Engineering #AI #Agents #Software #Architecture #RnD #ML #DistributedSystems
Googleblog
Google for Developers Blog - News about Web, Mobile, AI and Cloud
A2UI is an open-source project for agent-driven, cross-platform generative UI. It uses a secure, declarative format for agents to safely render UIs.
1🔥16⚡6❤4👍2