
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与用户真实浏览器之间建立一层本地桥梁。
整体结构由:
bskCLI- 本地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提供了一套统一的命令行工具:
bskAI 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.mdAgent会按照官方安装文档:
- 安装CLI
- 安装Skill
- 引导用户加载浏览器扩展
也就是说,连BrowserSkill本身的部署都开始变成:
“告诉Agent帮我装。”
手动安装也很简单
macOS和Linux可以运行:
curl -fsSL \
https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | shWindows 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 screenshotbsk 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 abcdBrowserSkill要求每个自动化任务都明确建立和结束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-14Agent可以检查同一个网页在手机尺寸下:
- 是否溢出
- 菜单是否正常
- 按钮是否能点击
- 响应式布局是否正确
不过官方说明,目前模拟主要覆盖:
- 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-clibsk CLI与本地Daemon。
crates/bsk-protocol通信类型与JSON Schema。
apps/extension浏览器扩展。
以及:
packages/ui
packages/i18n扩展UI和国际化组件。
这意味着开发团队可以研究并根据自己的Agent系统进行二次集成,但实际商用仍应遵守MIT许可证要求,并自行评估浏览器账号、隐私和业务操作风险。
当前仍有哪些限制?
目前正式支持Chrome和Edge
Firefox仍在计划中。
需要安装本地组件
BrowserSkill不是纯云端API,需要:
bskCLI / 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百分点更加实用。










评论区 (0)
最新评论登录后发布评论并参与互动。
暂无评论,欢迎抢沙发。