数据截至 (上游 commit d02db1ee7c41)
总览:网页里的 GUI Agent
30 秒导读: Page Agent(阿里开源,npm 包名
page-agent)让你一行<script>就给任意网页装一个 AI 助手。用户用大白话说"帮我登录""把这张表填好",助手自己去读页面、自己找按钮、自己点击输入。它的独门取舍是:不用截图、不用多模态大模型、不用浏览器扩展、不用后端 headless 浏览器——一切都在页面自己的 JavaScript 里发生,你只要自带一个 OpenAI 兼容的 LLM 接口。
本章是这组文档的门厅和路由:先讲清"这是什么、怎么用、七个包怎么拼、一条数据怎么流",再把你送进对应的分章。机制的细节(循环内部、DOM 算法、事件合成)都留给后面五章。
1. 这是什么(零基础也能懂)
一句话定义: Page Agent 是一个活在网页里的 GUI Agent——GUI Agent 指"像人一样用图形界面的 AI 智能体":它不调你的 API,而是看着页面、点着按钮替你操作。
它要解决谁的什么问题。 假设你做了一个 SaaS 后台,用户要点 20 下、跨 3 个页面才能建好一张工单。传统做法是再写一个 Copilot:接后端、编排 API、维护一套指令。Page Agent 换了思路——页面 已经能被人操作了,那就让 AI 也去操作这个页面,不碰你的后端。
它面向的典型场景:
| 场景 | 一句话 |
|---|---|
| SaaS AI 副驾 | 几行代码给产品加个 AI 助手,后端零改动 |
| 智能填表 | 把"20 次点击的流程"压成一句话,适合 ERP/CRM/后台 |
| 无障碍 | 让任意 Web 应用能用自然语言/语音驱动 |
| 跨页任务 | 配可选 Chrome 扩展,让 agent 跨标签页干活 |
| MCP | 让外部 agent 客户端反过来控制这个浏览器 |
它的四个卖点(README「Features」逐条对应源码事实):
- 纯 in-page JS——不需要浏览器扩展、不需要 Python、不需要 headless 浏览器。装 agent 就是往页面塞一段脚本(见
packages/page-agent/src/demo.ts:16把PageAgent挂上window)。 - 文本化 DOM——不截图、不需要多模态模型或特殊权限。它把活 DOM"脱水"成一份带编号的纯文本元素表喂给模型(见
packages/page-controller/src/PageController.ts:174updateTree)。 - 自带 LLM——兼容大多数主流模型,包括本地部署的;只要给个 OpenAI 兼容的
baseURL(见packages/llms/src/index.ts:19LLM默认用OpenAIClient)。 - 可选扩展跨标签页——单页不够用时,装官方 Chrome 扩展,同一套 agent 内核就能跨 tab(见
packages/extension/src/agent/MultiPageAgent.tsMultiPageAgent)。