V VibeCoding 365
목록으로 Google ARTEMIS Android Agent

바이브코딩

Google ARTEMIS | 자연어로 안드로이드를 조작하는 Pixel 테스트 에이전트

PTE Fusion 팀이 2026년 8월 공개한 MCP 기반 모바일 조작 에이전트

Google Pixel-Test-Engineering(PTE) Fusion 팀은 2026년 8월 13일 GitHub 조직 google 아래에 ARTEMIS 저장소를 공개했다. 공식 한 줄은 자연어 지시를 안드로이드 자동화로 바꾼다는 문장이다. 라이선스는 Apache 2.0, 런타임은 Python 3.12 이상이고, pyproject.toml 버전은 1.0이다.

조사 기준일 2026년 9월 10일 GitHub API에서 이 저장소는 별 1305, 포크 110, 커밋 109다. USB 디버깅이 켜진 안드로이드 실기기나 에뮬레이터가 있어야 하고, Gemini나 Claude, GPT-4o, Qwen-VL 같은 멀티모달 모델 키 중 하나가 .env에 들어가야 한다.

NASA의 달 프로그램 아르테미스, 독일 TUM의 학습 플랫폼 Artemis, 에이전트용 헤드리스 브라우저 Artemis와는 다른 프로젝트다. 여기서 다루는 것은 Pixel 테스트 엔지니어링이 만든 모바일 조작 에이전트다.

범위는 공식 README, MCP 서버 문서, Python 클라이언트, 이슈 트래커, Google Research의 AndroidWorld 논문이다. 명령과 수치는 공개 문서 인용이다.

자연어가 안드로이드 조작이 되는 ARTEMIS 흐름
그림 1. IDE 지시가 MCP 도구를 거쳐 실제 폰의 탭과 스크린샷이 된다

셀렉터 파일을 미리 쌓아 두지 않는 점이 이 그림의 핵심이다. 에이전트가 지금 화면의 접근성 트리와 픽셀을 보고 누른다.

기존 자동화와 다른 점

Appium은 WebDriver로 바깥에서 앱을 몰고, Maestro는 YAML 흐름으로 같은 일을 읽기 쉽게 적는다. Espresso는 앱 프로세스 안에서 뷰를 기다린다. 세 도구 모두 사람이 단계와 위치자를 먼저 쓴다. UI가 바뀌면 그 위치자를 고친다.

ARTEMIS는 그 위치자 유지를 전제로 두지 않는다. README는 접근성 계층과 OCR을 쓰고, Canvas나 Compose, Flutter처럼 트리가 빈 화면에서는 비전 모델로 좌표를 잡는다고 적는다. 공식 표현은 Dynamic-First, Coordinate-Fallback이다. 테스트 코드가 아니라 실행 중인 에이전트가 화면을 보고 다음 탭을 고른다.

그래서 쓰는 자리가 갈린다. 회귀 스위트를 수천 개 고정해 돌리는 팀에는 Appium이나 Espresso가 그대로 남는다. 바이브코딩 쪽에서 방금 빌드한 APK를 폰에 심고, 로그인 뒤 팝업이 뜨는지 채팅으로 확인하려는 자리에는 ARTEMIS가 맞는다. 공식 README의 예시 프롬프트가 바로 그 순서다. 최신 변경을 APK로 만들고, 연결된 장치에 설치하고, 테스트 계정으로 로그인 화면을 연 뒤, 예상 밖 팝업을 확인하고 마지막 화면 스크린샷을 돌려 달라는 문장이다.

도구사람이 먼저 쓰는 것실행 주체플랫폼
Espresso뷰 ID, 동기화앱 프로세스안드로이드만
Appium코드와 위치자WebDriver 서버안드로이드·iOS 등
MaestroYAML 흐름접근성 엔진안드로이드, iOS, 웹
ARTEMIS자연어 목표멀티모달 에이전트안드로이드만 (iOS는 로드맵)
핵심 포인트: ARTEMIS는 Appium 대체 제품이 아니다. Cursor 같은 코딩 에이전트가 실제 폰을 사람처럼 눌러 보게 하는 장치 팔이다. MCP 개념은 모델 컨텍스트 프로토콜 항에 따로 정리돼 있다.

