Skip to content

Backends de sandbox

源码版本v2026.7.20

Responsabilidad

El agent necesita ejecutar comandos y correr código, pero no puede permitir que comandos arbitrarios caigan directamente en la máquina host. La herramienta de terminal de Hermes soporta 6 backends de ejecución, elegidos según el balance seguridad/aislamiento/coste: Local (directo en host), Docker (aislamiento por contenedor), SSH (máquina remota), Singularity (contenedor HPC), Modal (sandbox en la nube, direct o managed), Daytona (entorno de desarrollo en la nube). Endurecimiento de contenedor + aislamiento por namespace; los comandos peligrosos, además, los intercepta un callback de aprobación.

Archivos clave

Flujo de datos

  1. El agent decide ejecutar un comando → tool_call terminaltools/terminal_tool.py.
  2. Se elige el backend según la configuración del job (local/docker/modal/ssh/singularity/daytona):
  3. Los comandos peligrosos los intercepta un callback de aprobación: el bucle principal usa aprobación interactiva; los subagentes por defecto auto-deny (tools/delegate_tool.py:75); cron/batch puede opt-in a auto-approve.
  4. La salida del comando se devuelve al bucle principal; las tareas largas se pueden pasar a background (tools/daemon_pool.py).

Resumen

La capa de sandbox es «aislamiento de ejecución + control de comandos peligrosos»: 6 backends cubren desde host hasta HPC hasta nube; Docker detecta bind mounts para evitar escalado; Modal distingue credenciales direct/managed; los comandos peligrosos pasan todos por un callback de aprobación. Los subagentes y el cron siguen la ruta no interactiva de auto-deny/auto-approve.

Sitio de aprendizaje comunitario no oficial. Basado en el código fuente de NousResearch/hermes-agent (licencia MIT).