当 AI Agent 想用你的浏览器,它得先借你的标签页

想象这个画面:你正在浏览器里审查一个 PR,已经登录了 GitHub、Jira、Slack。你的 AI Agent(Claude Code、Cursor、或者 Codex)说:"我可以帮你合并这个 PR,但需要访问你的浏览器。"

当 AI Agent 想用你的浏览器,它得先"借"你的标签页

场景:你正在登录 GitHub 审查 PR,Agent 说"我来帮你点那个按钮"

想象这个画面:你正在浏览器里审查一个 PR,已经登录了 GitHub、Jira、Slack。你的 AI Agent(Claude Code、Cursor、或者 Codex)说:"我可以帮你合并这个 PR,但需要访问你的浏览器。"

传统做法是什么?要么给 Agent 一个 headless 浏览器——但它没有你的登录态,什么也干不了;要么给它 API key——但不是所有服务都有 API;要么让它用 Playwright 开一个新浏览器实例——但它得重新登录一遍,两因素认证、CAPTCHA、设备验证全来一遍。

Tencent 的 BrowserSkill 给了第四种答案:让 Agent "借"你已经打开的标签页。用完之后还给你,期间你的其他标签页不受影响。

1350 颗星一天涨上来,不是没有道理。

"借标签页"模型:从"模拟人类"到"协作人类"

Browser automation 领域过去十年的主旋律是"模拟人类"。Selenium 模拟点击,Playwright 模拟用户行为,Puppeteer 模拟键盘输入。所有这些工具的隐含假设是:浏览器是工具,Agent 是操作者,人类是旁观者

BrowserSkill 翻转了这个假设:浏览器是人类的工作空间,Agent 是借用的访客

具体机制是这样的:

1. Agent Window:BrowserSkill 在你的浏览器里开一个独立的 Agent 窗口,和你正在用的窗口分开。你在自己的窗口里继续工作,Agent 在它的窗口里干活。 2. 显式借用:Agent 需要访问你某个已登录的标签页时,必须通过 bsk CLI 显式声明"我要借用这个 tab"。不是静默抓取,不是后台监控,是显式请求。 3. 用完归还:任务完成后,标签页归还。Agent 不能保留访问权限。 4. Human-in-loop:碰到 CAPTCHA、登录确认、二次验证,Agent 会暂停并请你出手。你点完之后它继续。

这四个机制合起来,本质上是一个权限模型:Agent 的浏览器访问权限不是"全有或全无",而是"按需借用、用完归还、关键节点人类介入"。

为什么"借标签页"比"开新浏览器"难

技术上,"借标签页"比"开新浏览器"难得多。开新浏览器只需要启动一个 Chromium 实例;借标签页需要:

  • 浏览器扩展:BrowserSkill 有一个 Chrome/Edge 扩展,负责和你的浏览器通信。扩展知道你有哪些标签页,知道哪个标签页登录了什么服务。
  • 本地 daemonbsk CLI 背后跑一个本地守护进程,Agent 通过 CLI 和守护进程通信,守护进程再通过扩展和浏览器通信。这条链路确保 Agent 不直接接触你的浏览器 cookie 或 session。
  • 会话隔离:Agent 借用标签页期间,它的操作在一个独立的会话上下文里执行。你的其他标签页看不到 Agent 的操作,Agent 也看不到你的其他标签页。
这个架构的代价是:你得装一个 CLI 和一个浏览器扩展。收益是:Agent 突然能访问你所有已登录的服务,而不需要你给它任何 API key 或密码。

"任何 shell-capable agent 都能用":CLI 作为通用接口

BrowserSkill 的一个关键设计决策是:不绑定特定 Agent 框架。它通过 bsk CLI 暴露所有功能,任何能调 shell 的 Agent 都能用。

这意味着 Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi、Hermes Agent、DeepSeek Harness——这些 Agent 只需要在它们的工具箱里加一条"调用 bsk 命令"的能力,就能立刻获得浏览器操作能力。

