Architecture For Power Users

Hermes Agent 的 7 個沙箱後端:什麼時候用哪個

Hermes Agent

Hermes Agent

@hermesagents

May 17, 2026

9 分鐘閱讀

每一份 Hermes Agent 安裝都有一個 sandbox 設定,它決定shell 指令到底跑在哪兒。這件事的後果挺重的:決定一條壞指令的爆炸半徑有多大、agent 用起來的體感有多快、以及你每個活躍小時要花多少錢。

Hermes 一共帶七個後端。README 把它們列得整整齊齊:localdockersshsingularitymodaldaytonavercel。v0.14.0 把 Vercel Sandbox 補進來,湊成現在這一套。下面是決策樹。

一張表看完七個後端

後端隔離強度延遲成本持久化適合誰
local沒有<10 ms免費有(你的磁碟)自己一個人在一台用完即扔的 VM 上寫
Docker容器約 50 ms免費按容器任何開發機的預設選項
SSH遠端是什麼強度就是什麼強度遠端延遲遠端費用agent 在別人的機器上跑
SingularityHPC 容器約 100 ms免費按容器HPC 集群、科學計算
Modalserverless 容器冷啟動約 200 ms按活躍秒收費可 snapshot突發計算、GPU 活兒
Daytonaserverless 工作區冷啟動約 300 ms按活躍秒收費閒置時休眠長跑的 agent 環境、閒置成本幾乎為零
Vercel Sandboxserverless 容器冷啟動約 200 ms按活躍秒收費臨時Web 工具鏈、JS 重度場景

localdocker 免費,跑在你機器上。剩下五個跑在別處——延遲、錢都得付,但換回來一些東西。

一個一個看,什麼時候挑哪個

local——「在這台機器上我信這個 agent」

agent 直接在你的檔案系統上、用你這個 user 的權限跑指令。零隔離。 agent 要是決定 rm -rf ~/code,就真的刪了。tool 輸出裡夾帶了一條 prompt injection,那條注入的指令也照跑。

什麼時候這一檔是對的:你在一台用完即扔的 VM 上寫東西,agent 幹的事情爆炸半徑反正跟你自己手動幹差不多,延遲低到 0 比安全餘量更重要。

什麼時候這一檔是錯的:基本上其他所有時候。

docker——對的預設值

跑在你機器上的一個容器,用 Linux namespace 做隔離。agent 看到的檔案系統是容器視角;你真實的 /home 看不見——除非你自己掛進來。

hermes config set sandbox docker 然後 hermes setup,映像就會拉好、設好。之後每一次 shell 工具呼叫都走容器。

這是 80% 使用者的對的預設值。 延遲開銷(每條指令約 50 ms)在聊天體感裡看不出來。隔離強度足夠——agent 跑 rm -rf / 也只能炸掉容器視角,容器本身是一次性的。需要 debug 的話你可以 docker exec 進去。

ssh——「agent 住在另一台機器上」

agent 的 shell 工具透過 SSH 在一台遠端主機上執行。本地這邊的 Hermes 行程是用戶端;活兒都發生在遠端那台。

這一檔對的場景:agent 幹的就是那種本該在遠端幹的基礎設施活兒——部署到伺服器、debug 生產日誌、跑 migration。你不需要本地沙箱,因為遠端那台就是沙箱。

遠端那台機器,你得能接受 agent 拿到 shell 權限。SSH 憑據要按生產憑據來對待,因為它本來就是。

singularity——HPC 集群

Singularity(現在叫 Apptainer)是 HPC 集群真在用的容器 runtime——Docker 在 host 上要 root,HPC 環境給不了。你在一個研究集群上跑 Hermes——SLURM 排程、沒有 Docker、一堆 GPU——這一檔就對了。

不認識 "HPC" 或 "Singularity" 這兩個詞的話,跳過這一節。

modal——突發計算,尤其是 GPU

Modal 是個 serverless 容器平台。Hermes 每條指令(或者每個會話,可複用)起一個 Modal 容器,跑完指令再拆掉。按活躍計算秒數付費。GPU 檔位有。

什麼時候它強過 Docker:agent 需要 GPU,或者計算資源超出你本地機器能給的。什麼時候它強過其他 serverless:冷啟動約 200 ms,對聊天節奏的工具呼叫是可以接受的;snapshotting 也夠好,會話中途的狀態留得住。

daytona——長跑、閒置近零

Daytona 的殺手鐧是休眠。你 agent 的環境閒下來就睡,要用的時候幾百毫秒裡醒過來。你付的是活躍秒數,不是閒置秒數。

實際效果是:你可以擁有一個「我的 Hermes」環境,帶著你的 dotfiles、你的 skills、你跑到一半的活兒,它能在那幾個月幾乎不要錢,因為你只在用的時候付。

這一檔適合:你想要一個 agent「住在某個地方」——但不想讓它住你筆電上。長時間閒置之後第一條請求約 300 ms 喚醒;之後請求就是容器速度。

vercel——Vercel Sandbox(v0.14.0)

最新加的一個後端,v0.14.0 進來的。和 Modal 一樣的 serverless 容器模型,跑在 Vercel 的基建上。你本來就以 Vercel 作為部署目標的話,這是把 agent 沙箱也放到同一家 provider 上摩擦最小的選項。

最適合:JS 重度的場景,你希望 agent 的環境跟你生產部署環境一模一樣。

怎麼切換

bash
hermes config set sandbox docker
# 或者:local、ssh、singularity、modal、daytona、vercel

需要憑據的後端(ssh / modal / daytona / vercel)——hermes setup 會問你要;也可以直接按文件用 hermes config set 設。

需要的話還能按 session 臨時覆蓋:hermes --sandbox modal 單跑一次需要 GPU 的活兒,之後回到你預設的 sandbox。

完全不要沙箱行不行

你可以完全關掉沙箱(local 後端),但 Hermes 還會在這之上蓋一層指令審批流程:危險指令——rm -rfcurl | sh、動 /etc 的——都會在執行前明確彈審批。v0.14.0 把這一層加固了一遍,關掉三個 dangerous-command 繞過、加了 sudo 暴力破解阻斷(#23736, #26829)。所以即便是 local 也不是「什麼都沒有」——它是「隔離更輕,但還有真審批」。逐層拆解可以看安全模型那篇

實際給的建議

絕大多數人、絕大多數時候:Docker。

想讓 agent 住在一台不是你筆電的伺服器上:Daytona(閒置就睡這件事真的挺神奇,成本算下來也對)。

有 GPU 活兒、或者 agent 在做真正的計算:Modal

在集群裡搞研究的:Singularity

local —— 你得清楚這個 tradeoff 再用。SSH——只在活兒「本該」在遠端發生的時候用。Vercel——你本來就在 Vercel 上的話。

延伸閱讀

訂閱更新

Hermes Agent 社群的第一手消息——新版本、新 skill、新整合。不寄垃圾信,隨時可以退訂。