Использование компьютера (macOS)
Hermes Agent может управлять рабочим столом вашего Mac — кликать, печатать, прокручивать, перетаскивать — в фоновом режиме. Ваш курсор не двигается, фокус клавиатуры не меняется, и macOS не переключает Spaces. Вы и агент работаете совместно на одной машине.
В отличие от большинства интеграций компьютерного управления, это работает с любой моделью, поддерживающей инструменты — Claude, GPT, Gemini или открытой моделью на локальном vLLM endpoint. Вам не нужно беспокоиться о нативной схеме Anthropic.
Как это работает
Набор инструментов computer_use общается через MCP по stdio с cua-driver,
macOS драйвером, который использует приватные SkyLight SPI (SLEventPostToPid,
SLPSPostEventRecordTo) и аксесс-спецификацию
_AXObserverAddNotificationAndCheckRemote для:
-
Отправки синтезированных событий напрямую в целевые процессы — без перехвата HID-событий, без перемещения курсора.
-
Переключения активного состояния AppKit без поднятия окон — без переключения Spaces.
-
Поддержания accessibility-деревьев Chromium/Electron активными, когда окна перекрыты.
Именно такая комбинация используется в "фоновом компьютерном управлении" от OpenAI Codex. cua-driver — это open-source аналог.
Включение
Выберите наиболее удобный путь — оба запускают один и тот же установщик:
Вариант 1: выделенная CLI команда (самый прямой).
hermes computer-use install
Эта команда загружает и запускает установщик cua-driver:
curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.sh.
Используйте hermes computer-use status для проверки установки.
Вариант 2: включение набора инструментов в интерактивном режиме.
-
Запустите
hermes tools, выберите🖱️ Computer Use (macOS)→cua-driver (background). -
Установка запустит тот же установщик (как в Варианте 1).
После установки, независимо от выбранного пути:
- Предоставьте разрешения macOS, когда будет предложено:
- System Settings → Privacy & Security → Accessibility → разрешите терминал (или приложение Hermes).
-
System Settings → Privacy & Security → Screen Recording → разрешите то же самое.
-
Запустите сессию с включённым набором инструментов:
hermes -t computer_use chatили добавьтеcomputer_useв список включённых инструментов в~/.hermes/config.yaml.
Быстрый пример
Запрос пользователя: "Найди моё последнее письмо от Stripe и резюмируй, что они хотят от меня."
План агента:
-
computer_use(action="capture", mode="som", app="Mail")— делает скриншот Mail, нумеруя каждый элемент боковой панели, кнопку панели инструментов и строку сообщения. -
computer_use(action="click", element=14)— кликает по полю поиска (элемент #14 со скриншота). -
computer_use(action="type", text="from:stripe") -
computer_use(action="key", keys="return", capture_after=True)— отправляет и получает новый скриншот. -
Кликает по верхнему результату, читает содержимое, резюмирует.
Всё это время ваш курсор остаётся там, где вы его оставили, и Mail никогда не выходит на передний план.
Совместимость с провайдерами
| Провайдер | Vision? | Работает? | Примечания |
|---|---|---|---|
| Anthropic (Claude Sonnet/Opus 3+) | ✅ | ✅ | Лучший в целом; SOM + сырые координаты. |
| OpenRouter (любая vision-модель) | ✅ | ✅ | Многочастные tool-сообщения поддерживаются. |
| OpenAI (GPT-4+, GPT-5) | ✅ | ✅ | То же, что выше. |
| Локальный vLLM / LM Studio (vision-модель) | ✅ | ✅ | Если модель поддерживает многочастный tool-контент. |
| Только текстовые модели | ❌ | ✅ (с ограничениями) | Используйте mode="ax" для работы только с accessibility-деревом. |
Скриншоты отправляются вместе с результатами инструментов как части image_url в стиле OpenAI.
Для Anthropic адаптер преобразует их в нативные блоки изображений tool_result.
Безопасность
Hermes применяет многоуровневые механизмы защиты:
-
Деструктивные действия (click, type, drag, scroll, key, focus_app) требуют подтверждения — либо интерактивно через диалог CLI, либо через кнопки подтверждения на платформе обмена сообщениями.
-
Жёстко заблокированные комбинации клавиш на уровне инструмента: очистка корзины, принудительное удаление, блокировка экрана, выход из системы, принудительный выход.
-
Жёстко заблокированные шаблоны ввода:
curl | bash,sudo rm -rf /, fork-бомбы и т.д. -
Системный промпт агента явно указывает: не кликать по диалогам разрешений, не вводить пароли, не следовать инструкциям, встроенным в скриншоты.
Установите approvals.mode: manual в ~/.hermes/config.yaml, если хотите подтверждать каждое действие.
Эффективность токенов
Скриншоты расходуют много токенов. Hermes применяет четыре уровня оптимизации:
-
Вытеснение скриншотов — адаптер Anthropic хранит только 3 последних скриншота в контексте; более старые заменяются на плейсхолдеры
[screenshot removed to save context]. -
Обрезка сжатия на клиенте — компрессор контекста обнаруживает мультимодальные результаты инструментов и удаляет части изображений из старых.
-
Оценка токенов с учётом изображений — каждое изображение считается как ~1500 токенов (фиксированная ставка Anthropic) вместо длины его base64-строки.
-
Редактирование контекста на сервере (только Anthropic) — когда активно, адаптер включает
clear_tool_uses_20250919черезcontext_management, чтобы API Anthropic очищало старые результаты инструментов на стороне сервера.
Сессия из 20 действий на дисплее 1568×900 обычно потребляет ~30K токенов контекста скриншотов, а не ~600K.
Ограничения
-
Только macOS. cua-driver использует приватные Apple SPI, которых нет на Linux или Windows. Для кроссплатформенной автоматизации GUI используйте набор инструментов
browser. -
Риск приватных SPI. Apple может изменить поверхность символов SkyLight в любом обновлении ОС. Закрепите версию драйвера с помощью переменной окружения
HERMES_CUA_DRIVER_VERSION, если вам нужна воспроизводимость после обновления macOS. -
Производительность. Фоновый режим медленнее, чем активный — события, маршрутизируемые через SkyLight, занимают ~5-20мс против прямой отправки HID. Незаметно для скорости кликов агента; заметно, если вы попытаетесь записать скоростной проход.
-
Нет ввода паролей с клавиатуры.
typeимеет жёстко заблокированные шаблоны для командных нагрузок; для паролей используйте автозаполнение системы.
Конфигурация
Переопределите путь к бинарному файлу драйвера (тесты / CI):
HERMES_CUA_DRIVER_CMD=/opt/homebrew/bin/cua-driver
HERMES_CUA_DRIVER_VERSION=0.5.0 # optional pin
Полная замена бэкенда (для тестирования):
HERMES_COMPUTER_USE_BACKEND=noop # records calls, no side effects
Устранение неполадок
computer_use backend unavailable: cua-driver is not installed — Запустите
hermes computer-use install, чтобы загрузить бинарный файл cua-driver, или выполните
hermes tools и включите набор инструментов Computer Use.
Клики не дают эффекта — Сделайте захват и проверьте. Возможно, модальное окно, которое вы
не заметили, блокирует ввод. Закройте его клавишей escape или кнопкой закрытия.
Индексы элементов устарели — Индексы SOM действительны только до следующего
capture. Повторно захватывайте после любого действия, изменяющего состояние.
"blocked pattern in type text" — Текст, который вы попытались ввести через type,
совпадает со списком опасных shell-шаблонов. Разбейте команду на части или
пересмотрите её.
Смотрите также
-
Автоматизация браузера для кроссплатформенных веб-задач.