BrowserSkill 中文完全指南:让 AI Agent 复用真实登录态操作浏览器而不打断你的工作
2026/9/20 5:26:25 网站建设 项目流程

BrowserSkill 中文完全指南:让 AI Agent 复用真实登录态操作浏览器而不打断你的工作

【免费下载链接】BrowserSkillLet AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.项目地址: https://gitcode.com/GitHub_Trending/br/BrowserSkill

BrowserSkill 是一个连接 AI Agent 与真实浏览器的本地桥接层:bskCLI/daemon 与浏览器扩展协同工作,让 Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi、Hermes Agent、DeepSeek Harness 等任意能调用 Shell 的 Agent 操作你已经登录的浏览器,任务运行在独立的 Agent Window 中,不打断你的日常浏览。本文以 README.zh-CN.md 为骨架,结合仓库源码与配套文档,完整讲解环境要求、快速安装、skill 管理、自动化设置、工作原理、长截图、远程连接与开发者视角的架构细节,读完即可上手部署并理解其底层运行机制。

BrowserSkill 的核心优势

  • 复用真实登录态:Agent 直接操作你已经登录的网站,无需额外准备测试账号,也绝不提取凭据、Cookie、Token 等敏感信息(此约束同时写在 skill/SKILL.md 的顶部说明中)。
  • 不中断你的工作:浏览器任务在独立、可见的 Agent Window 中运行,你可以继续使用自己的浏览器窗口。
  • 支持任意 Agent:只要 Agent 能调用 Shell,就能通过bskCLI 使用 BrowserSkill,不绑定特定模型、Agent 框架或 harness。
  • 内置 human-in-loop:遇到验证码、登录、确认弹窗等必须由人处理的步骤时,Agent 可以通过bsk request-help主动请求你接管,完成后再继续任务。

需要 Agent 触碰你已打开的标签页时,它必须显式借用(borrow)该标签,任务结束后归还,其余浏览器窗口不受影响。

运行环境

BrowserSkill 由两个本地运行组件组成:bskCLI/daemon 和浏览器扩展。

运行项支持情况
操作系统macOS(Apple Silicon 和 Intel)、Linux(x64 和 ARM64)、Windows x64
浏览器已支持 Chrome 和 Microsoft Edge;其他支持加载 Chromium 扩展的浏览器通常可用;Firefox 计划中

CLI 顶层定义位于 crates/bsk-cli/src/cli/mod.rs,全局标志包括--json(输出机器可读 JSON)、--quiet(抑制信息输出)和-v/--verbose-v为 debug、-vv为 trace)。工具调用的 IPC 超时被特意设为 35 秒,略大于 daemon 的 30 秒工具超时,确保调用方收到的是结构化 daemon 超时而不是连接先断开(见 crates/bsk-cli/src/cli/mod.rs)。

快速开始

沙盒环境须知(先读)

如果你的 Agent 沙盒会在每条命令结束后回收后台进程,请先阅读沙盒环境配置说明:在宿主侧保持 daemon 存活,沙盒内通过共享的BSK_HOMEBSK_AUTO_START=0连接。普通本地环境仍默认自动启动 daemon,无需额外配置。

让 Agent 帮你安装(推荐)

已经在用 Cursor、Claude Code、Codex 或其他支持 Shell 的 Agent?只需复制下面这句话发给 Agent,它会帮你安装 CLI 和 skill,并引导你加载浏览器扩展:

按照 https://raw.githubusercontent.com/Tencent/BrowserSkill/main/AGENT_INSTALL.md 的说明,在本机安装并配置 browser-skill

手动安装

先安装 CLI,再从 Chrome Web Store 或 Edge 加载项商店安装浏览器扩展。

1. 安装bskCLI

macOS / Linux(推荐,安装到~/.local/bin):

curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh export PATH="${BSK_INSTALL_DIR:-$HOME/.local/bin}:$PATH"

Windows(PowerShell,安装到~/.local/bin):

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

上面的 export 让当前 Unix shell 能找到 CLI。正在运行的 Agent 可能需要在每次 Shell 调用中设置同样的 PATH,或使用安装后二进制的绝对路径。如果 Agent 安装后仍沿用旧 PATH,请重启 Agent。

在实际使用工具的终端或 Agent 环境中验证二进制:

bsk --version
2. 安装浏览器扩展
浏览器商店页面
ChromeChrome Web Store
Microsoft EdgeEdge 加载项商店

