image.png

AI Agent已经越来越擅长写代码、处理文件和调用API,但一旦任务进入真实网页环境,很多Agent还是会卡住。

例如:

  • 登录企业后台
  • 打开已经登录的飞书、Notion或GitHub
  • 填写网页表单
  • 点击多步骤业务流程
  • 查看动态加载的数据
  • 测试刚刚部署的网站
  • 操作只能通过网页完成的服务

传统浏览器自动化方案经常重新启动一个干净的浏览器环境。

这意味着用户明明已经在Chrome中登录了网站,Agent重新打开浏览器后却可能再次遇到:

登录
↓
短信验证码
↓
二维码
↓
双因素认证
↓
验证码

腾讯开源的 BrowserSkill,就是专门针对这个问题设计的一套本地浏览器桥接工具。

它允许Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi、Hermes Agent,以及其他能够执行Shell命令的AI Agent,直接连接用户 已经登录的真实浏览器

GitHub项目地址:

https://github.com/Tencent/BrowserSkill

BrowserSkill是什么?

BrowserSkill是一套面向AI Agent设计的浏览器自动化工具。

它并不是重新开发一个浏览器,而是在AI Agent与用户真实浏览器之间建立一层本地桥梁。

整体结构由:

  • bsk CLI
  • 本地Daemon
  • BrowserSkill浏览器扩展

三部分组成。

Agent本身并不会直接控制浏览器,而是执行:

bsk ...

命令。

请求随后按照以下流程传递:

Codex / Claude Code / Cursor / OpenClaw
↓
bsk CLI
↓
本地Daemon
↓
127.0.0.1 WebSocket
↓
BrowserSkill浏览器扩展
↓
Agent Window
↓
真实网页

腾讯官方README明确表示,Agent不会直接与浏览器通信,而是由bsk CLI发出任务,本地Daemon将请求路由至扩展,再由扩展在专门的Agent Window中完成网页操作。

这使BrowserSkill更像:

AI Agent与真实浏览器之间的一套通用控制协议。

最大亮点:直接复用真实登录状态

BrowserSkill最有价值的设计之一,就是可以使用用户现有浏览器Profile中的登录状态。

例如用户已经登录:

  • GitHub
  • 飞书
  • Notion
  • 企业后台
  • 内容管理系统
  • 电商平台
  • 数据分析平台

BrowserSkill可以让Agent在同一浏览器环境中处理这些网页,而不需要为Agent单独创建一套测试账号。腾讯官方将“Reuse real login state”直接列为项目首要优势。

传统流程可能是:

Agent启动独立浏览器
↓
打开网站
↓
发现未登录
↓
用户登录
↓
验证码
↓
继续执行

BrowserSkill则希望变成:

用户Chrome本来已经登录
↓
Agent调用BrowserSkill
↓
复用现有浏览器状态
↓
直接进入业务页面
↓
开始工作

对于每天大量使用需要登录网站的Agent来说,这会明显减少人工接管次数。

但并不是把Cookie直接交给AI

“复用登录状态”很容易产生一个误解:

是不是Agent可以直接读取我的账号密码、Cookie和Token?

BrowserSkill官方Skill规范明确设置了安全红线:

禁止通过bsk evaluate在银行、SSO、密码管理器等敏感页面提取:

  • Token
  • Cookie
  • localStorage
  • Auth Header
  • 密钥或其他凭证

所以它的设计目标是:

让Agent使用登录后的网页能力,而不是把登录凭证暴露给Agent。

当然,只要一个Agent能够操作已经登录的网站,它仍然可能执行真实账号下的网页动作,因此账号权限、Agent权限和操作确认依然非常重要。

第二个亮点:Agent干活时不抢你的浏览器

很多浏览器自动化工具的体验问题不是“不能自动操作”,而是Agent开始操作之后,用户自己没法正常使用浏览器。

BrowserSkill默认采用一个独立、可见的:

Agent Window

执行自动化任务。

用户自己的普通浏览器窗口仍然可以继续:

  • 看网页
  • 搜资料
  • 写文档
  • 看视频
  • 工作

Agent则在另一个窗口中:

  • 点击
  • 输入
  • 跳转
  • 截图
  • 检查页面

腾讯官方明确表示,BrowserSkill的自动化任务在独立Agent Window中运行,因此不会中断用户当前浏览工作。

可以理解为:

你的浏览器窗口
你继续工作

同时

Agent Window
AI自己干活

