TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 22 READS

스크린샷 없이 맥을 조작한다: 1/50센트짜리 컴퓨터 사용 실험

스크린샷 없이 맥을 조작한다: 1/50센트짜리 컴퓨터 사용 실험
SOURCE IMAGE · HACKER NEWS

프론티어 모델 기반의 '컴퓨터 사용(computer use)'은 강력하지만 비싸다. 매 단계마다 화면 스크린샷을 통째로 큰 모델에 보내고, 다음 행동 계획이 나올 때까지 몇 초를 기다린다. typesafe-computer-use는 이 전제를 뒤집는 오픈소스 실험이다. 사용자가 평범한 영어로 목표를 입력하면 맥이 그 목표를 향해 화면을 조작하는데, 한 단계당 비용이 약 0.0002달러, 즉 1센트의 50분의 1 수준이다. 핵심은 스크린샷을 대형 모델에 보내지 않는다는 점이다. 화면을 결정론적으로 읽어 들이고, 작은 분류 모델에게 '다음에 무엇을 할지'만 묻고, 자유 텍스트 입력이 정말 필요한 텍스트 필드에서만 글쓰기 모델을 호출한다.

이 설계의 출발점은 단순한 관찰이다. 대부분의 단계는 '계획'이 필요 없다. 짧은 후보 목록에서 하나를 빠르고 싸게 고르되, 신뢰도 수치로 걸러낼 수 있으면 충분하다. 이 프로젝트가 사용하는 TypeSafe는 바로 그 역할을 판다. 최대 255개의 선택지에 대해 전체 확률 분포와 보정된 신뢰도를 수백 밀리초 안에 돌려주는 결정(decision) 모델이고, 출력 토큰 비용이 무료다. typesafe-computer-use는 이 결정 모델을 중심으로 짠 컴퓨터 사용 루프다.

화면을 어떻게 읽는가

화면 인식은 두 갈래다. 하나는 macOS의 Vision OCR로 텍스트 블록을 읽는 것이고, 다른 하나는 접근성(Accessibility) 트리를 걸어 앱이 스스로 선언한 컨트롤을 수집하는 것이다. OCR은 아이콘을 볼 수 없지만 접근성 트리는 볼 수 있어 서로를 보완한다. 각 항목은 출처를 함께 지닌다. 텍스트 블록이면 ocr, 앱이 선언한 컨트롤이면 ax, 둘 다 같은 것을 찾으면 ax+ocr이다. 예컨대 ax 항목은 분류기 입력에서 button 'Share' (top-right)처럼 읽혀, 실제 버튼과 단순한 텍스트 한 줄을 구분하게 해준다.

다만 접근성 트리의 커버리지는 앱마다 크게 다르다. 개발자가 맥 한 대에서 열 개 앱을 측정한 결과, Finder는 화면에 보이는 컨트롤의 100%에 라벨이 붙어 있었지만 Chrome 88%, Slack 85%, Notion 68%, 그리고 Spotify는 CEF 셸이 창 버튼 세 개만 노출해 사실상 0%였다. 터미널은 격자 전체를 하나의 텍스트 영역으로만 드러낸다. 그래서 접근성 트리는 어디까지나 보너스 소스이지 OCR의 대체재가 아니다. 라벨은 웹·일렉트론 앱에서는 AXDescription, AppKit 앱에서는 AXTitle에서 주로 읽힌다.

결정을 쪼개고 신뢰도로 거른다

흥미로운 설계 원칙은 하나의 결정을 세 개의 질문으로 나눈다는 점이다. 이렇게 하면 화면의 잡음이 행동 선택에 섞이지 않는다. 개발 과정에서 발견된 정체(stall)는 대부분 사실상 같은 의미를 가진 두 선택지에서 나왔다. 신뢰도는 확률의 집중도를 재는 값이라, 의미가 겹치는 선택지는 언제나 '망설임'으로 읽힌다. 그래서 행동 후보는 상호 배타적으로 유지해야 한다. 루프는 done이나 none이 나오거나, 신뢰도가 기준값(기본 0.4) 아래로 떨어지거나, 두 번 연속 아무 동작도 하지 않거나, 지정한 단계 수에 도달하면 스스로 멈춘다.

비용 구조도 명확하다. Vision OCR이 한 단계의 약 3분의 2를 차지하고, 픽셀 수가 아니라 읽은 텍스트 양에 따라 과금되므로 유일한 절약 방법은 화면을 덜 읽는 것이다. 각 단계 로그에는 ocr 0.31s (22% of screen, 2 rects)처럼 얼마나, 몇 조각을 읽었는지가 찍힌다. 모든 실행은 runs//에 저장돼, 정체가 발생하면 화면을 건드리지 않고 오프라인에서 재생하며 고칠 수 있다.

솔직한 한계와 실무적 함의

제작자는 정직한 단서를 남겼다. 같은 스크린샷과 목표를 놓고 각각 한 번씩 결정하게 했을 때, 대형 모델은 픽셀에서 이벤트 날짜를 직접 읽어 별도 도구 없이 비교했다. 반면 이 분류기 방식은 날짜 파싱을 따로 만들어줘야 했다. 다시 말해 프론티어 모델이 공짜로 해내던 모든 추론을 여기서는 결정론적 상태로 하나하나 다시 구현해야 한다. 저렴함의 대가는 '똑똑함을 직접 코딩해 넣는 노동'인 셈이다.

실무자 입장에서 이 프로젝트의 가치는 완성된 자동화 도구라기보다 아키텍처 관점의 참고 사례에 있다. 화면 자동화나 RPA에서 매 단계 대형 멀티모달 모델을 호출하는 대신, 결정론적 화면 파싱 + 값싼 분류 + 필요할 때만 생성 모델이라는 계층화가 비용과 지연을 동시에 줄일 수 있음을 보여준다. 실행에는 macOS 14 이상, Python 3.12 이상, uv가 필요하고, 터미널에 화면 기록과 손쉬운 사용 권한을 반드시 부여해야 한다. 권한이 없으면 캡처가 배경화면만 찍히거나 클릭이 조용히 무시된다. 또한 비밀번호는 절대 입력하지 않고 브라우저 암호 관리자나 OCR로 읽히는 SSO 버튼에 의존하도록 설계됐다. macos.py를 xdotool과 AT-SPI로, Vision OCR을 PaddleOCR나 RapidOCR로 바꾸면 리눅스로 이식할 수 있다는 점도 구조가 플랫폼에 얼마나 얇게 결합돼 있는지 보여준다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/awlevin/typesafe-computer-use
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...