Hermes v2026.5.29: Безопасность Docker, контролируемые шлюзы и умные прерывания
Hermes v2026.5.29 (2026-05-29) update: Hermes Agent v0.15.1 (2026.5.29) — The P
Hermes v2026.5.29: Безопасность Docker, контролируемые шлюзы и умные прерывания
Привет, фанаты Hermes! Вышло свежее обновление, и оно особенно важно для тех, кто запускает Hermes в Docker. Мы ужесточили безопасность, сделали ваш шлюз отказоустойчивее и добавили давно назревшие предохранители для автономных ботов. Давайте разберём всё по-простому.
Два способа использовать Docker с Hermes
Сначала коротко напомним. Есть два сценария, где Docker вписывается в картину Hermes:
- Запуск Hermes внутри Docker – агент живёт в контейнере, а все ваши данные (конфиги, API-ключи, сессии) хранятся в одной папке на хосте, смонтированной в
/opt/data. Именно на этот сценарий и нацелено обновление. - 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