Технология «Computer Use» без CV
Главное отличие agent-desktop от существующих решений — отказ от компьютерного зрения (CV). Вместо анализа скриншотов для поиска кнопок, инструмент использует дерево доступности операционной системы (Accessibility Tree). Это позволяет агенту получать структурированный JSON-снимок интерфейса, где каждый элемент имеет уникальный идентификатор (ref), и взаимодействовать с ним напрямую через системные API.
Работа строится по принципу «наблюдай — действуй — проверяй»:
- Snapshots: Команда делает снимок состояния окна, возвращая JSON с деревом элементов.
- Actions: Агент выполняет действие (клик, ввод текста) по
refиз снимка. - Verification: Агент делает новый снимок, чтобы убедиться в результате. Если UI изменился, старые
refстановятся невалидными, и требуется новый снимок.
Кроссплатформенность и поддержка ОС
Инструмент поддерживает три основные десктопные платформы, используя их родные механизмы доступности: AT-SPI на Linux, Accessibility API на macOS и UI Automation на Windows. Ниже приведена сравнительная таблица возможностей:
| Функция | macOS | Windows | Linux |
|---|---|---|---|
| Дерево доступности | Да | Да | Да (AT-SPI) |
| Клик / Ввод текста | Да | Да | Да (AT-SPI; X11/GNOME) |
| Управление мышью | Да | Да | Да (X11, --headed) |
| Скриншоты | Да | Да | Да (X11/Wayland portal) |
| Управление окнами | Да | Да | Да (X11 window control) |
| Уведомления | Да | Да | Да (GNOME Shell) |
API и интеграция с AI-фреймворками
Утилита поставляется в виде CLI-инструмента и C-библиотеки (libagent_desktop_ffi), что позволяет интегрировать её в любые приложения на Python, Rust или JS. В репозитории доступно 60 команд, разделенных на категории:
- Наблюдение:
snapshot,find,screenshot. - Взаимодействие:
click,type,drag,scroll. - Управление:
launch,close-app,resize-window.
Для упрощения интеграции с LLM-агентами (например, Claude или Codex) подготовлены специальные skills. Установка происходит одной командой:
npx skills add https://github.com/vercel-labs/agent-desktop --skill agent-desktop
Агент получает инструкции по работе с ошибками (например, STALE_REF при изменении UI) и правилам безопасности, так как снимки могут содержать конфиденциальные данные.
Безопасность и установка
Проект распространяется под лицензией Apache-2.0. Установка доступна через npm, brew (в разработке) и Scoop. Важно отметить, что для работы на macOS требуется явное разрешение на доступ к вспомогательным функциям (Accessibility), а на Linux необходимо наличие графической сессии и пакета at-spi2-core.
Разработчики подчеркивают, что по умолчанию утилита работает в headless-режиме, не перемещая курсор и не перехватывая фокус, что делает её безопасной для фоновых задач. Однако флаг --headed позволяет симулировать физические действия пользователя, если это необходимо для специфичных приложений.
Источник: Github ↗
