
브라우저 자동화 하면 무엇이 떠오르는가. Selenium? Playwright? Puppeteer? 모두 강력한 도구지만, 한 가지 공통점이 있다. 외부에서 브라우저를 제어한다는 점이다.
Page-Agent는 다른 접근법을 취한다. 에이전트를 웹페이지 안에 넣는다. 브라우저 확장도, Python 런타임도, 헤드리스 브라우저도 필요 없다. 그냥 JavaScript 코드를 페이지에 주입하면 끝이다.
1. 왜 Page-Agent인가
기존 방식의 문제
AI 에이전트가 웹을 제어할 때:
- 외부 의존성 - Python, Node.js, 브라우저 드라이버, 확장 프로그램…
- 스크린샷 기반 - OCR이나 멀티모달 LLM 필요, 토큰 비용 폭증
- 무거운 인프라 - 헤드리스 브라우저, 컨테이너, 서버 필요
- 복잡한 설정 - CDP, WebDriver, 권한, 보안 설정…
Page-Agent의 접근
npm install page-agent
그게 전부다. 브라우저 확장? 없다. Python? 필요 없다. 헤드리스 브라우저? 선택사항이다.

핵심 철학:
웹페이지 안에서 JavaScript로 DOM을 직접 조작한다. 스크린샷? 불필요하다. OCR? 필요 없다. 그냥 일반 LLM으로 충분하다.
2. 핵심 특징
2.1 브라우저 확장 불필요
Page-Agent는 순수 JavaScript로 동작한다.
import { PageAgent } from 'page-agent';
const agent = new PageAgent({
model: 'gpt-4', // 또는 qwen, claude 등
});
await agent.run('로그인 버튼을 클릭해줘');
페이지에 스크립트만 주입하면 된다. 크롬 확장, 파이어폭스 애드온, 어떤 것도 설치할 필요 없다.
2.2 스크린샷 없이 텍스트 기반 DOM 조작
여기가 혁신적이다. Page-Agent는 DOM을 텍스트로 표현한다.
[버튼] 로그인
[입력] 이메일 주소
[입력] 비밀번호
[링크] 비밀번호 찾기
[버튼] 회원가입
스크린샷을 찍어서 OCR로 읽고, 멀티모달 LLM으로 분석하고… 이런 복잡한 과정이 필요 없다. DOM 자체가 이미 구조화된 텍스트다.
토큰 효율성:
| 방식 | 토큰 소모 |
|---|---|
| 스크린샷 + 멀티모달 | 10,000+ |
| HTML 그대로 | 5,000-15,000 |
| Page-Agent DOM 텍스트 | 500-1,000 |
2.3 OCR/멀티모달 LLM 불필요
일반 텍스트 LLM으로 충분하다. GPT-4, Claude, Qwen, 어떤 모델이든 작동한다.
이유:
- DOM은 이미 텍스트다
- 구조화된 정보를 그대로 활용
- 이미지 처리 비용 제로
2.4 BYOLLM (Bring Your Own LLM)
Page-Agent는 특정 LLM에 종속되지 않는다.
const agent = new PageAgent({
model: 'qwen-plus', // 알리바바 Qwen
apiKey: process.env.QWEN_API_KEY,
});
const agent = new PageAgent({
model: 'claude-3-opus', // Anthropic
apiKey: process.env.ANTHROPIC_API_KEY,
});
const agent = new PageAgent({
model: 'gpt-4-turbo', // OpenAI
apiKey: process.env.OPENAI_API_KEY,
});
OpenAI SDK 호환 API를 지원하는 모든 LLM과 작동한다.
2.5 Human-in-the-Loop UI
Page-Agent는 실시간 UI를 제공한다. 에이전트가 무엇을 하고 있는지, 어떤 행동을 계획하고 있는지 시각적으로 확인할 수 있다.