데모 GIF는 Google Maps에서 운전 경로를 잡고 총 시간을 계산한 뒤 YouTube에서 Coldplay를 재생하는 장면이다. 앱 하나 안의 단위 테스트가 아니라 앱을 넘는 일상 작업을 공식 예시로 내건 것이다.

쓰는 자리

공식 문서가 반복하는 쓰임은 네 갈래다. 모바일 QA, 버그 재현, 코딩 에이전트의 장치 루프, pytest 같은 기존 자동화에 SDK로 끼워 넣기.

모바일 QA에서는 테스트 시나리오를 자연어로 던지고 Logcat과 스크린샷을 받는다. Antigravity 워크플로는 프롬프트 입력, 테스트 계획, 실기기 실행, 최종 보고 네 장으로 README에 박혀 있다. 계획이 사람 검토를 거친 뒤에 장치가 움직인다.

버그 재현은 IDE 채팅에서 일어난다. MCP가 연결되어 있으면 에이전트가 mobile_run_task로 폰을 돌리고, mobile_inspect_trace로 궤적을 보며, mobile_diagnose로 환경부터 고친다. rules.md는 도구가 에러를 내면 추측으로 mobile_run_task를 다시 돌리지 말고 진단을 먼저 하라고 못 박는다.

코딩 에이전트 루프는 바이브코딩에 가장 가깝다. 코드를 고치고 APK를 심은 다음, 화면이 기대한 상태인지 같은 채팅에서 확인한다. 위치자를 고치는 왕복이 줄어든다. 대신 매 단계마다 모델이 화면을 읽으므로 토큰과 시간이 든다. Flash는 단계당 약 3에서 5초, Pro는 약 15에서 40초다.

SDK 자리는 CI다. artemis-client는 개발 머신에 ADB와 모델을 두지 않는다. HTTP로 장치 호스트의 데몬만 부른다. 런타임 의존성이 표준 라이브러리뿐이라고 클라이언트 README가 적는다. result.succeeded를 어서션에 넣는 Pydantic 구조가 나온다.

자리입구나오는 것
웹 콘솔artemis ui미러, 프롬프트, 리플레이
IDE 채팅MCP 도구비동기 태스크, 알림, 스크린샷
터미널artemis run구조화된 CLI 출력
pytest / CIArtemisClient성공 여부, trace id

휴대폰으로 집 서버의 에이전트를 만지는 방향은 Orca Mobile Tailscale이 다룬다. ARTEMIS는 반대다. 컴퓨터의 에이전트가 휴대폰을 만진다.

Flash와 Pro

같은 제품 안에 실행 프로파일이 둘이다. 길이가 길다고 Pro를 고르는 규칙은 아니다. rules.md는 히스토리를 잘라 버리지 않고 압축하므로, 단계 수 자체가 Pro 이유가 되지 않는다고 적는다. 계획, 체크포인트, 메모, 보고서, ADB와 로그, 가지가 많은 탐색이 필요할 때 Pro다.

Flash는 그래프 오케스트레이션이 없다. Planner도 Checker도 없고, 실행 전 안전망도 없다. 한 모델이 화면과 요소 목록을 보고 바로 누른다. 잠깐 떴다 사라지는 토스트는 click_sequence로 한 턴에 묶는다. 한계도 README가 나열한다. 태스크 계획과 노트, 실행 전 안전망, 체크포인트 검증, 최종 보고서, ADB 셸이 없다.

Pro는 Planner가 마크다운 계획과 verify / assert 항목을 유지하고, Operator가 Explorer 그라운딩과 ADB 진단을 쓰며, 읽기 전용 Checker가 끝에서 목표를 다시 본다. 단일 동작은 XML 우선 안전망을 지나고, 막히면 execution incident가 Operator 맥락에 남는다. 별도의 수리 에이전트는 없다. verification_level은 off, final(기본), checkpoints, strict다.

ARTEMIS Flash와 Pro 실행 프로파일 비교
그림 2. Flash는 반응 루프, Pro는 Planner와 Checker가 있는 그래프

