🤖HermesBlog
Hermes Feature Guides · パート 98/9/2026

セキュリティ — 8層の保護

Plugin System — Endless Extensions — easy-to-understand guide based on official docs (updated 2026-08-09)

hermes-feature-9-plugins

セキュリティ — 8層の保護

AIエージェントにあなたのマシンでコマンドを実行させるとき、安全性が気になるものです。Hermes Agentはこの点を真剣に受け止め、多層防御セキュリティモデルを採用しています。連携して機能する8層の保護により、あなたが常にコントロールを握れるようにしています。

銀行の金庫を想像してみてください。ひとつの鍵だけでは不十分です。入り口の警備員、金庫の扉、警報システム、防犯カメラの映像が必要です。Hermesも同じ哲学を持っています。

その8層とは以下の通りです:

  1. ユーザー認可 — 承認された人だけがエージェントと対話できます
  2. 危険なコマンドの承認 — 破壊的な操作はあなたの承認が必要です
  3. ファイル書き込みの安全性 — 不要な書き込みからファイルを保護します
  4. コンテナ分離 — リスクの高い作業はサンドボックス(Docker、Singularity、Modal)で実行します
  5. MCP資格情報のフィルタリング — サブプロセスからシークレットを守ります
  6. コンテキストファイルのスキャン — プロジェクトファイル内のプロンプトインジェクションを検出します
  7. セッション間の分離 — セッション同士が互いのデータを覗けません
  8. 入力のサニタイズ — 作業ディレクトリのトリックによるシェルインジェクションをブロックします

かなりの数のレイヤーです。その中でも、最も頻繁に接することになる危険なコマンドの承認について詳しく見ていきましょう。

スマート承認: ヒューマン・イン・ザ・ループ

Hermesはコマンドを実行する前に、危険なパターンのリストと照合します。リスクがありそうな場合は、承認を求められます。

ここが賢いポイントです。承認システムには3つのモードがあり、~/.hermes/config.yamlで設定できます:

approvals:
  mode: smart                     # smart | manual | off
  timeout: 300                    # ユーザーの応答を待つ秒数
  cron_mode: deny                 # deny | approve — cronジョブ用
  single_query_mode: deny         # deny | approve — -qセッション用
  mcp_reload_confirm: true        # /reload-mcpはツール再構築前に確認を求める
  destructive_slash_confirm: true # /clear、/new、/reset、/undoは先にプロンプトを表示

各モードの動作は以下の通りです:

モード 動作
smart(デフォルト) 補助LLMを使ってリスクを判断します。python -c "print('hello')"のような安全なコマンドは自動承認。本当に危険なものは自動拒否。判断が難しいものはあなたに確認します。
manual 危険なコマンドは常に承認を求めます。自動化はありません。
off すべてのチェックを無効化 — --yoloと同じです。信頼できる環境のみで使用してください。

smartモードは最適なバランスです。「郵便物を確認する」ことと「金庫を開ける」ことの違いを理解している警備員がいるようなものです。

YOLOモード: 自己責任で高速実行

エージェントに確認を求めずに速く動いてほしいときもあります。それがYOLOモードの目的です。現在のセッションですべての危険なコマンド承認プロンプトをバイパスします。

有効にする方法は3つあります:

  1. CLIフラグ: hermes --yolo または hermes chat --yolo
  2. スラッシュコマンド: セッション中に /yolo と入力
  3. 環境変数: HERMES_YOLO_MODE=1 を設定

/yoloコマンドはトグルです。使用するたびにオン/オフが切り替わります:

> /yolo
  ⚡ YOLOモードON — すべてのコマンドが自動承認されます。注意して使用してください。

> /yolo
  ⚠ YOLOモードOFF — 危険なコマンドは承認が必要になります。

YOLOが有効な間、Hermesは忘れないようにしてくれます。セッション開始時に赤いバナーが表示され、ステータスバーには⚠ YOLOインジケーターが表示され、トグルするたびにリアルタイムで更新されます。

⚠️ 警告: YOLOモードはすべての危険なコマンドの安全チェックを無効化します — ただし、厳格なブロックリストは例外です。生成されるものを完全に信頼できる場合にのみ使用してください。例えば、使い捨て環境でのテスト済み自動化スクリプトなどです。

知っておくべき新しい設定キー

最新のアップデートで、承認設定に2つの重要なキーが追加されました:

mcp_reload_confirm(デフォルト: true)— /reload-mcpを実行すると、HermesはMCPツールセットを再構築する前に確認を求めます。なぜでしょうか? 再構築するとプロバイダーのプロンプトキャッシュが無効になり、次のメッセージで入力トークンがすべて再送信されるためです(コストがかかります)。常に承認をクリックすると、この設定はfalseに切り替わります。

destructive_slash_confirm(デフォルト: true)— /clear/new/reset/undoなどの破壊的なセッションコマンドは、会話状態を破棄する前にプロンプトを表示するようになりました。3つの選択肢があるダイアログが表示されます:一度だけ承認 / 常に承認 / キャンセル。Telegram、Discord、Slackではネイティブのはい/いいえボタンが使用されます。その他の環境ではテキストにフォールバックします。TUIもこれをサポートしており、HERMES_TUI_NO_CONFIRM=1でモーダルを強制的にスキップできます。

ヘッドレスセッション: Cronとシングルクエリ

誰も応答できない状況に対応するための2つの新しい設定があります:

  • cron_mode(デフォルト: deny)— cronジョブが危険なコマンドに遭遇した場合、denyはそれをブロックします(エージェントは別の方法を見つける必要があります)。approveはcronコンテキスト内のすべてを自動承認します。
  • single_query_mode(デフォルト: deny)— ワンショットのhermes chat -qセッションでも同じ考え方です。-qセッションは1ターンだけ実行して終了します。応答を待つユーザーはいません。denyはコマンドをブロックし、approveは自動承認します。

両方ともデフォルトでdenyなのには理由があります。人間がループにいない場合、推測するよりブロックする方が安全だからです。

まとめ

Hermes Agentのセキュリティモデルは、実際の使用を想定して設計されています。スマート承認モードは、無謀さのない自動化を提供します。YOLOモードは、必要なときにスピードを提供します — 忘れることがないように視覚的なリマインダー付きです。そして、新しい設定キーにより、ヘッドレスセッションと破壊的なコマンドをきめ細かく制御できます。

哲学はシンプルです:エージェントが自律的に動作しているときでも、あなたがコントロールを握り続けること。

📖 公式ドキュメント

この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/features/plugins