Przejdź do głównej treści

QQ Bot

QQ Bot łączy się z OpenClaw przez oficjalne API QQ Bot (bramka WebSocket). Wtyczka obsługuje prywatne czaty C2C, grupowe @wiadomości oraz wiadomości na kanałach guild z multimediami rozszerzonymi (obrazy, głos, wideo, pliki). Status: wtyczka dołączona do pakietu. Obsługiwane są wiadomości bezpośrednie, czaty grupowe, kanały guild oraz multimedia. Reakcje i wątki nie są obsługiwane.

Wtyczka dołączona do pakietu

Obecne wydania OpenClaw zawierają QQ Bot, więc normalne skompilowane buildy nie wymagają osobnego kroku openclaw plugins install.

Konfiguracja

  1. Przejdź do QQ Open Platform i zeskanuj kod QR telefonem z QQ, aby się zarejestrować / zalogować.
  2. Kliknij Create Bot, aby utworzyć nowego bota QQ.
  3. Znajdź AppID i AppSecret na stronie ustawień bota i skopiuj je.
AppSecret nie jest przechowywany w postaci jawnego tekstu — jeśli opuścisz stronę bez zapisania go, konieczne będzie wygenerowanie nowego.
  1. Dodaj kanał:
openclaw channels add --channel qqbot --token "AppID:AppSecret"
  1. Uruchom ponownie gateway.
Interaktywne ścieżki konfiguracji:
openclaw channels add
openclaw configure --section channels

Skonfiguruj

Minimalna konfiguracja:
{
  channels: {
    qqbot: {
      enabled: true,
      appId: "YOUR_APP_ID",
      clientSecret: "YOUR_APP_SECRET",
    },
  },
}
Zmienne środowiskowe konta domyślnego:
  • QQBOT_APP_ID
  • QQBOT_CLIENT_SECRET
AppSecret przechowywany w pliku:
{
  channels: {
    qqbot: {
      enabled: true,
      appId: "YOUR_APP_ID",
      clientSecretFile: "/path/to/qqbot-secret.txt",
    },
  },
}
Uwagi:
  • Zmienna środowiskowa jako fallback dotyczy tylko domyślnego konta QQ Bot.
  • openclaw channels add --channel qqbot --token-file ... przekazuje tylko AppSecret; AppID musi już być ustawione w konfiguracji lub w QQBOT_APP_ID.
  • clientSecret akceptuje również dane wejściowe SecretRef, a nie tylko ciąg jawnego tekstu.

Konfiguracja wielu kont

Uruchamiaj wiele botów QQ w jednej instancji OpenClaw:
{
  channels: {
    qqbot: {
      enabled: true,
      appId: "111111111",
      clientSecret: "secret-of-bot-1",
      accounts: {
        bot2: {
          enabled: true,
          appId: "222222222",
          clientSecret: "secret-of-bot-2",
        },
      },
    },
  },
}
Każde konto uruchamia własne połączenie WebSocket i utrzymuje niezależną pamięć podręczną tokenów (izolowaną przez appId). Dodaj drugiego bota przez CLI:
openclaw channels add --channel qqbot --account bot2 --token "222222222:secret-of-bot-2"

Głos (STT / TTS)

Obsługa STT i TTS używa dwupoziomowej konfiguracji z fallbackiem priorytetów:
UstawienieSpecyficzne dla wtyczkiFallback frameworka
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",
      },
    },
  },
}
Ustaw enabled: false dla dowolnego z nich, aby go wyłączyć. Zachowanie przesyłania/transkodowania dźwięku wychodzącego można również dostroić za pomocą channels.qqbot.audioFormatPolicy:
  • sttDirectFormats
  • uploadDirectFormats
  • transcodeEnabled

Formaty docelowe

FormatOpis
qqbot:c2c:OPENIDCzat prywatny (C2C)
qqbot:group:GROUP_OPENIDCzat grupowy
qqbot:channel:CHANNEL_IDKanał guild
Każdy bot ma własny zestaw OpenID użytkowników. OpenID otrzymany przez Bota A nie może zostać użyty do wysyłania wiadomości przez Bota B.

Polecenia slash

Wbudowane polecenia przechwytywane przed kolejką AI:
PolecenieOpis
/bot-pingTest opóźnienia
/bot-versionPokazuje wersję frameworka OpenClaw
/bot-helpWyświetla listę wszystkich poleceń
/bot-upgradePokazuje link do przewodnika aktualizacji QQBot
/bot-logsEksportuje ostatnie logi gateway jako plik
Dodaj ? do dowolnego polecenia, aby wyświetlić pomoc użycia (na przykład /bot-upgrade ?).

Rozwiązywanie problemów

  • Bot odpowiada „gone to Mars”: poświadczenia nie są skonfigurowane lub gateway nie został uruchomiony.
  • Brak wiadomości przychodzących: sprawdź, czy appId i clientSecret są poprawne oraz czy bot jest włączony na QQ Open Platform.
  • Konfiguracja z --token-file nadal pokazuje brak konfiguracji: --token-file ustawia tylko AppSecret. Nadal potrzebujesz appId w konfiguracji lub QQBOT_APP_ID.
  • Wiadomości proaktywne nie docierają: QQ może przechwytywać wiadomości inicjowane przez bota, jeśli użytkownik nie wchodził ostatnio w interakcję.
  • Głos nie jest transkrybowany: upewnij się, że STT jest skonfigurowane i że dostawca jest osiągalny.