这对于长时间运行的Agent任务很重要。

否则AI每点击一次网页,鼠标、标签页和当前页面都被抢走,自动化就很难成为真正后台式的生产力工具。

需要操作你当前标签页怎么办?

有些任务确实需要操作用户已经打开的某个页面。

例如:

就修改我现在打开的这篇后台文章。

BrowserSkill并不会默认获得用户所有普通标签页的写权限。

官方定义的规则是:

用户标签页默认只读,需要显式Borrow。

先查看用户标签:

bsk tab list --session <id> --scope user

然后明确借用:

bsk tab borrow <tab-id> --session <id>

执行完成后:

bsk tab return <tab-id> --session <id>

将标签页归还原窗口。

因此整个逻辑是:

用户正常标签页
↓
默认不允许Agent修改
↓
明确借用
↓
进入Agent Window
↓
Agent完成指定操作
↓
归还原浏览器窗口

如果Agent忘记归还,Session结束时BrowserSkill也会自动归还借用的标签页。

这比让Agent从一开始就拥有整个浏览器所有标签页的控制权,边界更加清晰。

bsk就是BrowserSkill的核心CLI

BrowserSkill为Agent提供了一套统一的命令行工具:

bsk

AI Agent只要能够运行Shell命令,理论上就可以接入BrowserSkill,而不需要专门支持某一个大模型SDK。腾讯因此将其描述为不绑定特定模型、Agent框架或Harness的浏览器自动化接口。

例如:

bsk navigate https://example.com --session <id>

打开网页。

bsk observe --session <id>

理解当前页面。

bsk click @e4 --session <id>

点击元素。

bsk fill @e5 --value "BrowserSkill" --session <id>

填写输入框。

bsk press Enter --session <id>

执行键盘操作。

这种形式特别适合Agent。

因为对于Codex、Claude Code等工具来说,执行:

bsk ...

和执行:

git ...
npm ...
python ...

本质上是相似的工具调用模式。

BrowserSkill支持哪些AI Agent?

官方README目前明确列出了:

  • Cursor
  • Claude Code
  • Codex
  • OpenClaw
  • CodeBuddy
  • WorkBuddy
  • Pi
  • Hermes Agent

并表示任何具备Shell调用能力的Agent理论上都可以通过bsk CLI使用BrowserSkill。

这意味着BrowserSkill并不是:

“腾讯某一个Agent专用的浏览器插件”。

它更希望成为一套通用的Agent浏览器能力。

可以直接给Codex安装Skill

BrowserSkill仓库本身附带了一份:

skill/SKILL.md

这份Skill负责告诉Agent:

  • 什么时候应该调用浏览器
  • 如何建立Session
  • 如何理解页面
  • 如何点击
  • 如何填写表单
  • 什么时候需要截图
  • 什么时候应该让用户接管
  • 任务什么时候必须停止

安装CLI和浏览器扩展后,可以运行:

bsk install-skill

随后选择希望安装到的Agent环境。

官方当前支持直接安装到Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi和Hermes Agent。

其他支持Skills的Agent,也可以把:

skill/SKILL.md

复制到自己的Skills目录中。

甚至可以让Agent自己帮你安装

BrowserSkill官方推荐的安装方式很有Agent时代的特点。

如果已经在使用Codex、Claude Code或Cursor,可以直接把下面这个要求发给Agent:

Set up browser-skill on this machine by following
https://raw.githubusercontent.com/Tencent/BrowserSkill/main/AGENT_INSTALL.md

Agent会按照官方安装文档:

  • 安装CLI
  • 安装Skill
  • 引导用户加载浏览器扩展

也就是说,连BrowserSkill本身的部署都开始变成:

“告诉Agent帮我装。”

手动安装也很简单

macOS和Linux可以运行:

curl -fsSL \
https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh

Windows PowerShell:

irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex

安装完成后:

bsk --version

检查CLI。

随后需要安装BrowserSkill浏览器扩展。

官方已经提供Chrome Web Store版本。

支持哪些系统?

BrowserSkill目前官方支持:

系统支持情况
macOS Apple Silicon支持
macOS Intel支持
Linux x64支持
Linux ARM64支持
Windows x64支持

浏览器方面目前正式支持:

  • Google Chrome
  • Microsoft Edge

其他能够加载Chromium扩展的浏览器理论上也可能工作。

Firefox目前仍处于规划阶段。

AI究竟是怎么“看懂”网页的?

