Moli:面向AI智能体的Rust无头浏览器内核

AI新闻 dotaai
69

一、Moli是什么

Moli是使用Rust语言开发,专为AI Agent设计的独立无头浏览器内核,并非Chromium套壳封装,采用Apache-2.0与MIT双开源协议。它主打“结构优先、像素按需”的设计理念,默认只解析DOM、执行JS,布局与像素渲染仅在截图、获取元素坐标等场景按需触发,以此大幅降低内存与CPU资源消耗,适配AI智能体访问互联网、网页信息提取、页面自动化等任务。

同时Lexmount配套提供托管云浏览器服务Lexmount Browser,开源Moli内核可以完全本地独立部署使用。

Moli(图1)

二、功能特色

  1. 按需渲染,资源消耗极低:默认跳过页面布局与像素绘制,仅当需要截图、元素坐标拾取时才临时执行渲染计算,任务完成后释放渲染资源。对比传统Chromium无头模式,空闲内存仅为Chrome的约1/7,峰值内存约1/3,冷启动速度提升明显,适合大批量并发AI网页任务。

  2. 完整Web运行能力:内置V8 JavaScript引擎,支持DOM、CSS解析、网络请求、Cookie、WebWorker、IndexedDB、WebCrypto、iframe等网页基础能力,可正常加载SPA单页应用,处理动态渲染网页。

  3. 多自动化协议兼容:原生支持CDP、WebDriver Classic、WebDriver BiDi协议,可直接对接Playwright、Puppeteer、Selenium等现有自动化工具,原有自动化代码少量修改即可迁移至Moli。

  4. 多平台单二进制分发:打包为独立二进制文件,单包体积约40MB,支持Linux、macOS、Windows,无需预先安装完整浏览器。

  5. 便捷CLI工具:内置命令行工具,一行命令抓取网页,可直接输出JSON、Markdown结构化网页内容,支持一键截图,开箱即用,无需复杂开发配置。

三、技术细节

Moli基于Rust安全内存模型构建,由多个成熟Web组件拼装成独立浏览器引擎,核心组件清单:

  • html5ever:HTML文档解析,构建DOM树;

  • rusty_v8:V8 JS引擎绑定,执行页面JavaScript脚本;

  • Servo-Stylo:CSS样式引擎,完成样式计算;

  • Taffy+Parley:布局引擎,按需进行页面排版;

  • libcurl:底层网络传输,处理HTTP/HTTPS请求;

内核设计思路区别于传统浏览器:传统浏览器无论是否需要画面,加载页面都会完整执行布局、绘制;Moli优先维护文档结构、JS执行状态,布局渲染作为一次性快照,用完即丢弃。
在Web平台测试集WPT中,Moli可运行通过大量网页标准测试;支持CDP服务,可作为后台服务常驻,供AI Agent远程调用网页操作能力。开源版本完全独立,不依赖Chrome、Firefox等第三方浏览器程序。

四、应用场景

  • AI Agent联网检索:大模型智能体访问互联网,读取网页正文、提取资料,作为知识库检索工具;

  • 网页结构化抓取:批量采集网页内容,输出Markdown/JSON,适合知识库构建、行业数据采集;

  • 轻量网页自动化:表单提交、页面点击、元素读取等自动化操作,适合资源受限服务器批量任务;

  • 网页内容截图取证:按需生成页面截图,用于页面存档、网页校验;

  • 本地开发测试:轻量无头环境,用于脚本原型验证,不占用过多服务器内存。

不适合场景:重度前端可视化测试、依赖复杂WebGL/音视频媒体的页面自动化,这类场景兼容性不如完整Chromium。

五、使用方法

1. 安装

Linux / macOS

curl --proto '=https' --tlsv1.2 -fsSL 
-o /tmp/moli-installer.sh 
https://github.com/lexmount/moli/releases/download/v1.1.17/moli-installer.sh
sh /tmp/moli-installer.sh

Windows PowerShell

irm https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1| iex

安装完成执行moli --version验证安装。

2. 基础CLI示例

# 抓取网页,输出结构化JSON
moli fetch https://example.com --format json

# 开启布局渲染,抓取页面并截图
moli fetch https://example.com --layout --screenshot out.png

# 启动CDP服务,供Playwright/Puppeteer连接
moli cdp

Moli(图2)

六、竞品对比

项目 底层内核 核心定位 资源开销 优势 局限
Moli Rust自研独立浏览器内核(非Chromium) AI Agent专用无头浏览器 极低,按需渲染 轻量、启动快,兼容CDP协议,单二进制,适合大模型联网抓取 复杂媒体、WebGL场景兼容性不足,面向AI抓取优化,不是通用测试浏览器
Playwright 封装Chromium、Firefox、WebKit Web端到端自动化测试框架 较高,完整浏览器内核 多浏览器内核、自动等待、强大断言、生态完善 依赖完整浏览器,包体大,内存占用高,服务器并发成本高
Puppeteer 封装Chromium NodeJS网页自动化与爬虫工具 高,完整Chromium内核 CDP原生支持,社区成熟,截图PDF能力完善 依赖Chrome,资源消耗大,高并发场景服务器成本高,仅支持Chromium系

七、常见问题解答

Q:Moli是Chrome/Chromium的封装工具吗?

A:不是。Moli是从零搭建的独立浏览器内核,没有调用Chromium二进制程序,由html5ever、V8、Stylo、Taffy等Web组件组合实现浏览器能力。

Q:Moli是否可以免费商用?

A:开源Moli内核采用Apache-2.0或MIT双许可,可免费商用;Lexmount托管云浏览器服务是独立的付费云产品,二者分开。

Q:Moli可以直接用Playwright脚本运行吗?

A:可以,Moli支持CDP协议,启动moli cdp服务后,修改Playwright连接地址,大部分基础页面操作脚本可直接迁移。部分依赖浏览器底层特定实现的高级API可能不兼容。

Q:把Moli的CDP端口直接暴露公网安全吗?

A:不安全。CDP协议本身不带身份认证,公网开放端口会导致任意外部人员控制浏览器,读取访问内容。建议仅本地127.0.0.1访问,跨机使用SSH隧道或者私有VPN。

Q:Moli可以处理登录、Cookie、JS渲染的SPA网页吗?

A:支持,Moli内置JS引擎、Cookie存储,可以执行页面JS,处理SPA动态渲染页面。但复杂JS框架、特殊前端加密逻辑,可能出现和Chrome表现不一致的情况。

八、相关链接

九、总结

Moli是一款专为AI智能体网页访问场景打造的Rust开源无头浏览器内核,依靠按需渲染的创新设计大幅降低服务器资源消耗,兼容主流自动化协议,兼顾轻量部署与基础网页交互能力,适合大模型联网检索、网页结构化提取、轻量自动化任务;它并不追求和完整Chrome完全一致的全Web兼容性,而是在AI Agent高频的网页抓取、信息提取场景中,提供低成本、高并发的浏览器运行方案。

打赏
THE END
作者头像
dotaai
正在和我的聊天机器人谈恋爱,它很会捧场。