🤖HermesBlog
Hermes Messaging Platforms · Часть 38/9/2026

Discord — ИИ в вашем сервере

Discord — AI in Your Server — easy-to-understand guide based on official docs

messaging-discord

Discord — ИИ в вашем сервере

Итак, вы хотите добавить Hermes Agent в свой Discord-сервер? Отличный выбор. Это руководство проведёт вас через всё, что нужно знать — от того, как Hermes ведёт себя после приглашения, до полного процесса настройки и важных новых функций проверки работоспособности.

Начнём с самого интересного: как на самом деле общаться с Hermes в Discord.

Как Hermes ведёт себя на вашем сервере

Hermes — это не просто тупой бот, который отвечает на всё подряд. Он умно подходит к тому, когда и где говорить. Вот разбивка:

Контекст Поведение
Личные сообщения Hermes отвечает на каждое сообщение. Никаких @упоминаний не нужно. Каждое ЛС получает отдельную приватную сессию.
Каналы сервера По умолчанию Hermes отвечает только тогда, когда вы упоминаете его через @. В остальных случаях он молчит.
Каналы свободного ответа Хотите канал, где люди могут общаться без тегов? Добавьте его в DISCORD_FREE_RESPONSE_CHANNELS — и Hermes будет отвечать на каждое сообщение прямо в канале.
Треды Hermes отвечает в том же треде. Правила упоминаний действуют, если только тред или его родительский канал не являются каналами свободного ответа.
Общие каналы По умолчанию Hermes хранит историю переписки каждого пользователя отдельно — даже в одном канале. Алиса и Боб, общающиеся в #research, получают две независимые сессии.
Сообщения с упоминанием других Если кто-то упоминает другого пользователя через @, но не Hermes, бот по умолчанию молчит. Никаких вмешательств в разговоры, которые не адресованы ему.

Совет профи: Хотите выделенный канал для помощи от бота, где люди могут просто писать и получать ответы? Добавьте этот канал в DISCORD_FREE_RESPONSE_CHANNELS — и готово.

Модель шлюза: больше, чем просто вебхук

Вот что важно: Hermes в Discord — это не простой вебхук, который отправляет заранее заготовленный ответ. Каждое сообщение проходит через полный конвейер:

  1. Проверка авторизации (DISCORD_ALLOWED_USERS)
  2. Проверка упоминаний / свободного ответа
  3. Поиск сессии
  4. Загрузка транскрипта сессии
  5. Полное выполнение агента — инструменты, память, слэш-команды
  6. Отправка ответа обратно в Discord

Это означает, что каждый ответ подкреплён полным интеллектом Hermes, а не просто скриптовым ответом.

Сессии: кто чем делится?

По умолчанию Hermes изолирует разговоры:

  • Каждое ЛС получает свою сессию
  • Каждый тред получает своё пространство имён для сессии
  • Каждый пользователь в общем канале получает свою сессию

Это управляется в config.yaml:

group_sessions_per_user: true

Если вы хотите один общий разговор для всей комнаты (полезно для совместных пространств), установите значение false:

group_sessions_per_user: false

Но будьте осторожны: общие сессии означают общий контекст и общие затраты на токены. Длинная задача одного человека с кучей инструментов может раздуть контекст для всех. А если кто-то прервёт выполнение на середине, это может нарушить работу всей комнаты.

Прерывания и конкурентность

С посессионными сессиями для каждого пользователя (по умолчанию) Алиса может прервать свой собственный запрос, не влияя на разговор Боба в том же канале. Боб сохраняет свою историю, Алиса — свою, и никто никому не мешает.

С общими сессиями вся комната делит один «слот запущенного агента». Последующие сообщения от разных людей могут прерывать друг друга или вставать в очередь. Весело для совместной работы, но потенциально хаотично.

Новое: проверки работоспособности WebSocket шлюза

Вот недавнее улучшение, о котором стоит знать. У Discord есть два отдельных транспорта: REST и Gateway WebSocket. Успешный REST-вызов не доказывает, что бот всё ещё может получать события в реальном времени.

Теперь Hermes отслеживает работоспособность шлюза, проверяя:

  • Состояние готовности
  • Состояние закрытия клиента/сокета
  • Открытость сокета
  • Возраст подтверждения heartbeat (ACK)
  • Задержку heartbeat

После заданного количества нездоровых выборок адаптер генерирует повторяемое фатальное событие и чисто переподключается. Никаких бесконечных циклов переподключения.

Настройте пороговые значения в config.yaml:

discord:
  websocket_liveness_interval_seconds: 15
  websocket_liveness_failure_threshold: 2
  websocket_heartbeat_ack_max_age_seconds: 60
  websocket_max_latency_seconds: 30

Примечание: старые имена liveness_interval_seconds и liveness_failure_threshold всё ещё работают как алиасы совместимости, но они больше не означают проверку REST.

Шаг 1: Создайте Discord-приложение

  1. Перейдите в Discord Developer Portal и войдите в систему.
  2. Нажмите New Application в правом верхнем углу.
  3. Дайте имя вашему приложению (например, «Hermes Agent») и примите Условия предоставления услуг для разработчиков.
  4. Нажмите Create.

Вы попадёте на страницу General Information. Запишите ваш Application ID — он понадобится для создания ссылки-приглашения.

Шаг 2: Создайте бота

  1. На левой боковой панели нажмите Bot.
  2. Discord автоматически создаст пользователя-бота для вашего приложения. При желании настройте имя пользователя.
  3. В разделе Authorization Flow установите Public Bot в положение ON — это требуется для ссылки-приглашения, предоставляемой Discord.

Это основа. Дальше вы получите токен бота, зададите переменные окружения и пригласите Hermes на свой сервер. И не успеете оглянуться, как ваш ИИ-ассистент уже будет прямо в Discord — готов общаться, использовать инструменты и помнить контекст, всё в реальном времени.

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

Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/messaging/discord