<!-- title: 浏览器操控四件横评：谁替你上网 -->

# 浏览器操控四件横评：谁替你上网

## 概述

本期是系列第7轮，做同赛道对比横评。赛道选的是今年 Skills 生态里最「卷」的新工种之一：**让 Claude 真正操作浏览器**。样本取自本机装机目录的四件同赛道竞品：`agent-browser`、`playwright`、`chrome-automation`、`web-access`。核心发现一句话：四件东西解决同一个需求，却分属三条完全不同的架构路线——MCP 工具组、独立 CLI、CDP 直连，外加一件「只读不摸」的轻量对照组。它们的差距不在功能清单长短，而在 **token 经济学**和**浏览器状态归谁管**这两个隐秘维度上。谁把 SKILL.md 写在了正确的抽象层，谁就赢了。

## 评测对比表

| 维度（权重） | agent-browser | playwright | chrome-automation | web-access |
|---|---|---|---|---|
| 功能完整度（25%） | ★★★★★ | ★★★★★ | ★★★☆☆ | ★★★☆☆ |
| 设计质量（25%） | ★★★★★ | ★★★★☆ | ★★★☆☆ | ★★★★☆ |
| 实战效果（20%） | ★★★★☆ | ★★★★★ | ★★★☆☆ | ★★★☆☆ |
| 上手难度（15%） | ★★★★☆ | ★★★☆☆ | ★★★★☆ | ★★★★★ |
| 社区活跃度（15%） | ★★★★☆ | ★★★★★ | ★★★☆☆ | ★★★☆☆ |
| **加权总分** | **4.6** | **4.5** | **3.3** | **3.5** |

> 评测说明：星标为本期基于装机实测接口设计与公开资料的判断。本期社区星标、下载量等数据未逐仓二次核验，社区活跃度一档按生态存在感分档给出，精确数字一律不列；`chrome-automation` 与 `web-access` 的部分定位判断属推断，正文已标注。

## 赛道背景：操作浏览器为什么难

让 Claude 上网，最浅的做法是给它一个 HTTP 抓取工具，但那只能「看」，不能「点」。真正的浏览器操控要回答四个问题：

1. **页面状态怎么表示给模型？** 截图是像素，模型读起来贵且不精确；可访问性树（accessibility snapshot）是结构化文本，token 便宜且带语义。
2. **元素怎么引用？** 模型不能「看见」坐标，必须有一套稳定的 ref（引用符）体系：先扫描页面拿到编号，再按编号点击。
3. **会话状态存在哪？** 标签页、Cookie、登录态、localStorage——是每次现开一个干净浏览器，还是接管用户那个已经登录好的 Chrome？
4. **失败怎么恢复？** 弹窗、超时、反爬验证码出现时，SKILL.md 有没有教会模型止步而不是硬试。

四件竞品正好在这四个问题上给出了不同的答案。

## 四件逐一拆解

### agent-browser：CLI 路线的 token 优等生

**定位**：Vercel 出品的开源项目，专为 AI agent 设计的浏览器控制 CLI。它不往会话里塞一堆 MCP 工具位，而是作为一个命令行工具存在，模型用 Bash 调它。

**亮点**：架构上最大的聪明之处是「不占坑」。MCP 工具组一旦挂载就常驻系统提示词，每一样工具的 schema 都在烧 token；CLI 件平时零成本，用时才出现。它的快照机制围绕可访问性树展开，配合短引用符定位元素，长会话里 token 开销显著更省——这对动辄几十步操作的爬取、表单批量提交类任务是决定性优势。SKILL.md 只需要教清楚子命令语法和「先快照、后引用、再操作」的节奏，模型就能跑起来。

**短板**：CLI 路线意味着输出全靠文本回传，调试体验不如 MCP 体系里那种「工具调用即结构化返回」的顺滑；对纯新手，命令行参数心智负担略高。

### playwright：全家桶路线的天花板

**定位**：微软 Playwright 系。本机环境里它以插件形态挂载，会话中直接暴露一整组 `browser_*` 工具——这是本期唯一一件我们能逐个工具观察接口设计的样本。

**亮点**：接口设计就是一部教科书。`browser_navigate`、`browser_click`、`browser_fill_form` 覆盖主干操作；`browser_snapshot` 以可访问性树返回页面并附带元素引用符；`browser_tabs` 管标签页、`browser_network_request` 抓请求、`browser_console_messages` 回读控制台。最值得称道的是 `browser_run_code_unsafe` 这个命名——把「任意代码执行等于 RCE 级风险」直接写进工具名，这是把**风险可见化**做进了接口层，人和模型在调用前就知道该谨慎。表单有专门的 `fill_form` 批量填字段而不是逐个 type，`find` 工具支持在快照树里按文本/正则定位元素省掉全树输出——处处是 token 意识。

**短板**：工具数量多，常驻提示词的开销是真实的；「先 snapshot 再按引用操作」的纪律如果模型没遵守，引用符过期就会连环失败，对弱模型不够宽容。

### chrome-automation：直连路线的「带资进组」

**定位**：从命名与生态常见实现推断（推断处，具体仓库信息未核验），走的是 CDP（Chrome DevTools Protocol）直连本机已安装 Chrome 的路线，与 MCP 插件或独立 CLI 都不同。

**亮点**：它唯一无法被替代的价值是**复用用户的浏览器资产**——已登录的网站会话、已装的扩展、真实的浏览器指纹。爬取需要登录态的站点、调试自己正在开发的本地页面时，这条路线不用重新走一遍登录流程。「在自己天天用的那个 Chrome 里干活」是 MCP 沙箱浏览器给不了的。

