Vercel Labs выпустила open-source инструмент agent-desktop на Rust под лицензией Apache-2.0: вместо скриншотов и сопоставления пикселей даёт ИИ-агентам управление десктопом через дерево доступности операционной системы — AX API на macOS, UI Automation на Windows и AT-SPI на Linux. Интерфейс возвращается агенту текстовым JSON, где у каждого элемента есть идентификатор ref, а при изменении экрана ошибки STALE_REF или AMBIGUOUS_TARGET и поле disposition.retry делают повторные попытки управляемыми и не дают агенту дублировать действия.


Что произошло
Vercel Labs выпустила agent-desktop — open-source инструмент для computer use, написанный на Rust и распространяемый по лицензии Apache-2.0. Вместо скриншотов он читает дерево доступности операционной системы: AX API на macOS, UI Automation на Windows и AT-SPI на Linux. Снимок интерфейса возвращается агенту в JSON, где у каждого элемента есть свой ref: агент кликает и печатает по ref, после чего заново читает интерфейс, чтобы убедиться в результате. Если интерфейс изменился, действие возвращает STALE_REF или AMBIGUOUS_TARGET, и агент делает новый снимок; ошибки несут поле disposition.retry со значением safe или unsafe, поэтому повторная попытка не дублирует уже выполненное действие. По умолчанию действия идут в headless-режиме, без движения курсора и перехвата фокуса, а физический ввод включается флагом --headed. Инструмент ставится через npm командой npm install -g agent-desktop или через Homebrew, доступен как нативные бинарники под x64 и ARM64 и поставляется как CLI, как C-библиотека libagent_desktop_ffi и в режиме MCP; в комплект входят скриншоты, буфер обмена, трейсы и оверлей с курсором.
Контекст
До сих пор типичные компьютерные агенты строились на скриншотном цикле: vision-модель рассматривает картинку экрана, находит элемент и возвращает координаты, то есть распознавание остаётся вероятностным, а каждый кадр стоит токенов и времени. Дерево доступности — служебная структура, которую операционные системы и приложения поддерживают для скринридеров, поэтому в ней элементы уже размечены семантически и адресация сводится к выбору нужного узла, а не к поиску кнопки на картинке. Внутри agent-desktop нет модели: агентский цикл, память и все решения целиком живут в агенте пользователя, сама надстройка — лишь интерфейсный слой между агентом и ОС, что делает её вендорно-нейтральной и совместимой с любым агентским фреймворком. Интерес к проекту виден по метрикам репозитория: около 14,6 тыс. звёзд и 1 тыс. форков, а за шесть дней после анонса вышло три релиза, от v1.0.0 до v1.1.0.
Почему это важно для индустрии
Для индустрии ключевой сдвиг в том, что адресация элементов интерфейса становится детерминированной: задача агента смещается из перцептивной плоскости в структурную, где нужно найти семантически нужный ref, а не определить место кнопки на картинке. Текстовый JSON-снимок вместо мегабайтов изображений обещает меньший расход токенов и латентность там, где vision-модель использовалась только ради адресации элементов, а контракт повторов с полем safe и unsafe выполняет роль идемпотентности для агентских действий — редкий уровень внимательности к отказоустойчивости исполняющих инструментов. Если формат «снимок + ref + disposition» подхватят другие инструменты, он может сложиться в ожидаемый способ стыковки агентов с интерфейсами, по аналогии с тем, как MCP стал стандартом подключения инструментов, и подтолкнуть соседние фреймворки к совместимости и первым прямым сравнениям подходов на дереве доступности и на скриншотах. Кроме того, открытая лицензия превращает проект в готовую бесплатную инженерную основу для десктопных агентов и расширяет класс задач, которые агенты решают на macOS, Windows и Linux без зрения.
Почему это важно для пользователей
Попробовать инструмент можно уже сегодня: установка через npm или Homebrew занимает минуты, лицензия допускает использование в собственных продуктах. Достаточно дать агенту доступ к нужному приложению, чтобы он кликал и печатал по ref, а затем сам перечитывал интерфейс и подтверждал результат. Пока агент автоматизирует рутину в фоне, курсор остаётся под вашим контролем и фокус не перехватывается, поэтому можно продолжать работать за тем же компьютером — конфликт «агент занял мышь пользователя» здесь просто не возникает. Такой режим годится для автоматизации рутинных десктопных действий, для тестов и для встраивания в собственные агенты; подключать можно через CLI, C-модуль или MCP в зависимости от того, как устроен ваш пайплайн.
Что пока неизвестно / ограничения
В предоставленных материалах нет измерений: ни сравнения расхода токенов, ни латентности, ни success rate против скриншотного пайплайна на одинаковых задачах, поэтому экономичность и скорость — следствие архитектуры и обоснованное ожидание, а не замеренный факт. Польза зависит от качества дерева доступности конкретных приложений: если программа не отдаёт a11y-дерево или размечает его бедно, структурная адресация теряет преимущество. Агентский цикл, память и защита от неуместных действий остаются ответственностью разработчика, поскольку модели внутри agent-desktop нет. Прогнозы о стандартизации формата и вытеснении vision-подходов — интерпретации тренда, а не результаты тестов.
Источники
- vercel-labs/agent-desktop: Computer Use CLI for AI agents (GitHub)
- Vercel Labs agent-desktop 1.0: Accessibility-Tree Computer Use, Snapshot Refs and the Retry Contract — Harel Asaf
- Vercel Labs ships Rust agent-desktop using OS accessibility trees — Tools4All
Автор
Look at AI, редакция
