AI agent 沙箱指南
在 Mac 上运行 AI agent,又不把整台 Mac 交给它
简短的答案:给 agent 一台虚拟机,而不是你的用户账号。启动前先打快照,对不信任的任务克隆一份一次性副本,任务用不到网络时就把网络切断。本指南对比 Apple Silicon 上的各种隔离方式,并演示如何借助 Kyvenza 内置的 MCP server 完成这套工作流。
每种隔离方式实际保护了什么
你自己的用户账号:没有隔离
以你的身份执行 shell 命令的 agent,拥有你拥有的一切:Keychain、SSH 密钥、浏览器会话、云服务凭据,以及你能读取的每一个文件。一条错误命令或一次提示词注入,影响范围和你本人一样大。
第二个 macOS 用户:文件分开,系统共用
单独的账号能把你的主目录和 Keychain 挡在外面,但它仍是同一个操作系统、同一个内核。它能防意外,却不太能防一个被授予管理员权限的 agent。
容器:适合 Linux 工具,但有前提
Mac 上的容器运行在一台 Linux 虚拟机里,共享它的内核。它适合无界面的 Linux 工具,但挂载的本机文件夹或 Docker socket 会给 agent 留下一条回到外面的路,而且容器跑不了 macOS 或 Windows 应用。
虚拟机:由 hypervisor 强制执行的边界
客体是一个独立的操作系统。除非你主动共享,它看不到本机文件;出现错误操作后,快照可以把整台机器回滚。对一台 Mac 上的编码 agent 来说,这是最合适的折中。
专用机器:最强,但要多一台设备
备用的 Mac mini 提供物理隔离,但要花钱、要配置,还多一台设备要维护。虚拟机在你已有的 Mac 上就能获得大部分隔离效果。
用 Kyvenza 虚拟机与 Docker 容器跑 agent 的对比
容器适合很多 agent 任务,创建也很快。当 agent 需要完整桌面、macOS 或 Windows 客体,或者需要更强的边界时,两者的差别才真正显现。
| 功能 | Kyvenza | Docker container |
|---|---|---|
| 客体操作系统 | Linux ARM、macOS ARM 或 Windows 11 ARM | 仅 Linux |
| 隔离边界 | 由 hypervisor 强制执行的独立操作系统 | 一台 Docker 虚拟机内共享的 Linux 内核 |
| 错误操作后回滚 | 恢复快照;通过 MCP 时,agent 启动虚拟机前会自动打一份 | 重建容器并恢复各个卷 |
| 一次性副本 | clone_vm:写时复制,约一秒出现 | 支持,新容器启动很快 |
| 完全没有网络 | 隔离网络;在 Linux 上,客体代理仍能执行命令和截屏 | 支持,使用无网络设置 |
| 查看屏幕 | 在完整桌面客体上使用 screenshot 工具 | 只有终端,除非再加一个桌面 |
| 最适合 | 需要真实桌面或 macOS 的 agent,以及不受信任的安装程序 | 无界面的 Linux 工具和 CI |
Kyvenza 目前支持什么
一份简短、坦诚的清单,下载之前先心里有数。
目前已支持
- Apple Silicon Mac(M1, M2, M3, M4, M5)
- Windows 11 on ARM(自带 Microsoft 镜像与许可证)
- Ubuntu ARM(LTS 版本)
- Debian ARM
- Fedora ARM
- macOS 14 Sonoma 或更高版本作为本机系统
- 原生 Apple Virtualization framework 后端
暂不支持
- Windows 客体 OS 的 GPU / 3D 加速
- Windows 客体 OS 的麦克风输入与 USB 直通
- x86 / Intel 客体操作系统
- 嵌套虚拟化(在虚拟机里再运行虚拟机)
- GPU 直通
我们把目前还做不到的也列出来,方便你提前规划。
使用步骤
准备一台干净的基础虚拟机
在 Kyvenza 里创建一台 Linux 或 macOS 客体,装好 agent 需要的工具,然后关机。这就是你的已知良好基础。不要在里面放任何个人凭据。
打开 MCP server,连接你的 agent
在「设置」的「自动化」里打开服务,复制端点,其中已带有你这台 Mac 的令牌。在 Claude Code 里,连接只需一条命令:claude mcp add --transport http kyvenza http://127.0.0.1:59800/mcp/YOUR-TOKEN。任何接受 URL 的 MCP 客户端都可以使用。
克隆、运行、读取结果、删除
启用破坏性工具后,agent 会把基础虚拟机克隆成沙箱,在里面运行安装程序或脚本,读取输出,然后删除这份克隆。克隆是写时复制的,删除的内容会进入废纸篓。对不能回连外部的代码,请先把虚拟机设为隔离网络。
常见问题
在你的主账号上不安全。能以你的身份执行 shell 命令的 agent 可以读取你的 Keychain、SSH 密钥和浏览器会话,所以一条错误命令或一次提示词注入,影响范围和你本人一样大。请把它放进一台不含你任何凭据的虚拟机里运行,并在启动前先打快照。
给 agent 一台它自己的机器
下载 Kyvenza,打开 MCP server,让你的 agent 在一台可以打快照、也可以随时丢弃的虚拟机里工作。7 天试用之后,一次性 $49。