BrowserSkill不是一开始就让Agent截图,再调用视觉模型“看图点按钮”。

它提供了更加结构化的网页理解方式。

官方Skill规定的观察优先级大致为:

bsk observe
↓
bsk snapshot
↓
bsk get-html
↓
bsk screenshot

bsk observe

优先使用语义化的页面观察结果,帮助Agent理解:

  • 页面文字
  • 控件
  • 元素
  • Hover区域
  • 可交互内容

bsk snapshot

当语义观察不够时,可以获取静态Accessibility Tree,并为可交互元素生成类似:

@e1
@e2
@e3

的引用。

bsk get-html

需要检查:

  • DOM
  • Metadata
  • 隐藏结构

时再读取HTML。

bsk screenshot

只有当任务真的依赖:

  • 视觉布局
  • Canvas
  • 图片
  • CSS样式
  • 页面外观

时才使用截图。

这可以减少把整张网页截图反复塞给多模态模型带来的Token和推理开销。

一个网页操作流程是什么样?

例如用户说:

打开网站,搜索BrowserSkill,然后点开第一个结果。

Agent可以执行:

bsk session start

获得Session ID。

然后:

bsk navigate https://example.com --session abcd

接着理解网页:

bsk observe --session abcd

找到搜索框后:

bsk fill @e3 \
  --value "BrowserSkill" \
  --session abcd

按下Enter:

bsk press Enter --session abcd

页面变化后重新:

bsk observe --session abcd

找到第一个结果:

bsk click @e7 --session abcd

任务完成后:

bsk session stop abcd

BrowserSkill要求每个自动化任务都明确建立和结束Session,而不是长期无限占用用户浏览器。

遇到验证码怎么办?

这是浏览器Agent无法绕开的现实问题。

例如遇到:

  • CAPTCHA
  • 手机验证码
  • OTP
  • 登录确认
  • 二维码
  • 重要操作确认

BrowserSkill没有试图让Agent暴力绕过这些步骤。

相反,它提供:

bsk request-help

让Agent暂停并请求用户接管。

例如:

bsk request-help \
  --session abcd \
  --prompt "请完成验证码,通过后点击Done" \
  --title "需要人工验证"

此时目标标签页会进入前台,并暂时解除Agent控制遮罩,让用户完成验证码。

用户完成后,把控制权重新交还Agent,任务继续执行。

整个流程变成:

Agent自动工作
↓
遇到验证码
↓
暂停
↓
人类接管
↓
完成验证
↓
交回控制
↓
Agent继续

这就是BrowserSkill强调的:

Human-in-the-loop。

登录失败也不会无限乱点

BrowserSkill官方Skill还规定:

如果遇到需要人类输入的登录、验证码、OTP或支付确认,应调用request-help,而不是反复尝试。

如果某项操作连续失败两次仍没有进展,也应该暂停,而不是继续无目的点击。

这对Agent非常重要。

浏览器自动化最大的风险之一就是模型在不知道下一步该怎么做时:

点一下
↓
失败
↓
再点
↓
刷新
↓
换页面
↓
继续点

最后把任务状态彻底弄乱。

BrowserSkill的Skill文件对这种行为设置了明确约束。

“完成任务就停”

腾讯甚至在BrowserSkill Skill中专门写了一套:

Stop when the goal is met

规则。

Agent在开始任务前需要先确定一个可观察的成功条件。

例如:

  • 表单已经提交
  • 商品已经加入购物车
  • 视频已经开始播放
  • 页面已经成功部署

一旦目标完成,就应该立即结束Session,而不是继续:

  • 刷新
  • 检查其他页面
  • 再点几个按钮
  • 顺便探索其他内容

这实际上是在解决Agent长期自主控制工具时非常重要的问题:

什么时候停。

支持录制人类操作,再让Agent学习流程

BrowserSkill还提供:

bsk record

功能。

用户可以自己在Agent Window中执行一遍操作,BrowserSkill会将过程保存为:

trace.json

记录内容包括:

  • 页面
  • Navigation
  • Click
  • Fill
  • Select
  • Press
  • 元素目标描述

例如,公司后台每天都要执行:

登录后台
↓
打开订单页面
↓
筛选昨日订单
↓
导出CSV

用户可以先手动完成一次。

随后把trace.json交给Agent,Agent根据记录中的步骤和目标元素重新执行。

官方目前没有提供简单的:

bsk replay

一键机械回放,而是要求Agent理解Trace后,结合当前网页状态执行。

