Сервис развивается: тестируем формат, собираем идеи, улучшаем сервис. Есть идеи?

Написать
Войти
Дайджесты новостей
Архитектура дизайн-системы Astryx для автономных AI-агентов и разработчиков интерфейсов

Astryx от Meta: почему следующее поколение дизайн-систем проектируется для AI-агентов

Meta опубликовала открытую дизайн-систему Astryx на React 19 и StyleX, созданную для людей и автономных агентов. Архитектура превращает библиотеку интерфейсов в исполняемую среду: структурированные файлы .doc.mjs, детерминированный CLI, протокол MCP и ночные тесты устраняют галлюцинации моделей при генерации кода.

Astryx от Meta: почему следующее поколение дизайн-систем проектируется для AI-агентов

Развитие генеративных моделей изменило создание интерфейсов, но одновременно обнажило архитектурный кризис классических фронтенд-библиотек. Когда разработчик использует традиционную дизайн-систему, он ориентируется на Storybook, контекст команды и негласные соглашения. Программные AI-агенты лишены этой интуиции: получая доступ к обычной библиотеке, языковая модель придумывает несуществующие свойства, вставляет прямые стили через атрибуты, ломает токены и собирает экраны из случайных блоков.

Компания Meta опубликовала открытую дизайн-систему Astryx на React 19 и StyleX. Внутри компании ее основа развивалась восемь лет на тринадцати тысячах внутренних приложений. Главная ценность релиза — сдвиг парадигмы: библиотека компонентов превращается в исполняемую среду со строгими контрактами для автономных агентов.

От компиляции стилей к предсказуемости интерфейса

Архитектурным фундаментом Astryx выступает библиотека StyleX — компилируемый инструмент для стилей от инженеров Meta. Главное свойство StyleX — статическая предсказуемость: стили объявляются в ограниченной форме, проверяются компилятором до запуска приложения и собираются в CSS без конфликтов специфичности.

В Astryx этот подход перенесен на уровень всего интерфейса. Если обычные библиотеки допускают десятки путей сборки одного экрана, Astryx жестко сужает пространство вариативности:

  • Семантические дизайн-токены: цвета, отступы и типографика инкапсулированы в строгие переменные, исключая произвольные шестнадцатеричные цвета и хаотичные пиксели.
  • Иерархия модификации: агент может использовать базовый компонент, настроить его через глобальную тему или применить явный перенос исходников в проект (swizzle), если стандартного API недостаточно.
  • Типизированные контракты: параметры компонентов валидируются типами TypeScript, исключая несовместимые комбинации пропсов.

Документация как протокол: файлы .doc.mjs и режим --dense

Ключевое нововведение кодовой базы Astryx — отказ от неструктурированного текста в пользу файлов .doc.mjs. Каждый компонент сопровождается декларативной спецификацией: точное имя экспорта, ключевые слова для семантического поиска (button, submit, loading), слоты анатомии, список вариантов и правила композиции.

Из одной спецификации система генерирует документационный сайт, ответы CLI, поисковые индексы и сжатый контекст для моделей. Для работы с контекстным окном нейросетей предусмотрен режим сжатой документации --dense.

Протокол плотной документации сохраняет строгие поведенческие директивы: ключевые слова обязательности и запрета (must, never, always, instead), обязательные параметры и связи компонентов. Если удалить эти директивы, модель потеряет системные ограничения. В Astryx сжатая спецификация передает агенту концентрированные правила без лишней вводной прозы.

Маршрут вместо каталога: детерминированный CLI и протокол MCP

Вместо объемных текстов документации Astryx дает агенту детерминированный алгоритм поиска и сборки.

Инструмент командной строки CLI возвращает ответы в формате JSON со стабильными кодами ошибок (например, ERR_UNKNOWN_COMPONENT), исключая необходимость парсить текстовый вывод. Команда astryx build принимает текстовый запрос на естественном языке, очищает его от шума, расширяет словарем синонимов и выполняет детерминированное ранжирование компонентов и шаблонов страниц без вызова сторонних нейросетей.