其他基于 Chromium 的浏览器,安装 Chrome Web Store 版本即可。

3. 安装 skill

BrowserSkill 自带 skill(即仓库根目录的 skill/SKILL.md),用于教 Agent harness 如何使用bsk。以下 harness 可一键安装:Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi、Hermes Agent。

bsk install-skill

Space选择需要安装的 Agent harness,然后按Enter安装 skill。运行bsk install-skill --list可查看 internal 变体及安装路径。

非交互安装时显式指定目标 harness,例如bsk install-skill --harness cursor --json。即使未检测到该 harness,也可显式选择。单独使用--yes会安装到所有检测到的 harness,一个也未检测到时会报错。

自定义指令:运行bsk install-skill --harness cursor --source ./SKILL.md。显式指定--source的安装始终视为自定义,即使内容与内置 skill 相同。已有安装默认跳过,添加--force才会覆盖。这些参数与SkillSource::Bundled/SkillSource::Custom的来源判定逻辑对应,见 crates/bsk-cli/src/cli/install_skill.rs。

受管 skill 的自动更新机制:daemon 启动、session startdoctor会检查已安装的 skill——只有文件内容仍与上次安装或同步时的内容一致,才继续自动更新。检测到本地编辑时会保留文件并暂停更新。没有内容基线的历史安装,只有与当前内置 skill 字节级一致时才自动纳入管理;此时只补齐来源标记,不重写SKILL.md。明确的自定义安装即使内容相同,也不会被自动纳入管理。

对于内容不同的历史文件、本地编辑或无法识别的来源标记,doctor会显示WARN,说明暂停原因及恢复方法。这类警告不会让健康检查失败(--json中为status: "warn"ok: true)。其他安装或同步正在进行时,本次同步会推迟到后续再试。

如需将当前指令保留为明确的自定义安装,运行:

bsk install-skill --harness cursor --source <existing-SKILL.md> --force

<existing-SKILL.md>替换为现有文件路径。如需恢复内置 skill 并重新启用自动更新,运行:

bsk install-skill --harness cursor --force

(不带--source,后一条命令会覆盖现有指令。)

其他支持 Shell 的 Agent harness 也可使用 BrowserSkill,但需手动将 skill/SKILL.md 复制到对应 skills 目录下的browser-skill/SKILL.md。DeepSeek Harness 走独立插件,见下文。

4. 验证连接

运行bsk doctor并按提示处理,打开扩展弹窗确认已连接。测试浏览器操作前,说明警告并解决失败项。未安装任何 skill 时,doctor 仍可能通过(该项为N/A);skill 是否被发现需要单独验证。

启动一个新的 Agent 会话,确认 harness 中可用browser-skill,再让它打开https://example.com并总结页面。对于支持斜杠命令调用 skill 的 harness,例如:

/browser-skill open example.com and summarize what is on the page.

首次使用验证应成功读取页面,并停止本次 BrowserSkill session。如果找不到 skill,先检查目标 harness 和安装路径,再重试。

升级

默认本地配置下,先结束正在执行的浏览器任务,再更新:

bsk update --yes
  • 如果 Windows 提示更新已暂存(staged),请等待替换完成后再检查bsk --version
  • 该命令安装新版本时,会以默认启动配置重启正在运行的 daemon。
  • 如果通过安装脚本替换了二进制,则在任务结束后运行bsk daemon restart,重启已有 daemon。
  • 对于自定义端口、宿主管理的沙盒 daemon 或远程服务器,先在所属宿主环境或进程管理器中停止 daemon,运行bsk update --yes --no-restart-daemon,再以原有参数和BSK_HOME在那里启动。维护期间,在 Agent 命令中设置BSK_AUTO_START=0;详见沙盒和远程连接配置说明。
  • 通过浏览器商店更新扩展;开发时加载的解压版本需要重新构建并重新加载。商店版本可能晚于 CLI 上线。
  • 使用bsk --versionbsk status核对 CLI、daemon 和扩展版本,再运行bsk doctor。长截图等新功能需要匹配的版本。
  • DSH 插件需要单独更新并重启对应 profile(见下文)。
  • 受管理的 CLI skill 会在 daemon 启动、session startdoctor时同步;本地编辑和自定义 skill 会保留。启动新的 Agent 会话以加载更新后的指令。