**短板**：直连意味着风险直接落在真实浏览器上：误点、误提交发生在你的真实账号里，SKILL.md 必须对「不可逆操作」有明确的止步规则，这类社区件的质量参差也正在此处。可移植性差，换台机器要重新配调试端口。

### web-access：只读对照组，一个赛道的「底座」

**定位**：推断为网页访问/正文提取类轻件（推断处，未核验具体实现），只解决「读到干净正文」，不做点击、表单等操纵。

**亮点**：放在这条赛道里评有点不公平，但它恰好标出了赛道的下限坐标：如果任务只是「把这篇文章读给我」，动用任何一件操作型工具都是杀鸡用牛刀——快照整棵树、维护引用符全是浪费。只读件的 SKILL.md 通常极短，上手零门槛，token 消耗最省。

**短板**：没有交互能力，验证码、登录墙、无限滚动页面都过不去；一旦任务里出现「顺便点一下」，它就出局。

## SKILL.md 写法对比：同一个赛道，三种教学策略

把四件的暴露形态放在一起，能提炼出本赛道 SKILL.md 的三条写作规律：

**其一，暴露形态决定教学内容。** MCP 工具组的 SKILL.md 几乎不用教「怎么调」——schema 已经写死了参数，文件真正要教的是**调度纪律**：什么时候用 `find` 局部定位而不是全树 `snapshot`、`snapshot` 何时需要重建、`fill_form` 优先于多次单字段输入。CLI 件的 SKILL.md 则相反，要花大量篇幅教命令语法、子命令组合和输出怎么读。同一赛道，教学重心一个在「何时」，一个在「如何」。

**其二，引用符纪律是本赛道的第一写作要点。** 所有操作型件的 SKILL.md 都必须压进同一条铁律：**先快照拿引用，再操作，操作后页面已变，旧引用作废**。写得好的文件会把这条放在正文第一屏；写得差的埋在中段，模型就会在引用过期后反复失败重试，烧掉整个会话。

**其三，危险操作要在接口层命名。** `run_code_unsafe` 式的命名把风险等级写进了调用面本身，比在 SKILL.md 里写一段「请注意安全」有效得多——模型对工具名的敏感度远高于对说明书第 40 行的敏感度。今年新上架的操作类技能明显在学这个模式。

## 选型决策图

```mermaid
flowchart TD
    A["需求：让 Claude 上网"] --> B{"只要读正文？"}
    B -->|是| C["web-access 轻件"]
    B -->|要操作页面| D{"要复用登录态和扩展？"}
    D -->|是| E["chrome-automation 直连"]
    D -->|不需要| F{"更在乎什么？"}
    F -->|长会话省 token| G["agent-browser CLI"]
    F -->|要全家桶和调试能力| H["playwright 插件"]
    E --> I["注意：不可逆操作先确认"]
    G --> J["先快照拿引用再操作"]
    H --> J
```

## 安装与使用命令

```bash
# 生态内发现浏览器类技能
npx skills find browser
npx skills find chrome

# agent-browser（Vercel，CLI 件）
npx skills add vercel-labs/agent-browser

# playwright（插件形态，会话内自动挂载 browser_* 工具组）
# Claude Code 内执行：
/plugin
# 在插件市场检索 playwright 安装

# chrome-automation 与 web-access
# 先用 find 定位到具体 owner/repo，再：
npx skills add <owner>/<repo>
```

## 推荐排行榜

- **综合第一：agent-browser** —— 长会话 token 经济学赢在架构层，CLI 不占工具位的思路值得所有技能作者抄。
- **功能天花板：playwright** —— 工具组覆盖广度、调试深度（网络、控制台、多标签）无出其右，全家桶首选。
- **新手最快上手：web-access** —— 零配置读网页，五分钟见效。
- **存量资产复用：chrome-automation** —— 唯一能带着你的登录态和扩展干活的路线。
- **最值得抄的设计细节：`run_code_unsafe` 式命名** —— 把风险等级写进接口名，一句话胜过一页安全须知。

## 结语

这条赛道挤满了新面孔，但横评下来真正的分野只有一条：**浏览器状态归谁管、token 花在哪**。MCP 派用常驻工具位换即插即用，CLI 派用零常驻换长会话经济性，直连派用安全边界换你的真实身份。没有全能冠军，只有场景对位。对技能作者的启示倒是统一的：这个赛道的 SKILL.md 写得好不好，不看功能介绍多华丽，只看「先快照、后引用、操作后作废」这条纪律有没有写在第一屏。

## 参考来源

1. [skills.sh](https://skills.sh) — Skills 生态站与 `skills` CLI（本文安装命令所用工具），浏览器类技能检索入口
2. [anthropics/skills](https://github.com/anthropics/skills) — Anthropic 官方 Skills 仓库，SKILL.md 规范的权威出处
3. [vercel-labs/agent-browser](https://github.com/vercel-labs/agent-browser) — agent-browser 项目仓库（本文分析基于其公开设计思路与装机实测接口，星标数据以仓库实况为准）
4. [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp) — Playwright 官方 MCP 服务器，本文 `browser_*` 工具组分析的对应项目
5. [mcpservers.org/agent-skills](https://mcpservers.org/agent-skills) — Agent Skills 目录，浏览器操控类技能的收录与分类可在此交叉查阅

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
