Где взять

callstack/agent-device — открыть на GitHub

Открытая лицензия: MIT · 4021 stars.

Как автоматизировать проверку изменений в мобильном приложении, не тратя часы на написание жестких тестовых сценариев? Инструмент agent-device — это CLI-утилита (интерфейс командной строки), которая позволяет AI-агентам самостоятельно управлять iOS и Android устройствами, проверять состояние интерфейса и фиксировать результаты. С его помощью вы можете делегировать агенту задачу по проверке того, как новая функция отображается на экране, вместо того чтобы вручную запускать эмуляторы и кликать по кнопкам.

Что можно собрать с помощью этого инструмента

agent-device (проект от Callstack, лицензия MIT, 4021 звезда на GitHub) превращает ваш смартфон или эмулятор в «глаза и руки» для AI-агента. Основная механика работы строится на процессе «осмотр-действие-проверка» (inspect-act-verify).

Агент подключается к устройству, делает «снимок» дерева доступности (accessibility tree) — это структура элементов интерфейса, которую видит система, — и анализирует её. Если нужно нажать кнопку, агент отправляет команду, инструмент выполняет её, а затем агент снова делает снимок, чтобы убедиться, что приложение отреагировало правильно. Вы можете использовать это для:

  • Инспекции состояния: агент видит, какие поля заполнены, а какие кнопки активны.
  • Автоматизации действий: агент может нажимать кнопки, вводить текст, прокручивать списки и делать жесты.
  • Диагностики: если что-то пошло не так, инструмент сохранит скриншоты, логи, записи экрана и данные о производительности.

Как выглядит рабочий сценарий

Представьте, что вам нужно проверить, корректно ли работает форма добавления контакта в приложении. Вместо написания сложного кода на Appium или Maestro, вы даете команду своему AI-агенту (например, через Cursor или Claude Code).

Рабочий маршрут выглядит так:

  1. Запуск сессии: агент открывает приложение командой agent-device open Contacts --platform ios.
  2. Осмотр: агент запрашивает снимок экрана (snapshot -i), получает список элементов (например, @e2 [button] "Add").
  3. Действие: агент отправляет команду agent-device press @e2 --settle. Флаг --settle критически важен: он заставляет инструмент подождать, пока интерфейс «успокоится» после нажатия.
  4. Заполнение: агент видит новое поле @e7 и вводит данные: agent-device fill @e7 "Ada" --settle.
  5. Фиксация: агент делает скриншот для отчета и закрывает сессию.

Важно помнить: ссылки на элементы (например, @e2) актуальны только для текущего снимка. После каждого действия нужно запрашивать новый снимок, чтобы агент понимал, как изменился интерфейс.

Кому это подходит

Инструмент предназначен для разработчиков, которые уже используют AI-агентов для написания кода и хотят, чтобы эти агенты могли самостоятельно проверять свои изменения в работающем приложении. Он поддерживает не только iOS и Android, но и tvOS, Android TV, Amazon Vega OS, а также веб-приложения, macOS и Linux. Если вы уже используете React Native, Expo или Flutter, agent-device поможет интегрировать проверку UI прямо в ваш цикл разработки.

Как начать работу

Для начала работы убедитесь, что у вас установлен Node.js версии 22.12 или новее (для веб-автоматизации требуется версия 24+).

  1. Установите CLI глобально: npm install -g agent-device@latest.
  2. Проверьте готовность окружения: agent-device doctor.
  3. Изучите доступные команды: agent-device help workflow.

Перед тем как передать управление агенту, попробуйте выполнить команды вручную в терминале, чтобы понять, как инструмент взаимодействует с вашим конкретным устройством или эмулятором.

Границы применимости

Важно понимать, что agent-device — это инструмент для агентного тестирования, а не замена классическим фреймворкам вроде Appium или Detox. Если вам нужны жесткие, предсказуемые тесты, которые должны проходить в CI каждый раз одинаково, лучше использовать их. agent-device может дополнять их, сохраняя свои действия как .ad скрипты, которые можно воспроизводить повторно, или экспортируя их в формат Maestro YAML.

Также стоит учитывать, что надежность работы агента напрямую зависит от качества дерева доступности вашего приложения. Если в приложении нет четких меток (labels) и ролей у элементов, агенту будет сложнее «понимать» интерфейс.

Вердикт

Стоит попробовать, если вы хотите ускорить цикл «написал код — проверил UI» и уже используете AI-агентов в своей повседневной работе.

Лучше выбрать другой путь, если вам нужно создать строгое, неизменное тестовое покрытие для критически важных бизнес-процессов, где любая вариативность в поведении агента недопустима.

Похожие материалы