升级到 0.3.0 的注意点:--unattendedtab borrow --no-confirmBSK_REQUEST_HELP=off不再跳过确认或关闭人工协助,请在扩展中选择下文说明的对应设置。版本变化见更新日志。

自动化设置与无人值守

插件弹窗提供两个默认开启的独立设置。用户在插件中保存的设置对所有会话具有最终决定权:

借用标签页前确认允许请求人工协助实际行为
借用需要确认;求助正常弹窗。
借用需要确认;求助返回disabled
借用免确认;求助正常弹窗。
借用免确认;求助返回disabled

设置的优先级与生效语义

  • 设置自动保存到当前浏览器配置,对已有和新建会话生效。关闭借用确认会放行待确认请求;关闭人工协助会将等待中的求助结束为disabled
  • 重新打开开关后,后续操作恢复对应行为,包括通过旧参数--unattended创建的会话。已完成的借用不会撤销,已结束的求助不会重新弹出。
  • 允许人工协助意味着request-help可用,不代表每个浏览器操作都必须先请求许可;任务授权和宿主审批仍然有效。
  • 正常使用bsk session start;需要后台打开 Agent Window 时添加--no-focus
  • 无人值守由用户在插件中关闭相应开关。--unattendedtab borrow --no-confirmBSK_REQUEST_HELP=off保留兼容识别,但已弃用,不能覆盖插件开关。CLI 使用这些输入时会输出说明,daemon 也会为自身继承的旧环境设置记录说明。原先只依靠这些输入避免等待的脚本,现在需要遵循浏览器设置。
  • session start --jsonsession list --json返回浏览器实际的interaction策略。
  • 偏好读取失败时,后台保留已有有效值;尚无有效值时按两项开启处理,不写回默认值,也不阻止新建会话。后续请求会重试读取,存储变更也能恢复策略。
  • 弹窗保留读取错误提示并禁止保存;写入失败不会被当作成功。浏览器未连接时返回连接错误,不会根据命令行参数或环境变量在本地伪造disabled

关闭人工协助后的行为约束

关闭人工协助后,request-help返回disabled,不代表用户已完成操作。技能会引导 Agent 重新观察页面,利用现有登录态、已授权输入和可用工具尽力完成已授权的步骤。任务授权和宿主规则允许时,具备视觉能力的模型可以尝试图形验证。手机扫码、人脸验证、无法获取的短信验证码,以及纯文本模型无法识别的图形验证码可以报告受阻。关闭协助不增加授权,也不能仅因求助不可用就将任务判为完成或受阻。

协议版本兼容

  • tab borrow --timeout 60s只设置确认等待时间,不决定是否需要确认(默认 60 秒)。
  • 协议 1.3 保持与协议 1.0–1.2 的连接兼容,分步升级时仍可创建普通会话、使用默认等待时间借用标签页。插件会提示旧 Daemon 的兼容限制,bsk status也会显示协议差异。
  • 自定义借用等待时间要求 Daemon 和扩展都支持协议 1.2 或更高版本;不支持时只限制这次操作,并提示升级。旧 Daemon 的默认借用等待预算可能仍较短。
  • 新版 CLI 的request-help要求 Daemon 协议 1.3,因为旧 Daemon 可能在本地返回而不询问浏览器。该限制不会断开浏览器连接,也不影响其他操作。
  • CLI、实际运行的 Daemon 和扩展都更新后,完整执行上述设置优先级。新版扩展始终按保存的开关处理它收到的请求。旧 CLI 可能在连接 Daemon 前就因BSK_REQUEST_HELP=off本地返回;混用版本时保留这类历史行为,只升级扩展无法改变旧可执行文件的行为。

在服务器运行 Agent,通过内置鉴权服务与本地浏览器配对,也可选择兼容的第三方网关,详见远程浏览器连接。

DeepSeek Harness 插件

在用 DeepSeek Harness(dsh)?BrowserSkill 提供了官方 dsh 插件,已发布到 npm:@wxg-prc-cpg/browser-skill-dsh-plugin。它为 Agent 提供原生browser_*工具,由插件代为调用bsk,并在 Web UI 中实时展示浏览器会话。

先安装bskCLI 并连接浏览器扩展,再将插件装进 dsh profile 并启动(将web替换为你的 profile 名称):

dsh plugin --profile web add @wxg-prc-cpg/browser-skill-dsh-plugin dsh --profile web

