1. 为什么我盯上了 BrowserSkill 这个开源项目做 AI Agent 浏览器自动化有一段时间了最头疼的从来不是怎么点按钮而是怎么进得去。你写个脚本去操作公众号后台、公司内部工单系统、某个需要短信验证码的 SaaS 后台第一步就卡死——登录态拿不到。要么手动导出 Cookie 塞进脚本要么用无头浏览器重新走一遍登录流程遇到滑块和验证码直接歇菜。BrowserSkill 是腾讯开源的一个本地桥接层MIT 协议GitHub 上 Tencent/BrowserSkill。它做的事情用一句话说清楚让任何能调用 shell 的 AI Agent去操控你已经登录的真实 Chrome 或 Edge 浏览器。不是另起一个干净的浏览器实例而是复用你本机那个已经登录了一堆后台的浏览器。它适合谁三类人最该看一是天天在后台系统里做重复操作、想用 Agent 代劳的运营和开发二是用 Cursor、Claude Code、Codex 这类编码 Agent想让它们顺手把浏览器里的活也干了的人三是被 Playwright 登录态问题折磨过、想找个更省心方案的自动化玩家。架构上它分两层。上层是 bsk CLI 和本地 daemonAgent 只跟命令行打交道所有操作都是bsk 命令的形式daemon 跑在本地 WebSocket 的 127.0.0.1:52800 上。下层是浏览器扩展注入到 Chrome/Edge负责真正驱动一个独立的Agent 窗口。你的正常上网窗口不受打扰只有显式借用标签页时才会动到你的真实标签用完自动归还。几个设计点值得先记住自动化跑在独立窗口里不打断你正常上网遇到验证码或确认框Agent 用bsk request-help暂停把控制权交回给你处理完再继续全程走 CLI 加本地 WebSocket网络流量不离开本机。这三点是它和传统脚本型 RPA 最大的区别。2. 前置准备装 bsk CLI 和 TaoToken 统一 Key在接 Agent 之前有两件事要先搞定bsk CLI 装好以及给 Agent 配一个能用的模型 Key。前者是浏览器操作的入口后者是 Agent 的大脑。2.1 安装 bsk CLI官方推荐的一行安装脚本是这样curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh它会自动拉取对应平台的二进制。但这里有个大陆网络环境的常见坑脚本第一步要从 github.com 拉 version.json经常被 HTTP2 帧错误或超时卡住报错长这样curl: (16) Error in the HTTP2 framing layer error: could not fetch version.json解决办法是走镜像下载对应平台的二进制包。我是 Intel Mac取 x86_64-apple-darwin 版本curl -sL https://gh-proxy.com/https://github.com/Tencent/BrowserSkill/releases/download/cli-v0.1.11/bsk-v0.1.11-x86_64-apple-darwin.tar.gz -o bsk.tar.gz tar -xzf bsk.tar.gz cp bsk ~/.local/bin/bsk chmod x ~/.local/bin/bskApple Silicon 的 Mac 要换成 aarch64-apple-darwin.tar.gzLinux 选 linux-muslWindows 是 .zip。官方 release 提供全平台预编译二进制这一步没有编译环节。装完验证一下bsk --version # bsk 0.1.112.2 配置 TaoToken 统一 KeyAgent 要干活得有个模型后端。我用 TaoToken 做统一入口一个 Key 就能覆盖 Claude、GPT 这些主流模型省得每个 Agent 框架单独配一遍。先去控制台创建 API Key地址是 https://taotoken.net/api-keys 拿到形如sk-xxxx的 Key 之后在 Agent 的配置里指向 TaoToken 的 API 端点 https://taotoken.net/api 即可。以 Claude Code 为例它的 settings.json 骨架大概是这样{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }如果你用的是支持 config.toml 的 Agent 框架骨架类似[model] provider anthropic base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model claude-sonnet-4-20250514注意base_url 只填到 https://taotoken.net/api不要在后面加 /v1 之类的路径具体路径由 SDK 自己拼。配好之后Agent 的模型调用就走 TaoToken 了。这一步和 BrowserSkill 是解耦的——bsk 只管浏览器模型走哪家由你决定这也是它不锁 Agent、不锁模型的体现。3. 可复制配置启动 daemon、装扩展、接入 Agent配置分三步走启动本地 daemon、装浏览器扩展、把 skill 装进你的 Agent。3.1 启动 daemon 并跑诊断任何 bsk 命令都会自动拉起本地 daemon不需要手动 start。先跑一次状态和诊断bsk status输出大概是这样daemon version 0.1.11 protocol version 1.1 pid 51641 uptime 13m 11s WS port 52800 browsers connected 0 active sessions 0再跑诊断bsk doctorok bsk home writable ~/.bsk ok daemon running pid 51641 at ws://127.0.0.1:52800 ok protocol compatible daemon protocol 1.1 (app 0.1.11) FAIL extension connected 0 browsers connected — install the extension N/A browser protocol compatible no browsers onlinedoctor 的输出很友好逐项检查 home 目录可写、daemon 是否在跑、协议版本是否兼容、扩展有没有连上。这里只有最后一项 FAIL因为扩展还没装其余全 ok这正是正常的初始状态。3.2 安装浏览器扩展从 Chrome 应用商店或 Edge 插件市场安装 BrowserSkill 扩展。装好后扩展会主动连到 127.0.0.1:52800 上的 daemon。再跑一次bsk status当browsers connected变成 1doctor 的extension connected变 ok本地桥接就就绪了。3.3 把 skill 装进 Agent这一步最省心。bsk 自带一个 browser-skill skill一键安装bsk install-skill它会列出 Cursor、Claude Code、Codex、Hermes、dsh 等选项用空格选中你的 Agent回车就把 skill 装进去了无需自己写提示词。以 Claude Code 为例选中之后 skill 文件会被放到对应技能目录里。之后你只需要在对话里发一条需要用浏览器的指令比如用 browser-skill 打开 example.com 并总结页面上写了什么Agent 就会自动调用 bsk 去操作你已登录的浏览器。DeepSeek Harness 用户则是用官方 npm 插件 wxg-prc-cpg/browser-skill-dsh-plugin通过dsh plugin add注入原生的 browser_* 工具。4. 端到端验证让 Agent 完成一次页面操作并回传结果配置齐了来跑一次完整的验证。目标是启动 bsk、连接已登录浏览器、由 Agent 完成一次页面操作并回传结果。4.1 确认桥接就绪先确认 daemon 和扩展都在线bsk status看到browsers connected 1就说明扩展连上了。如果还是 0检查扩展是否启用、daemon 端口是否被占用。4.2 用 CLI 直接验证一次导航在接 Agent 之前先用 CLI 手动验证一次排除 Agent 层的干扰bsk navigate --url https://example.com bsk snapshotnavigate让 Agent 窗口打开目标页面snapshot抓取当前页面的观察文本。如果 snapshot 能返回页面内容说明 bsk 到浏览器的链路是通的。4.3 让 Agent 执行并回传在 Claude Code 里发一条指令用 browser-skill 打开 https://example.com读取页面主标题把结果告诉我Agent 会依次调用 bsk 的 navigate 和 snapshot把页面观察文本读进上下文然后回传结果。你会看到类似这样的返回页面主标题是Example Domain 页面正文说明这是一个用于文档示例的保留域名。到这一步端到端链路就验证完了Agent 通过 shell 调用 bskbsk 通过本地 WebSocket 驱动扩展扩展操作你已登录的浏览器结果原路回传给 Agent。4.4 操作录制录一遍换参数回放这是 BrowserSkill 区别于普通浏览器自动化的关键功能。痛点很具体一个多步后台流程比如发版、填表单每次换参数都要从头教 Agent先点哪、再点哪提示词又长又容易错。录制功能的思路是你自己在浏览器里正常点一遍让它把路径记下来下次换个参数Agent 照着这条路径再干一遍。启动录制bsk record start \ --browser 实例ID或标签 \ --url https://你要录的起始页面 \ --purpose 这段流程的目的说明 \ --output trace参数说明参数作用--browser多浏览器时指定用哪个--url录制开始的页面必填填具体页面不要只填首页--purpose给 LLM 的上下文不影响采集内容--max-page-tokens每个页面观察文件的最大 token 数默认 3000--redact-values脱敏把表单值替换为 [filled]/[empty]--output输出目录默认 ./trace录制结束后Agent 会读到一份 trace bundletrace/ trace.json # 动作链 状态索引 states/ # 每步前的页面观察文本 (sN.txt)trace.json 里是 steps[]每步绑定 state动作前的页面快照、result.state动作后的快照和 states[]每个稳定页面的观察记录。官方建议录制完成后只总结、不要马上重跑验证先把操作笔记留下下一步再换参数让它干活。换参数回放时你只需要写一条短提示词把要变的参数点出来比如把发版的分支从 main 换成 feature/2.3.3。Agent 会参考 trace 里的路径再结合当前页面调整执行。几个实用注意点多步骤要看上一步结果时提示词里写刷新某些状态比如构建进度不会自己刷新不写 Agent 容易干等写操作加确认闸门发版、删数据这类动作开始时可让 Agent点之前念一遍、等你确认再点熟练了再拿掉失败就停别连点重试避免重复构建这类破坏性后果涉及敏感页面的录制开 --redact-values。官方红线很明确——不要在银行、SSO、密码管理器页面录制。5. 本篇常见错排查实测下来踩过的坑集中在这几个地方按出现频率排。5.1 install.sh 卡在 version.json报错curl: (16) Error in the HTTP2 framing layer或超时。原因是 github.com 的 release 资产直链在大陆网络环境不稳定。解决方式是走镜像下载对应平台的二进制包参考第 2.1 节的命令。正常网络环境下直接用官方 install.sh 即可。5.2 doctor 里 extension connected 一直 FAIL先确认扩展装在了你正在用的那个浏览器上Chrome 和 Edge 是分开的。再确认扩展是启用状态不是被禁用或卸载。如果扩展装了但连不上检查 52800 端口有没有被别的进程占用lsof -i :52800如果被占用关掉占用进程再重启 daemon。5.3 Agent 调 bsk 报 command not found说明 bsk 没在 Agent 的 PATH 里。确认~/.local/bin在你的 shell 配置里或者把 bsk 拷到 /usr/local/bincp bsk /usr/local/bin/bsk chmod x /usr/local/bin/bsk5.4 模型调用报 401 或鉴权失败检查 TaoToken 的 Key 是否填对base_url 是否只填到 https://taotoken.net/api。如果 Key 没问题还是 401去控制台确认 Key 的状态和额度。模型对话可以在 https://taotoken.net/models 直接验证 Key 是否可用。5.5 录制回放时 Agent 干等不动作多半是页面状态没刷新。在提示词里明确写刷新页面后再读取或者让 Agent 在关键步骤后加一次 snapshot 确认状态。另外确认 --url 填的是具体页面而不是首页首页往往需要额外导航才能到目标页。5.6 借用真实标签页后没归还bsk 的设计是显式 tab borrow 才动用你的真实标签页用完自动归还。如果发现标签页没还跑一次bsk status看 active sessions必要时用 session 相关命令清理。6. 把 BrowserSkill 接进你的日常 Agent 工作流BrowserSkill 解决的是一个很具体但很真实的需求让 AI Agent 借你已有的登录浏览器去干活而不是另起炉灶。它的三个抓手——真实登录态、不锁 Agent、内置人工协作——恰好补了当前主流方案的空白。如果你只是偶尔用一次CLI 直接调就够了。但如果你打算长期把浏览器操作交给 Agent建议走 Coding Plan把模型调用和 Agent 工作流统一管理省得每次换框架都重配一遍 Key。接入文档在 https://taotoken.net/doc 里面有各框架的配置示例。实测下来安装环节唯一的小坑是 github.com release 直链不稳定走镜像下载二进制即可解决CLI 自身的诊断做得很扎实status 和 doctor 每一步该不该继续一目了然。录制的录一遍、换参回放思路很实用尤其适合后台类重复操作。它不是万能钥匙。纯爬虫采集用 Playwright 或 Crawlee 更合适大规模并发的无头任务它也不碰。但在登录态浏览器里的重复操作这个细分上目前确实没有更好的开源选择。把 bsk 装好、skill 接进 Agent、录一条你天天重复的后台流程剩下的交给它跑就行。
