
沙箱(Sandbox)的概念源自於19世紀的德國家庭,是從生活中遷移挪用在現今的軟體開發上。
沙箱很像是我們在戶外海水浴場所看到的,在沙灘上有幾處被圍繞的方形區塊,讓小孩在方形區內玩沙或築沙。
在軟體開發上,沙箱是一種安全隔離的執行環境,已行之有年。
程式在沙箱環境中執行,假如出差錯或問題,只侷限在沙箱內,不會波及到外部整體。頂多把沙箱關閉,重新開啟新的安全環境。
沙箱技術的常用實務方式:
- 容器(Containers)
使用Docker等技術將執行環境封裝在一個獨立的容器內,容器有自己的設定與系統,跟主機系統和其它容器隔離開來。把所需要的東西,如作業系統、程式語言、套件和設定等打包在容器中,這個容器可以在安裝Docker等的不同系統的電腦上運行,每一次都重現相同的執行環境。
- 虛擬機器(Virtual Machines)
使用Firecracker等技術創造一個完全獨立的虛擬電腦,跟主機系統隔離開來。
- 使用者/核心模式(User Mode / Kernel Mode)
例如Google的相關技術,在不需要虛擬機器下能夠提供一個接近隔離的效果。
- WebAssembly
最近較新的作法,輕量、安全、跨平台,將程式編譯成WebAssembly的低階二進位語言格式,在沙箱中執行。NVIDIA發表相關研究。
- 作業系統內建沙箱
Anthropic Claude Code所開發的沙箱採用這種作法,而且已開源釋出。
對於大部分AI Agent的應用場景,Docker沙箱的執行環境相當足夠,安全性高,效能也好。只有在執行不受信任的程式時,才需考慮使用虛擬機器。
如果不想建立Docker沙箱執行環境,現在還有雲端沙箱服務可供選擇。
目前,最受歡迎的雲端沙箱是:
- E2B(Enviroment to Build)
- Modal
如果對AI Agent的安全性要求高,可以選擇Docker沙箱環境,或者考慮企業級沙箱服務如Fly.io、Replit、Google Cloud Run等。
如果想要讓AI Agent安全地執行程式,可以選擇E2B。
如果需要AI Agent的運算能力相當好,可以選擇Modal。


















