Vercel Labs agent-desktop: OS 접근성 트리 기반 데스크톱 자동화
Vercel Labs의 오픈소스 도구 agent-desktop은 화면 픽셀 매칭 대신 OS 접근성 트리로 데스크톱 앱을 제어합니다. macOS, Windows, Linux를 모두 지원합니다.
Vercel Labs의 오픈소스 Rust 도구 agent-desktop은 픽셀 매칭 대신 운영체제 접근성 트리를 통해 데스크톱 앱을 읽고 조작합니다. 이 도구는 macOS, Windows, Linux용 CLI와 C 라이브러리(libagent_desktop_ffi)를 제공합니다.

이미지 출처: Chris Tate (@ctatedev)
agent-desktop은 픽셀을 매칭하는 대신 운영체제 접근성 트리를 통해 앱의 UI 구조를 읽습니다. 스냅샷은 에이전트가 조작할 수 있는 요소의 참조자를 포함한 구조화된 JSON을 반환합니다.
접근성 트리 스냅샷과 고유 참조자(@snapshot_id:eN) 구조
문서에 나온 작업 흐름은 관측하고, 참조자에 작업을 수행한 뒤, 다시 관측하는 방식입니다. 스냅샷은 에이전트가 조작할 수 있는 요소의 참조자를 포함한 구조화된 JSON을 반환합니다.
각 대화형 요소에는 @<snapshot_id>:eN 형식의 스냅샷 한정 참조자가 부여됩니다. 문서의 예시 항목은 @s8f3k2p9:e8로 지정됩니다. 한정되지 않은 참조자는 INVALID_ARGS로 거부되며, UI가 바뀌면 작업이 STALE_REF 또는 AMBIGUOUS_TARGET을 반환할 수 있으므로 새 스냅샷과 참조자를 사용해야 합니다.
포커스 탈취 없는 기본 헤드리스 제어와 백그라운드 병렬 처리
agent-desktop은 기본적으로 헤드리스로 실행됩니다. 참조자 작업은 접근성 API를 사용하며 포인터를 움직이거나 포커스를 가져가지 않습니다.
- 백그라운드 실행: 발표에 따르면 사용자가 계속 작업하는 동안 도구가 백그라운드에서 실행됩니다.
- 에이전트 병렬 실행: 발표에 따르면 여러 에이전트가 각자의 커서로 컴퓨터를 병렬 사용합니다.
- 선택적 헤디드 모드: 전역
--headed플래그로 물리 입력을 활성화할 수 있습니다.
크로스 플랫폼 지원과 설치 환경
이 도구는 macOS, Windows, Linux의 접근성 트리를 지원하며, Linux에서는 AT-SPI를 사용합니다.
npm 패키지에는 x64와 ARM64용 네이티브 바이너리와 플랫폼 도우미가 포함됩니다. 도구는 운영 명령 56개를 포함해 총 60개 명령 이름을 제공하며, 각 릴리스에는 프로그램이 명령마다 CLI를 시작하지 않고 프로세스 내부에서 호출할 수 있는 libagent_desktop_ffi가 포함됩니다. 프로젝트는 Apache-2.0 라이선스로 배포됩니다.
출처
- Vercel Labs GitHub 저장소: vercel-labs/agent-desktop
- Vercel Labs 발표 소식: Chris Tate X (@ctatedev)