AI 브라우저 자동화, 토큰을 10분의 1로
접근성 트리 기반 CLI가 DOM 대신 200~400 토큰으로 웹을 조작한다.
에이전트에게 웹 브라우저를 쥐여줄 때 가장 큰 비용은 클릭이 아니라 화면을 읽는 토큰이다. 러스트로 만든 CLI 에이전트 브라우저(agent-browser)는 전체 DOM 대신 압축된 접근성 트리를 넘겨 이 비용을 잘라낸다. 공식 문서에 따르면 한 화면을 읽는 데 드는 토큰은 약 200~400개로, 전체 DOM을 통째로 넘길 때의 3,000~5,000개와 대비된다.
무슨 일인가 / 배경
브라우저 자동화 도구 자체는 새롭지 않다. 다만 기존 도구는 사람이 짠 스크립트를 전제로 만들어져, LLM이 읽기에는 출력이 지나치게 장황했다. 에이전트 브라우저는 처음부터 AI 에이전트를 사용자로 상정했다. 출력은 JSON이 아니라 압축된 텍스트이고, 이유는 단순하다. 텍스트가 토큰을 덜 먹고 모델이 더 자연스럽게 읽기 때문이다.
설치는 npm 전역 설치나 홈브루로 끝나고, 첫 실행 때 agent-browser install로 크롬을 내려받는다. 설치 없이 npx로 바로 시험해 볼 수도 있다. 맥OS·리눅스·윈도우용 네이티브 바이너리가 제공되며, 클로드 코드(Claude Code)·커서(Cursor)·깃허브 코파일럿(GitHub Copilot)·코덱스(Codex)·제미나이(Gemini)·오픈코드 등 셸 명령을 실행할 수 있는 에이전트라면 종류를 가리지 않고 붙는다.
핵심 짚어보기 — 참조 번호로 요소를 특정한다
작동 방식의 핵심은 스냅샷이다. 페이지를 열고 스냅샷을 뜨면 접근성 트리가 돌아오는데, 각 요소에는 @e1, @e2 같은 고유 참조가 붙는다. 이후 조작은 이 번호로 한다. 링크를 누를 때 복잡한 셀렉터를 짜는 대신 참조 번호를 그대로 클릭하면 된다. 이 방식은 결정적이라 같은 번호가 항상 같은 요소를 가리키고, DOM을 다시 조회할 필요도 없다.
명령은 50개가 넘는다. 이동, 폼 입력, 스크린샷, 네트워크, 스토리지, 파일, 탭, 프레임, 디버깅까지 실무에 필요한 범위를 덮는다. 여기에 비디오 녹화, 스트리밍, 프로파일러, 화면 차이 비교가 기본 내장돼 있고, 세션과 프로필, 인증 상태, 쿠키, 프록시, 보안 설정이 장기 실행 에이전트를 염두에 두고 갖춰져 있다.
구조는 클라이언트와 데몬으로 나뉜다. 러스트 데몬이 크롬 개발자 도구 프로토콜로 브라우저를 직접 제어하고, 명령을 처음 내리면 자동으로 뜬 뒤 명령 사이에도 살아남는다. 명령이나 대시보드 입력 없이 한 시간이 지나면 지정된 복원 상태만 저장하고 헤드리스 브라우저를 닫은 뒤 스스로 종료한다. 이 시간은 --idle-timeout 옵션이나 환경변수로 조절하고 0을 주면 아예 끌 수 있다. 화면이 보이는 브라우저와 사파리·iOS 웹드라이버 세션, 사용자가 직접 붙인 브라우저는 이 자동 종료에서 제외되지만, 제공자가 운영하는 클라우드 브라우저는 예외가 아니라는 점을 요금 관점에서 눈여겨봐야 한다.
1인기업 실전 적용 포인트
- 매일 눈으로 확인하던 웹 작업을 스크립트로 고정한다. 주문 현황, 광고 대시보드 수치, 경쟁사 가격 확인을 스냅샷과 참조 클릭 두 단계로 짜서 크론에 걸면 아침 보고가 자동으로 만들어진다. 접근성 트리 기반이라 화면이 조금 바뀌어도 셀렉터 방식보다 덜 깨진다.
- 로그인이 필요한 업무는 세션과 프로필로 계정을 분리해 저장한다. 개인 계정과 업무 계정이 섞이지 않고, 인증이 풀려도 해당 프로필만 다시 로그인하면 된다.
- 무인 실행에는 비디오 녹화를 켜둔다. 새벽에 실패한 자동화는 화면 기록이 없으면 원인을 알 수 없어 고칠 수도 없다.
- 배치 작업이면 유휴 타임아웃을 짧게 두고, 하루 종일 붙잡고 쓰는 대화형 작업이면 0으로 꺼둔다. 데몬이 살아 있는 시간이 곧 메모리 점유이고, 클라우드 브라우저를 쓰면 곧 비용이다.
전망 / 주의점
자동화 강도가 올라갈수록 대상 사이트의 이용약관과 접근 정책을 먼저 확인해야 한다. 로그인 세션을 저장한다는 것은 인증 정보가 로컬에 남는다는 뜻이므로, 저장 위치와 파일 권한을 관리하지 않으면 편의가 곧 위험이 된다. 도구가 성숙할수록 병목은 기술이 아니라 운영 규칙 쪽으로 옮겨간다.
출처: agent-browser 공식 문서 (https://agent-browser.dev/)