插件自带browser-skillskill,所以在 dsh 下无需执行bsk install-skill。已安装的插件不会自动更新;升级此插件请运行:

dsh plugin --profile web update @wxg-prc-cpg/browser-skill-dsh-plugin --latest

升级后重启该 profile。用法与配置见插件 README。插件源码位于 packages/dsh-plugin-browserskill,其中 skill.ts 与 tools.ts 分别负责 skill 注入与browser_*工具的定义。

工作原理:Agent 与浏览器之间的本地桥接层

BrowserSkill 是 Agent 运行时与浏览器之间的本地桥接层,数据流如下:

Agent 不直接与浏览器通信。它通过bskCLI 下发浏览器任务;本地 daemon 把请求路由到扩展;扩展在 Agent Window 中执行。DeepSeek Harness 走同一条链路,只是经由插件:Agent 调用注入的browser_*工具,由插件代为执行bsk

从源码看,这条链路被严格分层:session start子命令通过ensure_daemon自动拉起 daemon,再通过 JSON-line IPC 发出类型化 RPC;daemon 侧持有session.startRPC 直到扩展(重)连上(见 crates/bsk-cli/src/cli/session.rs 中对EXTENSION_CONNECT_WAIT的说明);共享的线上协议类型与 JSON Schema 全部集中在 crates/bsk-protocol,其 schema 目录下可看到tool_session_start_params.jsontool_navigate_params.jsontool_observe_params.json等每一个工具的参数与结果契约。扩展端则在 apps/extension/src 中实现浏览器自动化、录制(recording)、长截图、审计(audit)等模块。

会话生命周期与任务工作流

bsk session提供三个子命令:start(对新会话,多浏览器时用--browser <id-or-label>指定)、stop(停止单个会话,或--all停止全部)、list(列出活动会话)。每个 session-scoped 命令都需要--session <id>session stop直接以位置参数接收 ID(见 crates/bsk-cli/src/cli/session.rs)。

推荐的 Agent 任务工作流(详见 skill/SKILL.md):

  1. 从用户请求中定义成功标准,运行bsk session start --json并保留返回的session_id

  2. 新页面直接导航;已有用户标签页走借用流程。交互前先读取页面:

    bsk navigate https://example.com --session <id> bsk observe --session <id>
  3. 使用该次观察返回的新鲜@eNrefs 选择动作;导航或大规模 DOM 变化后重新 observe。模糊结果只检查一次,一旦成功可见就停止行动。

  4. 无论成功失败都运行bsk session stop <id>(除非用户要求保持会话打开),这也同时归还借用的标签;归还后的标签仍保留在用户窗口中。不要依赖空闲清理来结束任务,也不要为了结束任务而重启共享 daemon。

读取与交互命令一览

需求命令
点击bsk click @e3 --session <id>
填写字段bsk fill @e3 --value "text" --session <id>
选择选项bsk select @e3 --value "option-value" --session <id>
按键bsk press Enter --ref @e3 --session <id>
展开悬停菜单bsk hover @e3 --session <id>
露出元素bsk scroll-to @e3 --session <id>
滚轮输入bsk wheel --delta-y 600 --session <id>
聚焦/失焦bsk focus @e3 --session <id>/bsk blur @e3 --session <id>

关键语义:

  • select使用选项的value属性值,而不是可见标签。
  • 悬停标记(如[hover first: Shoes | Bags][has-submenu][expanded])用于识别触发器。先 hover 触发器,再 observe,然后使用新出现条目的 ref。若预期控件缺失且没有标记,可尝试一次observe --probe-hover
  • scroll-to返回按祖先裁剪后的可见边界,坐标是顶层 viewport CSS 像素;部分可见即可成功,完全隐藏/裁剪的目标失败。其 CLI、线上协议(tool.scroll_to)与 DSH 插件入口、可见边界与中断语义的完整约定见 docs/scroll-to.md。
  • wheel发送带符号的增量(至少一个非零值),不保证精确滚动距离。
  • 大观察结果使用observe --max-tokens <n>,配合返回的next_cursor/@morebsk observe --cursor <token> --session <id>续读;每页会替换 ref 映射,续读针对同一份捕获,不刷新也不悬停。

标签借用(Borrowing)

借用前先列出,相关步骤一结束立即归还:

