Skip to content

沙箱後端

源码版本v2026.7.20

職責

agent 要執行命令、跑程式碼,但不能讓任意命令直接打到宿主機。Hermes 的終端工具支援 6 種執行後端,按安全/隔離/成本權衡選擇:Local(本機直跑)、Docker(容器隔離)、SSH(遠端機器)、Singularity(HPC 容器)、Modal(雲沙箱,direct 或 managed)、Daytona(雲開發環境)。容器硬化 + 命名空間隔離,危險命令還經審批回調攔截。

關鍵檔案

資料流

  1. agent 決定執行命令 → tool_call terminaltools/terminal_tool.py
  2. 按作業設定選後端(local/docker/modal/ssh/singularity/daytona):
  3. 危險命令經審批回調攔截——主迴圈用互動式審批;子代理預設 auto-deny(tools/delegate_tool.py:75),cron/批量可 opt-in auto-approve。
  4. 命令輸出回填主迴圈;長任務可背景化(tools/daemon_pool.py)。

小結

沙箱層是「執行隔離 + 危險命令管控」:6 後端覆蓋從本機到 HPC 到雲;Docker 檢測 bind mount 防越權;Modal 區分 direct/managed 憑據;危險命令統一走審批回調。子代理與 cron 走 auto-deny/auto-approve 的非互動路徑。

非官方社群學習站,內容以 MIT 授權的 NousResearch/hermes-agent 原始碼為依據。