목록으로
GitHub - rounak/PhoneAgent: An AI agent that can get things done across iPhone apps.
Service2025.06.08

GitHub - rounak/PhoneAgent: An AI agent that can get things done across iPhone apps.

요약

PhoneAgent는 OpenAI 모델을 활용하여 iPhone 앱 전반에서 인간처럼 다양한 작업을 수행하도록 설계된 AI Agent입니다.
️ 이 Agent는 Xcode의 UI testing harness를 통해 앱의 accessibility tree를 인식하고, UI 요소를 탭하거나 텍스트를 입력하는 등 iPhone과 상호작용합니다.
PhoneAgent는 음성 명령을 지원하며 앱 열기, 메시지 전송과 같은 작업을 자동화할 수 있지만, 애니메이션 중 혼동되거나 장시간 작업을 기다리지 못하는 등의 제한점이 있습니다.

상세 내용

PhoneAgent는 OpenAI hackathon에서 개발된, 아이폰 앱 전반에서 작업을 수행할 수 있는 AI 에이전트입니다. 이 에이전트의 목표는 아이폰 사용자가 다양한 앱에서 작업을 자동화할 수 있도록 지원하는 것으로, 인간 사용자처럼 작동합니다.

이 시스템의 핵심 기능은 다음과 같습니다. 사용자는 "Click a new selfie and send it to {Contact name} with a haiku about the weekend", "{app name} from the App Store", "Send a message to {Contact name}: my flight is DL 1715", "Call an Uber X to SFO", "Open Control Center and enable the torch"와 같은 프롬프트를 통해 작업을 지시할 수 있습니다. 에이전트는 앱의 accessibility tree를 "볼" 수 있으며, UI 요소를 탭하고, 스와이프하고, 스크롤하고, 텍스트 필드에 타이핑하고, 앱을 열 수 있습니다. 작업 완료 후 알림에 답장하여 후속 작업을 지시할 수 있으며, 마이크 버튼을 사용하여 에이전트와 대화하거나, 앱이 백그라운드 상태일 때도 "Agent"와 같은 wakeword로 프롬프트를 인식하는 "Always On" 모드를 지원합니다. OpenAI API key는 기기의 keychain에 안전하게 저장됩니다.

PhoneAgent의 작동 방식은 iOS 앱의 sandboxing 제약 조건을 극복하는 데 중점을 둡니다. 이 프로젝트는 탈옥(jailbreak)이 필요 없이 Xcode의 UI testing harness를 활용하여 앱 및 시스템과 상호 작용합니다. 에이전트의 두뇌는 OpenAI의 GPT-4.1 모델이며, 이 모델은 앱의 accessibility contents만을 사용하여 아이폰을 능숙하게 사용하는 것으로 알려져 있습니다. GPT-4.1 모델은 다음과 같은 도구에 접근할 수 있습니다: 현재 앱의 콘텐츠를 가져오는 기능, UI element를 탭하는 기능, 텍스트 필드에 타이핑하는 기능, 앱을 여는 기능. 이 시스템의 중요한 기술적 세부 사항은 PhoneAgent라는 호스트 앱이 TCP Server를 통해 UI test와 통신하여 프롬프트를 트리거한다는 점입니다. 이를 통해 에이전트가 사용자 명령을 받아 실제 기기 UI에 대한 작업을 수행할 수 있습니다.

현재 시스템에는 몇 가지 제한 사항이 있습니다. 키보드 입력 기능이 개선될 여지가 있으며, 애니메이션이 진행 중일 때 뷰 계층(view hierarchy)을 캡처하는 것이 모델을 혼란스럽게 할 수 있습니다. 또한, 모델은 장시간 실행되는 작업이 완료될 때까지 기다리지 않고 성급하게 작업을 포기할 수 있습니다. 현재 모델은 화면의 이미지 표현을 직접 볼 수 없지만, XCTest API를 통해 구현할 가능성은 열려 있습니다. 이 프로젝트는 실험적인 개인 소프트웨어이며, 격리된 환경에서 실행하는 것이 권장됩니다. 앱 콘텐츠는 OpenAI의 API로 전송되며, 모델이 때때로 오류를 범할 수 있습니다.

원본 보기
GitHub
Shared by Anonymous