page-agent 深度分析报告
一句话总结
阿里巴巴推出的纯前端 GUI Agent 框架,通过在网页内注入 JavaScript 代理,以文本化 DOM 解析(而非截图)驱动 LLM 实现自然语言操控网页,填补了「无需后端/无需浏览器扩展/无需 Python」的 Web AI 自动化空白。
值得关注的理由
- 架构范式创新:与 browser-use、Playwright、Selenium 等「从外部控制浏览器」的思路截然不同,page-agent 选择了「Agent 住在网页里」的内嵌式路线。这意味着它可以作为 SaaS 产品的 AI Copilot 直接嵌入,无需用户安装任何东西,部署摩擦极低。
- 爆发式增长:2025 年 9 月创建,6 个月内达到 13,000+ Star,787 次提交,发布 18 个版本。2026 年 1 月单月 271 次提交,开发节奏极为密集。HN 首页讨论热度可观。
- 纯文本 DOM 路线的验证:不依赖多模态模型或截图 OCR,仅靠结构化 DOM 文本就能完成 GUI 操作,大幅降低了对模型能力的要求(普通文本 LLM 即可),同时避免了截图方案的延迟和成本问题。
- MCP 协议接入:v1.6.0 加入 MCP Server 支持,使得 Claude、GPT 等上层 Agent 可以通过标准协议直接调用浏览器操作,打通了「AI Agent 操控真实浏览器」的最后一公里。
项目画像(表格)
| 维度 | 详情 |
|---|---|
| 仓库全名 | alibaba/page-agent |
| 一句话描述 | JavaScript in-page GUI agent. Control web interfaces with natural language. |
| 主要语言 | TypeScript (81%)、JavaScript (11%)、CSS (6%)、HTML (1%) |
| 代码规模 | ~37,900 行代码,213 个文件(不含依赖) |
| Star 数 | 13,018 |
| Fork 数 | 990 |
| 开源协议 | MIT |
| 创建时间 | 2025-09-23 |
| 最近推送 | 2026-03-21 |
| 提交总数 | 787 |
| 版本数 | 18(最新 v1.6.1) |
| 核心贡献者 | gaomeng1900 (Simon, 714 次提交, ~91%) |
| 组织 | Alibaba (19,082 followers, 517 public repos) |
| 关键 Topic | agent, ai, web, ai-agents, browser-automation, mcp, typescript |
| npm 包名 | page-agent(主包)、@page-agent/core(无 UI 核心) |
| 官网 | https://alibaba.github.io/page-agent/ |
| Chrome 扩展 | 已上架 Chrome Web Store |
作者视角:为什么存在这个项目
page-agent 的诞生源于一个核心洞察:现有的 Web 自动化工具都是「从外面操控浏览器」,但 SaaS 产品真正需要的是「在里面嵌入 AI 助手」。
browser-use(page-agent 明确致敬的上游项目)通过 Playwright 在服务端控制无头浏览器,这适合爬虫和测试场景,但不适合给终端用户提供实时 AI 辅助。当你想在自己的 CRM、ERP 或后台管理系统里加一个「AI Copilot」时,你不可能要求每个用户都装 Python 环境或浏览器扩展。
page-agent 的策略是:
- 一行
<script>标签搞定集成 — 和加 Google Analytics 一样简单 - 纯前端运行 — 所有 DOM 解析、动作执行都在浏览器端完成,只有 LLM 调用走网络
- 文本化 DOM 而非截图 — 从 browser-use 移植并改进的 DOM 提取引擎(1706 行),将页面交互元素序列化为带索引的文本描述,供 LLM 理解和操作
这个定位使得 page-agent 不是 browser-use 的竞争者,而是互补品:browser-use 做服务端自动化,page-agent 做客户端增强。
核心价值提炼
1. Re-Act Agent Loop 架构
核心循环设计精炼:Observe(DOM 提取) -> Think(LLM 推理) -> Act(DOM 操作) -> Loop。每一步包含三个认知阶段:evaluation_previous_goal(反思上一步)、memory(维护记忆)、next_goal(规划下一步)。这是经典的 ReAct 框架在 GUI 操作场景的工程化实现。
2. MacroTool 设计
所有内置工具(click、input、scroll、select、wait、done、ask_user、execute_javascript)被打包为一个 MacroTool,通过 Zod schema 的 union type 表达。这样 LLM 每次只需调用一个工具函数,同时输出反思和动作,减少了多轮 tool call 的延迟。
3. 文本化 DOM 管道
Live DOM -> FlatDomTree -> Simplified HTML (indexed) -> LLM prompt
DOM 提取引擎从 browser-use 移植,做了大量适配:
- 添加交互元素黑白名单
- React 根节点自动跳过(防止 React 事件委托导致的误判)
- 可滚动元素检测与标注
- aria-hidden 元素排除
- DOM 缓存机制优化性能
4. Monorepo 分层设计
page-agent (入口+UI)
└── core (无头Agent核心)
├── llms (LLM客户端,OpenAI兼容)
└── page-controller (DOM操作+视觉遮罩)
└── ui (面板+i18n)
└── mcp (MCP Server)
└── extension (Chrome扩展)
层次分明:page-controller 完全不依赖 LLM,core 不依赖 UI,使得无头模式、自定义 UI、MCP 接入等场景都能独立使用。
5. 实用工程细节
- SimulatorMask:操作期间覆盖页面的视觉遮罩,防止用户与 Agent 同时操作造成冲突
- llms.txt 支持(实验性):自动获取目标网站的 llms.txt 作为上下文,让 Agent 了解网站结构
- 自定义 Tool 扩展:通过
customTools配置注入、覆盖或删除内置工具 - 生命周期钩子:
onBeforeStep、onAfterStep、onBeforeTask、onAfterTask完整的任务生命周期
竞品格局与定位
| 项目 | 运行位置 | 模型要求 | 核心场景 | 集成方式 |
|---|---|---|---|---|
| page-agent | 浏览器内(前端) | 纯文本 LLM | SaaS AI Copilot、表单自动化 | <script> 或 npm |
| browser-use | 服务端(Python+Playwright) | 多模态 LLM | 爬虫、端到端测试 | Python SDK |
| Skyvern | 云端服务 | 多模态 LLM | 企业级 Web 自动化 | API + 云平台 |
| OpenAI Operator | OpenAI 服务 | GPT-4o | 通用 Web Agent | ChatGPT 内置 |
| BrowserOS | 独立浏览器 | 多模态 | 消费级 AI 浏览器 | 独立应用 |
| OpenClaw | 本地应用 | 本地模型 | 隐私优先自动化 | MCP |
page-agent 的独特定位:它是目前唯一一个面向「网页内嵌 AI 助手」场景的开源方案。竞品要么需要服务端基础设施(browser-use、Skyvern),要么是独立产品(Operator、BrowserOS)。page-agent 是唯一能让 SaaS 开发者在自己的产品里用几行代码加入 AI 操作能力的工具。
套利机会分析
直接可用的机会
- SaaS 产品 AI Copilot:任何 B2B SaaS(CRM、ERP、项目管理、BI 工具)都可以用 page-agent 快速上线「AI 助手」功能。相比自研,集成成本从月级降至天级。
- 企业内部系统智能化:老旧的内部管理系统(OA、审批、报表),无需改造后端,前端注入 page-agent 即可实现自然语言操作。
- 无障碍访问增强:结合语音输入,让视障用户通过自然语言操作任意网页,这是一个有社会价值且有政策推动的方向。
生态衍生机会
- 基于 MCP 的 Agent 编排:page-agent 的 MCP Server 使其成为上层 AI Agent(如 Claude)的「浏览器之手」。可以构建「Claude + page-agent MCP」的复合 Agent,让 AI 真正操控用户浏览器。
- 页面操作录制与回放:在 page-agent 的 history 系统上构建操作录制功能,将 Agent 的操作序列转为可重放的自动化脚本。
- 垂直场景 Agent 市场:围绕特定 SaaS(如 Salesforce、Shopify)预置一批经验证的 page-agent 指令集(instructions + customTools),做成「AI 操作模板市场」。
技术套利
- 轻量化替代截图方案:在 LLM 成本敏感的场景(如批量操作),page-agent 的纯文本方案比截图+多模态方案节省 5-10 倍的 token 和推理成本。
风险与不足
技术风险
- 单页应用限制:page-agent 明确声明只能处理单页应用(SPA),无法跨页面导航。虽然 Chrome 扩展缓解了这个问题,但扩展本身仍处于 WIP 状态。
- DOM 解析的脆弱性:文本化 DOM 方案依赖于页面结构的可预测性。高度动态的页面(如实时协作编辑器、Canvas 绘制的应用)可能无法正确解析。
- React 特殊处理的隐患:当前的 React patch 通过硬编码的选择器(
#root,#app,[data-reactroot])来规避事件委托问题,这种启发式方法在非标准 React 应用中可能失效。 - 安全性考量:
execute_javascript工具(虽然默认关闭)和 LLM 驱动的 DOM 操作,在恶意 prompt injection 场景下可能被利用来执行未授权操作。
项目风险
- Bus Factor 极高:714/787 次提交来自同一人 (gaomeng1900),其他贡献者仅有零星提交。如果核心维护者离开阿里或转岗,项目可能迅速停滞。
- 企业开源的不确定性:阿里巴巴有大量开源项目进入维护模式的先例。page-agent 目前处于快速迭代期,但其长期维护承诺尚不确定。
- 免费测试 API 的可持续性:项目提供免费的 Demo LLM API 用于快速体验,但这种补贴不可能持续,可能影响早期用户的迁移体验。
功能缺口
- 缺少关键工具:代码中有明确的 TODO 标记:
send_keys、upload_file、go_back、extract_structured_data尚未实现,这些在实际场景中是高频需求。 - 无测试覆盖:仓库中未发现单元测试或集成测试文件,对于一个操控 DOM 的框架来说,这是显著的质量风险。
- MCP Server 仍为 Beta:v1.6.0 刚引入 MCP 支持,稳定性和功能完整性有待验证。
行动建议
对 SaaS 开发者:如果你的产品是 B2B Web 应用且用户有复杂操作流程,page-agent 值得立即原型验证。集成成本极低(一行代码),可以快速判断 AI Copilot 是否对你的用户有价值。建议自建 LLM 代理层,不要依赖其免费 API。
对 AI Agent 开发者:关注 page-agent 的 MCP Server 能力。将其作为你的 Agent 框架的「浏览器操作层」,比自己封装 Playwright 更轻量,且支持操作用户已登录的真实浏览器会话。
对企业技术决策者:page-agent 适合作为内部系统智能化的快速试点工具,但不建议在关键业务流程中深度依赖,因为 bus factor 和企业开源维护的不确定性较高。建议 fork 并维护内部版本。
对开源贡献者:这是一个处于快速上升期、架构清晰、代码质量不错的项目。贡献方向建议:补充测试覆盖、实现 TODO 工具(send_keys、upload_file)、增强 Chrome 扩展的多页面能力。
知识入口(表格)
| 资源 | 链接 | 说明 |
|---|---|---|
| GitHub 仓库 | https://github.com/alibaba/page-agent | 源代码与 Issue 讨论 |
| 官方文档 | https://alibaba.github.io/page-agent/docs/introduction/overview | 快速开始与 API 参考 |
| 在线 Demo | https://alibaba.github.io/page-agent/ | 交互式体验(需科学上网) |
| npm 包 | https://www.npmjs.com/package/page-agent | 安装与版本历史 |
| Chrome 扩展 | https://chromewebstore.google.com/detail/page-agent-ext/akldabonmimlicnjlflnapfeklbfemhj | 多页面 Agent 支持 |
| HN 讨论 | https://news.ycombinator.com/item?id=47264138 | Show HN 社区反馈 |
| DeepWiki | https://deepwiki.com/alibaba/page-agent | AI 生成的代码解读 |
| 上游项目 browser-use | https://github.com/browser-use/browser-use | DOM 处理引擎的来源 |
| AGENTS.md | 仓库根目录 AGENTS.md | 架构文档与贡献指南 |
| 作者 X | https://x.com/simonluvramen | 核心维护者动态 |