Klaar voor DM’s en guild-kanalen via de officiële Discord Gateway.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Koppelen
Slash-commando's
Kanaalproblemen oplossen
Snelle configuratie
Je moet een nieuwe applicatie met een bot maken, de bot aan je server toevoegen en deze aan OpenClaw koppelen. We raden aan je bot aan je eigen privéserver toe te voegen. Als je er nog geen hebt, maak er dan eerst een (kies Mijn eigen maken > Voor mij en mijn vrienden).Maak een Discord-applicatie en bot
Schakel privileged intents in
- Message Content Intent (vereist)
- Server Members Intent (aanbevolen; vereist voor rol-allowlists en naam-naar-ID-matching)
- Presence Intent (optioneel; alleen nodig voor aanwezigheidsupdates)
Kopieer je bottoken
Genereer een uitnodigings-URL en voeg de bot toe aan je server
botapplications.commands
- Kanalen bekijken Tekstmachtigingen
- Berichten verzenden
- Berichtgeschiedenis lezen
- Links insluiten
- Bestanden bijvoegen
- Reacties toevoegen (optioneel)
Schakel ontwikkelaarsmodus in en verzamel je ID's
- Klik op Gebruikersinstellingen (tandwielpictogram naast je avatar) → Geavanceerd → schakel Ontwikkelaarsmodus in
- Klik met de rechtermuisknop op je serverpictogram in de zijbalk → Server-ID kopiëren
- Klik met de rechtermuisknop op je eigen avatar → Gebruikers-ID kopiëren
Sta DM's van serverleden toe
Stel je bottoken veilig in (verstuur het niet in chat)
openclaw gateway run te stoppen en opnieuw te starten.
Voor beheerde service-installaties voer je openclaw gateway install uit vanuit een shell waarin DISCORD_BOT_TOKEN aanwezig is, of sla je de variabele op in ~/.openclaw/.env, zodat de service de env SecretRef na herstart kan oplossen.Configureer OpenClaw en koppel
- Vraag het je agent
- CLI / configuratie
“Ik heb mijn Discord-bottoken al in de configuratie ingesteld. Rond de Discord-configuratie af met gebruikers-ID<user_id>en server-ID<server_id>.”
Keur eerste DM-koppeling goed
- Vraag het je agent
- CLI
“Keur deze Discord-koppelcode goed: <CODE>”
DISCORD_BOT_TOKEN wordt alleen gebruikt voor het standaardaccount.
Als twee ingeschakelde Discord-accounts naar hetzelfde bottoken oplossen, start OpenClaw slechts één Gateway-monitor voor dat token. Een token uit configuratie heeft voorrang op de standaard env-fallback; anders wint het eerste ingeschakelde account en wordt het dubbele account als uitgeschakeld gerapporteerd.
Voor geavanceerde uitgaande aanroepen (berichttool/kanaalacties) wordt een expliciete per-aanroep-token gebruikt voor die aanroep. Dit geldt voor verzend- en lees/probe-achtige acties (bijvoorbeeld read/search/fetch/thread/pins/permissions). Accountbeleid en retry-instellingen blijven afkomstig van het geselecteerde account in de actieve runtime-snapshot.Aanbevolen: stel een guild-werkruimte in
Zodra DM’s werken, kun je je Discord-server instellen als volledige werkruimte waarin elk kanaal zijn eigen agentsessie met eigen context krijgt. Dit wordt aanbevolen voor privéservers waar alleen jij en je bot aanwezig zijn.Voeg je server toe aan de guild-allowlist
- Vraag het je agent
- Configuratie
“Voeg mijn Discord-server-ID <server_id> toe aan de guild-allowlist”
Sta reacties zonder @mention toe
message worden verzonden, zodat de agent standaard kan meelezen en alleen post wanneer hij besluit dat een kanaalantwoord nuttig is.- Vraag het je agent
- Configuratie
“Sta mijn agent toe op deze server te reageren zonder dat hij met @ genoemd hoeft te worden”
Plan voor geheugen in guild-kanalen
- Vraag het je agent
- Handmatig
“Wanneer ik vragen stel in Discord-kanalen, gebruik dan memory_search of memory_get als je langetermijncontext uit MEMORY.md nodig hebt.”
#coding, #home, #research of iets anders kunt instellen dat bij je workflow past.
Runtimemodel
- Gateway beheert de Discord-verbinding.
- Antwoordroutering is deterministisch: inkomende Discord-antwoorden gaan terug naar Discord.
- Discord-guild-/kanaalmetadata worden toegevoegd aan de modelprompt als niet-vertrouwde context, niet als een voor de gebruiker zichtbaar antwoordvoorvoegsel. Als een model die envelop terugkopieert, verwijdert OpenClaw de gekopieerde metadata uit uitgaande antwoorden en uit toekomstige replaycontext.
- Standaard (
session.dmScope=main) delen directe chats de hoofdsessie van de agent (agent:main:main). - Guild-kanalen zijn geïsoleerde sessiesleutels (
agent:<agentId>:discord:channel:<channelId>). - Groeps-DM’s worden standaard genegeerd (
channels.discord.dm.groupEnabled=false). - Native slash-commando’s draaien in geïsoleerde commandosessies (
agent:<agentId>:discord:slash:<userId>), terwijl ze nog steedsCommandTargetSessionKeymeenemen naar de gerouteerde gesprekssessie. - Tekst-only cron/Heartbeat-aankondigingslevering naar Discord gebruikt het definitieve voor de assistent zichtbare antwoord één keer. Media- en gestructureerde componentpayloads blijven uit meerdere berichten bestaan wanneer de agent meerdere leverbare payloads uitstuurt.
Forumkanalen
Discord-forum- en mediakanalen accepteren alleen threadberichten. OpenClaw ondersteunt twee manieren om ze te maken:- Stuur een bericht naar de forumparent (
channel:<forumId>) om automatisch een thread te maken. De threadtitel gebruikt de eerste niet-lege regel van je bericht. - Gebruik
openclaw message thread createom direct een thread te maken. Geef geen--message-iddoor voor forumkanalen.
channel:<threadId>).
Interactieve componenten
OpenClaw ondersteunt Discord-componenten v2-containers voor agentberichten. Gebruik de berichttool met eencomponents-payload. Interactieresultaten worden teruggeleid naar de agent als normale inkomende berichten en volgen de bestaande Discord-instellingen voor replyToMode.
Ondersteunde blokken:
text,section,separator,actions,media-gallery,file- Actierijen staan maximaal 5 knoppen of één selectiemenu toe
- Selectietypen:
string,user,role,mentionable,channel
components.reusable=true in om knoppen, selecties en formulieren meerdere keren te laten gebruiken totdat ze verlopen.
Om te beperken wie op een knop kan klikken, stel je allowedUsers in op die knop (Discord-gebruikers-ID’s, tags of *). Wanneer dit is geconfigureerd, ontvangen niet-overeenkomende gebruikers een tijdelijke weigering.
De slash-commando’s /model en /models openen een interactieve modelkiezer met dropdowns voor provider, model en compatibele runtime plus een stap Verzenden. /models add is verouderd en retourneert nu een verouderingsbericht in plaats van modellen vanuit chat te registreren. Het antwoord van de kiezer is tijdelijk en alleen de aanroepende gebruiker kan het gebruiken.
Bestandsbijlagen:
file-blokken moeten verwijzen naar een bijlagereferentie (attachment://<filename>)- Geef de bijlage op via
media/path/filePath(één bestand); gebruikmedia-galleryvoor meerdere bestanden - Gebruik
filenameom de uploadnaam te overschrijven wanneer deze moet overeenkomen met de bijlagereferentie
- Voeg
components.modaltoe met maximaal 5 velden - Veldtypen:
text,checkbox,radio,select,role-select,user-select - OpenClaw voegt automatisch een triggerknop toe
Toegangscontrole en routering
- DM policy
- Guild policy
- Mentions and group DMs
channels.discord.dmPolicy beheert DM-toegang. channels.discord.allowFrom is de canonieke DM-toestemmingslijst.pairing(standaard)allowlistopen(vereist datchannels.discord.allowFrom"*"bevat)disabled
pairing).Prioriteit bij meerdere accounts:channels.discord.accounts.default.allowFromgeldt alleen voor het accountdefault.- Voor één account heeft
allowFromprioriteit boven de verouderdedm.allowFrom. - Benoemde accounts erven
channels.discord.allowFromwanneer hun eigenallowFromen verouderdedm.allowFromniet zijn ingesteld. - Benoemde accounts erven
channels.discord.accounts.default.allowFromniet.
channels.discord.dm.policy en channels.discord.dm.allowFrom worden nog steeds gelezen voor compatibiliteit. openclaw doctor --fix migreert ze naar dmPolicy en allowFrom wanneer dat kan zonder de toegang te wijzigen.DM-doelindeling voor aflevering:user:<id><@id>-vermelding
allowFrom van het account staan, worden voor compatibiliteit behandeld als DM-doelen van gebruikers.Rolgebaseerde agentroutering
Gebruikbindings[].match.roles om Discord-guildleden per rol-ID naar verschillende agents te routeren. Rolgebaseerde bindingen accepteren alleen rol-ID’s en worden geëvalueerd na peer- of parent-peer-bindingen en vóór guild-only-bindingen. Als een binding ook andere matchvelden instelt (bijvoorbeeld peer + guildId + roles), moeten alle geconfigureerde velden overeenkomen.
Native commando’s en commando-authenticatie
commands.nativestaat standaard op"auto"en is ingeschakeld voor Discord.- Override per kanaal:
channels.discord.commands.native. commands.native=falsewist expliciet eerder geregistreerde native Discord-commando’s.- Native commando-authenticatie gebruikt dezelfde Discord-toestemmingslijsten/-beleidsregels als normale berichtafhandeling.
- Commando’s kunnen nog steeds zichtbaar zijn in de Discord-UI voor gebruikers die niet gemachtigd zijn; uitvoering handhaaft nog steeds OpenClaw-authenticatie en retourneert “not authorized”.
ephemeral: true
Functiedetails
Reply tags and native replies
Reply tags and native replies
Live stream preview
Live stream preview
channels.discord.streaming accepteert off (standaard) | partial | block | progress. progress wordt op Discord naar partial gemapt; streamMode is een verouderde alias en wordt automatisch gemigreerd.Standaard blijft off, omdat Discord-previewbewerkingen snel rate limits raken wanneer meerdere bots of gateways een account delen.partialbewerkt één previewbericht terwijl tokens binnenkomen.blockzendt stukken ter grootte van concepten uit (gebruikdraftChunkom grootte en breekpunten af te stemmen, begrensd tottextChunkLimit).- Media, fouten en expliciete antwoordfinals annuleren wachtende previewbewerkingen.
streaming.preview.toolProgress(standaardtrue) bepaalt of tool-/voortgangsupdates het previewbericht hergebruiken.
block-streaming expliciet is ingeschakeld, slaat OpenClaw de previewstream over om dubbel streamen te voorkomen.History, context, and thread behavior
History, context, and thread behavior
channels.discord.historyLimitstandaard20- terugval:
messages.groupChat.historyLimit 0schakelt uit
channels.discord.dmHistoryLimitchannels.discord.dms["<user_id>"].historyLimit
- Discord-threads worden gerouteerd als kanaalsessies en erven de configuratie van het bovenliggende kanaal tenzij overschreven.
- Threadsessies erven de sessieniveau-
/model-selectie van het bovenliggende kanaal als model-only terugval; thread-lokale/model-selecties hebben nog steeds prioriteit en de transcriptgeschiedenis van de parent wordt niet gekopieerd tenzij transcriptovererving is ingeschakeld. channels.discord.thread.inheritParent(standaardfalse) laat nieuwe auto-threads initialiseren vanuit het bovenliggende transcript. Overrides per account staan onderchannels.discord.accounts.<id>.thread.inheritParent.- Reacties van de berichttool kunnen
user:<id>-DM-doelen oplossen. guilds.<guild>.channels.<channel>.requireMention: falseblijft behouden tijdens terugval voor activatie in de antwoordfase.
Thread-bound sessions for subagents
Thread-bound sessions for subagents
/focus <target>bind huidige/nieuwe thread aan een subagent-/sessiedoel/unfocusverwijder de huidige threadbinding/agentstoon actieve runs en bindingsstatus/session idle <duration|off>inspecteer/update automatische inactiviteits-unfocus voor gefocuste bindingen/session max-age <duration|off>inspecteer/update harde maximale leeftijd voor gefocuste bindingen
session.threadBindings.*stelt globale standaardwaarden in.channels.discord.threadBindings.*overschrijft Discord-gedrag.spawnSubagentSessionsmoet true zijn om threads automatisch te maken/te koppelen voorsessions_spawn({ thread: true }).spawnAcpSessionsmoet true zijn om threads automatisch te maken/te koppelen voor ACP (/acp spawn ... --thread ...ofsessions_spawn({ runtime: "acp", thread: true })).- Als threadkoppelingen zijn uitgeschakeld voor een account, zijn
/focusen gerelateerde threadkoppelingsbewerkingen niet beschikbaar.
Persistente ACP-kanaalkoppelingen
Persistente ACP-kanaalkoppelingen
bindings[]mettype: "acp"enmatch.channel: "discord"
/acp spawn codex --bind herekoppelt het huidige kanaal of de huidige thread ter plekke en houdt toekomstige berichten in dezelfde ACP-sessie. Threadberichten erven de koppeling van het bovenliggende kanaal.- In een gekoppeld kanaal of een gekoppelde thread resetten
/newen/resetdezelfde ACP-sessie ter plekke. Tijdelijke threadkoppelingen kunnen de doelresolutie overschrijven zolang ze actief zijn. spawnAcpSessionsis alleen vereist wanneer OpenClaw een child-thread moet maken/koppelen via--thread auto|here.
Reactiemeldingen
Reactiemeldingen
offown(standaard)allallowlist(gebruiktguilds.<id>.users)
Ack-reacties
Ack-reacties
ackReaction stuurt een bevestigingsemoji terwijl OpenClaw een binnenkomend bericht verwerkt.Resolutievolgorde:channels.discord.accounts.<accountId>.ackReactionchannels.discord.ackReactionmessages.ackReaction- fallback naar emoji voor agentidentiteit (
agents.list[].identity.emoji, anders ”👀”)
- Discord accepteert unicode-emoji of aangepaste emojinamen.
- Gebruik
""om de reactie uit te schakelen voor een kanaal of account.
Configuratieschrijven
Configuratieschrijven
/config set|unset-flows (wanneer commandofuncties zijn ingeschakeld).Uitschakelen:Gateway-proxy
Gateway-proxy
channels.discord.proxy.PluralKit-ondersteuning
PluralKit-ondersteuning
- allowlists kunnen
pk:<memberId>gebruiken - weergavenamen van leden worden alleen op naam/slug gematcht wanneer
channels.discord.dangerouslyAllowNameMatching: true - opzoekacties gebruiken de oorspronkelijke bericht-ID en zijn beperkt tot een tijdvenster
- als opzoeken mislukt, worden proxied berichten behandeld als botberichten en weggegooid tenzij
allowBots=true
Aanwezigheidsconfiguratie
Aanwezigheidsconfiguratie
- 0: Spelen
- 1: Streaming (vereist
activityUrl) - 2: Luisteren
- 3: Kijken
- 4: Aangepast (gebruikt de activiteitstekst als de statustoestand; emoji is optioneel)
- 5: Meedoen
autoPresence.healthyTextautoPresence.degradedTextautoPresence.exhaustedText(ondersteunt{reason}-placeholder)
Goedkeuringen in Discord
Goedkeuringen in Discord
channels.discord.execApprovals.enabledchannels.discord.execApprovals.approvers(optioneel; valt waar mogelijk terug opcommands.ownerAllowFrom)channels.discord.execApprovals.target(dm|channel|both, standaard:dm)agentFilter,sessionFilter,cleanupAfterResolve
enabled niet is ingesteld of "auto" is en ten minste één goedkeurder kan worden opgelost, vanuit execApprovals.approvers of vanuit commands.ownerAllowFrom. Discord leidt exec-goedkeurders niet af uit kanaal-allowFrom, verouderde dm.allowFrom of direct-message-defaultTo. Stel enabled: false in om Discord expliciet uit te schakelen als native goedkeuringsclient.Voor gevoelige groepscommando’s die alleen voor eigenaars zijn, zoals /diagnostics en /export-trajectory, stuurt OpenClaw goedkeuringsprompts en eindresultaten privé. Het probeert eerst Discord-DM wanneer de aanroepende eigenaar een Discord-eigenaarsroute heeft; als die niet beschikbaar is, valt het terug op de eerste beschikbare eigenaarsroute uit commands.ownerAllowFrom, zoals Telegram.Wanneer target channel of both is, is de goedkeuringsprompt zichtbaar in het kanaal. Alleen opgeloste goedkeurders kunnen de knoppen gebruiken; andere gebruikers ontvangen een vluchtige weigering. Goedkeuringsprompts bevatten de commandotekst, dus schakel kanaallevering alleen in vertrouwde kanalen in. Als de kanaal-ID niet uit de sessiesleutel kan worden afgeleid, valt OpenClaw terug op levering via DM.Discord rendert ook de gedeelde goedkeuringsknoppen die door andere chatkanalen worden gebruikt. De native Discord-adapter voegt vooral DM-routering voor goedkeurders en kanaalfanout toe.
Wanneer die knoppen aanwezig zijn, vormen ze de primaire goedkeurings-UX; OpenClaw
mag alleen een handmatig /approve-commando opnemen wanneer het toolresultaat zegt
dat chatgoedkeuringen niet beschikbaar zijn of dat handmatige goedkeuring de enige route is.
Als de native goedkeuringsruntime van Discord niet actief is, houdt OpenClaw de
lokale deterministische /approve <id> <decision>-prompt zichtbaar. Als de
runtime actief is maar er geen native kaart aan een doel kan worden geleverd,
stuurt OpenClaw een fallbackmelding in dezelfde chat met het exacte /approve-
commando van de openstaande goedkeuring.Gateway-authenticatie en goedkeuringsresolutie volgen het gedeelde Gateway-clientcontract (plugin:-ID’s worden opgelost via plugin.approval.resolve; andere ID’s via exec.approval.resolve). Goedkeuringen verlopen standaard na 30 minuten.Zie Exec-goedkeuringen.Tools en actiegates
Discord-berichtacties omvatten berichten, kanaalbeheer, moderatie, aanwezigheid en metadata-acties. Kernvoorbeelden:- berichten:
sendMessage,readMessages,editMessage,deleteMessage,threadReply - reacties:
react,reactions,emojiList - moderatie:
timeout,kick,ban - aanwezigheid:
setPresence
event-create accepteert een optionele parameter image (URL of lokaal bestandspad) om de omslagafbeelding van het geplande evenement in te stellen.
Actiegates staan onder channels.discord.actions.*.
Standaard gategedrag:
| Actiegroep | Standaard |
|---|---|
| reactions, messages, threads, pins, polls, search, memberInfo, roleInfo, channelInfo, channels, voiceStatus, events, stickers, emojiUploads, stickerUploads, permissions | ingeschakeld |
| roles | uitgeschakeld |
| moderation | uitgeschakeld |
| presence | uitgeschakeld |
Components v2-UI
OpenClaw gebruikt Discord components v2 voor exec-goedkeuringen en contextoverschrijdende markeringen. Discord-berichtacties kunnen ookcomponents accepteren voor aangepaste UI (geavanceerd; vereist het construeren van een componentpayload via de discord-tool), terwijl verouderde embeds beschikbaar blijven maar niet worden aanbevolen.
channels.discord.ui.components.accentColorstelt de accentkleur in die door Discord-componentcontainers wordt gebruikt (hex).- Stel dit per account in met
channels.discord.accounts.<id>.ui.components.accentColor. embedsworden genegeerd wanneer components v2 aanwezig zijn.
Spraak
Discord heeft twee afzonderlijke spraakoppervlakken: realtime spraakkanalen (doorlopende gesprekken) en spraakberichtbijlagen (het waveform-previewformaat). De gateway ondersteunt beide.Spraakkanalen
Installatiechecklist:- Schakel Message Content Intent in de Discord Developer Portal in.
- Schakel Server Members Intent in wanneer rol-/gebruikers-allowlists worden gebruikt.
- Nodig de bot uit met de scopes
botenapplications.commands. - Verleen Connect, Speak, Send Messages en Read Message History in het doelspraakkanaal.
- Schakel native opdrachten in (
commands.nativeofchannels.discord.commands.native). - Configureer
channels.discord.voice.
/vc join|leave|status om sessies te beheren. De opdracht gebruikt de standaardagent van het account en volgt dezelfde allowlist- en groepsbeleidsregels als andere Discord-opdrachten.
voice.ttsoverschrijftmessages.ttsalleen voor spraakweergave.voice.modeloverschrijft alleen de LLM die wordt gebruikt voor antwoorden in Discord-spraakkanalen. Laat dit oningesteld om het gerouteerde agentmodel over te nemen.- STT gebruikt
tools.media.audio;voice.modelheeft geen invloed op transcriptie. - Transcriptbeurten uit spraak leiden de eigenaarstatus af van Discord
allowFrom(ofdm.allowFrom); sprekers die geen eigenaar zijn, hebben geen toegang tot tools die alleen voor eigenaren zijn (bijvoorbeeldgatewayencron). - Spraak is standaard ingeschakeld; stel
channels.discord.voice.enabled=falsein om de spraakruntime en deGuildVoiceStatesGateway-intent uit te schakelen. channels.discord.intents.voiceStateskan het abonnement op de voice-state-intent expliciet overschrijven. Laat dit oningesteld zodat de intentvoice.enabledvolgt.voice.daveEncryptionenvoice.decryptionFailureToleranceworden doorgegeven aan de join-opties van@discordjs/voice.- De standaardwaarden van
@discordjs/voicezijndaveEncryption=trueendecryptionFailureTolerance=24wanneer ze niet zijn ingesteld. - OpenClaw bewaakt ook ontvangst-decryptiefouten en herstelt automatisch door het spraakkanaal te verlaten en opnieuw deel te nemen na herhaalde fouten binnen een kort tijdvenster.
- Als ontvangstlogs na het bijwerken herhaaldelijk
DecryptionFailed(UnencryptedWhenPassthroughDisabled)tonen, verzamel dan een dependency-rapport en logs. De gebundelde@discordjs/voice-lijn bevat de upstream padding-fix uit discord.js PR #11449, waarmee discord.js issue #11419 is gesloten.
- Discord PCM-opname wordt geconverteerd naar een tijdelijk WAV-bestand.
tools.media.audioverwerkt STT, bijvoorbeeldopenai/gpt-4o-mini-transcribe.- Het transcript wordt via normale Discord-ingress en routering verzonden.
voice.model, wanneer ingesteld, overschrijft alleen de antwoord-LLM voor deze spraakkanaalbeurt.voice.ttswordt samengevoegd bovenopmessages.tts; de resulterende audio wordt afgespeeld in het kanaal waaraan is deelgenomen.
voice.model, STT-auth voor tools.media.audio en TTS-auth voor messages.tts/voice.tts.
Spraakberichten
Discord-spraakberichten tonen een waveform-preview en vereisen OGG/Opus-audio. OpenClaw genereert de waveform automatisch, maar heeftffmpeg en ffprobe nodig op de Gateway-host om te inspecteren en te converteren.
- Geef een lokaal bestandspad op (URL’s worden geweigerd).
- Laat tekstinhoud weg (Discord weigert tekst + spraakbericht in dezelfde payload).
- Elk audioformaat wordt geaccepteerd; OpenClaw converteert waar nodig naar OGG/Opus.
Probleemoplossing
Niet-toegestane intents gebruikt of bot ziet geen guildberichten
Niet-toegestane intents gebruikt of bot ziet geen guildberichten
- schakel Message Content Intent in
- schakel Server Members Intent in wanneer je afhankelijk bent van gebruikers-/ledenresolutie
- herstart de gateway na het wijzigen van intents
Guildberichten onverwacht geblokkeerd
Guildberichten onverwacht geblokkeerd
- controleer
groupPolicy - controleer de guild-allowlist onder
channels.discord.guilds - als de guild-
channels-map bestaat, zijn alleen vermelde kanalen toegestaan - controleer het gedrag van
requireMentionen mention-patronen
Require mention is false maar nog steeds geblokkeerd
Require mention is false maar nog steeds geblokkeerd
groupPolicy="allowlist"zonder overeenkomende guild-/kanaal-allowlistrequireMentionop de verkeerde plaats geconfigureerd (moet onderchannels.discord.guildsof de kanaalvermelding staan)- afzender geblokkeerd door guild-/kanaal-
users-allowlist
Langlopende Discord-beurten of dubbele antwoorden
Langlopende Discord-beurten of dubbele antwoorden
Slow listener detected ...stuck session: sessionKey=agent:...:discord:... state=processing ...
- enkel account:
channels.discord.eventQueue.listenerTimeout - meerdere accounts:
channels.discord.accounts.<accountId>.eventQueue.listenerTimeout - dit beheert alleen Discord Gateway-listenerwerk, niet de levensduur van agentbeurten
Timeoutwaarschuwingen bij Gateway-metadatalookup
Timeoutwaarschuwingen bij Gateway-metadatalookup
/gateway/bot-metadata op voordat verbinding wordt gemaakt. Tijdelijke fouten vallen terug op Discords standaard-Gateway-URL en worden in logs rate-limited.Metadata-timeoutinstellingen:- enkel account:
channels.discord.gatewayInfoTimeoutMs - meerdere accounts:
channels.discord.accounts.<accountId>.gatewayInfoTimeoutMs - env-fallback wanneer configuratie niet is ingesteld:
OPENCLAW_DISCORD_GATEWAY_INFO_TIMEOUT_MS - standaard:
30000(30 seconden), max:120000
Mismatchen in permissie-audit
Mismatchen in permissie-audit
channels status --probe werken alleen voor numerieke kanaal-ID’s.Als je slug-sleutels gebruikt, kan runtime-matching nog steeds werken, maar probe kan permissies niet volledig verifiëren.DM- en koppelingsproblemen
DM- en koppelingsproblemen
- DM uitgeschakeld:
channels.discord.dm.enabled=false - DM-beleid uitgeschakeld:
channels.discord.dmPolicy="disabled"(legacy:channels.discord.dm.policy) - wacht op koppelingsgoedkeuring in
pairing-modus
Bot-naar-bot-lussen
Bot-naar-bot-lussen
channels.discord.allowBots=true instelt, gebruik dan strikte mention- en allowlistregels om lusgedrag te voorkomen.
Geef de voorkeur aan channels.discord.allowBots="mentions" om alleen botberichten te accepteren die de bot vermelden.Voice STT valt weg met DecryptionFailed(...)
Voice STT valt weg met DecryptionFailed(...)
- houd OpenClaw actueel (
openclaw update) zodat de herstellogica voor Discord-spraakontvangst aanwezig is - bevestig
channels.discord.voice.daveEncryption=true(standaard) - begin met
channels.discord.voice.decryptionFailureTolerance=24(upstream standaard) en stem alleen af indien nodig - bekijk logs op:
discord voice: DAVE decrypt failures detecteddiscord voice: repeated decrypt failures; attempting rejoin
- als fouten na automatisch opnieuw deelnemen blijven optreden, verzamel logs en vergelijk ze met de upstream DAVE-ontvangstgeschiedenis in discord.js #11419 en discord.js #11449
Configuratiereferentie
Primaire referentie: Configuratiereferentie - Discord.Discord-velden met hoge signaalwaarde
Discord-velden met hoge signaalwaarde
- opstarten/auth:
enabled,token,accounts.*,allowBots - beleid:
groupPolicy,dm.*,guilds.*,guilds.*.channels.* - opdracht:
commands.native,commands.useAccessGroups,configWrites,slashCommand.* - gebeurteniswachtrij:
eventQueue.listenerTimeout(listenerbudget),eventQueue.maxQueueSize,eventQueue.maxConcurrency - Gateway-metadata:
gatewayInfoTimeoutMs - antwoord/geschiedenis:
replyToMode,historyLimit,dmHistoryLimit,dms.*.historyLimit - levering:
textChunkLimit,chunkMode,maxLinesPerMessage - streaming:
streaming(legacy alias:streamMode),streaming.preview.toolProgress,draftChunk,blockStreaming,blockStreamingCoalesce - media/opnieuw proberen:
mediaMaxMb(beperkt uitgaande Discord-uploads, standaard100MB),retry - acties:
actions.* - aanwezigheid:
activity,status,activityType,activityUrl - UI:
ui.components.accentColor - functies:
threadBindings, top-levelbindings[](type: "acp"),pluralkit,execApprovals,intents,agentComponents,heartbeat,responsePrefix
Veiligheid en beheer
- Behandel bottokens als geheimen (
DISCORD_BOT_TOKENheeft de voorkeur in beheerde omgevingen). - Verleen Discord-permissies volgens het principe van minimale rechten.
- Als de opdrachtdeploy/status verouderd is, herstart dan de gateway en controleer opnieuw met
openclaw channels status --probe.