forkd:用於 AI 代理分支的微型 VM 沙箱執行環境,具備毫秒級快照分叉

forkd:用於 AI 代理分支的微型 VM 沙箱執行環境,具備毫秒級快照分叉

它解決了什麼問題

forkd 是一款為 AI 代理分支設計的微型 VM 沙箱執行環境。它解決了在 AI 代理需要大量產生短暫、相互隔離的環境(例如程式碼解釋、工具使用或評估回合)時,冷啟動虛擬機或容器所帶來的高延遲與資源開銷問題。

工作原理

基於 Firecracker,forkd 採用「從暖機分叉」的方式。父 VM 只啟動一次,載入所需的執行環境(如 Python、機器學習模型或 NumPy 等依賴),然後將其暫停並寫入磁碟作為快照。之後,子 VM 透過 mmap 搭配 MAP_PRIVATE 來映射父 VM 的記憶體映像。這使得子 VM 能以頁面層級的寫時複製(CoW)共享父 VM 的常駐記憶體,從而使產生時間遠快於冷啟動。

此外,forkd 支援 BRANCH,允許在執行中的沙箱上快照並在思考過程中產生多條分支;以及 diff‑snapshot chains,可將依賴層(例如 NumPy 與 Pandas 的獨立快照)堆疊起來,而不必重複基礎記憶體映像。

目標使用者

  • AI 代理開發者:構建程式碼解譯器或 Jupyter kernel 沙箱,讓每次工具呼叫都能獲得全新、隔離的環境。
  • 機器學習評估框架:在不承受 Docker 冷啟動負擔的情況下,同時執行數百個平行測試回合(例如 SWE‑bench)。
  • 注重安全的使用者:需要 KVM 級別硬體隔離,以在 CI 或多租戶環境中執行不受信任的程式碼。
  • 自行託管者:尋找開源、Apache 2.0 授權的替代方案,取代受管的沙箱 SaaS 平台。

重點特色

  • 極速產生:可在約 101 ms 內分叉 100 個微型 VM。
  • 即時 BRANCH:能在執行中的沙箱上快照並在最短 56 ms(p50)內恢復。
  • 硬體隔離:每個子 VM 都是由 KVM 支援的獨立 Firecracker 微型 VM,提供比一般容器更強的隔離。
  • 堆疊快照:支援 diff‑snapshot chains,以有效管理分層依賴。
  • 完整 Linux 環境:每個子 VM 都擁有真實的 Linux 核心、 多 vCPU 與完整的 TCP 網路功能,與某些函式級執行環境不同。
  • 開發者工具:提供 REST API、Python/TypeScript/MCP SDK 以及 Prometheus 指標。

摘要

一款使用快照寫時複製的微型 VM 沙箱執行環境,能在毫秒級別內產生隔離且已預熱的環境,適用於 AI 代理的分支需求。

標題

forkd:用於 AI 代理分支的微型 VM 沙箱執行環境,具備毫秒級快照分叉

Sources