기능:
- 에이전트의 현재 상태 표시
- 계획된 행동 미리보기
- 수동 승인/거부 옵션
- 실행 로그 실시간 스트리밍
2.6 선택적 Chrome 확장으로 멀티 페이지 작업 지원
기본적으로 Page-Agent는 단일 페이지에서 동작한다. 하지만 선택적 Chrome 확장을 설치하면 여러 탭/페이지 작업이 가능하다.
확장 없이: 현재 페이지만 제어 확장 있이: 여러 탭, 새 창, 탭 전환 모두 가능
3. 기술 아키텍처
작동 원리
1. 사용자 입력: "로그인해줘"
2. DOM 스캔: 페이지의 모든 인터랙티브 요소 수집
3. 텍스트 변환: DOM을 LLM 친화적 텍스트로 변환
4. LLM 추론: 어떤 요소를 조작할지 결정
5. 액션 실행: 클릭, 입력, 스크롤 등 수행
6. 결과 확인: DOM 변화 감지 및 다음 행동 결정
기반 기술
- browser-use: 핀란드 스타트업이 개발한 오픈소스 브라우저 에이전트 프레임워크 (MIT 라이선스)
- Page-Agent는 browser-use를 기반으로 알리바바가 개발
4. 실제 활용 사례
4.1 SaaS AI Copilot
SaaS 제품에 Page-Agent를 내장하여 사용자가 자연어로 앱을 제어할 수 있다.
“이번 달 매출 리포트 만들어줘” “가장 최근 주문 5개 보여줘” “설정에서 알림 끄고 싶어”
별도의 자동화 스크립트나 API 연동 없이, 그냥 Page-Agent가 DOM을 조작한다.
4.2 스마트 폼 필링
ERP, CRM, 관리자 페이지 등 복잡한 폼을 자동으로 채운다.
agent.run(`
고객 정보 폼을 채워줘:
- 이름: 홍길동
- 이메일: hong@example.com
- 회사: (주)테스트
- 연락처: 010-1234-5678
`);
4.3 접근성 (음성 명령)
시각 장애인이나 모터 이슈가 있는 사용자를 위한 음성 기반 웹 탐색.
음성: “로그인해줘” Page-Agent: 로그인 버튼 클릭 음성: “아이디는 user123, 비밀번호는 pass456” Page-Agent: 폼 채우기 및 제출
4.4 테스트 자동화
E2E 테스트를 자연어로 작성.
agent.run(`
1. 상품 페이지로 이동
2. 첫 번째 상품 클릭
3. 장바구니에 담기
4. 장바구니 페이지로 이동
5. 상품이 1개인지 확인
`);
4.5 데이터 수집
복잡한 페이지네이션, 무한 스크롤, 동적 콘텐츠도 처리.
agent.run(`
모든 상품 이름과 가격을 수집해줘.
스크롤하면서 더 불러오기도 처리해.
`);
5. 빠른 시작
설치
npm install page-agent
기본 사용법
import { PageAgent } from 'page-agent';
// 에이전트 생성
const agent = new PageAgent({
model: 'gpt-4',
apiKey: process.env.OPENAI_API_KEY,
});
// 자연어로 웹페이지 제어
await agent.run('검색창에 "알리바바"를 입력하고 검색해줘');
브라우저에서 직접 사용
<script type="module">
import { PageAgent } from 'https://cdn.example.com/page-agent.js';
const agent = new PageAgent({
model: 'qwen-plus',
apiKey: 'YOUR_API_KEY',
});
// UI 표시
agent.showUI();
// 명령 실행
await agent.run('회원가입 폼을 채워줘');
</script>
Human-in-the-Loop 모드
const agent = new PageAgent({
model: 'gpt-4',
apiKey: process.env.OPENAI_API_KEY,
humanInTheLoop: true, // 모든 행동에 승인 요청
});
agent.on('action', (action) => {
console.log('계획된 행동:', action);
// 사용자에게 승인 요청 UI 표시
});
agent.on('approval', (approved) => {
if (approved) {
agent.proceed();
} else {
agent.cancel();
}
});
6. 다른 도구와의 비교
| 기능 | Page-Agent | Playwright | Selenium | Puppeteer |
|---|---|---|---|---|
| 브라우저 확장 | 불필요 | 필요 | 필요 | 필요 |
| 스크린샷 | 불필요 | 선택 | 선택 | 선택 |
| OCR/멀티모달 | 불필요 | 미지원 | 미지원 | 미지원 |
| 자연어 제어 | 기본 | 미지원 | 미지원 | 미지원 |
| 멀티 페이지 | 선택적 확장 | 완전 지원 | 완전 지원 | 완전 지원 |
| 설치 복잡도 | 매우 낮음 | 중간 | 높음 | 중간 |
| 토큰 효율성 | 매우 높음 | N/A | N/A | N/A |
7. 언제 사용해야 하나
추천 상황
- SaaS에 AI Copilot 추가 - 사용자가 자연어로 앱 제어
- 폼 자동화 - ERP, CRM, 관리자 페이지 자동 채우기
- 접근성 기능 - 음성 명령으로 웹 탐색
- 간단한 E2E 테스트 - 자연어로 테스트 작성
- 프로토타이핑 - 빠르게 브라우저 자동화 구현
비추천 상황
- 복잡한 크로스 브라우저 테스트 - Playwright가 더 적합
- 대규모 스크래핑 - 전문 스크래퍼 고려
- 헤드리스 서버 환경 - Playwright/Puppeteer 사용
- 미세한 타이밍 제어 - 저수준 라이브러리 필요
8. 제한사항
현재 제한
- 단일 페이지 기본 - 멀티 탭은 Chrome 확장 필요
- 동일 출처 정책 - CORS 제한 적용
- 동적 iframe - 일부 제약 존재
- Canvas/WebGL - 텍스트 기반이라 시각적 요소 제한
해결 방안
- Chrome 확장 설치로 멀티 페이지 지원
- 헤드리스 브라우저와 조합으로 서버 환경 대응
9. 알리바바의 전략
Page-Agent는 알리바바가 오픈소스로 공개했다. 왜?
- Qwen 생태계 확장 - Qwen 모델을 쓰면 더 잘 작동한다
- 클라우드 서비스 연동 - 알리바바 클라우드 서비스와 통합
- 개발자 커뮤니티 - 생태계 확대를 통한 경쟁력 강화
MIT 라이선스로 완전히 오픈소스다. 상업적 사용도 자유롭다.
마치며: 브라우저 자동화의 민주화
Page-Agent는 **“브라우저 자동화를 누구나”**라는 비전을 가진다.
핵심 가치
- 단순함 -
npm install page-agent, 끝 - 접근성 - 브라우저 확장, Python, 헤드리스 브라우저 불필요
- 효율성 - 스크린샷 없이, 일반 LLM으로 충분
- 유연성 - BYOLLM, 어떤 모델이든 사용 가능
- 투명성 - Human-in-the-Loop UI로 모든 행동 확인
빠른 시작
npm install page-agent
import { PageAgent } from 'page-agent';
const agent = new PageAgent({ model: 'gpt-4' });
await agent.run('이 페이지에서 할 수 있는 것들을 알려줘');
브라우저 자동화가 이렇게 간단해질 수 있다. Page-Agent가 증명한다.
🔗 관련 정보
- GitHub: https://github.com/alibaba/page-agent
- npm: https://www.npmjs.com/package/page-agent
- browser-use (기반 프로젝트): https://github.com/browser-use/browser-use
- 알리바바 Qwen: https://qwenlm.github.io/