Agent Device: как научить AI-агента тестировать мобильные приложения
Где взять
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).
Рабочий маршрут выглядит так:
- Запуск сессии: агент открывает приложение командой
agent-device open Contacts --platform ios. - Осмотр: агент запрашивает снимок экрана (
snapshot -i), получает список элементов (например,@e2 [button] "Add"). - Действие: агент отправляет команду
agent-device press @e2 --settle. Флаг--settleкритически важен: он заставляет инструмент подождать, пока интерфейс «успокоится» после нажатия. - Заполнение: агент видит новое поле
@e7и вводит данные:agent-device fill @e7 "Ada" --settle. - Фиксация: агент делает скриншот для отчета и закрывает сессию.
Важно помнить: ссылки на элементы (например, @e2) актуальны только для текущего снимка. После каждого действия нужно запрашивать новый снимок, чтобы агент понимал, как изменился интерфейс.
Кому это подходит
Инструмент предназначен для разработчиков, которые уже используют AI-агентов для написания кода и хотят, чтобы эти агенты могли самостоятельно проверять свои изменения в работающем приложении. Он поддерживает не только iOS и Android, но и tvOS, Android TV, Amazon Vega OS, а также веб-приложения, macOS и Linux. Если вы уже используете React Native, Expo или Flutter, agent-device поможет интегрировать проверку UI прямо в ваш цикл разработки.
Как начать работу
Для начала работы убедитесь, что у вас установлен Node.js версии 22.12 или новее (для веб-автоматизации требуется версия 24+).
- Установите CLI глобально:
npm install -g agent-device@latest. - Проверьте готовность окружения:
agent-device doctor. - Изучите доступные команды:
agent-device help workflow.
Перед тем как передать управление агенту, попробуйте выполнить команды вручную в терминале, чтобы понять, как инструмент взаимодействует с вашим конкретным устройством или эмулятором.
Границы применимости
Важно понимать, что agent-device — это инструмент для агентного тестирования, а не замена классическим фреймворкам вроде Appium или Detox. Если вам нужны жесткие, предсказуемые тесты, которые должны проходить в CI каждый раз одинаково, лучше использовать их. agent-device может дополнять их, сохраняя свои действия как .ad скрипты, которые можно воспроизводить повторно, или экспортируя их в формат Maestro YAML.
Также стоит учитывать, что надежность работы агента напрямую зависит от качества дерева доступности вашего приложения. Если в приложении нет четких меток (labels) и ролей у элементов, агенту будет сложнее «понимать» интерфейс.
Вердикт
Стоит попробовать, если вы хотите ускорить цикл «написал код — проверил UI» и уже используете AI-агентов в своей повседневной работе.
Лучше выбрать другой путь, если вам нужно создать строгое, неизменное тестовое покрытие для критически важных бизнес-процессов, где любая вариативность в поведении агента недопустима.
Обсуждение
Комментарии
Напишите, что думаете: согласны, спорите, увидели ошибку или хотите добавить пример. Комментарии появляются сразу; спам и мусор мы удаляем вручную.
Пока комментариев нет. Можно быть первым.