Skip to content

Backends de bac à sable

源码版本v2026.7.20

Responsabilité

L'agent doit exécuter des commandes, lancer du code, sans laisser des commandes arbitraires s'abattre sur la machine hôte. L'outil terminal d'Hermes supporte 6 backends d'exécution, à choisir selon le compromis sécurité / isolation / coût : Local (exécution directe sur l'hôte), Docker (isolation par conteneur), SSH (machine distante), Singularity (conteneur HPC), Modal (bac à sable cloud, direct ou managed), Daytona (environnement de dev cloud). Durcissement du conteneur + isolation par espace de noms ; les commandes dangereuses sont en plus interceptées par un callback d'approbation.

Fichiers clés

Flux de données

  1. L'agent décide d'exécuter une commande → tool_call terminaltools/terminal_tool.py.
  2. Sélection du backend selon la config du job (local/docker/modal/ssh/singularity/daytona) :
  3. Les commandes dangereuses sont interceptées par le callback d'approbation — la boucle principale utilise une approbation interactive ; le sous-agent est auto-deny par défaut (tools/delegate_tool.py:75), avec auto-approve opt-in pour cron / batch.
  4. La sortie de la commande est réinjectée dans la boucle principale ; les tâches longues peuvent être lancées en arrière-plan (tools/daemon_pool.py).

Résumé

La couche bac à sable est « isolation d'exécution + contrôle des commandes dangereuses » : 6 backends couvrent de l'hôte local jusqu'au HPC et au cloud ; Docker détecte les bind mounts pour éviter une escalation de privilèges ; Modal distingue credentials direct/managed ; les commandes dangereuses passent toutes par un callback d'approbation. Les sous-agents et cron empruntent le chemin non interactif auto-deny / auto-approve.

Site d'apprentissage communautaire non officiel. Basé sur le code source de NousResearch/hermes-agent (licence MIT).