ARTEMIS — автоматизация Android-тестирования на человеческом языке
📂 Исходный код на GitHubИнструмент от Google для автоматизации Android через естественный язык. MCP-интеграция, мультимодальный таргетинг, 99%+ на AndroidWorld. Apache 2.0, Python 3.12+.
ARTEMIS — это инструмент от Google, который превращает инструкции на естественном языке в автоматизацию реальных Android-устройств. Вместо написания UI-тестов вы просто описываете, что хотите сделать, а ARTEMIS выполняет это на подключённом телефоне или эмуляторе.
Проект создан для тестирования приложений и выполнения повседневных задач на Android. Он работает через MCP (Model Context Protocol) и интегрируется с IDE — Antigravity, Claude Code, Windsurf, Codex, Cursor, VS Code и другими. На бенчмарке AndroidWorld от Google Research ARTEMIS показывает 99%+ успешных выполнений задач.
Ключевые возможности
Кросс-приложенная автоматизация. ARTEMIS выполняет цепочки действий через несколько приложений — например, прокладывает маршрут в Google Maps и запускает видео в YouTube. Это не просто навигация по одному экрану, а полноценные workflow.
Мультимодальный таргетинг. Использует индексы элементов, когда они доступны, и откатывается на координаты и визуальный поиск для кастомных интерфейсов. Поддерживает Canvas, Compose и Flutter — интерфейсы, где стандартный accessibility tree не работает.
MCP-интеграция. Нативный MCP-сервер позволяет AI-ассистентам в IDE управлять реальными устройствами. Через Antigravity или Claude Code можно описать тест-кейс на естественном языке, а агент сам подключится к телефону, выполнит действия и соберёт логи.
Два профиля выполнения. Flash — быстрый реактивный цикл (~3–5 секунд на шаг) для рутинных UI-задач. Pro — планирование и верификация (~15–40 секунд на шаг) с multi-agent graph, планом задач, safety net и финальным отчётом.
Автоматическая установка зависимостей. Один скрипт start.sh (или start.bat на Windows) устанавливает ADB, scrcpy, FFmpeg, Python и настраивает MCP-конфигурацию для обнаруженных IDE.
Архитектура
ARTEMIS строится на нескольких ключевых компонентах:
- Pre-Execution Checks — Pro-профиль проверяет целевой элемент по live UI-дереву и пикселям перед каждым действием
- Element Locating — комбинация accessibility иерархий, OCR и визуальных моделей для нахождения элементов
- Shared History Compression — старые скриншоты заменяются визуальными саммари, шаги сжимаются в поисковые чанки
- Action Bursts — цепочки кликов для обработки transient UI без ожидания нового model turn
Профиль Flash
Быстрый и экономичный по токенам. Одна модель наблюдает экран, думает и действует — без graph-оркестрации. История сжимается вместо ограничения количества шагов. Поддерживает click_sequence для transient элементов (тоасты, автоисчезающие панели).
Ограничения: нет плана задач, нет safety net, нет checkpoint-верификации, нет ADB shell.
Профиль Pro
Multi-agent graph с Planner, Operator и Checker:
- Planner — ведёт Markdown-план задач с milestone'ами и проверками
- Operator — выполняет план с полным набором инструментов, включая Explorer, notes, history recall, видеоанализ, ADB-диагностику
- Safety Net — проверяет каждое действие перед выполнением (XML-first, pixel fallback)
- Checker — верифицирует checkpoint'ы и проводит финальную проверку
Pro обрабатывает workflow длиной 100+ шагов и поддерживает мониторинг в режиме continuous loop.
Установка и запуск
git clone https://github.com/google/artemis.git && cd artemis
./start.sh
Откроется http://localhost:8000 с wizard подключения устройства, live-зеркалированием, prompt sandbox и replay'ем выполнений.
Для прямого запуска из CLI:
uv run artemis run "Открой Настройки, найди Батарею и скажи текущий уровень" --profile flash
MCP для IDE
Для подключения к IDE:
# Автоустановка MCP и правил для Antigravity:
uv run artemis mcp --install antigravity
# Или для всех поддерживаемых IDE:
uv run artemis mcp --install all
Правила тестирования (rules.md)станавливаются в IDE для обеспечения корректного поведения агента — активное исследование перед кодированием, компенсация задержек, паттерн «Dynamic-First, Coordinate-Fallback».
Python SDK
Клиент без runtime-зависимостей для интеграции в pytest и CI/CD:
from artemis_client import ArtemisClient
client = ArtemisClient("http://artemis-host:8000", default_profile="flash")
result = await client.run("Открой Settings, проверь уровень батареи")
assert result.succeeded
Режимы работы
ARTEMIS предоставляет несколько способов взаимодействия:
Web Visual Test Console (uv run artemis ui) — интерактивная веб-панель с live-зеркалированием экрана, телеметрией рассуждений агента, траекториями действий и replay'ем выполнений. Поддерживает natural language dispatch и управление lifecycle сервера.
Developer CLI (uv run artemis run) — прямой запуск из терминала для automated test cases, exploratory stability inspection или бенчмарков AndroidWorld со структурированным выводом.
MCP Server — подключает IDE к реальным устройствам для воспроизведения багов и выполнения тестов.
Python SDK — библиотека для интеграции в pytest, CI/CD и существующие фреймворки автоматизации. Структурированный вывод через Pydantic, типизированные assertions.
Workflow с Antigravity
Типичный workflow выглядит так:
- Описываете тест-сценарий в Antigravity на естественном языке
- Antigravity формирует пошаговый test plan через MCP
- ARTEMIS автономно выполняет план на реальном устройстве — навигирует UI, профилирует производительность
- Финальный отчёт включает structured audit findings, таблицы метрик и raw datasets
Это превращает ручное тестирование в автоматизированный process, где QA-инженер формулирует интенции, а агент выполняет детали.
AndroidWorld
ARTEMIS достиг 99%+ completion rate на AndroidWorld — бенчмарке от Google Research, включающем 20+ приложений и 100+ multi-step задач. Это state-of-the-art результат среди существующих решений для мобильной автоматизации.
Roadmap
- Интеграция с Android Studio (плагин для отладки и записи тестов)
- Расширение на iOS
- On-device lightweight VLMs для low-latency автоматизации
- Real-time duplex voice interaction
Что устанавливается на телефон
ARTEMIS устанавливает Artemis Accessibility Helper — небольшой accessibility-сервис для чтения layout экрана без захвата UiAutomation connection. Уведомление скрыто, в Settings > Accessibility появляется запись. Сервис работает только на устройстве и ничего не отправляет наружу.
Управление: uv run artemis helper install / status / uninstall. При сбое автоматически откатывается на UIAutomator2.
Источник: https://github.com/google/artemis