Explorer의 flash / pro / ultra 깊이는 에이전트가 고르지 않는다. 사용자 설정이다. config/artemis.jsonc의 pro.explorer.mode / flash.explorer_mode 또는 CLI 플래그로 고정한다.

Cursor와 Antigravity에 붙이는 방법

ARTEMIS는 네이티브 MCP 서버를 포함한다. 지원 목록은 Antigravity, Cursor, Claude Code, Codex, Windsurf, VS Code, Cline/Roo, OpenClaw다. 설치 스크립트가 전역 MCP 설정과 mcp_server/rules.md를 홈 디렉터리에 넣는다. Cursor는 ~/.cursor/rules/artemis.mdc다. 프로젝트 폴더에 규칙 파일을 만들지 않는다고 MCP README가 적는다.

한 줄 설치 명령은 저장소 루트에서 uv run artemis mcp --install all 또는 --install cursor다. 수동이면 uv run artemis mcp --generate-config가 JSON이나 TOML 조각을 뽑는다. 커맨드는 프로젝트 .venv의 Python이고, args는 -m mcp_server다.

도구는 다섯 개다.

도구역할
mobile_run_taskFlash 또는 Pro 태스크를 백그라운드로 시작
mobile_manage_task상태, 중지, 지시 주입. 연속 루프는 release_loop=true
mobile_get_device_state스크린샷 또는 OCR+XML 계층
mobile_inspect_trace궤적, 오버레이, 추론
mobile_diagnose환경 의사. ready / degraded / blocked

Cursor와 Windsurf는 태스크가 끝나면 데스크톱 토스트와 파일 감사 로그가 기본이다. Antigravity는 AgentAPI로 대화창을 깨운다. Claude Code도 토스트와 JSONL 감사다. 웹훅은 ARTEMIS_WEBHOOK_URL 계열이다.

rules.md의 첫 원칙은 추측으로 UI를 쓰지 말라는 것이다. 테스트 코드를 저술하기 전에 실기기에서 경로를 탐험한다. 탐색 중 대기 시간은 모델 간격에 맞춰 줄인다. Flash 평균 간격은 대략 5초이므로, 30초 대기가 필요하면 약 25초를 지시하라고 적혀 있다. Pro는 턴 간격이 약 30초라 긴 sleep을 넣지 않는 경우가 많다. 최종 테스트 코드에는 그 지연을 그대로 두지 않고, 프레임워크의 명시적 대기로 옮긴다.

장치가 여러 대면 에이전트는 사용자에게 시리얼을 묻는다. 생략하면 풀에서 고른다. 한 장치는 한 태스크만 실행하고, 다른 장치는 병렬이다.

설치와 장치 조건

공식 빠른 시작은 저장소를 받은 뒤 macOS·Linux는 ./start.sh, Windows PowerShell은 .\start.bat다. PowerShell은 현재 폴더의 실행 파일을 기본 검색하지 않으므로 앞의 .\가 필요하다. CMD에서는 start.bat다.

2026년 9월 10일 이슈 #15는 Windows 11 PowerShell에서 start.ps1 따옴표 파싱 오류를 보고했다. Node 경로가 아니라 스크립트 문법 오류였다. 같은 날 닫혔다. 최신 main을 받기 전에 이 이슈를 보면, 시작 스크립트 실패를 ADB 미설치로 오해하지 않게 된다.

시작 스크립트는 ADB, scrcpy, FFmpeg, Python(uv)을 탐지해 설치하려 한다. 웹 콘솔은 기본 브라우저에서 localhost:8000을 연다. 공개 인터넷 주소가 아니므로 본문에서 클릭 링크로 두지 않는다. CLI만 쓰려면 아래처럼 한 줄로 던진다.

배터리 화면을 열어 잔량을 묻는 Flash 실행은 공식 README가 예시로 적는다.

uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash

