Перейти до основного вмісту

QQ Bot

QQ Bot підключається до OpenClaw через офіційний API QQ Bot (WebSocket gateway). Плагін підтримує приватні чати C2C, групові @повідомлення та повідомлення в каналах guild із розширеними медіа (зображення, голос, відео, файли). Статус: вбудований плагін. Підтримуються прямі повідомлення, групові чати, канали guild і медіа. Реакції та потоки не підтримуються.

Вбудований плагін

Поточні випуски OpenClaw містять QQ Bot у комплекті, тому звичайні зібрані збірки не потребують окремого кроку openclaw plugins install.

Налаштування

  1. Перейдіть на QQ Open Platform і відскануйте QR-код за допомогою QQ на телефоні, щоб зареєструватися / увійти.
  2. Натисніть Create Bot, щоб створити нового QQ-бота.
  3. Знайдіть AppID і AppSecret на сторінці налаштувань бота та скопіюйте їх.
AppSecret не зберігається у відкритому вигляді — якщо ви залишите сторінку, не зберігши його, вам доведеться згенерувати новий.
  1. Додайте канал:
openclaw channels add --channel qqbot --token "AppID:AppSecret"
  1. Перезапустіть Gateway.
Інтерактивні шляхи налаштування:
openclaw channels add
openclaw configure --section channels

Конфігурація

Мінімальна конфігурація:
{
  channels: {
    qqbot: {
      enabled: true,
      appId: "YOUR_APP_ID",
      clientSecret: "YOUR_APP_SECRET",
    },
  },
}
Змінні середовища для облікового запису за замовчуванням:
  • QQBOT_APP_ID
  • QQBOT_CLIENT_SECRET
AppSecret із файла:
{
  channels: {
    qqbot: {
      enabled: true,
      appId: "YOUR_APP_ID",
      clientSecretFile: "/path/to/qqbot-secret.txt",
    },
  },
}
Примітки:
  • Резервний варіант через змінні середовища застосовується лише до облікового запису QQ Bot за замовчуванням.
  • openclaw channels add --channel qqbot --token-file ... надає лише AppSecret; AppID уже має бути задано в конфігурації або в QQBOT_APP_ID.
  • clientSecret також приймає вхід SecretRef, а не лише відкритий рядок.

Налаштування кількох облікових записів

Запускайте кілька QQ-ботів в одному екземплярі OpenClaw:
{
  channels: {
    qqbot: {
      enabled: true,
      appId: "111111111",
      clientSecret: "secret-of-bot-1",
      accounts: {
        bot2: {
          enabled: true,
          appId: "222222222",
          clientSecret: "secret-of-bot-2",
        },
      },
    },
  },
}
Кожен обліковий запис запускає власне WebSocket-з’єднання та підтримує незалежний кеш токенів (ізольований за appId). Додайте другого бота через CLI:
openclaw channels add --channel qqbot --account bot2 --token "222222222:secret-of-bot-2"

Голос (STT / TTS)

Підтримка STT і TTS має дворівневу конфігурацію з пріоритетним резервним вибором:
НалаштуванняСпецифічне для плагінаРезервний варіант фреймворку
STTchannels.qqbot.stttools.media.audio.models[0]
TTSchannels.qqbot.ttsmessages.tts
{
  channels: {
    qqbot: {
      stt: {
        provider: "your-provider",
        model: "your-stt-model",
      },
      tts: {
        provider: "your-provider",
        model: "your-tts-model",
        voice: "your-voice",
      },
    },
  },
}
Установіть enabled: false для будь-якого з них, щоб вимкнути. Поведінку завантаження/транскодування вихідного аудіо також можна налаштувати через channels.qqbot.audioFormatPolicy:
  • sttDirectFormats
  • uploadDirectFormats
  • transcodeEnabled

Цільові формати

ФорматОпис
qqbot:c2c:OPENIDПриватний чат (C2C)
qqbot:group:GROUP_OPENIDГруповий чат
qqbot:channel:CHANNEL_IDКанал guild
Кожен бот має власний набір користувацьких OpenID. OpenID, отриманий ботом A, не можна використовувати для надсилання повідомлень через бота B.

Slash-команди

Вбудовані команди, що перехоплюються до черги AI:
КомандаОпис
/bot-pingПеревірка затримки
/bot-versionПоказати версію фреймворку OpenClaw
/bot-helpПоказати всі команди
/bot-upgradeПоказати посилання на посібник оновлення QQBot
/bot-logsЕкспортувати останні журнали gateway у файл
Додавайте ? до будь-якої команди, щоб отримати довідку з використання (наприклад, /bot-upgrade ?).

Усунення несправностей

  • Бот відповідає “gone to Mars”: облікові дані не налаштовані або Gateway не запущено.
  • Немає вхідних повідомлень: перевірте, що appId і clientSecret правильні, а бот увімкнений на QQ Open Platform.
  • Після налаштування з --token-file усе ще показується як не налаштовано: --token-file задає лише AppSecret. Вам усе ще потрібен appId у конфігурації або QQBOT_APP_ID.
  • Проактивні повідомлення не надходять: QQ може перехоплювати повідомлення, ініційовані ботом, якщо користувач не взаємодіяв нещодавно.
  • Голос не транскрибується: переконайтеся, що STT налаштовано, а провайдер доступний.