浏览器自动化是 AI Agent 落地的关键场景,但传统方案有个根本矛盾:为了安全,它们通常启动一个全新的空白浏览器——没 Cookie、没登录态、没凭证,于是你不得不配测试账号、手动绕过验证码,流程常在登录页断裂。2026 年 6 月腾讯开源的 BrowserSkill 走了相反的路:不做新浏览器,直连你本机已经登录的那个。本教程带你装好并跑通第一个任务。
先搞懂:BrowserSkill 解决什么矛盾
用一句话理解:别人让 Agent 用「借来的临时账号」干活,BrowserSkill 让 Agent 用「你真实的登录态」干活。核心架构是一个本机桥接层:
| 组件 | 角色 |
|---|---|
| bsk CLI | 你(或你的 Agent)下达指令的入口 |
| 本机守护进程 | 中转,连 CLI 和浏览器扩展 |
| 浏览器扩展 | 真正操作 Chrome / Edge 的「手」 |
整条链路完全本地闭环。敏感数据不经过任何第三方服务器——这是它和「云端浏览器 Agent」最本质的区别。你看到的页面 = Agent 看到的页面;你不给的权限 = Agent 拿不到。
Step 1:安装 bsk CLI 与浏览器扩展
# 1. 安装 bsk 命令行
pip install browserskill
# 或按官方仓库:
# git clone https://github.com/Tencent/BrowserSkill && cd BrowserSkill && pip install .
# 2. 在 Chrome / Edge 安装 BrowserSkill 扩展(从应用商店或加载解压包)
# 3. 确认扩展已启用,且允许连接本机守护进程
Step 2:启动本机守护进程并连接
# 启动本机守护进程(后台常驻)
bsk daemon start
# 确认连接到你的浏览器
bsk connect --browser chrome
# 期望输出:Connected to Chrome (profile: Default)
# 任意能调 Shell 的 Agent 都能驱动它:
# Agent 执行 `bsk ...` 即可操控你已登录的浏览器
标准 CLI 设计不绑定模型或框架。这意味着你用 Claude、GPT、Qwen 还是本地模型都行——只要 Agent 能跑 Shell 命令,就能接 BrowserSkill。这是它相比「全家桶式」浏览 Agent 的灵活之处。
Step 3:跑通第一个任务(复用登录态)
假设你要从已登录的公众号后台抓取数据——传统方案到这里会卡登录,BrowserSkill 直接进:
bsk run --task "进入公众号后台,导出昨天新增的粉丝列表为 csv"
# Agent 在已登录窗口里:
# 1. 打开后台(无需重新登录,Cookie 在)
# 2. 点「粉丝管理 → 导出」
# 3. 把下载的 csv 路径返回给你
Step 4:理解 Agent Window 隔离
# Agent 的操作跑在独立的「Agent Window」里
bsk run --task "比价三个商品" --window agent
# 你的日常窗口照常刷网页、回消息
# 两者互不干扰,Agent 不会抢走或关闭你的标签页
隔离机制很关键。很多浏览器 Agent 会抢占你的当前窗口,把你正在干的事打断。BrowserSkill 的 Agent Window 让「AI 干活」和「你干活」并行不悖。
Step 5:Human-in-loop 接管验证码
# 遇到验证码 / OTP / 确认弹窗,Agent 主动请求接管
bsk run --task "登录网银查流水" --human-in-loop
# 终端提示:
# ⏸ 需要您处理:请输入短信验证码
# (你输入后,Agent 继续执行后续步骤)
Step 6:设置安全边界(权限最小化)
# 护栏建议(写进配置)
{
"allow_domains": ["mp.weixin.qq.com"], // 只允许指定站点
"block_file_upload": true, // 禁止向页面上传本地文件
"confirm_before_submit": true, // 提交/支付前确认
"max_actions": 50 // 限制单任务操作数
}
复用登录态是双刃剑。Agent 拿着你的真实身份,能干的事比空白浏览器多得多,所以权限必须最小化:限域名、限动作、高危确认。原则就是那句——你不给的权限,Agent 拿不到。
Step 7:落地检查清单
□ bsk daemon 是否常驻、是否 connect 成功?
□ 任务是否复用真实登录态、不再卡登录页?
□ Agent Window 是否与你的日常窗口隔离?
□ 验证码 / OTP 环节是否走 Human-in-loop?
□ 是否设了域名白名单与提交前确认?
□ 是否限制单任务动作数防失控?
常见问题速查
| 你遇到的现象 | 大概率原因 & 解决 |
|---|---|
| bsk connect 失败 | 扩展未启用或守护进程没起,先 bsk daemon start |
| 任务卡在登录页 | 当前窗口非已登录 Profile,指定正确浏览器/Profile |
| Agent 抢了我的窗口 | 没用 --window agent,补上隔离窗口参数 |
| 误触了不该碰的站 | 收紧 allow_domains 白名单 |