这样在页面结构轻微发生变化时,相比固定坐标点击会有更大的适应空间。

很适合UI回归测试

BrowserSkill官方Skill明确把:

Regression-test a PR's UI

列入使用场景。

开发者可以让Codex完成:

修改前端代码
↓
启动本地项目
↓
打开浏览器
↓
登录真实测试账号
↓
检查修改页面
↓
点击功能
↓
观察是否报错
↓
继续修改

例如:

修复设置页保存按钮的问题,然后打开本地网站,用浏览器验证修改已经生效。

过去代码Agent通常只能:

  • 修改代码
  • 跑测试
  • 看终端输出

BrowserSkill加入之后,Agent开始能够:

真正打开页面看看自己写出来的东西。

支持移动设备界面模拟

BrowserSkill还提供:

bsk emulate

用于模拟移动设备视口。

官方预设包括:

  • iPhone 14
  • iPhone 14 Pro Max
  • iPhone SE
  • Pixel 7
  • Galaxy S23
  • iPad mini
  • Galaxy Tab S8

例如:

bsk emulate \
  --session abcd \
  --device iphone-14

Agent可以检查同一个网页在手机尺寸下:

  • 是否溢出
  • 菜单是否正常
  • 按钮是否能点击
  • 响应式布局是否正确

不过官方说明,目前模拟主要覆盖:

  • Viewport
  • User-Agent
  • Touch

并不包含网络限速、伪造定位等完整移动设备模拟。

BrowserSkill特别适合哪些任务?

企业后台自动化

很多企业系统没有完整API,但有成熟Web后台。

Agent可以通过BrowserSkill完成:

  • 查询数据
  • 填写信息
  • 修改配置
  • 下载报表
  • 上传文件

前提是用户拥有相应权限。

内容发布

可以操作:

  • CMS
  • 自媒体后台
  • 企业官网
  • 内容管理平台

完成:

打开后台
↓
填写标题
↓
粘贴正文
↓
上传封面
↓
设置分类
↓
保存草稿

涉及最终公开发布时,最好保留人工确认。

电商运营

可以用于:

  • 商品后台检查
  • 商品资料填写
  • 报表下载
  • 库存查看
  • 活动配置

但支付、退款及资金相关操作需要更严格的人工确认。

数据收集

对于必须登录以后才能看到的数据,Agent可以读取当前账号有权访问的网页,再提取成结构化结果。

网页测试

开发者可以让Agent:

  • 点击按钮
  • 填表
  • 检查页面内容
  • 模拟手机尺寸
  • 截图
  • 回归测试

SaaS自动化

一些没有开放API但拥有Web界面的SaaS工具,可以通过BrowserSkill进入Agent工作流。

BrowserSkill与普通网页搜索有什么区别?

网页搜索解决的是:

帮我找到网上的信息。

BrowserSkill解决的是:

帮我进入一个网页,把事情做完。

例如:

搜索工具

可以告诉你:

GitHub上这个Issue的内容是什么。

BrowserSkill

则可以进一步:

打开Issue
↓
查看内容
↓
点击编辑
↓
修改字段
↓
提交

前者让AI“看互联网”。

后者开始让AI“操作互联网”。

BrowserSkill与Playwright有什么区别?

两者都有浏览器自动化能力,但关注重点不同。

Playwright是一套完整的浏览器自动化和测试框架,开发者通常通过JavaScript、Python、Java或.NET等编程接口编写自动化脚本。

BrowserSkill则更强调:

  • AI Agent直接调用
  • CLI接口
  • 复用用户真实登录状态
  • 独立Agent Window
  • 人工接管
  • 用户标签页借用
  • Agent Skill约束

BrowserSkill并不意味着Playwright失去价值。

对于大规模确定性测试、CI/CD和复杂自动化代码,传统浏览器自动化框架依然非常合适。

BrowserSkill解决的更像是:

“如何让一个正在工作的AI Agent,马上拥有浏览器操作能力。”

BrowserSkill也不是Computer Use的完全替代品

Computer Use类方案通常从屏幕像素出发,让模型:

看截图
↓
判断坐标
↓
移动鼠标
↓
点击

BrowserSkill则优先使用网页结构、Accessibility Tree和语义化元素引用进行操作。只有在页面视觉布局、Canvas或图片内容无法通过结构信息理解时,才进一步使用Screenshot。

对于标准网页表单和按钮,这种结构化操作通常更容易获得稳定目标。

