🤖HermesBlog
Hermes Version History · Часть 138/9/2026

Hermes v2026.5.29: Безопасность Docker, контролируемые шлюзы и умные прерывания

Hermes v2026.5.29 (2026-05-29) update: Hermes Agent v0.15.1 (2026.5.29) — The P

hermes-version-2026-5-29

Hermes v2026.5.29: Безопасность Docker, контролируемые шлюзы и умные прерывания

Привет, фанаты Hermes! Вышло свежее обновление, и оно особенно важно для тех, кто запускает Hermes в Docker. Мы ужесточили безопасность, сделали ваш шлюз отказоустойчивее и добавили давно назревшие предохранители для автономных ботов. Давайте разберём всё по-простому.

Два способа использовать Docker с Hermes

Сначала коротко напомним. Есть два сценария, где Docker вписывается в картину Hermes:

  1. Запуск Hermes внутри Docker – агент живёт в контейнере, а все ваши данные (конфиги, API-ключи, сессии) хранятся в одной папке на хосте, смонтированной в /opt/data. Именно на этот сценарий и нацелено обновление.
  2. Docker как терминальный бэкенд – Hermes работает на хосте, но выполняет каждую команду внутри постоянного sandbox-контейнера. Этот контейнер переживает вызовы инструментов, /new и даже субагентов на всё время жизни процесса Hermes.

Это обновление касается первого варианта, и вся его суть — сделать этот опыт плавнее и безопаснее.

⚠️ Важно: избегайте браузерных консолей VPS

Прежде чем нырнуть в детали, важное предупреждение. Если вы пользуетесь VPS-провайдером вроде Hetzner Cloud, не используйте их браузерную консоль для вставки команд установки. Эти консоли коверкают спецсимволы – : может превратиться в ;, @ искажается, а вставленные API-ключи могут тихо повредиться. Это сломает ваши docker run команды самым запутанным образом.

Всегда подключайтесь по SSH (ssh root@<host>) для безопасной вставки команд. Если браузерная консоль неизбежна, вводите команды вручную и перепроверяйте каждый :, @, = и / перед нажатием Enter.

Быстрый старт: мастер настройки

Начать стало проще простого. Создайте каталог данных и запустите мастер настройки в интерактивном режиме:

mkdir -p ~/.hermes
docker run -it --rm \
  -v ~/.hermes:/opt/data \
  nousresearch/hermes-agent setup

Мастер проведёт вас через настройку API-ключей и запишет всё в ~/.hermes/.env. Это нужно сделать всего один раз. Совет профи: на этом этапе настройте чат-систему (Telegram, Discord и т.д.), чтобы вашему шлюзу было куда говорить.

Запуск в режиме шлюза (теперь под контролем!)

После настройки запустите Hermes как постоянный шлюз в фоновом режиме:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  nousresearch/hermes-agent gateway run

Вот главное изменение: ваш шлюз теперь автоматически контролируется через s6-overlay. Если процесс шлюза упадёт, он перезапустится в течение секунд — без перезапуска контейнера. Дашборд (когда включён) получает такое же обслуживание.

В docker logs вы увидите хлебную крошку, подтверждающую обновление. Хотите старое поведение, когда контейнер завершается вместе со шлюзом? Передайте --no-supervise или установите HERMES_GATEWAY_NO_SUPERVISE=1. Это полезно для CI-смоук-тестов, но для продакшена контролируемый режим по умолчанию строго лучше.

Жёсткие остановки циклов инструментов для автономных шлюзов

Это настоящий спасатель. По умолчанию tool_loop_guardrails.hard_stop_enabled имеет значение false. Это нормально для интерактивных сессий, где человек видит предупреждения. Но для автономных шлюзов одних предупреждений недостаточно, чтобы остановить агента, застрявшего в повторяющемся цикле вызовов инструментов.

Операторы, которым нужен эффект автоматического выключателя, должны включить жёсткие остановки в config.yaml своего профиля:

tool_loop_guardrails:
  hard_stop_enabled: true
  hard_stop_after:
    exact_failure: 5
    idempotent_no_progress: 5

Это значит, что после 5 точных сбоев или 5 циклов без прогресса агент будет жёстко остановлен. Никаких больше бесконечных циклов, сжигающих ваши API-кредиты.

Запуск дашборда (тоже под контролем!)

Встроенный веб-дашборд теперь работает как контролируемый сервис вместе со шлюзом в одном контейнере. Просто установите HERMES_DASHBOARD=1:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  -p 9119:9119 \
  -e HERMES_DASHBOARD=1 \
  nousresearch/hermes-agent gateway run

Если дашборд упадёт, s6-supervise автоматически перезапустит его после короткой паузы. Вывод дашборда идёт в docker logs <container>, так что отладка не составит труда.

Безопасность: открытие API-сервера

API-сервер включается через API_SERVER_ENABLED=true. Если нужно открыть его за пределами 127.0.0.1, необходимо также задать API_SERVER_HOST=0.0.0.0 и указать API_SERVER_KEY (минимум 8 символов — сгенерируйте с помощью openssl rand -hex 32):

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  -e API_SERVER_ENABLED=true \
  -e API_SERVER_HOST=0.0.0.0 \
  -e API_SERVER_KEY="$(openssl rand -hex 32)" \
  -e API_SERVER_CORS_ORIGINS='*' \
  nousresearch/hermes-agent gateway run

Слово предостережения: открытие любого порта на машине, доступной из интернета, — это риск для безопасности. Не делайте этого, если полностью не понимаете последствия.

Что дальше?

Это обновление целиком про то, чтобы сделать Hermes надёжнее и безопаснее в продакшене. Контролируемый шлюз означает меньше простоев, жёсткие остановки предотвращают бесконечные циклы, а усиление безопасности защищает ваши API-ключи. Обновите образ, включите жёсткие остановки и наслаждайтесь более стабильным Hermes!

📖 Официальная документация

Эта статья основана на официальной документации Hermes Agent :GitHub ›/releases/tag/v2026.5.29