피드로 돌아가기
Dev.toAI/ML
원문 읽기
Go 런타임 기반 On-device Voice Agent 구현 및 a11y-first Cascade 설계
I built a voice agent for Android in a weekend. Here's what actually worked
AI 요약
Context
기존 Mobile Agent 연구들은 ADB 연결 및 외부 노트북 제어 방식에 의존하여 실제 사용성이 낮았음. Python 런타임의 Android 배포 제약과 Vision 중심 접근 방식의 높은 비용 및 낮은 신뢰성 문제가 병목 지점으로 작용함.
Technical Solution
- Go 기반의 Crush 런타임을 사용한 libcrush.so 네이티브 라이브러리 형태의 APK 번들링으로 On-device 실행 환경 구축
- Vision 단일 모델 의존도를 낮추기 위해 a11y text, fuzzy match, OCR, Vision 순으로 작동하는 계층적 Cascade 인터랙션 레이어 설계
- 텍스트 노드에서 최상위 Clickable 조상 노드까지 역추적하는 Parent Chain Walking 로직을 통한 UI 조작 정확도 개선
- On-device OCR(Paddle)을 통한 Canvas 및 WebView 영역의 텍스트 추출 및 Fallback 경로 확보
- LLM API 호출 외의 모든 런타임 프로세스를 단말 내부에서 처리하는 Untethered 아키텍처 구현
실천 포인트
1. UI 자동화 설계 시 Leaf Node의 좌표값이 아닌 Clickable Ancestor를 찾아 클릭하는 로직 검토
2. Android 앱 내 런타임 포함 시 Python 대신 Go와 같은 Cross-compile 지원 언어 고려
3. Multimodal 모델 도입 전 a11y Tree 및 OCR을 통한 텍스트 기반 매칭 우선 적용