Skyvern, RAG 걷어내고 브라우저 에이전트 2.3배 빠르게 만들다

Hacker News7일 전조회 1

브라우저 자동화 오픈소스 프레임워크 Skyvern이 에이전트 구조를 처음부터 다시 쓰고 실행 속도 2.3배 향상을 얻었다. 핵심은 웹페이지를 미리 해석해 LLM에 떠먹여주던 RAG식 전처리를 걷어낸 것이다. 대신 에이전트가 최소한의 컨텍스트로 출발해 필요할 때 스스로 정보를 꺼내 쓰는 방식으로 바뀌었다. 회사는 이 버전을 오픈소스와 클라우드 양쪽으로 공개했다.

기존 Skyvern은 전형적인 RAG 파이프라인을 닮아 있었다. 페이지를 열어 스크린샷을 찍고 주석을 달고, 상호작용 가능한 요소를 목록으로 압축한 뒤 LLM에게 다음 행동을 물었다. 웹사이트의 클릭 가능한 요소를 100% 정확도로 식별할 수 있다는 전제 위에 세워진 설계였다.

그 전제가 무너진 지점은 웹의 복잡도였다. Shadow DOM, iframe, select2 드롭다운, Kendo UI 위젯, Canvas 요소까지 처리하려다 보니 요소 추출 유틸리티가 사실상 새로운 DOM 인터프리터로 불어났다. 더 심각한 문제는 모델을 업그레이드해도 성능이 따라 오르지 않았다는 점이다. 병목이 LLM이 아니라 DOM 파싱 로직이었고, 요소 하나를 잘못 짚으면 실행 전체가 실패했다.

새 구조에서 에이전트가 쥔 도구는 세 가지다. 모델이 생성한 자바스크립트로 HTML을 직접 훑는 기능, 클릭·입력·스크롤·탭 전환 등 Rustwright가 지원하는 브라우저 액션, 그리고 성공이나 실패 사유를 남기고 실행을 끝내는 선언이다. 어떤 정보를 언제 가져올지 판단하는 권한이 사전 처리 레이어가 아니라 모델에게 넘어간 셈이다.

성과는 두 갈래로 검증됐다. 공개 브라우저 에이전트 벤치마크인 Odysseys에서 90.5%의 perfect rubric 성공률을 기록했고, 평균 소요 스텝은 65.4회였다. 약 10만 건의 실제 고객 실행을 대상으로 한 A/B 테스트에서는 런당 비용이 0.039달러에서 0.0302달러로 22.5% 줄었다.

비용과 속도가 동시에 개선된 이유는 호출 구성이 달라졌기 때문이다. 스크린샷이 쓰인 LLM 호출 비중이 27%에서 2.7%로 90% 가까이 떨어졌는데, 이미지가 포함된 호출은 비전 인코더를 거치면서 텍스트 전용보다 1.7배가량 느리다. 전체 토큰 사용량은 런당 18만8천에서 28만6천으로 52% 늘었고 턴 수는 6.4회에서 23회로 3.59배 증가했지만, 턴당 토큰은 2만9천에서 1만2천으로 59% 감소했다. 매 턴 스크린샷과 HTML을 통째로 싣지 않게 되면서 프롬프트 캐시 적중률은 27%에서 79.7%로 뛰었고, 캐시 토큰에 붙는 70% 할인이 총비용을 끌어내렸다.

같은 발표에는 브라우저 엔진 교체 소식도 함께 묶여 있다. Playwright를 Rust로 다시 구현한 Rustwright는 인프로세스 Rust CDP 엔진을 쓰며, 메모리를 70% 덜 차지하고 기동 속도는 2.55배 빠르다고 한다. Skyvern의 메모리 사용량을 줄이려고 만든 것이지만 범용으로 쓸 수 있게 공개했다.

개발자 입장에서 이 사례가 주는 신호는 명확하다. 웹처럼 형태가 제각각인 대상을 다룰 때 사전 파싱 정확도를 끌어올리는 데 자원을 쏟는 대신, 원시 도구와 최소 컨텍스트를 주고 모델이 탐색하게 하는 편이 더 나을 수 있다. 다만 이 선택은 모델의 지시 수행 능력이 충분히 성숙했다는 전제 위에 서 있다.

한계도 남아 있다. 팀은 비용·속도·정확도 세 축 모두 아직 개선 여지가 있다고 본다. 차기 과제로 Jev 같은 이른바 '시스템 원' 모델의 브라우저 에이전트 활용을 실험 중인데, 현재 세대는 64K 컨텍스트 창에 이미지 처리가 불가능해 정확도 손실이 크다고 설명한다.