Юаньбао

Подключите Hermes к Yuanbao, корпоративному мессенджеру-платформе Tencent. Адаптер использует WebSocket-шлюз для мгновенной доставки сообщений и поддерживает как личные (C2C), так и групповые беседы.:::информация Yuanbao — это корпоративная платформа-мессенджер, используемая практически в Tencent и в окружающей среде. На первом этапе она использует WebSocket для связи, HMAC-аутентификацию и поддерживает расширенные медиафайлы, включая изображения, файлы и голосовые сообщения.

Предварительные требования

Установить необходимое в зависимости:

pip install websockets httpx aiofiles

Настройка

1. Изготовить боту в Юаньбао

  1. скачать приложение Yuanbao с https://yuanbao.tencent.com/
  2. В приложении PAI → Мой бот и создайте новый бота.
  3. После создания бота скопируйте APP_ID и APP_SECRET.

2. Запустите мастер настройки

Самый простой способ настройки Yuanbao — через интерактивную консоль:

hermes gateway setup

Выберите Юаньбао при появлении запроса. Мастер выполнит:

  1. Запросите ваш APP_ID
  2. Запросите ваше APP_SECRET.
  3. Автоматическое сохранение конфигурации.:::совет 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. Запустить шлюз

hermes gateway

Адаптер подключается к WebSocket-шлюзу Yuanbao, аутентифицируется с помощью HMAC-подписей и начинает обработку сообщений.

Возможности

Параметры конфигурации

Форматы ID чатов

Yuanbao использует идентификаторы с префиксами в зависимости от типа беседы:

Тип чата Формат Пример
Личное сообщение (C2C) direct:<аккаунт> прямой:user123
Групповое сообщение группа:<групповой_код> группа:grp456

Загрузка медиа

Адаптер Yuanbao автоматически обрабатывает загрузку мультимедиа через COS (Tencent Cloud Object Storage):

URL-адреса мультимедиа автоматически проверяются и загружаются перед отправкой для предотвращения SSRF-атак.

Домашний канал

Используйте команду /sethome в любом чате Yuanbao (ЛС или группа), чтобы назначить его домашним каналом. Плановые задачи (cron) публикуют свои результаты на этом канале.

💡 Tip

Автоустановка домашнего канала Если домашний канал не настроен, первый пользователь, написавший боту, будет автоматически установлен владельцем как домашний канал. Если текущий домашний канал — групповой чат, сначала ЛС обновит его на прямой канал.
Вы также можете установить его вручную в ~/.hermes/.env:

YUANBAO_HOME_CHANNEL=direct:user_account_id
# или для группы:
# YUANBAO_HOME_CHANNEL=group:group_code
YUANBAO_HOME_CHANNEL_NAME="My Bot Updates"

Пример: Установка домашнего канала

  1. Начать беседу с ботом в Юаньбао.
  2. Отправьте команду: /sethome
  3. Бот отвечает: «Домашний канал установлен на [chat_name] с идентификатором [chat_id]. Задания Cron будут доставляться в это место».
  4. Будущие cron-задачи и уведомления будут публиковаться на этом канале

Пример: Доставка задач cron

Придумаем cron-задачу:

/cron "0 9 * * *" Check server status

Запланированный вывод будет отображаться на вашем домашнем канале 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 | disabled
YUANBAO_DM_POLICY=open
# ID пользователей через запятую, которым разрешено писать боту в ЛС (используется только когда DM_POLICY=allowlist)
YUANBAO_DM_ALLOW_FROM=user_id_1,user_id_2

# Политика групп: open (по умолчанию) | allowlist | disabled
YUANBAO_GROUP_POLICY=open
# Коды групп через запятую, разрешенные (используется только когда GROUP_POLICY=allowlist)
YUANBAO_GROUP_ALLOW_FROM=group_code_1,group_code_2

Это также можно настроить в config.yaml:

platforms:
  yuanbao:
    extra:
      dm_policy: allowlist
      dm_allow_from: "user1,user2"
      group_policy: open
      group_allow_from: ""

Дополнительные расширения

Разбивка сообщений на части

Yuanbao имеет максимальный размер сообщения. Hermes автоматически разбивает большие ответы с учетом Markdown (соблюдение границ блоков кода, таблиц и абзацев).

Параметры соединения

Следующие параметры соединения встроены в адаптер с разумными значениями по умолчанию:

Параметр Значение по умолчанию Описание
Таймаут подключения WebSocket 15 секунд Время ожидания рукопожатия WS
Интервал сердцебиения 30 секунд Частота проверки связи для поддержания соединения
Максимальное количество переподключений 100 Максимальное количество переподключений
Задержка переподключения 1с → 60с (экспоненциальная) Время ожидания между попытками переподключения
Интервал сердцебиения ответ 2 секунды Частота последствий RUNNING
Таймаут сообщения 30 секунд Таймаут для исходящих WS-сообщений
Эти значения в настоящее время не настраиваются через переменные окружения. Они сохраняются для типичных развертываний Yuanbao.
### Подробное логирование

Включите отладочное регистрацию для устранения проблем с подключением:

HERMES_LOG_LEVEL=debug hermes gateway

Интеграция с другими функциями

Cron-задачи

Планируйте задачи, выполняемые в Юаньбао:

/cron "0 */4 * * *" Report system health

Результаты публикуются на вашем домашнем канале.

Фоновые задачи

Запускайте длительные операции без блокировки блокировки:

/background Analyze all files in the archive

Кроссплатформенные сообщения

Отправить сообщение из CLI в Юаньбао:

hermes chat -q "Send 'Hello from CLI' to yuanbao:group:group_code"

Связанная документация