[오픈소스] SoMatic: OS 네이티브 에이전트를 위한 비전 전용 프레임워크 (ScreenSpot-Pro에서 GPT-5.5 대비 20% 성능 향상)
[Open Source] SoMatic: A Vision-only Framework for OS-Native Agents (+20% vs GPT-5.5 on ScreenSpot-Pro)
핵심 요약
OS 네이티브 에이전트의 화면 제어 정확도를 높이기 위해 비전 기반의 SoMatic 프레임워크를 개발했습니다.
- 비전 전용 접근법 — DOM이나 접근성 트리 없이 화면 인식만으로 OS 제어를 수행함
- Set-of-Marks 활용 — YOLO 모델로 버튼과 아이콘을 감지해 숫자 오버레이를 씌워 정확한 클릭 좌표를 제공함
- 벤치마크 성능 — ScreenSpot-Pro 테스트에서 GPT-5.5 대비 20%, OmniParser v2.0 대비 40% 높은 정확도 기록
- MCP 서버 지원 — Claude Code 등 MCP 호환 도구와 즉시 연동하여 OS 자동화 구현 가능
여러분 안녕하세요,
최근에 에이전트가 브라우저를 넘어 실제로 컴퓨터를 '사용'하게 만드는 데 너무 많은 시간을 쏟고 있습니다.
제가 계속 부딪혔던 가장 큰 벽은 멀티모달 LLM이 스크린샷을 보고 무엇이 있는지 파악하는 데는 뛰어나지만, 정작 올바른 픽셀을 클릭하는 데는 놀라울 정도로 서툴다는 점입니다. 브라우저에서는 DOM이 도움을 주지만, 네이티브 OS 앱으로 넘어가면 접근성 트리에 의존해야 합니다. 레거시 윈도우 앱이나 커스텀 일렉트론 빌드를 자동화해 본 적이 있다면, 그 트리들이 얼마나 일관성 없고 '비결정적'인지 잘 아실 겁니다.
그래서 저는 순수하게 비전 기반의 접근 방식을 시도하기로 했고, SoMatic을 만들었습니다.
이것은 기본적으로 'Set-of-Marks'(SOM) 프롬프팅 스타일을 OS 레벨로 가져온 것입니다. 저는 파인튜닝된 YOLO 모델을 사용하여 Mac, Windows, Linux 전반에서 버튼, 아이콘, 텍스트 필드를 감지하도록 했습니다. 화면에 숫자 오버레이를 띄워 에이전트가 좌표를 추측할 필요 없이 "4번 클릭"이라고만 하면 프레임워크가 나머지를 처리합니다.
정말 놀라웠던 점은: ScreenSpot-Pro를 대상으로 벤치마크를 돌려봤는데, 현재 GPT-5.5(high) 베이스라인보다 약 20%, OmniParser v2.0보다는 약 40% 더 나은 성능을 보이고 있습니다.
한 가지 이상한 점을 발견했는데: 절제 테스트(ablation testing) 중에 모델이 스크린샷의 시각적 라벨을 보는 것보다 박스의 텍스트 좌표만 가졌을 때 오히려 성능이 더 좋게 나왔습니다. YOLO 탐지가 특정 임계값에서 너무 많은 시각적 노이즈를 추가하는 게 아닐까 생각 중인데, 이 부분은 계속 파고드는 중입니다.
또한 stdio MCP 서버도 포함했으니, Claude Code나 MCP 호환 도구를 사용 중이라면 바로 연결해서 즉시 머신을 제어할 수 있습니다.
영상에서는 Claude Code를 사용해 무작위 PDF를 열고, 체스 포지션을 찾은 뒤 Chess.com에서 1대1로 재현하도록 했습니다.
모두 오픈소스입니다. 한번 써보고 싶으시거나 (아마도 더 가능성이 높겠지만) 다양한 OS 환경에서 어떻게 고장 나는지 찾는 걸 도와주신다면 정말 감사하겠습니다!
사용 방법:
npm install -g somatic-cli/cli
npx skills add Smyan1909/SoMatic
비전 전용 방식과 접근성 트리 방식에 대해 어떻게 생각하시나요? 혹시 메타데이터가 도움이 되기보다는 오히려 걸림돌이 되고 있다고 느끼는 분 계신가요?
(GitHub 링크는 댓글에 있습니다)

