Подключите Hermes к Yuanbao, корпоративной платформе обмена сообщениями от Tencent. Адаптер использует WebSocket-шлюз для доставки сообщений в реальном времени и поддерживает как прямые (C2C), так и групповые беседы.
Yuanbao — это корпоративная платформа обмена сообщениями, используемая в основном внутри Tencent и в корпоративной среде. Она использует WebSocket для связи в реальном времени, HMAC-аутентификацию и поддерживает расширенные медиа, включая изображения, файлы и голосовые сообщения.
Предварительные требования
Учётная запись Yuanbao с правами на создание бота
APP_ID и APP_SECRET Yuanbao (от администратора платформы)
В приложении перейдите в PAI → Мой бот и создайте нового бота
После создания бота скопируйте APP_ID и APP_SECRET
2. Запуск мастера настройки
Самый простой способ настроить Yuanbao — через интерактивный мастер:
hermesgatewaysetup
Выберите Yuanbao при запросе. Мастер выполнит:
Запросит ваш APP_ID
Запросит ваш APP_SECRET
Автоматически сохранит конфигурацию
WebSocket URL и API Domain имеют встроенные значения по умолчанию. Вам нужно указать только APP_ID и APP_SECRET для начала работы.
3. Настройка переменных окружения
После начальной настройки проверьте эти переменные в ~/.hermes/.env:
# ОбязательноYUANBAO_APP_ID=your-app-id
YUANBAO_APP_SECRET=your-app-secret
YUANBAO_WS_URL=wss://api.yuanbao.example.com/ws
YUANBAO_API_DOMAIN=https://api.yuanbao.example.com
# Опционально: ID учётной записи бота (обычно получается автоматически из sign-token)# YUANBAO_BOT_ID=your-bot-id# Опционально: внутренняя среда маршрутизации (например, test/staging/production)# YUANBAO_ROUTE_ENV=production# Опционально: домашний канал для cron/уведомлений (формат: direct:<account> или group:<group_code>)YUANBAO_HOME_CHANNEL=direct:bot_account_id
YUANBAO_HOME_CHANNEL_NAME="Уведомления бота"# Опционально: ограничение доступа (устаревшее, см. Access Control ниже для детальных политик)YUANBAO_ALLOWED_USERS=user_account_1,user_account_2
4. Запуск шлюза
hermesgateway
Адаптер подключится к WebSocket-шлюзу Yuanbao, выполнит аутентификацию с помощью HMAC-подписей и начнёт обработку сообщений.
Возможности
WebSocket-шлюз — двусторонняя связь в реальном времени
HMAC-аутентификация — безопасная подпись запросов с APP_ID/APP_SECRET
C2C-сообщения — прямые беседы пользователя с ботом
Групповые сообщения — беседы в групповых чатах
Поддержка медиа — изображения, файлы и голосовые сообщения через COS (Cloud Object Storage)
Форматирование Markdown — сообщения автоматически разбиваются с учётом ограничений Yuanbao на размер
Дедупликация сообщений — предотвращает повторную обработку одного и того же сообщения
Индикаторы набора текста — отображает статус «печатает…» во время обработки запроса агентом
Автоматическое переподключение — обрабатывает разрывы WebSocket с экспоненциальной задержкой
Запрос информации о группе — получение сведений о группе и списка участников
Поддержка стикеров/Emoji — отправка стикеров TIMFaceElem и emoji в беседах
Авто-домашний канал — первый пользователь, написавший боту, автоматически устанавливается владельцем домашнего канала
Уведомление о медленном ответе — отправляет сообщение об ожидании, когда агент отвечает дольше обычного
Параметры конфигурации
Форматы ID чатов
Yuanbao использует идентификаторы с префиксами в зависимости от типа беседы:
Тип чата
Формат
Пример
Прямое сообщение (C2C)
direct:<account>
direct:user123
Групповое сообщение
group:<group_code>
group:grp456
Загрузка медиа
Адаптер Yuanbao автоматически обрабатывает загрузку медиа через COS (Tencent Cloud Object Storage):
Изображения: поддерживает JPEG, PNG, GIF, WebP
Файлы: поддерживает все распространённые типы документов
Голос: поддерживает WAV, MP3, OGG
URL-адреса медиа автоматически проверяются и загружаются перед отправкой для предотвращения SSRF-атак.
Домашний канал
Используйте команду /sethome в любом чате Yuanbao (ЛС или группа), чтобы назначить его домашним каналом. Запланированные задачи (cron) доставляют свои результаты в этот канал.
tip Авто-домашний канал
Если домашний канал не настроен, первый пользователь, написавший боту, будет автоматически установлен владельцем домашнего канала. Если текущий домашний канал — это групповой чат, первое прямое сообщение переключит его на личный канал.
Вы также можете настроить его вручную в ~/.hermes/.env:
YUANBAO_HOME_CHANNEL=direct:user_account_id
# или для группы:# YUANBAO_HOME_CHANNEL=group:group_codeYUANBAO_HOME_CHANNEL_NAME="Мои обновления бота"
Пример: Установка домашнего канала
Начните беседу с ботом в Yuanbao
Отправьте команду: /sethome
Бот ответит: «Домашний канал установлен на [имя_чата] с ID [id_чата]. Cron-задачи будут доставляться в этот канал.»
Будущие cron-задачи и уведомления будут отправляться в этот канал
Пример: Доставка cron-задачи
Создайте cron-задачу:
/cron"0 9 * * *"Проверитьсостояниесервера
Результат выполнения будет доставлен в ваш домашний канал Yuanbao каждый день в 9:00.
Советы по использованию
Начало беседы
Отправьте любое сообщение боту в Yuanbao:
привет
Бот ответит в той же ветке беседы.
Доступные команды
Все стандартные команды Hermes работают в Yuanbao:
Команда
Описание
/new
Начать новую беседу
/model [provider:model]
Показать или изменить модель
/sethome
Установить этот чат как домашний канал
/status
Показать информацию о сессии
/help
Показать доступные команды
Отправка файлов
Чтобы отправить файл боту, просто прикрепите его напрямую в чате Yuanbao. Бот автоматически загрузит и обработает вложение.
Вы также можете добавить сообщение вместе с вложением:
Пожалуйста, проанализируйте этот документ
Получение файлов
Когда вы просите бота создать или экспортировать файл, он отправляет файл прямо в ваш чат Yuanbao.
Устранение неполадок
Бот онлайн, но не отвечает на сообщения
Причина: Ошибка аутентификации при WebSocket-рукопожатии.
Решение:
Проверьте правильность APP_ID и APP_SECRET
Убедитесь, что WebSocket URL доступен
Убедитесь, что учётная запись бота имеет соответствующие разрешения
Yuanbao поддерживает детальный контроль доступа как для личных, так и для групповых бесед:
# Политика ЛС: open (по умолчанию) | allowlist | disabledYUANBAO_DM_POLICY=open
# ID пользователей, разделённые запятыми, которым разрешено писать боту в ЛС (используется только при DM_POLICY=allowlist)YUANBAO_DM_ALLOW_FROM=user_id_1,user_id_2
# Политика групп: open (по умолчанию) | allowlist | disabledYUANBAO_GROUP_POLICY=open
# Коды групп, разделённые запятыми, которым разрешено (используется только при GROUP_POLICY=allowlist)YUANBAO_GROUP_ALLOW_FROM=group_code_1,group_code_2
Yuanbao имеет ограничение на максимальный размер сообщения. Hermes автоматически разбивает большие ответы с учётом Markdown-разметки (соблюдая границы блоков кода, таблиц и абзацев).
Параметры соединения
Следующие параметры соединения встроены в адаптер с разумными значениями по умолчанию:
Параметр
Значение по умолчанию
Описание
Таймаут подключения WebSocket
15 секунд
Время ожидания WS-рукопожатия
Интервал heartbeat
30 секунд
Частота ping для поддержания соединения
Макс. попыток переподключения
100
Максимальное количество попыток переподключения
Задержка переподключения
1 с → 60 с (экспоненциально)
Время ожидания между попытками переподключения
Интервал heartbeat ответа
2 секунды
Частота отправки статуса RUNNING
Таймаут отправки
30 секунд
Таймаут для исходящих WS-сообщений
Эти значения в настоящее время не настраиваются через переменные окружения. Они оптимизированы для типичных развёртываний Yuanbao.
Подробное логирование
Включите отладочное логирование для устранения проблем с соединением:
HERMES_LOG_LEVEL=debughermesgateway
Интеграция с другими возможностями
Cron-задачи
Планируйте задачи, выполняемые в Yuanbao:
/cron "0 */4 * * *" Отчёт о состоянии системы
Результаты доставляются в ваш домашний канал.
Фоновые задачи
Запускайте длительные операции без блокировки беседы:
/background Проанализировать все файлы в архиве
Кросс-платформенные сообщения
Отправьте сообщение из CLI в Yuanbao:
hermeschat-q"Отправить 'Привет из CLI' на yuanbao:group:group_code"