Агент-Desktop: Структурированная автоматизация рабочего стола через деревья доступности ОС

Agent-desktop — это CLI для автоматизации нативных десктопных приложений, написанный на Rust и предназначенный для AI-агентов, которым нужно программно управлять десктопными приложениями. Вместо распространённого подхода на основе скриншотов (сделать скриншот, предсказать координаты пикселей, кликнуть, повторить), он взаимодействует через деревья специальных возможностей операционной системы — те же структурированные данные, которые используют программы чтения с экрана. Это означает, что модель видит роли элементов, их имена, иерархию и состояние напрямую, что делает взаимодействие более быстрым, дешёвым и устойчивым к изменениям интерфейса.
Ключевые возможности
- Единый двоичный файл Rust (~15 МБ), без зависимостей времени выполнения
- 53 команды, охватывающие наблюдение, взаимодействие, клавиатуру, мышь, уведомления, буфер обмена и управление окнами
- Вывод в JSON — машиночитаемый с кодами ошибок и подсказками для восстановления
- Цепочка активации, основанная на специальных возможностях: используются стратегии чистого API специальных возможностей до перехода к событиям мыши
- Детерминированные ссылки на элементы (например,
@e1,@e2) с оптимистической переидентификацией при изменениях интерфейса - Прогрессивный обход скелета: сначала неглубокое дерево (глубина ~3), аннотированное
children_count, затем погружение в конкретные области - Поддержка окон, меню, листов, всплывающих окон, предупреждений и уведомлений
- Специальная обработка деревьев специальных возможностей Chromium/Electron для снижения шума
- C ABI через cdylib — может быть загружен напрямую из Python, Swift, Go, Node, Ruby или C без вызова оболочки для каждой команды
Типичный рабочий процесс
Для плотных приложений, таких как Slack или VS Code, используйте прогрессивный обход скелета, чтобы минимизировать использование токенов:
# 1. Общий обзор — карта глубины 3, усечённые контейнеры показывают children_count
agent-desktop snapshot --skeleton --app Slack -i --compact
2. Погружение в область интереса (именованные контейнеры получают ссылки)
agent-desktop snapshot --root @e3 -i --compact
3. Действие над элементом, найденным при погружении
agent-desktop click @e12
4. Повторное погружение в ту же область для проверки изменения состояния
agent-desktop snapshot --root @e3 -i --compact
Для более простых приложений подойдёт полный снимок: agent-desktop snapshot --app Finder -i.
Установка
npm install -g agent-desktop
# Или используйте npx: npx agent-desktop snapshot --app Finder -i
# Из исходников: cargo build --release
Статистика производительности
На практике прогрессивный обход скелета снизил использование токенов на от 78% до 96% по сравнению с дампами полного дерева в приложениях Electron, таких как Slack, VS Code и Notion. Например, полное дерево специальных возможностей Slack может превышать 50 000 токенов — что непрактично для большинства контекстов LLM.
Для кого это
Для разработчиков, создающих десктопных агентов, инструменты внутренней автоматизации или исследовательские прототипы, которые хотят избежать затрат и хрупкости контуров управления на основе скриншотов.
📖 Прочитать полный источник: HN AI Agents
👀 Смотрите также

Lightpanda: Открытый headless-браузер для LLM-агентов со встроенным MCP-сервером и выводом в формате markdown
Lightpanda — это открытый headless-браузер, разработанный для агентов на основе LLM, который использует в 16 раз меньше памяти, чем Chrome (215 МБ против 2 ГБ), и выполняет тесты веб-краулинга за 5 секунд вместо 47. Он предоставляет нативный вывод в формате markdown, семантическое дерево с определением интерактивности и встроенный MCP-сервер.

SkyClaw: Открытая среда выполнения агентов, написанная на Rust
SkyClaw — это среда выполнения агентов с открытым исходным кодом, написанная на Rust, с 34 новыми функциями, реализованными в 7 этапах разработки. Она включает контрольные точки задач, устойчивые очереди на базе SQLite, параллельное выполнение инструментов и поддержку мультитенантности.
Терри Тао переносит 24 Java-апплета на JavaScript с помощью агента LLM — находит ошибки в исходном коде
Теренс Тао использовал LLM-агента для переноса своих Java-апплетов 1999 года на JavaScript за несколько часов. Агент нашел две ошибки в исходном коде и допустил лишь одну незначительную проблему с обработкой перетаскивания.

TechDebtMCP v2.0.0: MCP-сервер для анализа технического долга на 14 языках
TechDebtMCP v2.0.0 — это MCP-сервер, который подключает Claude к вашей кодовой базе для анализа технического долга. После подключения вы можете задавать Claude вопросы о техническом долге, проблемах безопасности и качестве кода.