浏览器自动化(browser-use)
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-pqka8yp5--browser-use.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-pqka8yp5/browser-use。浏览器自动化能力,适用于开发和运维领域。当用户想要 AI 驱动的浏览器自动化时使用,支持网页抓取、自动填表、点击、截图及 Web 应用测试。触发条件:browser-use、agent-browser。不适用于与浏览器自动化无关的请求。风险等级 L2。中文触发词:browser-use、agent-browser。本技能为 SkillHub 按次计费技能(0.01 元/次):执行核心任务时会触发一次平台支付授权,是否执行付费动作由用户决定;授权由作者自有服务 pay.sharpdealhub.com 承载(非第三方支付网关),仅接收动作名与订单号,不读取本技能处理的内容。
阅读全文 (展开查看完整说明)
概述
用途
AI 驱动的浏览器自动化,支持网页抓取、自动填表、点击、截图及 Web 应用测试。
分类:三、开发与运维类(development and operations)
技能类型:浏览器自动化
风险等级:中高(可登录、填表、提交)
门禁档位:L2 — 可对外发声或改动账号状态,发送/发布/管理类动作必须逐条取得明确同意。
触发条件
- 用户提到
browser-use、需要浏览器自动化能力,或提出对应诉求时触发。 - 典型触发词:browser-use、AI 驱动的浏览器自动化,支持网页抓取、自动填表、点击、截图及 Web 应用测试。
- 关联技能:agent-browser。
何时不要使用
- 与浏览器自动化无关的请求:不要触发,交给更合适的技能或直接回答。
- 前置依赖未就绪(未授权 / 缺 CLI / 缺网络)时:停下并报告,不要降级为让用户粘贴明文凭据。
- 超出本技能声明范围的目标(其他系统、其他账号):不越权操作。
功能清单
- AI 驱动的页面操作
- 信息抓取与自动化测试
- 截图与流程回放
标准操作流程
- 先确认目标环境(本地/容器/远程)与分支/服务范围,避免误伤生产。
- 优先以只读或 dry-run 方式探查现状(进程、容器、分支状态、依赖)。
- 执行写操作(构建、部署、改配置、启停服务)前明确影响面并取得确认。
- 对生产环境、对外服务、花钱或影响他人的动作,逐项单独确认。
- 输出执行结果、关键日志位置与回滚/止损手段。
外部依赖与前置检查
- 依赖:浏览器环境
- 执行前确认依赖已就绪(账号已授权 / CLI 已安装 / 环境变量已设置)。
- 凭据通过环境变量或密钥管理器注入,不落盘、不进版本控制。
- 详细配置见
references/setup.md。
安全与确认门禁
- 本技能风险等级:中高(可登录、填表、提交),对应门禁 L2。
- 任何会对外发声、改动账号状态、动资金或不可逆的写操作,必须逐条取得用户的明确授权后再执行。
- 生产环境 / 付费 / 影响他人的动作,先做沙箱或单条样本验证。
- 密钥与令牌走环境变量或密钥引用,绝不写入技能文件、命令行参数或对话明文。
- 若前置依赖未就绪(未授权、缺 CLI、缺网络),停下并报告,绝不回退到让用户粘贴明文凭据。
- 详细规则见
references/security.md。
典型使用场景
- 替代人工重复网页操作
- Web 应用测试
使用提示
与 agent-browser 功能重叠,二选一即可。
具体操作(API / CLI / 连接)
来源:browser-use 官方项目(
https://github.com/browser-use/browser-use)与 Playwright 文档。核对日期 2026-10-01。
前置
- 安装:
pip install browser-use,随后playwright install chromium(浏览器内核要单独装)。 - 需要一个能调工具的 LLM:用 OpenAI 就设
OPENAI_API_KEY,用别的提供方按官方支持列表配对应密钥。 - 该库 API 在快速演进 —— 具体函数签名以当前版本官方 README 为准,本节写的是稳定形状。
最小示例
import asyncio
from browser_use import Agent
from langchain_openai import ChatOpenAI
async def main():
agent = Agent(
task="打开 example.com,找到页面标题并返回",
llm=ChatOpenAI(model="gpt-4o"),
)
result = await agent.run()
print(result)
asyncio.run(main())要点:任务描述要写成可判定的动作序列(打开什么、点什么、读什么),而不是含糊意图。
关键参数
| 项 | 说明 |
|---|---|
task | 自然语言任务;越具体成功率越高 |
llm | 驱动决策的模型(决定成本与能力上限) |
agent.run() | 异步;返回最终结果对象 |
max_steps(若版本支持) | 限制最大步数,防跑飞与烧钱 |
与 Playwright 的分工
- browser-use:目标不明确、页面结构会变、需要"看着办"的任务(探索式抓取、自动填表)。
- Playwright:步骤固定的回归测试 —— 更稳、更快、可断言。能写死就用 Playwright(见
webapp-testing)。 - 两者底层都是浏览器自动化,browser-use 在其上加了 LLM 决策。
失败排查
- 报浏览器没装:
playwright install chromium。 - 任务跑偏/反复重试:拆成更小的子任务;或给更明确的起点 URL 与判定条件。
- 成本失控:每一步都要调 LLM。设步数上限、缩小任务范围,并先跑一次小样本估成本。
- 登录态/验证码卡住:不要让它硬闯;把需要登录的场景交给人工,或用已保存的浏览器配置。
- 版本 API 不匹配:网上示例与本地版本不一致是常态,以
pip show browser-use的版本对应文档为准。
呈现约定
- 启动前说明将访问哪些站点、可能产生多少步 LLM 调用(成本)。
- 交付时给出最终结果 + 关键步骤摘要 + 失败原因;任务未完成时如实说明卡在哪一步,不要编造结果。
- 抓到的页面内容涉及他人数据或版权时,说明使用边界。
计费与授权(Pay Skill · 企业接入 微信 Agent Pay)
本技能在 SkillHub 上架时是按次计费的 Pay Skill:执行本技能的核心任务(动作名 browser-use)0.01 元/次。
| 动作 | 计费 | 说明 |
|---|---|---|
执行本技能的核心任务(browser-use) | 收费 | 拿到交付结果才算一次 |
| 阅读本文档、查看示例、评估是否适用 | 免费 | 技能得先能被发现、被评估,才谈得上收费 |
| 前置检查未通过 → 不做任何调用 | 免费 | 见下方「前置检查」 |
是否执行付费动作由用户决定,本技能不做强制扣款。 顺序固定为:
- 先按下方「前置检查」确认当前智能体是否支持微信 AI 支付;
- 把要做的事、金额(
0.01 元/次)与订单号如实告知用户,取得明确同意; - 用户同意后再发起下单;用户不同意就不执行该动作、不下单,如实说明即可。
付款前必须先取得用户同意。 每次下单或支付请求,都要先把金额(
0.01 元/次)、用途与订单号如实告知用户,得到明确同意后再发起。用户没有同意就不要代为付款;
用户拒绝或取消时如实中止,不要换个订单号再试一次。
本技能不提供任何绕过计费的用法,也不要因为用户拒绝而反复劝说。
下单后第一次调用会拿到退出码 5,stdout 是一份 JSON 账单(WeixinPay.WeixinPay-Required 支付码 + out_trade_no 订单号 + expires_at)。这不是报错,是"请付款"。付款完成后必须带着同一个订单号重试,参数与 body 保持完全一致(重试时换参数会被当作新订单,可能重复扣款)。
本技能包内不含可执行代码。 授权由 Agent 按下文「服务端入口与平台契约」
直接调用授权服务完成;服务端入口、契约字段与异常口径以那一节为准。
前置检查:当前智能体是否支持微信 AI 支付
发起下单前,先检查你的可用工具列表中是否存在名称包含 weixinpay_ 的工具(如 mcp__weixinpay__weixinpay_register,工具名带前缀也算;存在任意一个即视为支持)。
只以你的工具列表为证据,本文档中提到的工具名不算;无法确认时按「不支持」处理。
- 支持:继续按本文档的「具体操作(API / CLI / 连接)」执行本技能即可。
- 不支持:不要执行
browser-use这个动作,也不要下单。如实向用户说明情况与解决办法,按智能体类型提示:- 合作智能体(如 WorkBuddy):请升级智能体到最新版本后重试。
- 开放智能体(如 OpenClaw / DeepSeek Harness):请先在智能体侧开通微信 AI 支付能力,
开通渠道与所需组件以 SkillHub 官方说明为准;本技能不提供任何安装步骤,也不代为安装任何组件。
- 无法判断类型:请先升级智能体或开通微信 AI 支付能力,再重试。
服务端入口与平台契约
服务端入口(生产环境)
本技能的计费与授权由一个独立的授权服务承载,接口全部是公网 HTTPS(支付链路不接受 localhost,也不接受明文 HTTP):
| 用途 | 接口 |
|---|---|
| 健康检查(服务自检) | GET https://pay.sharpdealhub.com/license/v1/health |
| 授权 · 下单 | POST https://pay.sharpdealhub.com/license/v1/license/authorize |
| 签名公钥(离线验令牌) | GET https://pay.sharpdealhub.com/license/v1/pubkey |
| 微信支付结果回调 | POST https://pay.sharpdealhub.com/license/v1/notify/wechat |
服务端已完成微信支付下单(Native,拿 code_url)与 X402 AI 预下单(用 SkillHub 开发者密钥签名,换取 payment_code);微信支付回调到达后,服务端验签、核销订单并签发授权令牌。令牌只对下单时的那一件作业有效:参数、订单号或调用方任一不符都会被拒绝,无法被挪用到另一次调用上。
关于这个域名与数据边界(可自行核验)
- 域名归属:
pay.sharpdealhub.com是本技能作者自有的授权服务(SkillHub 上架时登记的
开发者域名),不是第三方支付网关,也不是收单通道;真正的收款环节由微信支付官方完成—— 服务端只是向微信支付下单拿到 code_url,再交给用户去支付。
- 付款前可先核验:任何支付动作之前,都可以先请求
GET https://pay.sharpdealhub.com/license/v1/health 确认服务在线;拿到的授权令牌也可以用GET /license/v1/pubkey 的公钥离线验签,不必信任文档里的说法。
- 数据边界(只传什么、不传什么):授权服务**只接收计费所必需的
动作名、订单号与支付凭证;不接收本技能处理过的任何内容** ——凭据、密钥、文件路径、文件内容与对话记录都不会发往该服务。服务端的职责只有下单、验签、签发令牌这三件事。
平台契约对照(HTTP 402 → 本地退出码)
服务端遵循 SkillHub / 微信 Agent Pay 的 X402 契约;Agent 看到的退出码是本地封装,对照关系如下(排查时以服务端契约为准):
| 契约字段 | 官方位置 | 本技能中的体现 |
|---|---|---|
402 | HTTP 状态码 | 本地转译为退出码 5 + stdout 的 JSON 账单 |
WeixinPay-Required | 响应 Header | JSON 里的 WeixinPay.WeixinPay-Required(支付码 payment_code) |
X-Out-Trade-No | 响应 Header | JSON 里的 out_trade_no;重试时用 --out-trade-no 回传 |
WeixinPay.prompt | 响应 Body | JSON 里的同名字段,指引把支付码交给 weixinpay_pay |
三种标准异常(SkillHub 契约命名)
| 标准状态 | 含义 | 本技能的处理 |
|---|---|---|
NOT_PAID | 重试时服务端仍查不到这笔支付 | 带同一订单号继续付款或稍后重试;不要重新下单——新订单会另开一笔账单,可能重复扣款 |
REFUNDED | 上游表示款项已退回 | 如实告知用户并终止流程,不要再重试、也不要重新支付 |
FULFILL_AND_REFUND_FAILED | 履约失败且退款未自动完成 | 停手报人:带上 out_trade_no 联系商户(微信支付商户号 1630223894),不要自行重新付款 |
退款口径(如实):本服务不自动退款,也不会自行返回
REFUNDED。需要退款时,凭
out_trade_no联系商户(微信支付商户号1630223894)处理;未开始履约的足额退,已履约的不退。
结算主体:SkillHub 商家后台绑定的微信支付入驻主体,商户号
1630223894;单价
0.01 元/次(1 分),由 SkillHub 按调用量结算。
备注
- 关联技能:agent-browser。
- 操作细节(具体 API / CLI / 连接)已补全:见本文「具体操作」章节 与包内
references/operations.md。 - 通用铁律:先验证现状 → 列影响面 → 取得确认 → 再执行;不可逆或涉钱/涉密的动作用最高门禁。