개요
Page Agent는 웹페이지에 내장된 GUI 에이전트로, 텍스트 DOM 조작을 통해 인터페이스를 제어합니다. 스크린샷, 멀티모달 모델 또는 브라우저 확장 프로그램이 필요 없으며, 사용자 정의 LLM을 지원합니다. 스크립트 태그 또는 npm 패키지를 통해 모든 웹페이지에 쉽게 통합할 수 있습니다.
README 미리보기
# Page Agent\n\n\n \n \n\n\n[](https://opensource.org/licenses/MIT) [](http://www.typescriptlang.org/) [](https://bundlephobia.com/package/page-agent) [](https://www.npmjs.com/package/page-agent) [](https://github.com/alibaba/page-agent)\n\nThe GUI Agent Living in Your Webpage. Control web interfaces with natural language.\n\n🌐 **English** | [中文](./docs/README-zh.md)\n\n🚀 Demo | 📖 Docs | 📢 HN Discussion | 𝕏 Follow on X\n\n\n\nhttps://github.com/user-attachments/assets/a1f2eae2-13fb-4aae-98cf-a3fc1620a6c2\n\n---\n\n## ✨ Features\n\n- **🎯 Easy integration**\n - No need for `browser extension` / `python` / `headless browser`.\n - Just in-page javascript. Everything happens in your web page.\n- **📖 Text-based DOM manipulation**\n - No screenshots. No multi-modal LLMs or special permissions needed.\n- **🧠 Bring your own LLMs**\n- **🐙 Optional [chrome extension](https://alibaba.github.io/page-agent/docs/features/chrome-extension) for multi-page tasks.**\n - And an [MCP Server (Beta)](https://alibaba.github.io/page-agent/docs/features/mcp-server) to control it from outside\n\n## 💡 Use Cases\n\n- **SaaS AI Copilot** — Ship an AI copilot in your product in lines of code. No backend rewrite.\n- **Smart Form Filling** — Turn 20-click workflows into one sentence. Perfect for ERP, CRM, and admin systems.\n- **Accessibility** — Make any web app accessible through natural language. Voice commands, screen readers, zero barrier.\n- **Multi-page Agent** — Extend your own web agent's reach across browser tabs [chrome extension](https://alibaba.github.io/page-agent/docs/features/chrome-extension).\n- **MCP** - Allow your agent clients to control your browser.\n\n## 🚀 Quick Start\n\n### One-line integration\n\nFastest way to try PageAgent with our free Demo LLM:\n\n```html\n\n```\n\n> **⚠️ For technical evaluation only.** This demo CDN uses our free [testing LLM API](https://alibaba.github.io/page-agent/docs/features/models#free-testing-api). By using it, you ag
FAQ (5)
문제 해결Vite 프로덕션 빌드에서 esbuild drop console 사용 시 발생하는 'TypeError: debug is not a function' 오류를 해결하는 방법
이 문제는 page-agent / @page-agent/llms 1.12.1에 영향을 미칩니다. 이 패키지는 var debug = console.debug.bind(...)로 로컬 로거를 바인딩합니다. esbuild가 drop: ['console']을 사용하면 해당 표현식이 var debug = void 0으로 재작성되어, 이후 프로덕션에서 debug(...) 호출이 실패합니다. globalThis.debug를 설정해도 debug가 모듈 로컬이므로 동작하지 않습니다.
영구적인 해결 방법: 바인딩된 console.debug를 직접 저장하는 대신 로거를 함수로 감싸도록 수정한 issue #621의 수정 사항이 포함된 릴리스로 page-agent와 @page-agent/llms를 업그레이드하세요.
임시 소비자 우회 방법: 번들에서 console 제거를 비활성화합니다. vite.config.ts에서:
export default defineConfig({
esbuild: {
drop: []
}
})
이 옵션이 VitePress나 다른 프리셋에 의해 주입되는 경우, Vite 플러그인으로 강제하세요:
function keepConsole() {
return {
name: 'keep-console',
configResolved(config: any) {
if (config.esbuild && typeof config.esbuild === 'object') {
config.esbuild.drop = []
}
}
}
}
export default defineConfig({
plugins: [keepConsole()]
})
또는 안전한 래퍼로 dist/lib/page-agent-llms.js를 패치하세요:
var debug = (...args) => {
if (typeof console !== 'undefined' && typeof console.debug === 'function') {
console.debug(chalk.gray('[LLM]'), ...args)
}
}
빌드된 출력에 debug=void 0이 더 이상 포함되어 있지 않은지 확인하세요:
grep -n "debug=void 0" dist/assets/*.js문제 해결Page Agent가 검색창에 입력할 때 Bing 검색 제안이 실패하는 이유는 무엇인가요?
Chrome 152/macOS의 Page Agent 1.12.2에서 inputTextElement()는 weather tomorrow와 같은 텍스트를 입력한 후 입력 요소의 포커스를 강제로 해제(blur)하므로, Bing이 추천 검색어를 표시하지 않습니다. 이 문제는 PR fix(page-controller): preserve input focus에서 수정되었습니다. 해당 PR이 포함된 릴리스로 Page Agent를 업그레이드하거나, page-controller 포커스 수정 사항이 병합된 상태로 소스에서 빌드하세요. inputTextElement()가 실행된 후에도 입력 요소가 포커스를 유지해야 Bing 추천 검색어가 표시됩니다. 임시 해결 방법으로, 자동화된 텍스트 입력 후 검색 상자에 명시적으로 다시 포커스를 맞추고 input 이벤트를 트리거하세요.
문제 해결MV3 서비스 워커가 비활성화되어 브라우저 확장 프로그램이 응답하지 않고 메시지를 무시하는 문제를 해결하는 방법은 무엇인가요?
이 문제는 v1.7.1에서 확장 프로그램 업데이트 후 Manifest V3 서비스 워커가 멈출 때 발생합니다. Chrome/Brave는 업데이트 중에 등록된 알람을 지워 백그라운드 워커가 올바르게 다시 시작되지 못하게 할 수 있습니다. 임시 해결 방법으로, brave://extensions(또는 chrome://extensions)를 열고 확장 프로그램을 찾아 Reload 버튼을 클릭한 다음 에이전트 채팅을 다시 여세요. 그래도 멈춘 상태가 계속되면 확장 프로그램을 껐다가 다시 켜거나 브라우저를 다시 시작하세요. 영구적인 해결 방법은 멈춘 워커 상태 점검 및 서비스 워커 알람/업데이트 수정 사항이 포함된 릴리스로 확장 프로그램을 업그레이드하는 것입니다.
문제 해결v1.10.0에서 커스텀 MiniMax M3 모델이 작동하지 않는 문제를 해결하는 방법
refactor(llms): rewrite model patching and deprecate temperature 수정 사항이 포함된 릴리스로 업그레이드하거나, 최신 main 브랜치에서 빌드하세요. 이 오류는 MiniMax M3가 파라미터 스키마를 변경하면서 발생했으며, 업데이트된 모델 패치는 현재 스키마에 맞는 파라미터를 전송합니다. 업그레이드 후에는 temperature가 deprecated되었으므로 수동으로 구성된 temperature 설정을 모두 제거하세요. OpenRouter를 통해 M3를 사용하는 경우, 모델이 때때로 유효하지 않은 int/string 형식을 반환하기 때문에 도구 호출이 여전히 실패할 수 있습니다. 이 문제는 모델/제공자가 수정해야 하므로, 해결 방법으로 지원되는 모델을 사용하거나 MiniMax에 직접 액세스하세요.
문제 해결wait 도구가 AbortSignal이 abort되었을 때 즉시 reject하지 않는 이유는 무엇인가요?
이는 이슈 #553을 해결하는 core PR fix(core): make wait honor abort during setup에서 수정되었습니다. 이전에는 wait가 타이머가 시작되기 전에 페이지 업데이트 타이밍을 읽는 동안 abort를 무시할 수 있었습니다. 이 수정 사항이 포함된 릴리스로 core 패키지를 업그레이드하세요. 업그레이드 후에는 시그널을 abort하면 타이머가 시작되기를 기다리는 대신 setup 단계에서 wait가 즉시 중단됩니다. 이미 abort된 AbortController.signal을 wait에 전달하여 확인하세요.