Hermes Relay — Подключение Инстансов
Hermes Relay — Подключение Инстансов — понятное руководство на основе официальной документации
Представьте Hermes Relay как телефонную будку, которая перезванивает вам — вам не нужно сообщать свой домашний адрес, вы просто один раз набираете номер, и другая сторона может связаться с вами в любое время через эту же линию.
Что такое Hermes Relay?
Hermes Relay — это система-коннектор для шлюза Hermes Agent. Она позволяет вашему шлюзу общаться с такими мессенджерами, как Discord, Telegram или Slack, не храня их токены ботов или пароли.
Вместо этого отдельный сервис (сам «коннектор») владеет этими учетными данными. Ваш шлюз просто устанавливает исходящее соединение с коннектором через единое защищенное WebSocket-соединение — и затем все сообщения передаются в обе стороны через этот один открытый канал.
Зачем это нужно?
Вот основные преимущества простыми словами:
- Не нужны открытые порты. Ваш шлюз работает даже за домашним роутером или облачным файрволом. Он устанавливает только исходящие соединения, так что вам не нужно ничего открывать для доступа из интернета.
- Никаких секретов ботов на вашей машине. Коннектор хранит все токены платформ. Если ваш шлюз украдут, злоумышленник не получит ничего полезного.
- Один шлюз — много платформ. В момент подключения коннектор сообщает вашему шлюзу о своих возможностях (длина сообщения, markdown, редактирование, треды и т.д.). Никаких жестко прописанных правил — просто адаптация.
Когда это использовать: Если вы запускаете своих собственных ботов напрямую, пропустите Relay и используйте нативные адаптеры (Telegram, Discord). Relay предназначен для схем, где общий или хостируемый коннектор управляет стороной платформы — например, при мультитенантном хостинге или когда вы просто не хотите хранить токены на своем сервере.
Как зарегистрировать ваш шлюз
Регистрация — это разовая настройка. Вы выполняете одну команду, а Hermes сделает все остальное.
Сначала убедитесь, что у вас есть токен регистрации (выпущенный вашим провайдером коннектора). Затем выполните:
hermes gateway enroll \
--token <enrollment-token> \
--connector-url wss://connector.example.com/relay
Вот что происходит шаг за шагом:
- Hermes проверяет ваш существующий логин (
~/.hermes/auth.json), чтобы подтвердить, к какой организации вы относитесь. - Если вы настроили собственного провайдера идентификации (для изолированных или самостоятельно размещенных сред), используется он.
- Токен регистрации отправляется на конечную точку
/relay/enrollконнектора через TLS. - Коннектор проверяет, что токен действителен, одноразовый и соответствует вашему тенанту.
- Затем он выпускает секрет для конкретного шлюза и ключ доставки — и возвращает их один раз.
- Hermes сохраняет их в
~/.hermes/.env:
GATEWAY_RELAY_ID
GATEWAY_RELAY_SECRET
GATEWAY_RELAY_DELIVERY_KEY
Вот и все. Теперь ваш шлюз «зарегистрирован» и может устанавливать исходящее соединение с коннектором, когда это необходимо.
Что происходит дальше?
После регистрации ваш шлюз будет:
- Устанавливать исходящее соединение с указанным URL коннектора
- Получать описание возможностей (что умеет внешняя платформа)
- Начинать обмен нормализованными сообщениями и действиями через этот же сокет
Никаких входящих портов, никаких дополнительных учетных данных, никакого кода, зависящего от платформы.
Резюме и практический совет
Резюме: Hermes Relay — это чистый способ подключить ваш шлюз к мессенджерам, не владея их учетными данными и не открывая порты. Он идеально подходит для общего хостинга, сред за NAT или любых схем, где вы хотите держать секреты подальше от основной машины.
Практический совет: Всегда делайте ваш токен регистрации одноразовым и недолговечным. Если вам когда-нибудь понадобится сменить учетные данные, просто повторно выполните команду регистрации с новым токеном — и не забудьте удалить старый GATEWAY_RELAY_SECRET из вашего файла .env перед обновлением. Немного гигиены — и все работает как часы.
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/messaging/relay