2026年6月17日 2 分钟阅读

Web Cap 完全指南:为 AI Agent 构建可复用的浏览器能力层

tinyash 0 条评论

当 AI 编码 Agent(如 Claude Code、Codex)需要操控网页时,传统做法是让 Agent 每次从头探索页面结构、定位按钮、填写表单。这种方式的问题很直观:每次都要消耗大量 Token 去”重新认识”同一个页面,且重复操作容易出错。

Web Cap 换了一个思路——把浏览器操作拆解为可复用的脚本能力,让 Agent 一次验证、永久复用。

为什么需要”脚本优先”的浏览器自动化

现有浏览器自动化工具的常见模式是”动作优先”:Agent 被告知「点击某个 selector」「填写某个输入框」「截一张图」。这套模式的问题是:

  • 每次从头探索:Agent 每次都要读取页面 DOM,理解布局,找到正确的控制元素
  • 错误恢复成本高:一次点击失败后,Agent 需要重新分析页面状态再尝试
  • 经验无法积累:今天学会的操作,明天换个 Agent 会话又要重学

Web Cap 的脚本优先(script-first) 思路正好反过来:

让 Agent 在页面内运行 JavaScript,把验证过的操作流程注册为可复用脚本,后续直接调用,不需要重新发现。

安装:两条命令打通

Web Cap 的安装分两步——安装 CLI 和安装浏览器扩展。

安装 CLI

最直接的方式是通过 npm 全局安装:

npm install -g web-capability

安装后可用 web-cap 命令。确认连通性:

web-cap session-status

如果安装了 skills CLI,也可以用 skill 方式安装(会自动处理 CLI 安装和连接检查):

npx skills add edgestorage/web-cap

安装浏览器扩展

  1. 打开 Web Cap Releases 页面
  2. 下载 chrome.zip 文件
  3. 解压该文件
  4. 在 Chrome 中打开 chrome://extensions
  5. 开启开发者模式
  6. 将解压后的文件夹拖入扩展页面
  7. 在扩展详情页开启 Allow User Scripts

扩展安装后,CLI 就能通过 WebSocket 连接到浏览器标签页执行脚本了。

核心概念:脚本模型

Web Cap 的核心是脚本模型。脚本是一个导出 default async function 的 JavaScript 模块,接收 JSON 输入,返回 JSON 输出:

export default async function (input) {
  const title = await page.title();
  const text = await page.locator(input.selector).textContent();

  return {
    ok: true,
    title,
    text,
  };
}

运行时会在脚本执行期间注入 Playwright 风格的 page helper,支持:

  • page.locator() / page.getByRole() 定位元素
  • locator.click() / locator.fill() 操作元素
  • locator.textContent() / locator.waitFor() 读取和等待
  • page.title() 获取页面标题

成功门槛注册:只有在返回 { ok: true } 时,加 --register 才会把脚本存入本地注册表。这个设计保证了注册表里的脚本都是经过验证的。

两种脚本类型

类型用途示例
read 脚本检查或提取页面状态获取 GitHub 仓库的 star 数、抽取表格数据
act 脚本操作页面或触发变化填写表单、点击按钮、隐藏内容区块

CLI 实战:四种典型用法

1. 执行一次性脚本

web-cap script-execute \
  --tab-id 1 \
  --script "export default async function (input) { return { ok: true, input }; }" \
  --input '{"hello":"world"}' \
  --timeout-ms 30000

2. 加载文件脚本并注册复用

web-cap script-execute \
  --tab-id 1 \
  --script-file ./script.js \
  --input-file ./input.json \
  --register

将大段脚本写入文件来执行,--register 仅在返回 ok: true 时持久化。

3. 复用社区脚本 Hub

Web Cap Hub 收集了面向常见网站的现成脚本:

git clone https://github.com/edgestorage/web-cap-hub.git
cd web-cap-hub
web-cap script-execute \
  --tab-id 1 \
  --script-file .web-cap/github.com/read-repository-summary.js \
  --input '{"owner":"edgestorage","repo":"web-cap"}'

4. 用户接手观察

当 Agent 遇到需要用户手动操作的步骤时,可以用 wait-events 等待并观察用户行为:

web-cap wait-events --duration-ms 10000

该命令会输出用户操作的 JSON Lines 流——包括点击、输入、页面跳转等事件,Agent 可以根据这些推断用户做了什么,然后继续工作。

执行证据:Agent 的”眼睛”

Web Cap 最实用的设计之一是执行证据(evidence)系统。开启后,CLI 会在脚本执行前后做三件事:

  1. 执行前:记录页面可见元素快照
  2. 执行中:跟踪 DOM 变化
  3. 执行后:重新采样变化区域,返回包含 addedremovedupdated 的可见元素差异

证据级别可配置:

web-cap config set evidence all          # 全部证据
web-cap config set evidence events,visibleElements  # 仅事件+可见元素

这意味着 Agent 拿到的不仅是脚本返回的 JSON,还能看到”执行后页面实际发生了什么”——这对失败恢复和决定是否注册脚本非常关键。

适用场景

场景 1:AI Agent 做代码审查前的页面检查

让 Claude Code 打开 GitHub PR 页面,提取 diff 信息和评论列表,然后进行代码审查。用 Web Cap 封装为 read-pr.js 脚本,后续每次审查时直接调用。

场景 2:数据分析 Agent 抽取网页信息

让 Codex 登录内部管理后台,从数据看板页面抽取关键指标。注册为 dashboard-extract.js 脚本后,每次需要数据时一行命令搞定。

场景 3:自动化测试 Agent

Agent 需要反复测试某个 Web 应用的功能流程(登录 → 搜索 → 导出)。每个步骤编写独立的 act 脚本组合使用,以降低每次运行的环境依赖。

与其他工具的对比

维度Web CapPlaywrightBrowser Use
定位Agent 浏览器能力层开发者测试框架Agent 浏览器操控框架
脚本复用内置注册表 + Hub需自建无原生复用机制
执行证据内置 DOM 差异采集截图对比部分支持
用户接手wait-events 原生支持不支持需自建
安装复杂度npm + 扩展npm + 驱动pip + 浏览器驱动

注意事项

  • Chrome 为主:当前扩展在 Chromium 系浏览器上验证,Firefox 支持在路线图中
  • Node.js 20+:CLI 依赖 Node.js 环境,需要确保版本
  • 受限页面不可用chrome://about: 等受限页面不在支持范围内
  • 发布前建议手动验证:对复杂脚本,建议先加载扩展做一次真实页面测试

总结

Web Cap 的核心理念是:让 Agent 的浏览器操作从”每次即兴发挥”变成”可积累的能力库”。脚本优先的设计配合执行证据系统和社区 Hub,将 AI Agent 访问网页的方式从”每次都像第一次逛陌生网站”提升为”像熟练工一样走预设路径”。

对于频繁需要与 Web 页面交互的 AI 编码 Agent 来说,这是一个值得添加到工具链中的轻量级能力层。


项目信息:GitHub edgestorage/web-cap · Apache-2.0 许可 · TypeScript 实现 · 6 GitHub Stars

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。