mobile-use: 자연어로 Android 및 iOS 단말기를 조작하는 오픈소스 AI Agent

mobile-use 소개

mobile-use는 안드로이드와 iOS 기기를 자연어 명령으로 제어할 수 있게 해주는 오픈소스 AI 에이전트 프로젝트입니다. 단순한 매크로나 스크립트 실행이 아닌, 실제 사람이 스마트폰을 조작하듯이 UI를 인식하고, 앱을 탐색하며, 데이터를 추출하는 것이 가능합니다. 예를 들어 “Gmail을 열고 읽지 않은 메일 3개의 발신자와 제목을 알려줘”라는 명령을 입력하면, 모바일 기기에서 해당 작업을 수행한 뒤 JSON 형태로 결과를 반환해줍니다.

mobile-use in Action

mobile-use는 샌프란시스코와 파리에 거점을 둔 AI 연구소 minitap에서 개발 중이며, 현재 활발히 개선되고 있습니다. 특히 AndroidWorld라는 국제 벤치마크에서 오픈소스 부문 1위를 차지하면서 그 성능을 입증했습니다. 단순한 실험용이 아니라 실제 스마트폰을 대상으로 한 강력한 자동화 도구라는 점에서 주목할 만합니다. mobile-use 프로젝트의 AndroidWorld Benchmark Results 관련 내용을 더 자세히 보고 싶으시다면, 여기를 눌러 문서를 확인해주세요.

오늘날 스마트폰은 개인과 업무 생활에서 핵심적인 도구로 자리 잡았지만, 많은 반복 작업이나 앱 간 전환이 필요할 때 생산성을 떨어뜨리는 요인이 되곤 합니다. mobile-use는 이러한 문제를 해결하기 위해 등장했으며, AI와 LLM 기반의 자연어 처리 기술을 활용해 사용자의 요청을 스마트폰 자동화 작업으로 변환합니다. 따라서 개발자뿐 아니라 비개발자도 직관적으로 활용할 수 있는 점이 큰 장점입니다.

지금까지 모바일 자동화는 주로 Appium, UIAutomator, XCUITest 같은 테스트 프레임워크를 통해 이루어졌습니다. 하지만 이러한 도구들은 설정이 복잡하고 코드 작성이 필요하며, 특정 시나리오에 맞게 커스터마이징해야 하는 단점이 있습니다. 반면 mobile-use는 자연어 기반 접근 방식을 택해 “설정을 켜줘”, “카카오톡에서 마지막 대화 상대에게 메시지 보내”와 같은 명령으로 즉시 동작할 수 있습니다.

또한, 기존 프레임워크는 주로 앱 테스트를 목적으로 설계된 반면, mobile-use는 범용적인 스마트폰 자동화를 겨냥합니다. 이를 통해 개인 비서, 데이터 수집, 앱 간 워크플로우 실행 등 다양한 활용 가능성을 보여줍니다.

mobile-use의 주요 기능

  • 자연어 제어: mobile-use의 핵심은 LLM을 활용한 자연어 처리입니다. 사용자는 영어뿐 아니라 모국어로 명령을 내릴 수 있으며, AI 에이전트가 이를 해석해 실제 스마트폰 조작으로 변환합니다.

  • UI 기반 자동화: 단순히 앱을 실행하는 수준이 아니라 UI 컴포넌트를 인식하여 앱 내에서 버튼을 누르거나 스크롤하는 등의 세밀한 동작을 수행할 수 있습니다.

  • 데이터 추출: 앱에서 필요한 데이터를 직접 읽어 JSON 같은 구조화된 형식으로 반환합니다. 예를 들어, “네이버 뉴스 앱에서 첫 페이지 기사 제목을 JSON으로 뽑아줘” 같은 요청이 가능합니다.

  • 확장성과 유연성: 사용자가 원하는 LLM 모델(OpenAI, Anthropic, HuggingFace 등)을 설정 파일에서 교체해 사용할 수 있도록 설계되었습니다.

mobile-use의 설치 및 실행 방법

mobile-use는 두 가지 방식으로 실행할 수 있습니다.

  1. Docker 기반 빠른 실행
  • Android 기기 또는 에뮬레이터 연결
  • Docker 설치 후 스크립트 실행
  • 예시:
./mobile-use.sh "Open Gmail, find first 3 unread emails, and list their sender and subject line" --output-description "A JSON list of objects, each with 'sender' and 'subject' keys"
  1. 개발자 모드(수동 실행)
  • Python 환경 세팅 (uv 패키지 관리자 사용)
  • Android의 경우 ADB 설치 필요, iOS의 경우 Xcode 필요
  • Maestro 프레임워크를 활용하여 기기와 상호작용

사용 예시

  • 배터리 상태 확인

    python ./src/mobile_use/main.py "Go to settings and tell me my current battery level"
    
  • Gmail 읽지 않은 메일 목록 추출

    python ./src/mobile_use/main.py \
    "Open Gmail, find all unread emails, and list their sender and subject line" \
    --output-description "A JSON list of objects, each with 'sender' and 'subject' keys"
    

라이선스

mobile-use 프로젝트는 MIT License로 공개 및 배포되고 있습니다. 상업적 사용에 제한이 없으며, 누구나 자유롭게 수정 및 재배포할 수 있습니다.

:house: mobile-use를 개발한 minitap 홈페이지

:github: mobile-use 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: