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 源码为依据。