Урок 9: Настройки безопасности
Tutorial 9: Security Settings — easy-to-understand guide based on official docs
Урок 9: Настройки безопасности
С возвращением! В этом уроке мы погрузимся в одну из самых важных тем в Hermes Agent: безопасность. Если вы следили за серией, то знаете, что Hermes — мощный инструмент. Но с большой силой приходит большая ответственность — и Hermes позаботился об этом, предложив многоуровневую модель безопасности.
Представьте это как замок с несколькими стенами. Даже если один слой даст сбой, остальные вас защитят. Давайте пройдёмся по восьми уровням защиты, а затем сосредоточимся на самом практичном из них: подтверждение опасных команд.
Восемь уровней безопасности
Hermes защищает вас по восьми направлениям:
- Авторизация пользователя — контролирует, кто может общаться с агентом
- Подтверждение опасных команд — человек в цикле для разрушительных операций
- Безопасность записи файлов — денylist и опциональная песочница для записи файлов
- Изоляция контейнеров — песочница Docker/Singularity/Modal
- Фильтрация учётных данных MCP — изолирует переменные окружения для подпроцессов MCP
- Сканирование контекстных файлов — обнаруживает инъекции в промпты в файлах проекта
- Изоляция между сессиями — сессии не могут получить доступ к данным друг друга
- Очистка ввода — проверяет параметры рабочей директории для предотвращения инъекций в shell
Немало защиты! Но с чем вы будете сталкиваться чаще всего — это подтверждение команд.
Как работает подтверждение опасных команд
Перед выполнением любой команды Hermes проверяет её по списку опасных шаблонов. Если есть совпадение — вам нужно будет подтвердить выполнение. Просто, правда?
Настраивается это в ~/.hermes/config.yaml:
approvals:
mode: smart # smart | manual | off
timeout: 300 # секунды ожидания подтверждения
cron_mode: deny # deny | approve
single_query_mode: deny # deny | approve
mcp_reload_confirm: true # подтверждение перед перезагрузкой MCP-инструментов
destructive_slash_confirm: true # подтверждение перед /clear, /new и т.д.
Три режима подтверждения
Умный режим (по умолчанию) — золотая середина. Он использует вспомогательную LLM для оценки риска:
- Команды с низким риском (например,
python -c "print('hello')") подтверждаются автоматически - Действительно опасные команды автоматически отклоняются
- Сомнительные случаи передаются на ручное подтверждение
Ручной режим всегда спрашивает вас. Никаких автоподтверждений, никаких исключений.
Режим «выкл» отключает все проверки — эквивалент запуска с флагом --yolo. Используйте только в доверенных средах, например, в CI/CD-контейнерах.
⚠️ Предупреждение: Установка
approvals.mode: offотключает все запросы безопасности. Используйте только в доверенных средах!
YOLO-режим: Быстрая полоса (используйте с осторожностью)
YOLO-режим отключает все запросы на подтверждение для текущей сессии. Активировать его можно тремя способами:
- Флаг CLI:
hermes --yoloилиhermes chat --yolo - Слэш-команда: Введите
/yoloво время сессии - Переменная окружения: Установите
HERMES_YOLO_MODE=1
Команда /yolo — это переключатель:
> /yolo
⚡ YOLO-режим ВКЛ — все команды подтверждаются автоматически. Будьте осторожны.
> /yolo
⚠ YOLO-режим ВЫКЛ — опасные команды снова требуют подтверждения.
Когда YOLO активен, Hermes показывает два визуальных напоминания:
- Красный баннер при старте сессии:
⚠ YOLO-режим — все запросы на подтверждение отключены - Фрагмент
⚠ YOLOв строке состояния, обновляемый в реальном времени
⚠️ Опасно: YOLO-режим отключает все проверки опасных команд — кроме жёсткого блок-листа. Используйте его только когда полностью доверяете генерируемым командам.
Новое в этой версии
Две новые настройки заслуживают особого внимания:
mcp_reload_confirm (по умолчанию true): При выполнении /reload-mcp Hermes теперь спрашивает перед пересборкой набора MCP-инструментов. Почему? Потому что пересборка инвалидирует кэш промптов провайдера, и следующее сообщение отправляет полные входные токены заново. Если нажать Всегда подтверждать, значение сменится на false.
destructive_slash_confirm (по умолчанию true): Разрушительные команды вроде /clear, /new, /reset и /undo теперь запрашивают подтверждение перед удалением состояния разговора. Вы увидите диалог с тремя вариантами: Подтвердить один раз / Всегда подтверждать / Отмена. В Telegram, Discord и Slack они отображаются как нативные кнопки «да/нет».
Ключевые выводы
- Умный режим — ваш друг: он балансирует между безопасностью и скоростью
- YOLO-режим — это переключатель, а не дорога в один конец
- Cron- и одиночные сессии по умолчанию отклоняют опасные команды — агенту приходится искать другой путь
- Всегда проверяйте визуальные индикаторы, чтобы знать, активен ли YOLO
Безопасность — это не паранойя, а готовность. С многоуровневым подходом Hermes вы можете автоматизировать с уверенностью. Оставайтесь в безопасности и приятной автоматизации!
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/security