microsandbox
简单、快速、本地的微虚拟机,用于隔离不可信工作负载,如 AI 代理、用户代码、插件和 CI 作业。
- Star 数
- ★ 8.7k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Rust
- FA 评分
- 61/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用Claude CodeChatGPT · Codex(部分支持)
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 需要运行不可信代码的 AI 代理开发者,可以使用 microsandbox SDK 在他们自己的代码中动态创建沙箱,以隔离代理行动。
- 不适合
- 需要完全离线或无法预缓存镜像的环境
- 使用 Intel Mac、无 KVM 的 Linux 或无 WHP 的 Windows 的用户
- 需要与 Docker/Kubernetes 编排深度集成的团队
- 源码审查
- 61/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
microsandbox 是一个本地优先的微虚拟机运行时和库,通过硬件级隔离提供虚拟机的安全性,但具有容器的速度和易用性。它支持跨平台(Linux、macOS、Windows),完全兼容 OCI,可以运行来自 Docker Hub 或 GHCR 的标准容器镜像。该项目提供多种编程语言的 SDK(Rust、Python、TypeScript、Go、Ruby)以及一个名为 msb 的 CLI,用于管理沙箱、镜像和卷。它还集成了 Agent Skills 和 MCP 服务器,使 AI 代理能够按需创建沙箱。该软件目前处于 beta 状态,以 Apache 2.0 许可证发布,并获得了 Y Combinator 的支持。
microsandbox 在轻量级微虚拟机中运行不可信的工作负载,提供硬件级别的隔离。工作流程从创建一个沙箱开始,使用 Sandbox::builder("name").image("python").cpus(1).memory(512).create()(或通过类似 API)来启动一个微虚拟机作为子进程。您可以执行命令,如 sandbox.exec("python", ["-c", "..."]),并获取标准输出。CLI 允许使用 msb run debian 运行镜像,管理命名沙箱(msb create、msb exec、msb stop、msb rm),管理镜像(msb pull、msb image ls、msb image rm),并检查状态(msb ls、msb ps、msb inspect、msb metrics)。它支持 OCI 镜像,提供网络限制和秘密注入(如 allowed_hosts 和 secrets 字段)。Agent Skills 包(npx skills add superradcompany/skills)为 Claude Code、Curage 等 agent 提供技能。MCP 服务器(microsandbox-mcp)使 MCP 兼容的代理能够进行沙箱管理、命令执行、文件系统访问、卷和监控。
- 需要运行不可信代码的 AI 代理开发者,可以使用 microsandbox SDK 在他们自己的代码中动态创建沙箱,以隔离代理行动。
- 在开发环境中运行用户生成的脚本或插件的平台团队,可以使用微虚拟机隔离来防止恶意代码影响主机。
- 需要为每个作业提供隔离且可重复的构建环境,同时又想消耗最少资源的 CI/CD 工程师。
- 希望以 Docker 类似的方式开发容器化应用,但无需 daemon 或完整虚拟机的开发者,可以使用
msbCLI 快速启动环境。 - 使用 Claude Code 等 AI 编码代理的用户,通过安装 Agent Skills 或 MCP 服务器,让代理在独立环境中运行代码,防止意外修改。
如何安装或部署这个 Agent?
安装 SDK:Rust 使用 cargo add microsandbox,Python 使用 uv add microsandbox,TypeScript 使用 npm i microsandbox,Go 使用 go get github.com/superradcompany/microsandbox/sdk/go,Ruby 使用 gem install microsandbox。安装 CLI:使用 npx microsandbox run debian 快速体验,或全局安装 msb,macOS/Linux 使用 curl -fsSL https://install.microsandbox.dev | sh,Windows 使用 irm https://install.microsandbox.dev/windows | iex。也支持 Homebrew(brew install superradcompany/tap/microsandbox)和 npm(npm i -g microsandbox)。注意:需要 macOS 上的 Apple Silicon,Linux 上启用了 KVM,Windows 上启用了 WHP。
如何使用这个 Agent?
安装后,使用 msb run python -- python3 -c "print('Hello from a microVM!')" 运行命令。如需命名沙箱,使用 msb create --name app python,然后使用 msb exec app -- python -c "import this"。管理镜像:msb pull python、msb image ls、msb image rm python。停止/启动沙箱:msb stop app、msb start app。检查状态:msb ls、msb ps app、msb inspect app、msb metrics app。在代码中,使用 Rust SDK:Sandbox::builder("my-sandbox").image("python").cpus(1).memory(512).create().await?,然后 exec 命令,最后 stop()。Python 示例:Sandbox.create("my-sandbox", image="python", cpus=1, memory=512),注意 Python API 是 asyncio。TypeScript:Sandbox.builder("my-sandbox").image("python").cpus(1).memory(512).create()。Go:microsandbox.CreateSandbox(ctx, "my-sandbox", microsandbox.WithImage("python"), microsandbox.WithCPUs(1), microsandbox.WithMemory(512))。
这个 Agent 有哪些优点和局限?
- 硬件级隔离,提供强大的安全边界(使用 microVM 技术),比容器更安全。
- 与 OCI 兼容,支持 Docker Hub、GHCR 等仓库的标准容器镜像,无需重新构建。
- 支持多种编程语言的 SDK(Rust、Python、TypeScript、Go、Ruby),方便集成。
- 快速启动(在 M1 机器上平均 <100 毫秒),适合需要频繁创建/销毁沙箱的场景。
- 支持嵌入式使用,无需服务器或长期运行的 daemon,可直接在代码中生成 VM。
- 具有长期运行的沙箱功能,支持分离模式,可用于持久会话。
- 通过秘密注入和网络限制提供安全功能,即使沙箱被入侵,密钥也不会泄露。
- 仍处于 beta 阶段,可能有破坏性变更和功能缺失。
- 对主机有特定要求:macOS 需要 Apple Silicon,Linux 需要 KVM 支持,Windows 需要 WHP,可能限制其部署在较旧的硬件或云实例上。
- 虚拟机启动时间可能因首次拉取镜像而波动,需要网络连接,在离线环境中没有开箱即用的缓存。
- 与 Docker 或 Kubernetes 生态系统的集成有限,需要自定义代码来编排多个沙箱。
- 文档可能是不完整的,特别是对于高级功能(如网络限制和秘密注入)的细节。
- CLI 和 SDK 的包管理不一致(例如,需要 Rust 工具链来安装 CLI,但 SDK 使用各自的包管理器)。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| microsandbox 当前 | 61 · 存在缺口 | 命令行工具免费 | ★ 8.7k | 今天 | Rust | Claude Code |
| h5i —— 面向 AI Agent 的安全优先无头浏览器 | 84 · 表现良好 | 命令行工具免费 | ★ 788 | 今天 | Rust | Codex · Claude Code |
| BoxLite:AI 智能体的微虚拟机引擎 | 57 · 缺口较多 | 代码库 / SDK免费 | ★ 2.6k | 今天 | TypeScript | — |
| Open Browser | 47 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 9.6k | 6 个月前 | TypeScript | ChatGPT · Claude.ai · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:项目提供微VM隔离,支持网络策略和秘密绑定,但未明确默认最小权限或用户确认机制。数据流透明度有限,敏感数据处理有秘密绑定但未详细说明。依赖固定版本,有安全政策。外部影响包括创建VM和网络访问,但未明确回滚机制。来源归属有作者和仓库信息。扣分原因:缺少用户确认和回滚的明确证据。
证据显示:项目有CI和测试,依赖固定版本,错误消息有示例。扣分原因:未提供故障恢复或依赖可用性的详细说明。
证据显示:面向AI代理和开发者,提供多种SDK和CLI,支持多平台。能力边界有网络策略和秘密绑定。触发精度高,环境适配有明确要求。扣分原因:未详细说明所有场景的边界。
证据显示:有README、安装说明、示例、许可证和贡献指南。版本号存在但无变更日志。维护责任有作者和社区。扣分原因:缺少变更日志和已知限制的详细说明。
证据显示:输出可用,提供SDK和CLI,边际价值高,成本效益合理。扣分原因:未提供性能基准或成本分析。
证据显示:README中的声明有部分支持,但缺少独立验证。事实和推断区分明确。扣分原因:跨来源验证不足。
- 项目仍为beta,可能有不兼容变更。
- 安装脚本通过curl管道执行,存在供应链风险。
- 未提供明确的回滚机制。
- 用户确认机制不明确。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
<!-- Release notes generated using configuration in .github/release.yml at v0.7.8 --> What's Changed Features * feat(network): scope secret substitution to specific header fields by @jbms in https://github.com/superradcompany/microsandbox/pull/1639 * feat(cli): add --mount-disk to msb restore by @0xpolarzero in https://github.com/superradcompany/microsandbox/pull/1733 * feat(exec): add runtime-owned detached jobs by @appcypher in https://github.com/superradcompany/microsandbox/pull/1774 …在 GitHub 查看 ↗ -
发布说明摘录
<!-- Release notes generated using configuration in .github/release.yml at v0.7.7 --> What's Changed Breaking changes * build(ruby)!: parallelize builds for supported ruby versions by @toksdotdev in https://github.com/superradcompany/microsandbox/pull/1728 Features * feat(network): add HTTP CONNECT outbound proxy by @m42e in https://github.com/superradcompany/microsandbox/pull/1508 * feat(runtime): add option to disable guest clock sync by @skorfmann in https://github.com/superradcompany/microsandbox/pull/1707 …在 GitHub 查看 ↗ -
发布说明摘录
<!-- Release notes generated using configuration in .github/release.yml at v0.7.6 --> What's Changed Maintenance * chore: refresh lockfiles after v0.7.5 by @github-actions[bot] in https://github.com/superradcompany/microsandbox/pull/1715 * chore(release): bump microsandbox to 0.7.6 by @appcypher in https://github.com/superradcompany/microsandbox/pull/1721 Full Changelog: https://github.com/superradcompany/microsandbox/compare/v0.7.5...v0.7.6在 GitHub 查看 ↗
常见问题
微沙箱与 Docker 有何不同?
我可以使用自己的 Docker 镜像吗?
在 Linux 上需要什么硬件虚拟化支持?
沙箱内是否可以访问网络?如何限制网络访问?
network: { allowed_hosts: ["api.openai.com"], allowed_ports: [443] }(Python 示例)。默认情况下,可能不授予网络访问权限或允许所有网络,但源代码中显示可以配置。秘密注入是如何工作的?
secrets: [{ env: "OPENAI_API_KEY", value: ENV.fetch("OPENAI_API_KEY"), allowed_host: "api.openai.com" }]。秘密可以在沙箱内部的环境变量中可用,但绑定到特定的主机,防止在其他地方使用。