AI 代理沙盒指南

在 Mac 上執行 AI 代理,但不把整台 Mac 交給它

簡短的答案:給代理一台虛擬機,而不是你的使用者帳號。啟動前先拍快照,遇到不信任的東西就複製一份用完即丟的副本,任務用不到網路時就把網路切掉。本指南比較 Apple Silicon 上的各種隔離方式,並帶你走一遍使用 Kyvenza 內建 MCP server 的工作流程。

各種隔離方式實際保護了什麼

你自己的使用者帳號:沒有隔離

以你的身分執行 shell 指令的代理,擁有你所擁有的一切:鑰匙圈、SSH 金鑰、瀏覽器登入狀態、雲端憑證,以及你讀得到的每個檔案。一個錯誤指令或一次提示詞注入,波及範圍和你本人一樣大。

第二個 macOS 使用者:檔案分開,作業系統共用

另開一個帳號可以讓你的家目錄與鑰匙圈碰不到,但作業系統與核心仍是同一個。這能防範意外,若代理被授予管理員權限,效果就差一些。

容器:適合 Linux 工具,但有但書

Mac 上的容器跑在一台 Linux 虛擬機裡,共用它的核心。它們適合無介面的 Linux 工具,但掛載的主機資料夾或 Docker socket 會給代理一條回到外面的路,而且容器無法執行 macOS 或 Windows 應用程式。

虛擬機:由 hypervisor 強制執行的邊界

客體是一套獨立的作業系統。除非你主動共用,否則它看不到主機的檔案,而且快照可以讓整台機器在糟糕的操作之後回溯。對於在單一台 Mac 上跑的程式開發代理,這是最划算的平衡點。

專用機器:最強,但要多一台裝置

閒置的 Mac mini 能提供實體隔離。但它要花錢、要設定,還多一台要維護的裝置。VM 在你已經擁有的 Mac 上就能取得大部分的隔離效果。

代理工作:Kyvenza VM 與 Docker 容器比較

容器很適合許多代理任務,建立也很快。差異出現在代理需要完整桌面、macOS 或 Windows 客體,或更強的邊界時。

功能KyvenzaDocker container
客體作業系統Linux ARM、macOS ARM 或 Windows 11 ARM僅限 Linux
隔離邊界由 hypervisor 強制執行的獨立作業系統一台 Docker 虛擬機內共用的 Linux 核心
操作出錯後回溯還原快照;透過 MCP 時,代理啟動 VM 前會自動拍一個快照重建容器並還原所有 volume
用完即丟的副本clone_vm:寫入時複製,約一秒就出現有,新容器啟動很快
完全沒有網路隔離網路;Linux 上 guest agent 仍可執行指令並截圖有,使用無網路設定即可
看見畫面在完整桌面客體上使用 screenshot 工具除非另外加裝桌面,否則只有終端機
最適合需要真實桌面或 macOS 的代理,以及不信任的安裝程式無介面的 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 客體的 GPU/3D 加速
  • Windows 客體的麥克風輸入與 USB 直通
  • x86/Intel 架構的客體系統
  • 巢狀虛擬化
  • GPU 直通

我們把目前做不到的也列出來,方便你事先規劃。

運作方式

01

準備一台乾淨的基底 VM

在 Kyvenza 建立 Linux 或 macOS 客體,裝好代理會用到的工具,然後關機。這就是你確認過沒問題的基底。不要把個人憑證放進去。

02

開啟 MCP server 並連接你的代理

到 Settings,再到 Automation,開啟 server 並複製端點,其中已帶有你這台 Mac 的 token。在 Claude Code 裡,連接只要一行指令:claude mcp add --transport http kyvenza http://127.0.0.1:59800/mcp/YOUR-TOKEN。任何接受 URL 的 MCP 客戶端都能使用。

03

複製、執行、讀取結果、刪除

啟用具破壞性的工具後,代理會把基底複製成沙盒,在裡面執行安裝程式或腳本、讀取輸出,然後刪除該副本。副本是寫入時複製,刪除的項目會進入垃圾桶。若程式碼不該對外連線,請先把 VM 設為隔離網路。

常見問題

在你的主要帳號上不安全。能以你的身分執行 shell 指令的代理,可以讀取你的鑰匙圈、SSH 金鑰與瀏覽器登入狀態,所以一個錯誤指令或一次提示詞注入,波及範圍和你本人一樣大。請在不含你任何憑證的虛擬機裡執行,並在它啟動前先拍快照。