microsandbox 是一款自托管平台,能安全执行不可信的用户代码或AI生成的代码。
1、硬件级隔离:借助微型虚拟机(microVMs)实现强隔离,避免恶意代码威胁宿主系统。
2、快速启动:启动时间控制在200毫秒以内,相比传统虚拟机超过10秒以上的启动速度,启动速度大幅提升。
3、自主可控:支持自托管模式,用户能完全掌控自己的基础设施。
4、兼容性强:与OCI标准容器镜像兼容,方便集成现有的容器化工作流。
5、AI友好:内置MCP协议支持,能直接与Claude、Agno等AI工具无缝协作。
模块名称 | 功能描述 | 近期主要更新 |
---|---|---|
microsandbox-core | 核心运行时引擎 | 降级MCP协议版本,移除未使用依赖(#244) |
microsandbox-server | 服务端组件 | 添加--host支持(#253) |
microsandbox-cli | 命令行工具 | 添加--host支持(#253) |
microsandbox-portal | 管理门户 | 降级MCP协议版本,移除未使用依赖(#244) |
sdk | 软件开发工具包 | 增强CLI参考文档与MCP协议说明(#241) |
docs | 文档资源 | 重构云托管指南至独立文件(#228) |
1、安装平台:通过curl命令一键安装
curl -sSL https://get.microsandbox.dev | sh
2、启动服务:执行开发模式启动命令
msb server start --dev
提示:服务端同时兼容MCP协议,可直接对接AI工具。
3、拉取环境镜像(可选):
msb pull microsandbox/python
Python
import asyncio
from microsandbox import PythonSandbox
async def main():
async with PythonSandbox.create(name="test") as sb:
exec = await sb.run("name = 'Python'")
exec = await sb.run("print(f'Hello {name}!')")
print(await exec.output()) # 输出:Hello Python!
asyncio.run(main())
JavaScript
import { NodeSandbox } from "microsandbox";
async function main() {
const sb = await NodeSandbox.create({ name: "test" });
try {
let exec = await sb.run("var name = 'JavaScript'");
exec = await sb.run("console.log(`Hello ${name}!`)");
console.log(await exec.output()); // 输出:Hello JavaScript!
} finally {
await sb.stop();
}
}
main().catch(console.error);
Rust
use microsandbox::{SandboxOptions, PythonSandbox};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut sb = PythonSandbox::create(SandboxOptions::builder().name("test").build()).await?;
let exec = sb.run(r#"name = "Python""#).await?;
let exec = sb.run(r#"print(f"Hello {name}!")"#).await?;
println!("{}", exec.output().await?); // 输出:Hello Python!
sb.stop().await?;
Ok(())
}
microsandbox支持类似npm/cargo的项目管理流程:
1、初始化项目:
msb init
生成Sandboxfile配置文件。 2、添加沙箱环境:
msb add app \
--image python \
--cpus 1 \
--memory 1024 \
--start 'python -c "print(\"hello\")"'
3、运行沙箱:
• 执行默认脚本:msb run --sandbox app
或 msr app
• 执行指定脚本:msr app~start
4、沙箱临时使用:
用于一次性任务,退出后自动清理环境:
msb exe --image python
或 msx python
5、沙箱全局安装:
将沙箱注册为系统命令:
msb install --image alpine
或 msi alpine
启动命令:alpine
AI代理可在安全沙箱内完成从代码生成、依赖安装到测试运行的全流程操作。例如创建React应用:
git init task-tracker
cd task-tracker
npm create vite@latest --template react-ts
npm install
npm run dev
应用场景:AI结对编程、编程教育平台、自动化代码生成。
通过沙箱隔离运行数据处理任务,保障数据隐私:
import pandas as pd
sales_data = pd.read_csv('q2_sales.csv')
monthly_growth = sales_data.groupby('month')['revenue'].sum()
输出结果: • Q2整体增长24.7%,东部地区表现突出 • 移动设备购买转化率最高(18.4%) 适用领域:金融分析、医疗研究、隐私数据处理。
AI可在沙箱内安全访问网络,实现价格比较、数据抓取等功能:
# 模拟电商比价场景
retailers = ['TechStore', 'BestDeal', 'OnlineMart']
for retailer in retailers:
products = scrape(retailer, 'laptops under $1000')
filter_by_price(products, 1000)
应用案例:价格比较工具、内容聚合器、自动化测试。
支持快速部署AI生成的应用,并生成可分享链接:
# 部署天气应用示例
msb deploy weather-app --image node:18
# 生成访问链接:https://msbl.ink/w37x9f
特点:2.3秒快速部署,自动资源清理,适合教育平台、Demo演示。
microsandbox 采用客户端-服务端-微虚拟机三层架构:
flowchart TB
%% 客户端层
subgraph 客户端进程
业务逻辑 --> SDK调用
end
%% 服务端层
subgraph 服务端进程
SDK请求 --> 服务端处理
end
%% 微虚拟机层
subgraph 微虚拟机集群
服务端调度 --> python环境
服务端调度 --> node环境
服务端调度 --> ruby环境
end
客户端:通过SDK发起代码执行请求
服务端:负责接收请求、管理微虚拟机实例
微虚拟机:每个环境独立运行,提供硬件级隔离