Для интеграции со средами разработки развернут сервер протокола контекста моделей (Model Context Protocol, MCP). Сервер предоставляет две базовые операции:

  1. search(query) — семантический поиск по компонентам и шаблонам под конкретную задачу.
  2. get(name) — точечная загрузка полной спецификации конкретного компонента или темы.

Агент запрашивает документацию строго по мере необходимости, не перегружая контекстное окно.

Интерфейсы для самих AI-продуктов: подсистема Chat

Astryx также стандартизирует интерфейсы самих диалоговых AI-приложений через подсистему Chat:

  • Компоновка и сообщения: компоненты ChatLayout, ChatMessageList и ChatSystemMessage для отображения диалогов и системных событий.
  • Область ввода: модуль ChatComposer с поддержкой тегов, вложений и токенизированного ввода.
  • Наблюдаемость действий модели: компонент ChatToolCalls, отображающий вызовы внешних инструментов.

Компонент ChatToolCalls показывает статус выполнения команд, время ответа, консольный вывод терминала и наглядную разницу измененных строк кода (diff). Шаблон AI Chat Conversation объединяет ленту диалога и панель сгенерированного артефакта с изменяемым размером, позволяя редактировать результат работы модели без переключения экранов.

Практический контур внедрения и официальные команды

Для работы с Astryx требуется Node.js версии 22+ (Active LTS) и React 19+. Официальная процедура развертывания включает установку ядра, темы оформления и CLI:

npm install @astryxdesign/core @astryxdesign/theme-neutral
npm install -D @astryxdesign/cli

Инициализация файлов конфигурации для кодовых ассистентов выполняется командой:

npx @astryxdesign/cli init --features agents

Команда создает файлы AGENTS.md и CLAUDE.md с системными маркерами для автообновления правил при смене версий. Запуск CLI рекомендуется зафиксировать в package.json:

{
  "scripts": {
    "astryx": "node node_modules/@astryxdesign/cli/bin/astryx.mjs"
  }
}

При настройке стилей в Next.js важно соблюдать порядок импорта в корневом макете: сначала сброс стилей reset, затем base и только потом файл theme. Это гарантирует корректную работу каскада CSS. Инспекция проекта запускается командой:

npx @astryxdesign/cli doctor

Автоматизированный контроль: от ESLint до ночных vibe-тестов

В Astryx любые правила подкрепляются автоматизированными инструментами:

  • Двухуровневый ESLint: для людей нарушения правил выводятся как предупреждения (warnings), а для агентов и CI те же правила блокируют сборку как фатальные ошибки (errors), запрещая инлайн-стили и обход токенов.
  • Ночные vibe-тесты: автоматизированный стенд сравнивает, как независимые агенты собирают экраны в четырех средах (чистый Astryx, Astryx с Tailwind, связка shadcn с Tailwind и сырой HTML). Результаты оцениваются отдельной моделью по критериям корректности, доступности и качества верстки.

Если тест выявляет повторяющуюся ошибку агента, автоматизированный процесс локализует неясность в спецификации и формирует запрос на исправление документации или CLI.

Границы зрелости и выводы для команд

Сейчас Astryx находится в статусе бета-версии: вспомогательные пакеты графиков могут менять API до стабилизации мажорного релиза. Для простых лендингов или проектов вне экосистемы React внедрение системы неоправданно из-за затрат на инфраструктуру.

Однако принципы Astryx актуальны для любой команды в эпоху AI-разработки:

  1. Машиночитаемая документация: спецификации компонентов должны быть доступны для парсинга и контекстной загрузки.
  2. Проверяемые ограничения: правила использования токенов и запреты на сырые стили должны валидироваться линтерами.
  3. Инструментальный доступ: агенту нужны детерминированные команды поиска, JSON-ответы и предсказуемые коды ошибок.
  4. Наблюдаемость AI-интерфейсов: действия моделей должны визуализироваться через специализированные компоненты отображения инструментов и diff кода.