Подключите Hermes к Yuanbao, корпоративному мессенджеру-платформе Tencent. Адаптер использует WebSocket-шлюз для мгновенной доставки сообщений и поддерживает как личные (C2C), так и групповые беседы.:::информация
Yuanbao — это корпоративная платформа-мессенджер, используемая практически в Tencent и в окружающей среде. На первом этапе она использует WebSocket для связи, HMAC-аутентификацию и поддерживает расширенные медиафайлы, включая изображения, файлы и голосовые сообщения.
Предварительные требования
Аккаунт Юаньбао с разрешения на создание бота
APP_ID и APP_SECRET Yuanbao (от администратора платформы)
После создания бота скопируйте APP_ID и APP_SECRET.
2. Запустите мастер настройки
Самый простой способ настройки Yuanbao — через интерактивную консоль:
hermesgatewaysetup
Выберите Юаньбао при появлении запроса. Мастер выполнит:
Запросите ваш APP_ID
Запросите ваше APP_SECRET.
Автоматическое сохранение конфигурации.:::совет
URL-адрес WebSocket и API домена имеют разумное значение по умолчанию. Для начала работы вам нужно указать только 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="Bot Notifications"# Опционально: ограничить доступ (устаревший, см. Управление доступом ниже для детальных политик)YUANBAO_ALLOWED_USERS=user_account_1,user_account_2
4. Запустить шлюз
hermesgateway
Адаптер подключается к WebSocket-шлюзу Yuanbao, аутентифицируется с помощью HMAC-подписей и начинает обработку сообщений.
Возможности
WebSocket-шлюз — двусторонняя связь в первое время
HMAC-аутентификация — запрос безопасной подписи с APP_ID/APP_SECRET
Личные сообщения (C2C) — прямые беседы пользователя с ботом
Групповые сообщения — беседы в групповых чатах.
Поддержка медиа — изображения, файлы и голосовые сообщения через COS (облачное хранилище объектов).
Markdown-форматирование — сообщения автоматически разбиваются на части с учетом лимитов размера Yuanbao
Дедупликация сообщений — сложная повторная обработка одного и того же сообщения
Индикаторы набора текста — показывает статус «печатает…» во время обработки агентом.
Автоматическое переподключение — обработка отключений WebSocket с экспоненциальной задержкой
Запросы информации о группе — получение деталей группы и списка участников
Поддержка стикеров/эмодзи — отправка стикеров TIMFaceElem и эмодзи в беседах
Автоустановка канала дома — первый пользователь, написавший боту, автоматически становится активным каналом дома.
Уведомление о медленном ответе — отправка ожидающих сообщений, когда агент обрабатывает более ожидаемое сообщение.
Параметры конфигурации
Форматы ID чатов
Yuanbao использует идентификаторы с префиксами в зависимости от типа беседы:
Тип чата
Формат
Пример
Личное сообщение (C2C)
direct:<аккаунт>
прямой:user123
Групповое сообщение
группа:<групповой_код>
группа: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="My Bot Updates"
Пример: Установка домашнего канала
Начать беседу с ботом в Юаньбао.
Отправьте команду: /sethome
Бот отвечает: «Домашний канал установлен на [chat_name] с идентификатором [chat_id]. Задания Cron будут доставляться в это место».
Будущие cron-задачи и уведомления будут публиковаться на этом канале
Пример: Доставка задач cron
Придумаем cron-задачу:
/cron"0 9 * * *"Checkserverstatus
Запланированный вывод будет отображаться на вашем домашнем канале Yuanbao каждый день в 9:00.
Советы по использованию
Начало беседки
Отредактировать любое сообщение боту в Юаньбао:
hello
Бот отвечает в той же ветке беседы.
Доступные команды
Все стандартные команды Hermes работают в Юаньбао:
Команда
Описание
/новый
Начать новый разговор
/модель [поставщик:модель]
Показать или изменить модель
/sethome
Установить этот чат как домашний канал
/статус
Показать информацию о сессии
/помощь
Показать доступные команды
Отправка файлов
Чтобы отправить файл боту, просто прикрепите его непосредственно в чате Yuanbao. Бот автоматически загружает и обработает вложение.
Вы также можете включить сообщение вместе с вложениями:
Please analyze this document
Получение файлов
Когда вы запрашиваете боту создать или экспортировать файл, он отправляет файл непосредственно в ваш чат Yuanbao.
Устранение неполадок
Бот онлайн, но не отвечает на сообщения
Причина: Ошибка аутентификации во время рукопожатия WebSocket.
Решение:
1. Проверьте правильность APP_ID и APP_SECRET.
2. Убедитесь, что URL WebSocket доступен.
3. Убедитесь, что в аккаунте бота есть соответствующий разрешение.
4. Просмотрите логи шлюза: tail -f ~/.hermes/logs/gateway.log
Ошибка «Соединение отклонено»
Причина: URL-адрес WebSocket недоступен или неверен.
Решение:
1. Проверка формата URL WebSocket (должен быть объявлен с wss://)
2. Проверьте сетевое подключение к домену API Yuanbao.
3. Убедитесь, что брандмауэр разрешает WebSocket-соединения.
4. Проверьте URL-адрес с помощью: curl -I https://[YUANBAO_API_DOMAIN]
Загрузка медиа не работает
Причина: Неверные учетные данные COS или серверный медиа-сервер недоступен.
Решение:
1. Проверка правильности API_DOMAIN
2. Убедитесь, что разрешение на загрузку медиа включено для вашего бота.
3. Убедитесь, что медиафайл доступен и не поврежден.
4. Проверьте конфигурацию бакета COS у администратора платформы.
Сообщения не дописываются на домашний канал
Причина: Неверный формат ID домашнего канала или cron-задача еще не сработала.
Решение:
1. Убедитесь, что YUANBAO_HOME_CHANNEL имеет правильный формат.
2. Протестируйте с помощью пары /sethome для изменения формы соответствующей формы.
3. Проверьте расписание задач cron с помощью /status
4. Убедитесь, что у бота есть разрешение на отправку в открытый чат.
Частные отключения
Причина: Нестабильное WebSocket-соединение или ненадежная сеть.
Решение:
1. Наличие ошибок в логах шлюза на шаблонах.
2. Увеличьте таймаут пульса в питающих соединениях.
3. Обеспечьте стабильное сетевое подключение к API Yuanbao.
4. Рассмотрите возможность включения подробного логирования: HERMES_LOG_LEVEL=debug
Управление доступом
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
Интервал сердцебиения
30 секунд
Частота проверки связи для поддержания соединения
Максимальное количество переподключений
100
Максимальное количество переподключений
Задержка переподключения
1с → 60с (экспоненциальная)
Время ожидания между попытками переподключения
Интервал сердцебиения ответ
2 секунды
Частота последствий RUNNING
Таймаут сообщения
30 секунд
Таймаут для исходящих WS-сообщений
Эти значения в настоящее время не настраиваются через переменные окружения. Они сохраняются для типичных развертываний Yuanbao.
### Подробное логирование
Включите отладочное регистрацию для устранения проблем с подключением:
HERMES_LOG_LEVEL=debughermesgateway
Интеграция с другими функциями
Cron-задачи
Планируйте задачи, выполняемые в Юаньбао:
/cron "0 */4 * * *" Report system health
Результаты публикуются на вашем домашнем канале.
Фоновые задачи
Запускайте длительные операции без блокировки блокировки:
/background Analyze all files in the archive
Кроссплатформенные сообщения
Отправить сообщение из CLI в Юаньбао:
hermeschat-q"Send 'Hello from CLI' to yuanbao:group:group_code"