bsk tab list --scope user --session <id> bsk tab borrow <tab-id> --session <id> bsk tab return <tab-id> --session <id>
  • 借用会在 Agent Window 中选择该标签作为后续命令的默认目标(不额外聚焦窗口);后台创建的标签(tab create --no-active)需要保留返回的tab_id并在观察/导航/输入命令中显式传--tab-id
  • 控制中的网页移到后台后仍在运行;普通视口截图也可用于后台标签。全页截图仍要求活动标签。
  • 不要编造 tab ID,也不要让用户标签跨无关任务保留。tab borrow --timeout 120s只改变确认等待(默认 60s);自定义等待需要 daemon 和扩展协议 1.2+。

人工步骤与恢复(human-in-loop)

启用协助后,登录、CAPTCHA、OTP、支付确认、同意等步骤,或两次尝试仍无进展时,可请求帮助:

bsk request-help --session <id> --prompt "Please complete sign-in" --target @e3

请求结果的处理策略:

结果下一步
Helpcontinued/completed重新 observe,用新 refs 继续。
Helpcancelled/timed_out尊重拒绝或阻塞,不要重复请求。
Helpdisabled未确认任何人操作;重新 observe 并遵循禁用协助规则。
Stale refobserve 后重试一次目标动作。
未知标签/会话列出当前标签/会话;绝不猜 ID 或用其他任务的会话。
超时或效果未知先检查当前状态再重试;动作可能已发生。
fill_value_mismatch先读取字段:格式可能已满足请求,只修正剩余差异。
不支持的操作使用可用能力;仅在确实需要缺失功能时才建议升级。

禁用协助时:不请求协助也不重新启用。利用现有登录态、已授权输入和可行替代方案完成已授权步骤;无法获取的验证输入(仅手机扫码、人脸验证、缺失的短信码、纯文本模型无法识别的图形验证码)可如实报告受阻,但继续可独立完成的工作。不可恢复失败时报告阻塞并停止所属会话。

截图与 Canvas 交互

bsk screenshot --session <id> --out viewport.png bsk screenshot --session <id> --ref @e3 --out element.png --json bsk screenshot --session <id> --full-page --out page.png bsk screenshot --session <id> --full-page --scope current --out loaded.png
  • 截图返回本地 PNG 路径;--out覆盖已有文件,省略时使用临时路径;--json包含尺寸与字节数;--ref--full-page互斥。

  • Canvas 内容用@eN canvas [visual:screenshot]标记;要点击图中某点,保留截图的capture_id,使用原始 PNG 坐标

    bsk click @e3 --capture <capture-id> --image-x <x> --image-y <y> --session <id>

    Captures 单次使用、2 分钟后过期,并会被 ref 替换或该 ref 的更新截图失效。

文件与其他工具

bsk upload @e3 --file ./report.pdf --session <id> bsk download @e3 --out ./report.pdf --session <id>
  • 上传会把文件披露给站点;下载接受站点控制的字节。使用 Agent 本地路径,而非浏览器内部暂存路径。
  • 下载默认拒绝覆盖,需要时加--overwrite
  • console/network做有界的只读诊断;emulate --device iphone-14只影响一个标签页,--off恢复。
  • evaluate是最后手段:必须检查 JSON.ok,因为脚本异常可能 CLI 退出码仍为 0。绝不 evaluate 敏感信息。
  • record start录制用户操作为语义化trace.json;录制前先读帮助,绝不录制银行、SSO 或密码管理器页面。

长截图(Full-page Screenshots)

可以从插件快捷功能 → 长截图中截取长图,也可以让 Agent 调用:

bsk screenshot --session <id> --full-page --out page.png

默认采集与编码超时为两分钟,长页面可加--timeout 5m;支持 Ctrl-C 取消,结束后恢复原始滚动位置。需要使用同一版本的 CLI 和扩展,详见长截图说明。

插件的三种捕获模式

  • Full page · Automatic(整页 · 自动):从顶部开始,增量滚动并跟随追加内容。
  • Long image · I scroll(长图 · 我滚动):从当前位置开始,由你手动向下滚动;屏幕之间保留重叠内容,完成后在弹窗选择Finish and keep
  • Visible area(可见区域):捕获当前视口一次。

自动模式用测量到的文档坐标 + 重叠视口拼接;在底部等待至少 1.5 秒高度稳定且 600ms 无附近内容变化;无加载指示器时安静等待上限 5 秒,避免跳动时钟类控件无限挂起。若追加内容移动了旧底部,捕获会回退到临时尾部重拍并替换磁盘瓦片。快捷功能在 CLI 连接关闭时也可用,不要求 CLI、daemon 或 Agent 会话。

