ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

BrowserSkill bsk update 升级指南:daemon 重启的 3 条路径、Windows 分阶段替换与升级后 30 秒验证

BrowserSkill bsk update 升级指南:daemon 重启的 3 条路径、Windows 分阶段替换与升级后 30 秒验证

BrowserSkill bsk update 升级指南:daemon 重启的 3 条路径、Windows 分阶段替换与升级后 30 秒验证

【免费下载链接】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 与浏览器扩展两部分组成。当它提示有新版本可用时,bsk update要不要现在升?这篇文章按一次真实升级的顺序讲清楚:它内部做了什么、Windows 上为什么要多等一会儿、daemon 什么时候会自己换版本,以及升级后如何用 30 秒确认链路健康。

提示"有新版本可用"时,要不要现在升?

我习惯先跑bsk update --check预览目标版本,再决定升不升。bsk update内部分三步走:先拉取发布清单(manifest,即记录最新版本号和各平台下载地址的官方清单)并与当前版本比对;再下载对应平台的发布包(macOS/Windows 为 zip,Linux 为 tar.gz)并强制校验 SHA-256——清单里没带校验和的发布包会被直接拒绝,更新流程从不安装无法验证的字节;最后从归档中取出bsk可执行文件,替换当前正在运行的二进制。

顺便交代一个角色:bsk 背后常驻的后台进程叫 daemon(BrowserSkill 里负责会话管理与浏览器驱动的那一方),它是最常被打扰、也最容易升级出问题的一方。

主要逻辑集中在 crates/bsk-cli/src/cli/update.rs,这是整个更新流程的主实现,清单地址可用环境变量覆盖:

命令 / 环境变量作用
bsk update --check只检查是否有新版本,不安装
bsk update -y跳过交互式确认提示
bsk update --no-restart-daemon替换二进制后不重启 daemon(默认会重启)
BSK_AUTO_UPDATE=off关闭 daemon 侧自动升级,只保留检查与提示
BSK_UPDATE_MANIFEST_URL覆盖版本清单地址,便于内网镜像分发

💡 下一步:在 Agent 会话空闲的窗口先跑bsk update --check,确认目标版本后再执行正式升级。

Windows 为什么更新要更久?分阶段替换的里子

Windows 不允许覆盖正在运行的可执行文件,所以bsk update在这个平台采用分阶段替换(staged replacement,白话就是"先把新文件挪到旁边,等旧文件松手后再换岗"):

  • 新二进制先写成原 exe 旁的bsk.exe.update-<进程ID>临时文件;
  • 同时生成一个同名的.cmd辅助脚本,并启动一个脱离当前进程的 cmd.exe 帮助进程;
  • bsk命令退出后,帮助进程执行move /Y完成真实替换,最多重试 120 次(每次间隔约 1 秒);
  • 替换成功后,帮助进程调用daemon start,以原有端口和空闲超时参数拉起新 daemon。

整个帮助进程只继承 stdio 句柄,不会持有 daemon 的监听 socket,所以替换后端口不会被占住。⚠️ Windows 上升级时请保持 Agent 会话空闲,并且看到staged提示后耐心等待返回,不要强杀帮助进程——若替换失败,第一排查入口是bsk可执行文件旁的*.update-*.log。

替换与清理逻辑见 crates/bsk-cli/src/cli/update/windows.rs,端到端行为由 crates/bsk-cli/tests/windows_update.rs 覆盖。值得知道的是:较新版本已改用新二进制原位替换、不再依赖脱离的更新脚本,bsk update --json会报告updated而不是staged,排查方式不变。

下一步:升级卡住或失败时,先翻*.update-*.log,再确认端口没有被旧进程残留占用。

BrowserSkill daemon 自动重启:不跑 bsk update 也会升级吗

会。除了手动执行,daemon 自己还有一条自动路径,外加一条"豁免路径",三者最终落点一致——新二进制按原端口与超时配置接管服务。

30 分钟检查与 25 分钟缓存窗口

daemon 每 30 分钟 tick 一次版本检查,结果缓存在~/.bsk/update-check.json(该文件只由 daemon 写入,CLI 命令只读),新鲜度窗口设为 25 分钟,保证每个 30 分钟周期都会真正刷新一次缓存,而重启后的 daemon 不会立即重复拉取。发现新版本时还有一道闸门:没有活跃的 Agent 会话才会执行替换;有会话在线就自动推迟到下一个周期重试。替换完成后,旧 daemon 释放端点、优雅退出,由新 daemon 接管。

三条路径分别是:

  1. 手动路径:bsk update默认先停止正在运行的 daemon,替换二进制后重启,除非你加了--no-restart-daemon;
  2. 自动路径:上面描述的 30 分钟周期替换,适合自管 daemon 的桌面场景;
  3. 受监督部署豁免:--mode server或--foreground启动的实例由外部进程管理器或终端监督,不参与自动替换,避免与发布编排冲突,bsk update会把它留给宿主重启。

周期性检查与替换守护进程编排见 crates/bsk-cli/src/daemon/start.rs,缓存路径定义在 crates/bsk-cli/src/daemon/paths.rs。把BSK_AUTO_UPDATE=off设上后,daemon 只刷新检查缓存,CLI 里只会看到"运行bsk update"的提示。

下一步:服务器实例关掉自动升级、交给发布流程;桌面实例保持默认,让它自己挑空闲窗口换版本。

bsk 升级后怎么验证:status、doctor、logs 三连

升级完成后我用 30 秒走一遍验证链路:

  1. bsk status:确认 daemon 已启动,pid、版本与 WS 端口都正常;
  2. bsk doctor:对浏览器与 daemon 连接做一次完整体检,检查项清单见 crates/bsk-cli/src/cli/doctor.rs;
  3. bsk logs:跟踪 daemon 日志尾部,检索 "daemon stopped"、"new bsk executable installed and checked; starting the replacement daemon"、"replacement daemon started"、"auto-update postponed: agent session(s) active" 等关键行,确认实际走的是你预期的那条替换路径。

🔍 若bsk status显示异常,先看可执行文件旁的*.update-*.log(Windows 帮助进程日志),再核对端口是否被旧进程残留占用。

下一步:bsk status+bsk doctor双确认,日志留档,有疑点随时bsk logs回溯。

升级前后不要做的几件事

  • 升级前只靠"直接升":先bsk update --check预览,并保持 Agent 会话空闲(自动升级本身也会等会话结束);
  • Windows 上看到staged就焦虑强杀帮助进程:替换未完成前,强杀只会留下临时文件;
  • ✅ 生产服务器自行其是:保持--mode server部署 + 外部监督进程,升级窗口由发布流程控制;
  • 内网直接连公网清单:用BSK_UPDATE_MANIFEST_URL指向内部镜像,并确认镜像资产自带 SHA-256 校验和,否则更新会被拒绝;
  • ✅ 升级失败闷头重试:先查*.update-*.log与bsk doctor的输出,再手动跑一次bsk update。

无论是手动执行、周期自动替换,还是服务器模式下的豁免,落点都一样:新二进制按原有端口与超时配置接管服务。把会话留白、别动帮助进程、验证走一遍三件套,BrowserSkill 的版本更新就是一次不需要你盯着的操作。

【免费下载链接】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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进