“刷新一下认知,Vibium是一个开源自动化工具,用Go编写,提供JS/TS、Python和Java客户端库。”
在这篇技术博文中,我们来拆解它的底层设计逻辑。Vibium的设计选择不是一个CLI决策,而是它底层采用的协议决定的。
![]()
浏览器自动化技术经历了三代协议演进。第一代是WebDriver(2004年至今),作为Selenium的基础,使用HTTP+JSON的请求/响应模型单向控制浏览器:浏览器只在你问的时候才回应。
第二代是Chrome DevTools Protocol(2017年至今),CDP用WebSocket替换了HTTP,解锁了双向通信能力:浏览器能实时收发事件,包括日志、网络活动和DOM变化。Puppeteer和Playwright都构建在CDP之上,但它是Chrome内部协议。
第三代则是WebDriver BiDi(2021年至今)。这可以理解为W3C对行业需求的回应——保留CDP的双向WebSocket模型,但把它变成一个真正的跨浏览器标准。这也是为什么Vibium直接构建在WebDriver BiDi之上的核心原因。
从这个交互流程可以看出,浏览器可以主动推送事件,比如消息通知,当页面抛出错误时,WebDriver BiDi可以直接接收这些事件。
浏览器支持度还在逐步成熟中。但整个工具生态正在向这一协议收敛,不只是Vibium。
Vibium以单一编译二进制文件的形式发布。这意味着两个访问面——命令行和MCP——都汇聚到同一个内部命令引擎,该引擎通过自己管理的BiDi WebSocket连接与Chrome通信。
两种方法都指向Vibium二进制文件,它使用WebDriver BiDi通过WebSocket与Chrome交互。有两个细节值得注意:Vibium对CLI命令、MCP工具和语言客户端使用同一套核心引擎。客户端库通过WebSocket连接到二进制文件,而不是重新构建浏览器自动化逻辑。
Vibium可以作为Agent技能通过以下命令安装:npx skills add https://github.com/VibiumDev/vibium --skill vibe-check。这让AI编程Agent能够通过SKILL.md定义发现并使用它,自动解析所需的二进制文件。
守护进程模式提升了性能。它不会为每个命令启动新的浏览器,而是保持一个后台浏览器存活并在所有命令中复用。执行vibium go、vibium map、vibium click这些命令时,浏览器只会启动一次,让Agent工作流程更快。守护进程也可以通过start、status和stop命令手动控制,这对CI环境很有用。
在进入Vibium的AI集成之前,需要澄清MCP和Skills之间的区别,因为这里存在一些混淆。MCP(Model Context Protocol)是Agent用来执行工具的运行时,它控制Agent和二进制文件之间的通信。简而言之:MCP使用Skills来执行,而Skill告诉MCP如何执行。要使用通过SKILL.md定义的Skill,你需要先安装它。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.