로컬 Qwen 모델이 단계별 계획과 간결한 DOM으로 브라우저 자동화 달성

단계별 계획이 사전 계획 실패를 극복하다
개발자는 실제 페이지 상태를 보기 전에 모델에게 완전한 다단계 계획을 수립하도록 요청하는 방식이 익숙한 사이트에서는 작동하지만 예상치 못한 요소에서는 빠르게 실패한다는 사실을 발견했습니다. 더 효과적인 방법은 각 단계에서 현재 DOM 스냅샷을 기반으로 모델이 재계획하는 단계별 계획이었습니다.
Ace Hardware에서의 예시 흐름
Qwen 8B를 플래너로, 4B를 실행자로 사용하여 Ace Hardware(모델이 사전 작업 경험이 없는 사이트)에서 테스트한 흐름은 비전 모델을 전혀 사용하지 않고 전체 장바구니 흐름을 완료했습니다. 단계별 접근 방식은 다음과 같았습니다:
- 단계 1: 검색창 확인 → "잔디 깎는 기계" 입력
- 단계 2: 결과 확인 → 장바구니 추가 클릭
- 단계 3: 서랍 등장 → 닫기
- 단계 4: 장바구니 표시 → 장바구니 보기 클릭
- 단계 5: 완료
컴팩트 DOM 표현으로 소규모 모델 가능해지다
모델은 원시 HTML이나 스크린샷을 보지 않습니다. 단지 의미론적 테이블 표현만을 봅니다:
id|role|text|importance|bg|clickable|nearby_text
665|button|Proceed to checkout|675|orange|1|
761|button|Add to cart|720|yellow|1|$299.99
1488|link|ThinkPad E16|478|none|1|Laptop 16"
이를 통해 4B 실행자는 짧은 목록에서 요소 ID를 선택할 수 있습니다. 비전 접근 방식은 스크린샷당 2-3K 토큰을 소모하여 전체 흐름에 쉽게 50-100K+를 사용하는 반면, 컴팩트 스냅샷은 동일한 작업에 총 ~15K만 사용합니다.
성공을 위한 모달 처리의 중요성
각 클릭 후 DOM이 갑자기 증가하면 에이전트는 다시 계획하기 전에 해제 패턴(닫기, ×, 아니요 등)을 검색합니다. 이는 "나쁜 추론"으로 보였지만 실제로는 숨겨진 오버레이였던 많은 실패를 수정했습니다.
개발자는 다른 사람들도 사이트가 익숙하지 않아질 때 단계별 계획이 사전 계획을 능가하는 현상을 관찰하고 있는지 궁금해하고 있습니다.
📖 Read the full source: r/LocalLLaMA
👀 See Also

루마브라우저: AI 에이전트를 위해 DOM 파싱을 로컬 LLM에 오프로드하는 일렉트론 브라우저
LumaBrowser는 OpenAI 호환 엔드포인트를 통해 DOM 파싱을 로컬 LLM에 오프로드하는 Electron 브라우저로, 자율 에이전트가 원시 HTML을 처리하지 않도록 돕습니다. Qwen 2.5 변형과 같은 모델을 사용하여 UI 요소를 식별하고 CSS 선택자를 반환합니다.

클로드 코드의 7-에이전트 시스템, 솔로 개발자 위한 스프린트 의식 대체
PM에서 솔로 개발자로 전향한 개발자가 Claude Code 내에 7개의 에이전트 팀을 구축해 QA, PR 리뷰, 보안, 아키텍처, 백로그 정리를 모두 단일 /review 명령어로 처리합니다.

OKed 플러그인: OpenClaw가 파괴적 행동 전에 휴대폰에 묻습니다
OKed라는 새 플러그인이 OpenClaw의 before_tool_call에 연결되어 파괴적인 명령(이메일, 삭제, 결제)을 가로채고 휴대폰이나 Telegram으로 승인 요청을 보냅니다.

로컬 LLM을 Claude 코드 서브에이전트로 사용하여 컨텍스트 사용량 줄이기
레딧 사용자가 Claude Code가 LM Studio를 통해 실행되는 로컬 LLM에 작업을 위임하여 파일 내용을 Claude의 컨텍스트 밖으로 유지하는 방법을 시연합니다. 이 설정은 로컬 파일 작업을 처리하기 위해 LM Studio의 도구 호출 API를 사용하는 약 120줄의 Python 스크립트를 활용합니다.