
Естественно-языковой агент автоматизации Android, управляющий реальными устройствами через ADB, собирающий Logcat и скриншоты и предоставляющий MCP-сервер для ИИ-IDE и конвейеров CI-тестирования.
Позвольте AI-ассистентам и тестовым наборам использовать реальные телефоны как человек.
English • 中文文档 • Демонстрация рабочих процессов • Быстрый старт • MCP для IDE • Бенчмарки • Сообщество в Discord
Живая демонстрация: настройка маршрутов и расчёт общего времени в Google Maps, затем открытие YouTube для воспроизведения песни Coldplay.
Antigravity использует ARTEMIS через MCP, чтобы превратить запрос на тестирование в план, выполнение на устройстве и диагностический отчёт:
Убедитесь, что подключено устройство Android (с включённой отладкой по USB) или эмулятор. Скрипт запуска в один клик автоматически:
uv).rules.md) в ваши AI-IDE (Antigravity, Cursor, Claude Code, Codex, Windsurf, VS Code, Cline/Roo, OpenClaw).# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git && cd artemis
# 2. One-click launch
./start.sh
# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git
cd artemis
# 2. One-click launch
.\start.bat
PowerShell по умолчанию не ищет исполняемые скрипты в текущем каталоге, поэтому используйте
.\start.batбез завершающего\. В командной строке (CMD) используйтеstart.bat.
Совет: Открывает
http://localhost:8000в браузере по умолчанию с мастером подключения устройства, живым зеркалированием экрана, песочницей для промптов и воспроизведением выполнения. Вы также можете запускать напрямую из CLI:uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash.
ARTEMIS включает нативный сервер Model Context Protocol (MCP). Подключите ваш реальный телефон напрямую в AI-IDE:
Запуск ./start.sh (macOS/Linux) или .\start.bat (Windows PowerShell) предложит настроить глобальный MCP и правила тестирования для обнаруженных IDE (или вы можете установить/обновить их вручную в любое время с помощью команд ниже):
# Auto-install MCP server & global rules for Antigravity / Jetski:
uv run artemis mcp --install antigravity
# Or install for all supported AI IDEs (including Codex):
uv run artemis mcp --install all
Совет: Вы также можете настроить MCP интерактивно при первой настройке через
uv run artemis init. Профессиональный совет: Если вы хотите использовать командуartemisглобально безuv runв любом каталоге, выполнитеuv tool install -e .один раз в корне проекта.
Установите клиент без runtime-зависимостей на машине разработчика. ADB, агенты, модели и обработка изображений остаются на хосте устройства:
uv add "artemis-client @ git+https://github.com/google/artemis.git#subdirectory=packages/artemis-client"
import asyncio
from artemis_client import ArtemisClient
async def main():
client = ArtemisClient(
"http://artemis-host:8000",
device_serial="emulator-5554", # optional: target specific device serial
default_profile="flash", # "flash" (fast reactive) or "pro" (deep reasoning)
)
result = await client.run(
"Open System Settings, go to 'Battery', verify battery percentage is displayed, and check for any crash dialogs.",
)
assert result.succeeded, f"Test failed: {result.error or result.status}"
print(f"✅ Test Passed! Device: {result.device_serial} | Trace ID: {result.trace_id}")
if __name__ == "__main__":
asyncio.run(main())
Обзор консоли: ① Переключатель видов (Главная / Рабочее пространство) · ② Модель и воспроизведение (статус Flash/Pro и видеоповтор) · ③ Живой поток агента (восприятие действий, целевые координаты и структурированные результаты) · ④ Панель промптов (отправка на естественном языке) · ⑤ Очередь задач и дашборд (жизненный цикл и история)
uv run artemis ui): Проекция экрана в реальном времени и интерактивная панель, поддерживающая отправку тестов на естественном языке, телеметрию рассуждений в реальном времени, траектории действий и воспроизведение выполнения; управляйте жизненным циклом сервера в любое время из любого терминала с помощью uv run artemis restart, uv run artemis stop и uv run artemis status;uv run artemis run): Прямое выполнение из терминала для автоматизированных тестовых сценариев, исследовательской проверки стабильности или бенчмарков AndroidWorld с высокоточным структурированным выводом в терминале;При первой задаче на устройстве устанавливается Artemis Accessibility Helper — небольшая
служба доступности, которая читает разметку экрана, не занимая
соединение UiAutomation. Инструменты, использующие UiAutomation, могут подавлять этот помощник, если
они не включают FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES. Вы увидите
свёрнутое уведомление «Artemis test helper is running» и новую запись в
Настройки > Специальные возможности; и то, и другое — этот помощник. Он прослушивает только на самом телефоне
и ничего никуда не отправляет.
uv run artemis helper installuv run artemis helper status / uv run artemis doctoruv run artemis helper uninstallARTEMIS_HIERARCHY_BACKEND=uiautomator в .envARTEMIS_HELPER_AUTO_INSTALL=false в .envЕсли помощник когда-либо даст сбой во время задачи, ARTEMIS переключится на UIAutomator2 и сообщит
об этом в таймлайне задачи, в статусе mobile_manage_task и в итоговом отчёте.
Artemis достиг 99%+ показателя выполнения в AndroidWorld — бенчмарке Google Research, охватывающем 20+ приложений и 100+ многошаговых задач.
ARTEMIS поддерживает два профиля выполнения, адаптированных под разные требования автоматизации:
--profile flash): Быстрый и экономичный по токенам реактивный цикл (~3–5 с на шаг): одна модель наблюдает за живым экраном, думает и действует, без графовой оркестрации. Идеален для рутинных, детерминированных задач UI. Цикл по умолчанию неограничен (agent.flash.max_turns, 0 = без ограничений), поскольку история сжимается, а не ограничивается: Flash использует общий с Pro журнал сессии (относительные ко времени сессии метки T+mm:ss, скриншоты сворачиваются в визуальные сводки, старые шаги группируются в эпохи и могут быть вызваны по запросу через search_history / replay_steps) и может запрашивать запись сессии через video_analyzer. Временный UI (автоскрывающиеся панели управления, тосты) обрабатывается объединением нажатий в одну click_sequence. Ограничения: Нет плана задачи или заметок, нет страховочной сетки перед выполнением, нет проверки контрольных точек или итогового отчёта, и нет ADB shell.--profile pro): Рабочий процесс планирования и проверки (~15–40 с на шаг), построенный как мультиагентный граф. Планировщик ведёт живой Markdown-план задачи с этапами и пунктами проверки verify / assert; выполняет его с полным набором инструментов (обоснование Explorer, чей уровень / / — это пользовательская настройка для каждого профиля — / в или — никогда не выбирается агентом; заметки, вызов истории, анализ видео, диагностика ADB). Каждое отдельное действие проходит предварительную (сначала XML, резервно пиксели), в то время как многошаговые запускаются подряд, чтобы обойти задержку хода на временном UI. Заблокированное или неудачное действие открывает , который остаётся в контексте Оператора до тех пор, пока более позднее действие не завершится успешно, поэтому восстановление обрабатывается самим Оператором без отдельного агента восстановления. только для чтения проверяет контрольные точки плана и выполняет финальный обзор на выходе относительно исходной цели (: / (по умолчанию) / / ), а правки этапов плана получают рекомендательный обзор. Обрабатывает длительные рабочие процессы на 100+ шагов, мониторинг и опциональный письменный отчёт.Мы рады вкладу!
Этот проект лицензирован под Apache License 2.0.
Этот проект включает исходный код, разработанный Minitap, Inc..
|
1. Ввод запроса (постановка задачи) Опишите ваш тестовый сценарий и целевые метрики в Antigravity
|
2. Генерация плана тестирования Формулирует пошаговый план тестирования и архитектуру для проверки
|
|
3. Автономное выполнение тестов Управляет реальным устройством, навигирует по UI и профилирует производительность
|
4. Итоговый отчёт Предоставляет структурированные результаты аудита, таблицы метрик и необработанные наборы данных
|
Если вы предпочитаете настраивать вручную, выполните uv run artemis mcp --generate-config <client> (например, codex или antigravity), чтобы вывести соответствующий фрагмент TOML или JSON. Замените /path/to/artemis на фактический путь к репозиторию и укажите в command путь к исполняемому файлу Python из вашего .venv:
~/.codex/config.toml):[mcp_servers.artemis]
command = "/path/to/artemis/.venv/bin/python"
args = ["-m", "mcp_server"]
cwd = "/path/to/artemis"
[mcp_servers.artemis.env]
PYTHONUNBUFFERED = "1"
PYTHONPATH = "/path/to/artemis"
~/.gemini/jetski/mcp_config.json):{
"mcpServers": {
"artemis": {
"command": "/path/to/artemis/.venv/bin/python",
"args": ["-m", "mcp_server"],
"cwd": "/path/to/artemis",
"env": {
"PYTHONUNBUFFERED": "1"
},
"tools": {
"mobile_run_task": { "eager": true },
"mobile_manage_task": { "eager": true },
"mobile_get_device_state": { "eager": true },
"mobile_inspect_trace": { "eager": true },
"mobile_diagnose": { "eager": true }
}
}
}
}
claude_desktop_config.json):{
"mcpServers": {
"artemis": {
"command": "/path/to/artemis/.venv/bin/python",
"args": ["-m", "mcp_server"],
"cwd": "/path/to/artemis"
}
}
}
Чтобы ваш AI-ассистент по программированию действовал с тщательностью старшего инженера по мобильному тестированию и никогда не выдумывал взаимодействия с UI, мы предоставляем специальный файл правил тестирования по адресу mcp_server/rules.md (охватывающий активное исследование перед написанием кода, стратегию маршрутизации Flash vs. Pro, компенсацию задержек и таймингов и паттерн локатора «Dynamic-First, Coordinate-Fallback»).
Вы можете смонтировать или скопировать mcp_server/rules.md в конфигурацию правил вашей AI-IDE:
rules.md в настройки Workspace Rules, Global Rules или инструкции агента.artemis mcp --install claude, чтобы установить правила в ~/.claude/rules/artemis.md (устанавливайте ровно в одно место — Claude Code загружает и ~/.claude/CLAUDE.md, и ~/.claude/rules/*.md, поэтому дублирование правил расходует контекст)..cursorrules или создайте файл правил по адресу .cursor/rules/artemis.mdc.~/.codex/AGENTS.md (или активный AGENTS.override.md).Подробнее о подходе к тестированию и архитектуре MCP см. в MCP Server README.
В Codex, Antigravity или Claude Code просто напишите:
«Собери последние изменения в APK, установи его на подключённое устройство, открой экран входа с тестовым аккаунтом, проверь, нет ли неожиданных всплывающих окон после входа, и верни скриншоты финальной страницы.»
flashproultrapro.explorer.modeflash.explorer_modeconfig/artemis.jsonc--explorer-pro-mode--verification-levelofffinalcheckpointsstrict[Loop:continuous]