Google Artemis: AI 비서 및 테스트 스위트의 실기기 자동화
요약
Google의 Artemis는 AI 비서와 테스트 스위트를 결합하여 실제 휴대폰 환경에서 자동화된 작업을 수행하는 시스템입니다. 자연어 지침을 통해 크로스 앱 작업 및 일상적인 시나리오를 실행하며, AndroidWorld 벤치마크에서 높은 작업 완료율을 입증했습니다.
핵심 포인트
- 자연어 기반의 크로스 앱 자동화가 가능합니다.
- 다중 모드 타겟팅으로 안정적인 테스트 환경을 제공합니다.
- MCP 통합을 통해 IDE 진단 및 보고서 생성이 용이합니다.
- AndroidWorld 벤치마크에서 높은 작업 완료율(99%+)을 기록했습니다.
AI 비서와 테스트 스위트가 사람처럼 실제 휴대폰을 사용하게 하세요.
English • 중국어 문서 • Workflow Showcase • Quick Start • MCP for IDEs • Benchmarks • Discord Community

실시간 데모: Google Maps에서 운전 경로를 설정하고 총 소요 시간을 계산한 다음, YouTube를 열어 Coldplay 노래를 재생합니다.
크로스 앱 자동화 (Cross-App Automation): 자연어 지침을 통해 Android에서 테스트 워크플로우와 일상적인 작업을 실행합니다. 다중 모드 타겟팅 (Multimodal Targeting): 사용 가능한 경우 요소 인덱스를 사용하며, 사용자 정의 인터페이스를 위해 좌표 및 시각적 위치 지정 기능을 폴백(fallback)으로 사용합니다. IDE 진단 (IDE Diagnostics): Model Context Protocol (MCP) 통합을 통해 Antigravity, Claude Code, Windsurf가 테스트 장치를 구동하고 Logcat 출력과 스크린샷을 수집할 수 있습니다. 플래시 실행 (Flash Execution): 비동기 히스토리 요약이 포함된 반응형 관찰 및 행동 루프로, 일반적으로 단계당 3~5초가 소요됩니다. 전문 탐색 (Pro Exploration): 개별 액션 전에 타겟을 확인하고, 복구(recovery)를 위해 차단된 액션을 Operator에게 반환합니다. 장기간 실행되는 탐색 및 안정성 테스트를 지원합니다. AndroidWorld 결과: Google Research의 AndroidWorld 벤치마크에서 99%+ 작업 완료율을 보였습니다 (100개 이상의 다단계 작업).
Antigravity는 MCP를 통해 ARTEMIS를 사용하여 테스트 요청을 계획, 장치 실행 및 진단 보고서로 변환합니다:
Android 장치(USB 디버깅 활성화) 또는 에뮬레이터를 연결해야 합니다. 원클릭 시작 스크립트는 다음 작업을 자동으로 수행합니다:
시스템 툴체인 설치 (Install System Toolchains): ADB, scrcpy, FFmpeg 및 Python (uv) 종속성을 감지하고 자동 설치합니다. 글로벌 MCP 서버 및 AI 에이전트 규칙 마운트: 글로벌 MCP 구성과 Artemis Mobile Testing Mindset을 AI IDE에 자동으로 설치하도록 프롬프트합니다 (rules.md에서 Antigravity, Cursor, Claude Code, Codex, Windsurf, VS Code, Cline/Roo, OpenClaw).
# 1. 레포지토리 클론 및 디렉터리로 이동
git clone https://github.com/google/artemis.git && cd artemis
# 2. 원클릭 실행
...
1. 레포지토리 클론 및 디렉터리 이동
git clone https://github.com/google/artemis.git
cd artemis
...
PowerShell에서는 기본적으로 현재 디렉터리의 실행 스크립트를 검색하지 않으므로, 뒤에 \를 붙이지 않고 . ext{start.bat}을 사용하세요.
명령 프롬프트(CMD)에서는 대신 start.bat을 사용하세요.
팁: 기기 연결 위자드, 실시간 화면 미러링, 프롬프트 샌드박스 및 실행 리플레이가 포함된 http://localhost:8000을 기본 브라우저에서 열어줍니다. 또한 CLI(명령줄 인터페이스)에서 직접 실행할 수도 있습니다:
uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash
Codex / Antigravity / Claude Code / Windsurf용 MCP 설정 (클릭하여 확장)
ARTEMIS에는 네이티브 Model Context Protocol (MCP) 서버가 포함되어 있습니다. 실제 휴대폰을 AI IDE에 직접 연결하세요:
./start.sh<br>
(macOS/Linux) 또는 . ext{start.bat}<br>
(Windows PowerShell)를 실행하면 감지된 IDE에 대한 전역 MCP 및 테스트 규칙 구성 요청이 표시됩니다 (또는 아래 명령어를 사용하여 나중에 수동으로 설치/업데이트할 수도 있습니다):
# Antigravity / Jetski용 MCP 서버 및 전역 규칙 자동 설치:
uv run artemis mcp --install antigravity
# 또는 지원되는 모든 AI IDE(Codex 포함)에 대해 설치:
...
팁: uv run artemis init을 통해 첫 번째 설정 시점에 MCP를 대화형으로 구성할 수도 있습니다.
전문가 팁: 어느 디렉터리에서든 uv run 없이 artemis 명령어를 전역적으로 사용하고 싶다면, 프로젝트 루트에서 한 번 uv tool install -e .을 실행하세요.
수동으로 구성하는 것을 선호한다면, 적절한 TOML 또는 JSON 스니펫을 출력하기 위해 uv run artemis mcp --generate-config <클라이언트> (예: codex 또는 antigravity)를 실행하세요. /path/to/artemis를 실제 레포지토리 경로로 대체하고, command가 .venv Python 실행 파일( ext{Python executable})을 가리키도록 하세요:
Codex (~/.codex/config.toml):
[mcp_servers.artemis]
command = "/path/to/artemis/.venv/bin/python"
args = ["-m", "mcp_server"]
...
Antigravity (~/.gemini/jetski/mcp_config.json):
{
"mcpServers": {
"artemis": {
...
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"artemis": {
...
AI 코딩 어시스턴트가 숙련된 모바일 테스트 엔지니어의 엄격함으로 작동하고 UI 상호작용을 절대 환각(hallucinate)하지 않도록, 전용 테스트 마인드셋 규칙 파일이 mcp_server/rules.md에 제공됩니다.
(여기에는 코딩 전 능동 탐색 (Active Exploration before coding), Flash 대 Pro 라우팅 전략, 지연 시간 및 타이밍 보상 (Latency & Timing compensation), 그리고 "Dynamic-First, Coordinate-Fallback" 로케이터 패턴이 포함되어 있습니다.)
mcp_server/rules.md를 다음 위치로 마운트하거나 복사할 수 있습니다:
Antigravity: rules.md의 내용을 워크스페이스 규칙(Workspace Rules), 전역 규칙 설정(Global Rules settings) 또는 에이전트 지침에 추가합니다. Claude Code: artemis mcp --install claude를 실행하여 규칙을 ~/.claude/rules/artemis.md에 설치합니다. (규칙은 정확히 한 위치에만 설치해야 합니다. Claude Code는 ~/.claude/CLAUDE.md와 ~/.claude/rules/*.md 모두를 로드하므로, 규칙을 중복하는 것은 컨텍스트 낭비입니다.) Cursor: 내용을 .cursorrules에 복사하거나 .cursor/rules/artemis.mdc에 규칙 파일을 생성합니다. Codex: 내용을 ~/.codex/AGENTS.md에 추가합니다 (또는 활성 AGENTS.override.md). Windsurf / OpenClaw: 워크스페이스 규칙 또는 전역 시스템 프롬프트에 규칙을 추가합니다.
테스트 마인드셋과 MCP 아키텍처에 대한 더 자세한 내용은 MCP Server README를 참조하십시오.
Codex, Antigravity, 또는 Claude Code에서는 단순히 다음 프롬프트를 입력하면 됩니다:
"최신 변경 사항을 APK로 빌드하고, 연결된 장치에 설치하며, 테스트 계정으로 로그인 화면을 열고, 로그인 후 예상치 못한 팝업이 있는지 확인한 다음, 최종 페이지의 스크린샷을 반환해 주세요."
Python SDK 통합 (클릭하여 확장)
개발 머신에 제로 런타임 의존성 클라이언트(zero-runtime-dependency client)를 설치합니다. 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():
...

콘솔 개요: ① 스위치 뷰어 (홈 / 워크스페이스) · ② 모델 및 리플레이 (Flash/Pro 상태 및 비디오 리플레이) · ③ 라이브 에이전트 스트림 (액션 인식, 목표 좌표 및 구조화된 결과) · ④ 프롬프트 도킹 (자연어 디스패치) · ⑤ 작업 큐 및 대시보드 (수명 주기 및 기록)
웹 비주얼 테스트 콘솔: 자연어 테스트 디스패치, 실시간 추론 원격 측정(telemetry), 액션 궤적 및 실행 리플레이를 지원하는 실시간 화면 투영 및 인터랙티브 패널로, uv run artemis ui를 사용하여 어느 터미널에서든 서버 수명 주기를 관리할 수 있습니다.
uv run artemis restart, uv run artemis stop, 그리고 uv run artemis status를 통해 관리 가능합니다.;MCP 서버: Antigravity, Claude Code, Windsurf 및 기타 MCP 클라이언트를 버그 재현 및 테스트 실행을 위해 실제 장치에 연결합니다.;개발자 CLI: 자동화된 테스트 케이스, 탐색적 안정성 검사 또는 AndroidWorld 벤치마크를 위한 직접적인 터미널 실행으로, 높은 충실도의 구조화된 터미널 출력을 제공합니다. uv run artemis run
Python SDK: 기존의 자동화 테스트 프레임워크(예: pytest)나 CI/CD 파이프라인에 표준 Python 라이브러리로 통합되며, 강력하게 타입 지정된 Pydantic 구조화 출력 및 어설션 지원을 제공합니다.
장치에서 첫 번째 작업을 수행하면 Artemis Accessibility Helper가 설치됩니다. 이는 UiAutomation 연결을 사용하지 않고 화면 레이아웃을 읽는 작은 접근성 서비스입니다. UiAutomation을 사용하는 도구들은 FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES를 활성화하지 않는 한 이 헬퍼를 비활성화할 수 없습니다.
사용자는 축소된
.env 파일에
- 자동 설치 방지:
ARTEMIS_HELPER_AUTO_INSTALL=false
.env 파일에
만약 헬퍼가 작업 도중 실패하면, ARTEMIS는 UIAutomator2로 폴백(fallback)하며 이를 작업 타임라인(mobile_manage_task)의 상태 및 최종 보고서에서 알립니다.
Artemis는 Google Research의 벤치마크인 AndroidWorld에서 20개 이상의 앱과 100개 이상의 다단계 작업을 아우르며 99%+의 완료율을 달성했습니다.
사전 실행 확인 및 액션 버스트(Action Bursts): Pro는 개별 액션을 전송하기 전에 대상이 실시간 UI 트리와 픽셀과 일치하는지 확인합니다. 액션 버스트는 다른 모델 턴을 기다리지 않고 임시 컨트롤을 처리합니다.
요소 위치 지정 (Element Locating): 접근성 계층 구조(accessibility hierarchies)와 OCR을 시각적 모델과 결합하여 사용자 정의 Canvas, Compose, Flutter 인터페이스를 지원합니다.
공유 기록 압축 (Shared History Compression): Flash와 Pro는 오래된 스크린샷을 시각적 요약으로 대체하고 완료된 단계를 검색 가능한 기록 청크로 압축합니다. 컨텍스트 임계값(Context thresholds)은 원본 턴이 언제 대체되는지를 제어합니다.
ARTEMIS는 서로 다른 자동화 요구 사항에 맞춰 조정된 두 가지 실행 프로파일을 지원합니다:
Flash 프로파일 (Fast and token-efficient reactive loop (~3–5s per step): 하나의 모델이 실시간 화면을 관찰하고, 생각하며, 행동하는 반응형 루프이며(그래프 오케스트레이션 없음), 단계당 약 3~5초가 소요됩니다. 일상적이고 결정론적인 UI 작업에 이상적입니다. 이 루프는 기본적으로 무제한입니다(--profile flash)
)agent.flash.max_turns, 0 = 무제한) 왜냐하면 기록이 제한되는 것이 아니라 압축되기 때문입니다: Flash는 Pro 세션의 트랜스크립트 원장(session-relative T+mm:ss 시계, 시각적 요약으로 접힌 스크린샷, 에라(eras)로 청킹되어 검색 가능하며 요청 시 회상되는 이전 단계(search_history/replay_steps)를 공유하고, video_analyzer를 통해 세션 기록을 조회할 수 있습니다. 일시적인 UI(자동 사라지는 컨트롤 바, 토스트 메시지)는 하나의 click_sequence로 탭을 연결하여 처리합니다.
.
제한 사항 (Limitations): 작업 계획이나 메모가 없으며, 사전 실행 안전망(safety net)도 없고, 체크포인트 검증이나 최종 보고서도 없으며, ADB 쉘 접근도 불가능합니다. Pro Profile: 다중 에이전트 그래프로 구축된 계획 및 검증 워크플로우(~단계당 15–40초). artemis --profile pro
)
Planner는 마일스톤과 verify/assert 체크 항목을 포함하는 실시간 Markdown 작업 계획을 유지하고, Operator가 전체 도구 세트(Explorer 접지 기능. 여기서 flash/pro/ultra 계층은 프로필별 사용자 설정임 — pro.explorer.mode/flash.explorer_mode를 config/artemis.jsonc 또는 --explorer-pro-mode에서 지정하며, 에이전트가 임의로 선택하지 않음; 메모, 히스토리 회상, 비디오 분석, ADB 진단 포함)를 사용하여 실행합니다. 모든 단일 동작은 사전 실행 안전망 (Safety Net)(XML 우선, 픽셀 폴백)을 거치며, 다중 동작 **빠른 액션 버스트 (fast-action bursts)**는 일시적인 UI의 턴 지연 시간을 극복하기 위해 연속적으로 발생합니다. 차단되거나 실패한 동작은 **실행 인시던트 (execution incident)**를 열고, 이는 후속 동작이 성공할 때까지 Operator의 컨텍스트에 남아 있어 별도의 복구 에이전트 없이도 Operator 스스로 복구를 처리하게 합니다. 읽기 전용 Checker는 계획 체크포인트를 검증하고 원래 목표 대비 최종 검토를 실행합니다 (--verification-level:off/final(기본값)/checkpoints/strict)). 또한, 계획 마일스톤 수정 시 자문 검토가 이루어집니다. 100단계 이상의 장기 작업 흐름(long-horizon workflows), [Loop:continuous] 모니터링, 그리고 선택적 서면 보고서를 처리합니다.
Android Studio 통합: Android Studio 내에서 에디터 디버깅, 테스트 기록 및 자동화된 기기 제어를 가능하게 하는 네이티브 IDE 플러그인 및 워크플로우 통합. -
iOS 플랫폼 확장: 멀티모달 인식 및 모바일 자동화를 iOS 장치와 시뮬레이터로 확장. -
온디바이스 경량 VLM: 낮은 지연 시간과 개인정보 보호를 우선시하는 자동화를 위해 가벼운 엣지 비전 모델을 이용한 로컬 실행. -
실시간 양방향 음성 상호 작용 (Real-time Duplex Voice Interaction): 실시간 대화형 제어 및 중단 처리가 가능한 음성 기반 작업 디스패치.
기여는 언제나 환영합니다!
리포지토리를 스타(Star)하여 업데이트 및 출시 소식을 확인하세요 - 기술 토론을 위해 Discord 커뮤니티에 참여하세요
- 이슈를 열거나 풀 리퀘스트(Pull Request)를 제출하세요
본 프로젝트는 Apache License 2.0 하에 라이선스가 부여되었습니다.
Google이 소유하지 않은 코드는 third_party/ 아래에 있습니다.
여기는 상위 프로젝트별로 하나의 디렉토리가 있으며, 각 디렉토리에는 자체 LICENSE와 METADATA가 포함되어 있습니다.
third_party/mobile_use – Minitap, Inc.의 mobile-use 일부이며, Apache License 2.0입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기