smolvm
smolvm 是一个可嵌入、可移植、可分支的轻量级微虚拟机,专为安全运行 AI Agent 设计。它能在本地以硬件隔离方式启动 OCI 镜像,支持快照、分支和跨平台迁移,并提供多语言 SDK。
爱鲜报评分
0.0
0 人评分
6.8k
星数
是
中文
Rust
主语言
是
活跃
61
贡献者
人工分析
EDITORIAL推荐理由
smolvm 为 AI Agent 提供了接近容器的轻量体验,却拥有虚拟机级别的安全隔离,启动快、内存弹性、支持分支与检查点,非常适合需要本地安全执行不可信代码的场景。项目由 Rust 编写,提供 Node、Python、Rust、Go SDK,生态完整,且已有中文文档,对中文开发者友好。
适用场景
- AI Agent 本地安全沙箱
- 不可信代码执行环境
- 可移植开发环境打包
- 微虚拟机快速实验与测试
- 跨平台应用分发(单文件可执行)
优点
- 硬件级隔离,每个工作负载独立内核,安全性高
- 启动迅速(亚秒级),内存弹性,资源占用低
- 支持运行中快照、回滚与分支,便于调试和实验
- 兼容 OCI 镜像,无需 Docker 守护进程
- 提供多语言 SDK,易于嵌入现有应用
- 有中文文档,社区活跃(近 7k stars)
缺点
- 依赖硬件虚拟化支持(macOS Hypervisor.framework、Linux KVM、Windows Hypervisor Platform)
- Windows 支持需额外启用 Hypervisor Platform,配置略复杂
- 网络默认关闭,需显式配置允许规则,增加使用门槛
- 项目较新,生态和第三方工具集成仍在发展中
上手难度
进阶
smolvm 简介
smolvm 是一个用 Rust 编写的可嵌入、可移植、可分支的微虚拟机(microVM),旨在让 AI Agent 在本地安全地运行。每个工作负载都运行在拥有独立内核的硬件虚拟化虚拟机中,既具备容器般的轻量体验,又提供虚拟机级别的隔离。
核心特性
- 本地运行:在笔记本或自有服务器上启动真实虚拟机,启动时间低于 1 秒,内存弹性分配,仅占用实际使用量。
- 可嵌入:通过统一的
MachineAPI 从代码中驱动虚拟机,提供 Node/TypeScript、Python、Rust、Go SDK,无需守护进程。 - 可分支:支持对运行中的虚拟机进行快照、回滚和分支(写时复制),便于调试、实验和并行任务。
- 可移植:将虚拟机打包为单个
.smolmachine文件,可推送到 OCI 仓库或作为独立可执行文件分发,启动仅需 200ms。 - 安全隔离:默认关闭网络,可限制出口主机,支持凭据替换(代码使用凭据但无法读取明文)。
快速开始
安装(macOS/Linux):
brew install smol-machines/tap/smolvm
# 或
curl -sSL https://smolmachines.com/install.sh | bash
运行一次性虚拟机:
smolvm machine run --net --image alpine -- uname -a
交互式 Shell:
smolvm machine run --net -it --image alpine -- /bin/sh
使用场景
- AI Agent 沙箱:安全执行 LLM 生成的代码,避免影响宿主机。
- 可移植开发环境:将配置好的环境打包,随处运行。
- 分支实验:从运行中的状态创建多个副本,并行测试不同方案。
工作原理
smolvm 基于 libkrun 作为 VMM,使用 libkrunfw 提供客户机内核,底层利用各平台的硬件虚拟化能力(macOS Hypervisor.framework、Linux KVM、Windows Hypervisor Platform)。镜像采用 OCI 标准,可直接运行 Docker Hub 或 ghcr.io 上的镜像,无需 Docker 守护进程。
注意事项
- 需要宿主机开启硬件虚拟化支持。
- 网络默认关闭,需通过
--net及允许规则显式开放。 - Windows 用户需启用 Windows Hypervisor Platform。
更多文档请参考仓库中的 docs/ 目录,包含中文 README。
评论
- 暂无评论,来写第一条吧。