但如果任务发生在:

  • 桌面软件
  • 游戏
  • 非浏览器应用
  • 纯Canvas界面

BrowserSkill本身就不是通用桌面控制方案。

为什么CLI对Agent特别重要?

当前AI Agent生态非常碎片化。

每个产品可能拥有:

  • 不同模型
  • 不同工具协议
  • 不同Skill目录
  • 不同MCP实现
  • 不同运行框架

如果浏览器工具只能通过某个专有SDK运行,就需要分别开发多个适配版本。

BrowserSkill选择CLI作为公共接口:

Agent
↓
Shell
↓
bsk

只要Agent会执行Shell,就能够调用同一套浏览器能力。腾讯官方因此强调,它不锁定特定模型、Agent框架或Harness。

这也是为什么Codex、Claude Code、Cursor、WorkBuddy和OpenClaw可以共用同一套BrowserSkill。

开源协议为MIT

BrowserSkill目前以 MIT License 开源。

项目代码主要包括:

crates/bsk-cli

bsk CLI与本地Daemon。

crates/bsk-protocol

通信类型与JSON Schema。

apps/extension

浏览器扩展。

以及:

packages/ui
packages/i18n

扩展UI和国际化组件。

这意味着开发团队可以研究并根据自己的Agent系统进行二次集成,但实际商用仍应遵守MIT许可证要求,并自行评估浏览器账号、隐私和业务操作风险。

当前仍有哪些限制?

目前正式支持Chrome和Edge

Firefox仍在计划中。

需要安装本地组件

BrowserSkill不是纯云端API,需要:

  • bsk CLI / Daemon
  • 浏览器扩展

共同工作。

真实登录态也意味着真实权限

如果Agent打开的是管理员账号,它能够操作的范围可能非常大。

因此涉及:

  • 删除
  • 发布
  • 支付
  • 转账
  • 权限修改
  • 账号安全

等动作时必须严格设置人工确认。

验证码仍然需要人

BrowserSkill并不试图绕开CAPTCHA、OTP和登录确认,而是通过bsk request-help让用户接管。

不应长期借用个人标签页

官方明确规定,用户标签页只应该在当前必要步骤中临时借用,任务完成后马上归还。

不应该提取登录凭证

官方明确禁止利用evaluate从银行、SSO和密码管理器等页面读取Token、Cookie及其他敏感凭证。

不是所有网站都能稳定自动化

网页结构、反自动化机制、Canvas内容及复杂交互仍可能让Agent失败。

因此BrowserSkill虽然降低了浏览器接入门槛,但并不能保证所有网站、所有流程都100%无人值守完成。

总结

腾讯开源的BrowserSkill,本质上是在AI Agent与用户真实浏览器之间增加了一座本地桥梁。

它通过:

AI Agent
↓
bsk CLI
↓
本地Daemon
↓
浏览器扩展
↓
独立Agent Window

让Codex、Claude Code、Cursor、OpenClaw、CodeBuddy、WorkBuddy等Agent拥有浏览器操作能力。

它最值得关注的并不是“AI会点击网页”——浏览器自动化早已存在。

真正实用的是它同时解决了几个Agent时代的新问题:

第一,复用真实登录状态。

不必每次为Agent重新建立一个干净浏览器环境和测试账号。

第二,不干扰用户当前工作。

Agent默认在独立Agent Window运行,用户继续使用自己的浏览器窗口。

第三,已有标签页必须显式借用。

用户窗口默认受到保护,Agent需要borrow后才能修改,并在完成后归还。

第四,任何会调用Shell的Agent都能接入。

统一通过bsk CLI工作,不绑定单一模型。

第五,遇到验证码可以让人类接管。

Agent不需要在无法完成的验证环节无限重试。

第六,内置了明确的Agent操作边界。

包括完成任务立即停止、敏感页面禁止提取凭证、用户标签不能长期借用等规则。

过去AI Agent拥有的是:

大脑
+
代码
+
Shell
+
文件系统

BrowserSkill补上的,是一个非常现实的能力:

网页操作

这意味着AI不只能够告诉用户:

下一步请打开后台,点击设置,再填写这个表单。

而是开始可以自己:

打开后台、找到按钮、填写表单、检查结果,并在需要验证码时再把控制权交给人。

对于真正希望让Agent完成端到端任务的开发者来说,这可能比单纯再提升几个Benchmark百分点更加实用。

相关链接