资讯动态

BrowserSkill 代码结构导读:一条 bsk 命令如何走到浏览器

发布时间:2026/10/16 2:17:22 来源:尧图企业网站定制
BrowserSkill 代码结构导读一条 bsk 命令如何走到浏览器【免费下载链接】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/BrowserSkillBrowserSkill 是让 AI Agent 操控用户已登录真实浏览器的自动化工具由 Rust 命令行工具、后台守护进程与 Chrome 扩展三部分组成。本文作为代码结构导读讲清工作区划分、两个 Rust crate 的分工以及一条 bsk 命令的完整链路。工作区划分Rust、TypeScript 与评测用例仓库顶层分三块crates/ 是 Rust 工作区apps/ 与 packages/ 是 TypeScript 侧evals/ 存自动化评测用例docs/ 存设计文档。Cargo.toml 声明工作区仅两个成员crates/bsk-cli与crates/bsk-protocol版本号 0.3.2、Rust 1.85 在[workspace.package]统一定义tokio、serde、clap 等依赖集中在[workspace.dependencies]crate 内以workspace true引用pnpm-workspace.yaml 接管apps/*与packages/*扩展在 apps/extension/packages/ 下另有 dsh 插件、i18n 等 TS 包Rust 集成测试在 crates/bsk-cli/tests/共 39 个文件扩展的测试文件则与 TS 源码同目录并列。跟随一次截图命令的完整链路选bsk screenshot为例这条命令经过的路线如下bsk screenshot (cli/screenshot.rs) ↓ IPC~/.bsk/run/daemon.sockJSON 每行一条 ipc_client.rs → daemon/ipc.rs ↓ 进入会话串行队列 (daemon/queue.rs) daemon/ws.rs → WebSocket 52800 扩展transport/ws-transport.ts → tools/dispatcher.ts ↑ 同一协议的帧把结果带回沿途有三处值得留意。cli/screenshot.rs 解析参数并构造 bsk-protocol 定义的ScreenshotParams随后dispatch先调用ensure_daemon()确认守护进程在跑不在则自动拉起。ipc_client.rs 从~/.bsk/daemon.json读出 socket 路径协议是逐行 JSONUnix 走域套接字Windows 走命名管道。客户端侧超时设为 35 秒故意长于 daemon 的 30 秒工具超时保证能拿到结构化的超时消息。进入 daemon 后queue.rs 为每个会话维护一条容量 64 的串行队列把tool.*调用逐个转发给扩展并等回结果避免 Agent 的并发调用相互踩踏。消息到达扩展侧后dispatcher.ts 按tool.screenshot分支分派由 CDP 完成真正的截图与回传。 两条链路容易混淆CLI 与 daemon 之间走本地 socketdaemon 与扩展之间走端口 52800 的 WebSocketDEFAULT_WS_PORT可用--port覆盖。Rust 侧两个 crate 如何分工bsk-cli 是编译后能直接摸到bsk命令的部分bsk-protocol 只含类型与序列化不含业务逻辑。分工如下组件路径职责CLI 子命令树crates/bsk-cli/src/cli/clap 定义一命令一文件共 40 个源文件IPC 客户端crates/bsk-cli/src/ipc_client.rs与本地 daemon 的逐行 JSON 收发守护进程运行时crates/bsk-cli/src/daemon/IPC/WS 服务器、会话路由、串行队列、远端连接技能安装crates/bsk-cli/src/skill_install/把skill/SKILL.md装进各类 AI 助手协议类型crates/bsk-protocol/src/frame.rs帧结构、method.rs方法名、tools/入参出参JSON Schemacrates/bsk-protocol/schema/111 份机器可校验的契约文件 schema/ 下的 111 份 schema 由 Rust 类型生成bsk-protocol 附带dump-schema二进制可重新生成它们不依赖 Rust 环境其他语言可直接用来校验消息格式。扩展侧与协议契约扩展是 Manifest V3 浏览器扩展源码在 apps/extension/src/entrypoints/ 是一组入口background.ts为维持与 daemon 连接的服务工作者transport/ 封装 WS 连接与断线重连tools/ 把tool.*方法分派到各具体工具session-manager/与long-screenshot/分别处理会话与整页截图管线。这一侧与 Rust 侧共享的只有消息格式TS 侧定义了ProtocolFrame等一套同构类型schema 文件是双方之间的校验标准。拆分动机与阅读落点协议为什么单独成 crate因为它是 CLI、daemon 与 TypeScript 扩展三方共享的契约。把它做成零业务依赖的独立 crate各方照着同一契约实现类似插座标准插头与插座只要针脚对得上通多大的电流由实现方决定。代价是新增一个工具通常要改三处bsk-protocol 里加方法名与入参出参bsk-cli 加一个子命令文件扩展 dispatcher 加一个分支。建议的阅读顺序先看 Cargo.toml 建立工作区骨架感再按 frame.rs → method.rs → tools/ 熟悉消息结构然后从 screenshot.rs 顺藤摸瓜到 daemon卡住时去 tests/ 搜同名测试文件测试是最可靠的活文档。更完整的架构与远端扩展连接方式见 docs/architecture.md 及 docs/ 下的其余文档。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