환경 변수 템플릿 .env.example은 LLM 키를 적어도 하나 넣으라고 한다. GEMINI_API_KEY, GOOGLE_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, OPEN_ROUTER_API_KEY, XAI_API_KEY다. 고급 OCR용 OCR_API_KEY는 선택이다. ARTEMIS_DEFAULT_PROFILE 기본값은 flash다. ARTEMIS_KEEP_DEVICE_AWAKE 기본값은 true다. 개인 휴대폰을 붙여 화면이 꺼지길 원하면 false로 바꾼다.

원격 SDK는 더 까다롭다. 클라이언트 README는 데몬 관리 API에 원격 인증이 없다고 적는다. 포트를 공인 인터넷에 열지 말고, 초기에는 SSH 터널로 localhost:8000에 붙인다. 운영에서는 리버스 프록시가 HTTPS와 베어러 토큰을 강제하고 태스크 API만 노출하라고 한다.

ARTEMIS 웹 콘솔 MCP CLI Python SDK 네 면
그림 3. 웹 콘솔, MCP, CLI, Python SDK가 같은 데몬을 가리킨다

AndroidWorld 99퍼센트의 맥락

README는 Google Research AndroidWorld에서 태스크 완료율 99%+를 주장한다. 배지 문구는 SOTA다. AndroidWorld는 실기기 에뮬레이터 위에서 20개 앱, 116개 손작업 태스크를 돌리는 벤치마크다. 2024년 논문의 M3A(GPT-4 Turbo, 접근성 트리)는 성공률 30.6%, 사람은 80.0%였다.

그 사이 여러 오픈 에이전트가 60%대에서 90%대까지 숫자를 냈다. google/artemis의 99%+는 공식 README와 리더보드 이미지의 주장이다. 사용 모델, Flash인지 Pro인지, 시드, 재현 로그는 공개되지 않았다. 벤치마크 앱은 영어권 오픈소스와 시스템 앱 중심이다. 한국어 시스템 UI나 국내 뱅킹 앱 점수는 없다.

논문 이름에 Artemis가 들어간 D-Artemis(2025)는 다른 연구 에이전트다. google/artemis와 저장소가 다르다.

한계와 아직 없는 것

로드맵 체크박스는 비어 있다. Android Studio 네이티브 플러그인, iOS 확장, 온디바이스 경량 비전 모델, 실시간 음성 이중 채널이다. 2026년 9월 기준으로 iOS 시뮬레이터는 대상이 아니다.

실기기 녹화는 이슈 #9가 열린 채로 남아 있다. 자율 태스크가 끝난 뒤 artemis/traces/에 화면 녹화가 없다는 보고다. scrcpy는 설치돼 있었다. 리플레이를 전제로 한 QA 파이프라인은 이 이슈를 먼저 본다.

Windows 시작 스크립트 파싱은 #15로 드러났고 닫혔다. 장치 시리얼을 클라이언트에 넘기는 요청(#10)도 닫혔고, 현재 SDK 예시는 device_serial을 받는다.

한국어 라벨, 삼성·샤오미의 추가 USB 디버깅 화면, 보안 키보드는 공식 평가 표에 없다. SPA-Bench 같은 다른 벤치마크는 영어 과제보다 중국어 과제에서 에이전트 성공률이 낮다고 보고한 바 있다. ARTEMIS가 한국어 설정 앱에서 같은 99%를 낸다는 숫자는 없다.

Flash로 개인 폰의 결제·인증 화면을 돌리는 시나리오는 문서가 권하지 않는다. 기본이 화면을 켜 두는 설정이고, 데몬 포트 인증이 없으며, 모델이 화면을 클라우드로 보낸다. 테스트 전용 에뮬레이터나 실험 단말이 맞는 자리다.

마무리

앞에서 다룬 Google ARTEMIS의 핵심만 짧게 정리한다.

  • Pixel 테스트 엔지니어링이 2026년 8월 13일 공개한 안드로이드 조작 에이전트다. Apache 2.0, Python 3.12, 버전 1.0이다.
  • 자연어 목표가 입력이고, 접근성 트리와 OCR과 비전 폴백이 위치자다. Appium 스위트를 통째로 대체하는 제품이 아니다.
  • 쓰는 자리는 APK 설치 후 화면 확인, 크로스앱 재현, IDE MCP, pytest SDK 네 면이다.
  • Flash는 3에서 5초 반응 루프, Pro는 계획과 검증이 있는 그래프다. 단계 수가 아니라 검증 필요가 갈림길이다.
  • 데몬 포트는 인터넷에 직접 열지 않는다. 개인 폰은 ARTEMIS_KEEP_DEVICE_AWAKE를 먼저 본다.
  • iOS는 로드맵이고, 99%+는 공식 주장이다. 한국어 UI 점수는 공개되지 않았다.

