Regional platforms
QQ-bot
QQ Bot maakt via de officiële QQ Bot-API (WebSocket-Gateway) verbinding met OpenClaw.
Privéchats (C2C) en @-vermeldingen in groepen zijn de belangrijkste chattypen, met rijke
media (afbeeldingen, spraak, video en bestanden). Berichten in guild-kanalen worden alleen
ondersteund voor tekst en afbeeldingen via externe URL's; spraak, video, bestandsuploads en
lokale/Base64-afbeeldingen zijn niet beschikbaar in guild-kanalen. Reacties en threads worden
nergens ondersteund.
Status: officiële downloadbare Plugin.
Installeren
openclaw plugins install @openclaw/qqbotInstellen
- Ga naar het QQ Open Platform en scan de QR-code met QQ op uw telefoon om u te registreren of aan te melden.
- Klik op Create Bot om een nieuwe QQ-bot te maken.
- Zoek AppID en AppSecret op de instellingenpagina van de bot en kopieer ze.
- Voeg het kanaal toe:
openclaw channels add --channel qqbot --token "AppID:AppSecret"- Start de Gateway opnieuw.
Interactieve configuratie:
openclaw channels addDe wizard biedt ook koppeling via een QR-code als alternatief voor het handmatig invoeren van AppID/AppSecret: scan de code met de telefoonapp die aan de beoogde QQ Bot is gekoppeld om de koppeling te voltooien. OpenClaw slaat de geretourneerde referenties op binnen het configuratiebereik van het account.
Configureren
Minimale configuratie:
{ channels: { qqbot: { enabled: true, appId: "YOUR_APP_ID", clientSecret: "YOUR_APP_SECRET", }, },}Omgevingsvariabelen voor het standaardaccount (alleen het account op het hoogste niveau):
QQBOT_APP_IDQQBOT_CLIENT_SECRET
AppSecret uit een bestand:
{ channels: { qqbot: { enabled: true, appId: "YOUR_APP_ID", clientSecretFile: "/path/to/qqbot-secret.txt", }, },}AppSecret als SecretRef uit een omgevingsvariabele:
{ channels: { qqbot: { enabled: true, appId: "YOUR_APP_ID", clientSecret: { source: "env", provider: "default", id: "QQBOT_CLIENT_SECRET" }, }, },}Opmerkingen:
openclaw channels add --channel qqbot --token-file ...stelt alleen het AppSecret in;appIdmoet al zijn ingesteld in de configuratie of viaQQBOT_APP_ID.clientSecretaccepteert een tekenreeks met platte tekst, een bestandspad (clientSecretFile) of een gestructureerd SecretRef-object.- Verouderde markeringstekenreeksen
secretref:.../secretref-env:...worden voorclientSecretgeweigerd; gebruik in plaats daarvan een gestructureerd SecretRef-object.
Toegangsbeleid
allowFrom/groupAllowFrombepalen wie in C2C- en groepscontexten met de bot kan chatten.dmPolicy/groupPolicy(open|allowlist|disabled) bepalen de handhavingsmodus.dmPolicyis standaardallowlistzodraallowFromeen concrete vermelding (geen jokerteken) bevat, en andersopen.groupPolicyis standaardallowlistzodragroupAllowFromofallowFromeen concrete vermelding bevat, en andersopen.- Slash-opdrachten met "Authenticatie: toelatingslijst" vereisen altijd een expliciete
vermelding zonder jokerteken in
allowFrom(ofgroupAllowFromvoor aanroepen vanuit een groep), ongeachtdmPolicy/groupPolicy— zie Slash-opdrachten.
Configuratie met meerdere accounts
Voer meerdere QQ-bots uit binnen één OpenClaw-instantie:
{ channels: { qqbot: { enabled: true, appId: "111111111", clientSecret: "secret-of-bot-1", accounts: { bot2: { enabled: true, appId: "222222222", clientSecret: "secret-of-bot-2", }, }, }, },}Elk account heeft een geïsoleerde WebSocket-verbinding, API-client en tokencache,
geïndexeerd op appId. Logregels worden voorzien van de id van het bijbehorende account,
zodat diagnostische gegevens gescheiden blijven wanneer u meerdere bots onder één Gateway uitvoert.
Voeg een tweede bot toe via de CLI:
openclaw channels add --channel qqbot --account bot2 --token "222222222:secret-of-bot-2"Groepschats
Groepsondersteuning gebruikt OpenID's van QQ-groepen, geen weergavenamen. Voeg de bot toe aan een groep en vermeld deze vervolgens, of configureer de groep om zonder vermelding te werken.
{ channels: { qqbot: { groupPolicy: "allowlist", groupAllowFrom: ["member_openid"], groups: { "*": { requireMention: true, commandLevel: "all", historyLimit: 50, tools: { deny: ["exec", "read", "write"] }, }, GROUP_OPENID: { name: "Release room", requireMention: false, ignoreOtherMentions: true, commandLevel: "safety", historyLimit: 20, prompt: "Keep replies short and operational.", }, }, }, },}groups["*"] stelt de standaardwaarden voor elke groep in; een concrete vermelding
groups.GROUP_OPENID overschrijft die standaardwaarden voor één groep. Groepsinstellingen:
| Veld | Standaardwaarde | Beschrijving |
|---|---|---|
requireMention |
true |
Vereis een @-vermelding voordat de bot antwoordt. |
commandLevel |
all |
Welke ingebouwde slash-opdrachten in de groep kunnen worden uitgevoerd (zie hieronder). |
ignoreOtherMentions |
false |
Negeer berichten die iemand anders vermelden, maar niet de bot. |
historyLimit |
50 |
Recente berichten zonder vermelding die als context voor de volgende beurt met vermelding worden bewaard. 0 schakelt geschiedenis uit. |
tools |
— | Sta hulpmiddelen toe of weiger ze voor de hele groep. |
toolsBySender |
— | Overschrijvingen van hulpmiddelen per afzender; zie Groepen. |
name |
openid-voorvoegsel | Gebruiksvriendelijk label dat in logboeken en groepscontext wordt gebruikt. |
prompt |
ingebouwde standaardwaarde | Gedragsprompt per groep die aan de agentcontext wordt toegevoegd. |
commandLevel accepteert:
| Niveau | Gedrag |
|---|---|
all |
Bestaande ingebouwde opdrachten blijven beschikbaar. Sommige blijven verborgen in menu's, maar geautoriseerde gebruikers kunnen ze nog steeds in de groep uitvoeren. |
safety |
/help, /btw en /stop blijven zichtbaar in de groep; gevoelige opdrachten (/config, /tools, /bash, enzovoort) moeten in een privéchat worden uitgevoerd. |
strict |
Alleen besturingselementen voor groepssessies die nodig zijn voor strikte werking zijn toegestaan. /stop blijft werken, zodat een geautoriseerde afzender een actieve uitvoering kan onderbreken. |
Oude QQBot-vermeldingen voor toolPolicy zijn buiten gebruik gesteld. Voer openclaw doctor --fix uit om ze naar tools te migreren.
De activeringsmodi zijn mention en always. requireMention: true komt overeen met
mention; requireMention: false komt overeen met always. Een activeringsovername
op sessieniveau heeft, indien aanwezig, voorrang op de configuratie.
De wachtrij voor inkomende berichten is per gesprekspartner. Groepsgesprekspartners krijgen een hogere wachtrijlimiet (50 tegenover 20 voor rechtstreekse gesprekspartners), verwijderen bij een volle wachtrij berichten van de bot vóór die van mensen en voegen reeksen normale groepsberichten samen tot één beurt met bronvermelding. Slash-opdrachten worden één voor één uitgevoerd, onafhankelijk van een eventuele samenvoegbatch.
Spraak (STT / TTS)
STT en TTS ondersteunen configuratie op twee niveaus met terugval volgens prioriteit:
| Instelling | Pluginspecifiek | Terugval van het framework |
|---|---|---|
| STT | channels.qqbot.stt |
tools.media.audio.models[0] |
| TTS | channels.qqbot.tts, channels.qqbot.accounts.<id>.tts |
messages.tts |
{ channels: { qqbot: { stt: { provider: "your-provider", model: "your-stt-model", }, tts: { provider: "your-provider", model: "your-tts-model", voice: "your-voice", }, accounts: { "qq-main": { tts: { providers: { openai: { voice: "shimmer" }, }, }, }, }, }, },}Stel bij een van beide enabled: false in om deze uit te schakelen. TTS-overschrijvingen
op accountniveau gebruiken dezelfde structuur als messages.tts en worden diepgaand
samengevoegd boven op de TTS-configuratie van het kanaal en de globale configuratie.
STT-aanvragen verlopen standaard na 60 seconden. Pluginspecifieke STT gebruikt de
geselecteerde overschrijving models.providers.<id>.timeoutSeconds. STT voor audio
van het framework gebruikt tools.media.audio.models[0].timeoutSeconds, vervolgens
tools.media.audio.timeoutSeconds en daarna de geselecteerde provideroverschrijving.
Inkomende QQ-spraakbijlagen worden aan agents beschikbaar gesteld als metadata voor
audiomedia, terwijl onbewerkte spraakbestanden buiten de algemene MediaPaths blijven.
[[audio_as_voice]] in een antwoord met platte tekst genereert TTS en verzendt een
native QQ-spraakbericht wanneer TTS is geconfigureerd.
Het gedrag voor het uploaden en transcoderen van uitgaande audio kan ook worden
afgestemd met channels.qqbot.audioFormatPolicy:
sttDirectFormatsuploadDirectFormatstranscodeEnabled
Doelindelingen
| Indeling | Beschrijving |
|---|---|
qqbot:c2c:OPENID |
Privéchat (C2C) |
qqbot:group:GROUP_OPENID |
Groepschat |
qqbot:channel:CHANNEL_ID |
Guild-kanaal |
Slash-opdrachten
Ingebouwde opdrachten die vóór de AI-wachtrij worden onderschept:
| Opdracht | Authenticatie | Bereik | Beschrijving |
|---|---|---|---|
/bot-ping |
— | overal | Latentietest |
/bot-help |
— | overal | Alle opdrachten weergeven |
/bot-me |
— | alleen privé | De QQ-gebruikers-id (openid) van de afzender weergeven voor het instellen van allowFrom / groupAllowFrom |
/bot-version |
— | alleen privé | De versie van het OpenClaw-framework en de Pluginversie weergeven |
/bot-upgrade |
— | alleen privé | De koppeling naar de QQBot-upgradehandleiding weergeven |
/bot-approve |
toelatingslijst | alleen privé | De configuratie voor goedkeuring van opdrachtuitvoering beheren (aan / uit / altijd / opnieuw instellen / status) |
/bot-logs |
toelatingslijst | alleen privé | Recente Gateway-logboeken als bestand exporteren |
/bot-clear-storage |
toelatingslijst | alleen privé | Gecachte downloads onder de QQBot-mediamap verwijderen |
/bot-streaming |
toelatingslijst | alleen privé | Streamingantwoorden in C2C in- of uitschakelen |
/bot-group-allways |
toelatingslijst | alleen privé | De standaardactiveringsmodus voor groepen omschakelen (vermelding vereist tegenover altijd actief) |
Voeg ? toe aan een opdracht voor gebruikshulp (bijvoorbeeld /bot-upgrade ?).
Opdrachten met "Authenticatie: toelatingslijst" vereisen bovendien dat de openid van de
afzender voorkomt in een expliciete allowFrom-lijst zonder jokerteken (groupAllowFrom
heeft voorrang bij opdrachten vanuit groepen, met terugval naar allowFrom). Een jokerteken
allowFrom: ["*"] staat chatten toe, maar niet deze opdrachten. Als een van deze opdrachten
buiten een privéchat of zonder autorisatie wordt uitgevoerd, wordt een aanwijzing teruggestuurd
in plaats van het bericht stilzwijgend te negeren.
/bot-me, /bot-version en /bot-upgrade zijn alleen beschikbaar in privéchats, maar
vereisen de toelatingslijst niet — elke C2C-afzender kan ze uitvoeren.
Wanneer uitvoeringsgoedkeuringen van QQ Bot de standaardterugval op dezelfde chat gebruiken, volgen klikken op
ingebouwde goedkeuringsknoppen dezelfde expliciete opdrachttoelatingslijst zonder jokertekens. Configureer
channels.qqbot.execApprovals.approvers om uitsluitend toegang voor goedkeuringen te verlenen zonder
bredere toegang tot opdrachten. Ingebouwde uitvoeringsgoedkeuringen zijn standaard
ingeschakeld.
Media en opslag
- Inkomende en uitgaande media en media via de Gateway-bridge delen één hoofdmap voor nettoladingen onder
~/.openclaw/media/qqbot(waarbijOPENCLAW_HOMEwordt gerespecteerd indien ingesteld), zodat uploads, downloads en transcoderingscaches binnen één beveiligde map blijven. - De levering van rijke media aan C2C- en groepsdoelen verloopt via één
sendMedia- pad. Lokale bestanden en buffers in het geheugen van 5 MiB of meer gebruiken de endpoints van QQ voor uploads in delen; kleinere nettoladingen en bronnen met externe URL's/Base64 gebruiken de API voor uploads in één keer. - Als een directe upgrade de Gateway onderbreekt voordat het schrijven van
openclaw.jsonis voltooid, herstelt de Plugin bij de volgende start de laatst bekendeappId/clientSecretvoor dat account uit een interne momentopname (zonder ooit een opzettelijke configuratiewijziging te overschrijven), zodat de QR-code niet opnieuw hoeft te worden gescand.
Probleemoplossing
- Gateway start niet / geen inkomende berichten: controleer of
appIdenclientSecretcorrect zijn en of de bot is ingeschakeld op het QQ Open Platform. Ontbrekende aanmeldgegevens worden weergegeven als "QQBot niet geconfigureerd (appId of clientSecret ontbreekt)". - Installatie met
--token-filewordt nog steeds als niet-geconfigureerd weergegeven:--token-filestelt alleen het AppSecret in.appIdmoet nog steeds worden ingesteld in de configuratie of viaQQBOT_APP_ID. - Piekgewijze groepsantwoorden botsen: wanneer de wachtrij van een gesprekspartner vol raakt, verwijdert de inkomende wachtrij door bots geschreven berichten vóór menselijke berichten en voegt deze pieken van normale groepsberichten (geen opdrachten) samen tot één beurt met bronvermelding, zodat een stortvloed aan botberichten menselijke berichten niet zou moeten verdringen.
- Proactieve berichten komen niet aan: QQ kan door bots geïnitieerde berichten blokkeren als de gebruiker recent geen interactie heeft gehad.
- Spraak wordt niet getranscribeerd: zorg dat STT is geconfigureerd en de provider bereikbaar is.