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 ソースに基づく。