「코딩 에이전트에게 안드로이드 실기기를 사람처럼 누르게 하는 팔이지, 기존 테스트 코드를 지우는 도구가 아니다.」 위치자 유지 비용이 큰 탐색과 방금 빌드한 APK 확인에 붙이고, 고정 회귀 스위트와 iOS는 다른 도구를 둔다.

출처와 링크

조사 기준 2026년 9월. 1차 출처는 공식 저장소와 MCP 문서, 클라이언트 README, GitHub API, AndroidWorld 논문이다.

FAQ

자주 묻는 질문

NASA 아르테미스 달 프로그램과 같은 프로젝트인가요?

아닙니다. 이 저장소는 Google Pixel-Test-Engineering Fusion 팀이 만든 안드로이드 조작 에이전트입니다. NASA 임무, TUM 학습 플랫폼, 헤드리스 브라우저 프로젝트와 이름만 겹칩니다. 정본 URL은 github.com/google/artemis입니다.

iPhone이나 iOS 시뮬레이터에서도 동작하나요?

2026년 9월 README 기준으로는 안드로이드만 대상입니다. iOS 확장은 로드맵에 체크되지 않은 항목으로 남아 있습니다. 아이폰 QA가 필요하면 다른 도구를 씁니다.

기존 Appium이나 Maestro 스위트를 지우고 바꿔야 하나요?

공식 문서는 대체를 요구하지 않습니다. ARTEMIS는 자연어 목표로 실기기를 탐색하고, 고정 회귀는 위치자 기반 스위트가 남습니다. 방금 빌드한 APK의 화면 확인과 크로스앱 재현에 붙이는 쪽이 문서 예시와 맞습니다.

Flash와 Pro 중 어느 프로파일을 고르면 되나요?

확정된 짧은 UI 조작은 Flash입니다. 계획, 체크포인트, ADB 로그, 긴 탐색, 보고서가 필요하면 Pro입니다. 단계가 많다는 이유만으로 Pro를 고르지 말라고 rules.md가 적습니다. 히스토리는 잘라 버리지 않고 압축합니다.

Cursor가 아니면 MCP를 쓸 수 없나요?

설치 대상에 Antigravity, Claude Code, Codex, Windsurf, VS Code, Cline, OpenClaw가 포함됩니다. Cursor는 ~/.cursor/rules/artemis.mdc에 규칙을 넣습니다. 알림 방식은 IDE마다 다릅니다. Cursor는 데스크톱 토스트, Antigravity는 대화 깨우기입니다.

개인 휴대폰에 USB만 꽂으면 바로 쓰나요?

USB 디버깅 허용과 모델 API 키가 필요합니다. 기본값은 화면을 켜 두는 설정입니다. 데몬 포트에는 원격 인증이 없어 공인 인터넷에 열면 안 됩니다. 결제·인증 화면이 있는 개인 폰보다 테스트 단말이나 에뮬레이터가 문서의 전제에 가깝습니다.

AndroidWorld 99퍼센트는 독립적으로 재현된 숫자인가요?

공식 README의 주장입니다. 재현에 쓴 모델과 시드, 프로파일은 공개되지 않았습니다. 2024년 논문의 M3A는 30.6%, 사람은 80.0%였습니다. 한국어 앱 점수는 없습니다.

한국어 설정 화면에서도 영어 지시가 통하나요?

공식 평가 표에 한국어 UI 항목은 없습니다. 접근성 텍스트와 OCR에 의존하므로 라벨 언어가 바뀌면 실패 모드가 달라질 수 있습니다. 확인되지 않은 숫자로 단정하지 않습니다.