这个设计让我想起 Unix 哲学:工具应该通过文本流通信,而不是通过共享内存。BrowserSkill 把"浏览器操作"变成了一组 shell 命令,任何 Agent 都能调用。对比 Playwright 的 Python/Node.js SDK 绑定,或者 browser-use 的 Python-first 设计,BrowserSkill 的 CLI-first 策略在 Agent 生态碎片化的当下是一个聪明的选择。

"Agent Window":从"共享屏幕"到"并行桌面"

BrowserSkill 的 Agent Window 概念值得单独说。传统 browser automation 工具(Selenium、Playwright、browser-use)要么在 headless 模式下运行(你看不到发生了什么),要么在全屏接管你的浏览器(你什么都干不了)。

Agent Window 是第三条路:你的浏览器窗口和 Agent 的浏览器窗口并行存在,互不干扰。你能看到 Agent 在做什么(可见性),但不需要让出你的浏览器(不中断)。

这个设计背后有一个隐含的判断:Agent 的浏览器操作大多数时候不需要人类盯着看,但偶尔需要人类介入。所以默认并行运行,只在需要时才暂停请求人类介入。这比"全自动"或"全手动"都更符合实际工作流。

和其他 browser automation 方案的对比

维度Playwright/Puppeteerbrowser-useBrowserSkill
登录态无(新实例)无(新实例)有(借用真实标签页)
Agent 框架绑定SDK 绑定Python-firstCLI-first,任何 shell Agent
人类介入截图+点击显式 human-in-loop
用户浏览器中断不中断(独立实例)不中断(独立实例)不中断(Agent Window)
安装复杂度pip installpip installCLI + 浏览器扩展
BrowserSkill 的独特优势在"登录态"这一列。其他工具要解决"如何模拟人类操作浏览器",BrowserSkill 解决的是"如何让 Agent 复用人类已经建立的浏览器会话"。

适用场景与局限

BrowserSkill 最适合的场景:

  • 需要登录态的操作:审查 GitHub PR、在 Jira 里更新 ticket、在内网系统里填表。这些场景下 API key 往往不可用或权限不足。
  • Agent + 人类协作:Agent 处理大部分步骤,人类处理 CAPTCHA 和确认对话框。
  • 多 Agent 并行:不同 Agent 借用不同标签页,各自独立工作。
局限:
  • 需要浏览器扩展:不支持 Firefox(计划中),不支持 Safari。
  • 本地运行:Agent 和浏览器必须在同一台机器上。不支持远程 Agent 操作远程浏览器。
  • 单用户设计:不支持多用户共享一个浏览器实例。

深层洞察:从"Agent 模拟人类"到"Agent 协作人类"

BrowserSkill 的"借标签页"模型背后,是一个更大的范式转变:Agent 不再试图完全替代人类操作浏览器,而是和人类共享浏览器

这个转变的意义在于:它承认了 Agent 在某些操作上(CAPTCHA 识别、二次验证、复杂决策)仍然需要人类,而不是假装这些不存在。同时,它让 Agent 能利用人类已经建立的登录态,而不是从头开始模拟人类登录。

从 Agent 安全的角度看,这个模型也更可控:Agent 的浏览器访问权限是"借用"的、临时的、可撤销的,而不是"拥有"的、永久的、不可审计的。每次 Agent 借用标签页,都是一个显式事件,可以被记录和审计。


BrowserSkill 的 GitHub 仓库在 https://github.com/Tencent/BrowserSkill ,1350 颗星一天涨上来,说明这个痛点是真实的。如果你在用 Claude Code、Cursor 或 Codex,且经常需要 Agent 帮你操作浏览器里的已登录服务,BrowserSkill 值得一试。

"借标签页"这个概念,可能会成为 Agent 和浏览器交互的标准模式。就像"借车"比"租车"更方便——只要你信任借车的人。

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens