안녕하세요, AgentBlue라는 모바일 에이전트 시스템을 만들었습니다.

AgentBlue는 터미널에서 자연어 명령을 입력하면 Android 기기가 알아서 앱을 탐색하고, 탭하고, 타이핑하는 오픈소스 AI 자동화 시스템입니다.

동작 방식

Android의 Accessibility Service로 현재 화면의 UI 트리를 읽고, 이를 LLM에 전달해 다음 행동을 결정합니다. 이 ReAct(Reasoning + Acting) 루프를 완료 조건이 충족될 때까지 반복합니다.

"YouTube에서 로파이 음악 검색해줘"
→ UI 파싱 → LLM 판단 → CLICK "YouTube" → TYPE "로파이" → CLICK 검색 → DONE
CLI와 Android 앱은 Firebase Firestore를 릴레이 서버로 사용해 실시간으로 통신합니다. 별도 서버 없이 8자리 세션 코드로 페어링합니다.

주요 특징

  • 멀티 LLM 지원 — OpenAI, Google Gemini, Anthropic Claude, DeepSeek 중 선택
  • 터미널 REPL — agentblue start로 세션 시작, 자연어로 명령 전송
  • 원격 설정 — CLI에서 /setting, /model로 Android 앱 설정 변경
  • 실시간 상태 확인 — 각 스텝의 진행 상황을 터미널에서 실시간으로 확인
  • 안전 가드 — 결제 확인, 계정 삭제 등 되돌릴 수 없는 액션 앞에서 자동 중단
  • Stuck 감지 및 복구 — 같은 화면에서 반복 실패 시 힌트 주입 또는 BACK 강제 실행
  • 기기 단독 사용 — CLI 없이 플로팅 버튼으로 기기에서 직접 명령 입력 가능
    빠른 시작

사용 방법

npm install -g @agentblue/cli
agentblue init # Firebase 설정 + 언어 선택 (공유 서버 기본 제공)
agentblue start # 세션 코드 발급 → Android 앱에 입력 → 연결 완료
Android 앱은 Accessibility Service와 오버레이 권한만 허용하면 바로 사용할 수 있습니다.

왜 만들었나

RPA 도구들은 대부분 화면 좌표 기반이라 앱 업데이트 한 번에 스크립트가 망가집니다. AgentBlue는 UI 의미(텍스트, contentDescription, resource ID)를 기반으로 타겟을 찾기 때문에 레이아웃 변경에 훨씬 강합니다. LLM이 "다음에 뭘 해야 하는지"를 매 스텝마다 새로 판단하므로, 미리 시나리오를 짜지 않아도 됩니다.

피드백과 기여 환영합니다. 특히 더 나은 UI 파싱 전략, Stuck 감지 개선 아이디어가 있으시면 이슈나 PR, 커맨트로 알려주세요!

감사합니다