Agent/CLI 的关键语义

  • --scope follow(默认)跟随追加内容;--scope current只捕获捕获开始时测量的文档区域(CSS 像素),仍会滚动该区域以露出懒加载图片,但后续高度增长不扩展范围。JSON 结果包含确认的scope;旧扩展不确认current时 CLI 拒绝保存。
  • 内部浏览器页面、Web Store、嵌套滚动面板和虚拟化列表不支持。保持捕获标签可见:page_hidden是环境中断,user_cancelled是用户输入停止。
  • Agentfollow模式下,底部 30 秒保持加载指示器无高度增长产生loading_stalled,而不是等到总截止时间;失败不保存部分图片。
  • 捕获/编码截止默认两分钟,仅全页模式可用--timeout延长。
  • 完整页截图走独立的tool.screenshot_full_pageRPC,随后是内部tool.screenshot_readtool.screenshot_release;读取按 256 KiB 分块,扩展流式写 PNG 到 OPFS,CLI 验证完整字节数后原子替换输出文件。需要匹配的 CLI/扩展构建,更新 CLI 后重启运行中的 daemon(bsk daemon restart)。

存储、内存与导出

新捕获是一组 512 像素高的 PNG 瓦片,存放在扩展的 Origin Private File System(OPFS),带一个小型持久化 manifest。捕获期间只解码当前截图和小型工作 canvas,追加内容不分配全页 canvas。下载由专用 worker 顺序读瓦片、应用 PNG Up filter 并用原生流式 zlib 压缩写出,不构建全图像素缓冲或 base64。单次捕获基准测试中,3,170 × 100,062 像素结果仅用最多 512 像素高的 canvas,RGBA 缓冲峰值约 41.7 MiB,而完整 RGBA 图需要约 1.27 GB——可见该设计的省内存效果(测量不含编解码器内部、堆、GPU 拷贝等,不是总浏览器内存)。

远程浏览器连接

Agent 可以在服务器上运行,而 BrowserSkill 扩展控制用户电脑上的浏览器。扩展发起出站连接,用户电脑无需开放入站端口;任务继续使用独立 Agent Window,包括既有的借用-归还流程。bsk内置设备配对、连接鉴权、凭据轮换与吊销,无需账号系统或鉴权网关。详细配置见 docs/remote-extension-connection.md。

本地模式(默认)

bsk daemon start # 等价:bsk daemon start --mode local

监听回环地址;扩展中选择Local connection可退出远程连接(会结束当前任务)。

独立服务器模式

bsk daemon start --mode server \ --listen 0.0.0.0 --port 52800 \ --public-url wss://browser.example.com:52800/extension \ --tls-cert /etc/bsk/fullchain.pem \ --tls-key /etc/bsk/privkey.pem
  • 使用浏览器信任的证书,证书主机名必须与公网 URL 匹配;bsk不签发证书、不改浏览器信任设置。
  • 服务器模式保持前台运行,空闲不退出;进程管理器可托管。证书变更需用相同参数重启。会话空闲限制仍然适用。
  • 在 Agent 环境设置BSK_AUTO_START=0,让已停止的受管服务器被如实报告为不可用;保持 daemon 与 CLI 客户端BSK_HOME一致。此私有目录包含设备授权与本地 IPC 元数据,须跨服务重启与容器替换持久化,不要在不同独立服务器或不受信任的 OS 用户之间共享。

授权管理:

bsk daemon devices bsk daemon revoke DEVICE_ID bsk daemon revoke --all

devices输出设备与浏览器 ID、标签和过期时间,绝不输出凭据。revoke --all同时使未使用的配对链接失效;吊销既关闭现有连接也拒绝新连接。

服务器启动时可用默认值:

Flag默认值含义
--pairing-ttl5m一次性配对有效期,最多一小时
--device-ttl90d设备自配对或成功续期起的寿命,最多 366 天
--renew-after30d扩展应续期的时间点;必须小于设备寿命
--max-connections64在线浏览器容量,1–1000;容量满时已有设备可替换连接
--authorize-rate-limit60每对端 IP 每分钟配对/续期请求数,1–60000

TLS 反向代理

传统 TLS 反向代理可在不实现鉴权的情况下终结 HTTPS/WSS:

bsk daemon start --mode server --listen 127.0.0.1 --port 52800 \ --public-url wss://browser.example.com/extension

/extension/extension/authorize转发到127.0.0.1:52800,保留路径与 WebSocket 升级头;保留OriginAuthorizationSec-WebSocket-Protocol,绝不记录鉴权头、WebSocket 子协议值或请求体,不在查询串中传凭据。代理后服务器看到的是代理 IP,需在代理侧配置每客户端限流;服务器不信任X-Forwarded-For。无原生 TLS 时监听必须在回环;非回环浏览器连接要求 WSS。

配对与验证流程

  1. 服务器操作者:生成配对链接:BSK_AUTO_START=0 bsk daemon pair

  2. 浏览器用户:扩展弹窗选择Remote connection,粘贴完整配对链接并保存。链接是机密、单次使用、默认 5 分钟过期;保存后扩展把配对密钥替换为设备凭据。

  3. 服务器上的 Agent:用BSK_AUTO_START=0 bsk status --json确认目标浏览器出现。生成链接或保存配对本身不是活跃连接的证明。

  4. 首次使用验证:用status中的浏览器instance_id作为<browser-id>启动会话并读页:

    BSK_AUTO_START=0 bsk session start --browser <browser-id> --no-focus --json BSK_AUTO_START=0 bsk navigate https://example.com --session <id> BSK_AUTO_START=0 bsk observe --session <id> BSK_AUTO_START=0 bsk session stop <id>

按证据反馈验证阶段:生成链接 → 服务器列出已连接浏览器 → 页面读取且测试会话成功停止。

浏览器权限与任务生命周期

  • 只与你信任能操作浏览器(含已登录网站会话)的服务器配对;配对是设备授权,不是受限账号或网站沙箱。
  • 远程内容读取、截图、录制和页面操作要求任务显式创建或借用的标签。target="_blank"window.open或 OAuth 打开的标签不会自动获得控制权;已在 Agent Window 内的无主标签需用户先移到普通窗口再借用。
  • 断开连接会取消任务工作、归还借用标签、关闭任务创建的标签;用户创建的标签在清理中存活。远程上传/下载当前版本不支持(返回unsupported),截图等既有 RPC 内容结果仍支持。
  • 设备凭据存放在扩展源 IndexedDB;普通扩展设置只含连接模式与非机密修订号。独立服务器以私有文件权限与原子写入持久化哈希凭据。

面向开发者:仓库架构

scroll-to 原语说明 介绍 CLI、协议和插件入口,以及可见区域、错误和中断语义。

本仓库是 Cargo + pnpm workspace:

  • crates/bsk-clibskCLI 与本地 daemon(CLI 命令树在 crates/bsk-cli/src/cli/mod.rs,覆盖 session、tab、window、emulate、screenshot、snapshot、observe、console、network、navigate、click、fill、press、select、upload、download、evaluate、wait、request-help、record 等全部命令)。
  • crates/bsk-protocol— 共享协议类型与 JSON Schema(schema 目录 为每个工具提供参数/结果契约)。
  • apps/extension— 浏览器扩展(src 下含 browser-driver、content、lib、long-screenshot、recording、session-manager、tools、transport 等模块,并有覆盖各模块的 vitest 测试)。
  • packages/uipackages/i18n— 扩展 UI 共享支持,包含英文、简体中文和韩语本地化。
  • packages/dsh-plugin-browserskill— DeepSeek Harness 插件(@wxg-prc-cpg/browser-skill-dsh-plugin)。
  • evals/browser— 确定性本地页面与 Agent 无关的浏览器能力测试台。

许可证

MIT

延伸阅读

  • 沙盒环境配置说明:Agent 沙盒回收后台进程时的 daemon 托管方案(BSK_HOME+BSK_AUTO_START=0)。
  • 长截图说明:捕获模式、--scope、超时与错误语义、存储与导出。
  • 远程浏览器连接:服务器模式、TLS 反向代理、配对验证与第三方网关协议。
  • scroll-to 原语说明:scroll-to的 CLI/协议/插件入口与结果契约。
  • Agent 安装指引:交给 Agent 自助安装的完整说明。

【免费下载链接】BrowserSkillLet AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.项目地址: https://gitcode.com/GitHub_Trending/br/BrowserSkill

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询