OpenClaw Discord Kanal
Verbinden Sie OpenClaw ueber die discord.js Bot Gateway API mit Discord. Erstellen Sie einen Discord-Bot im Developer Portal, aktivieren Sie die erforderlichen Intents, laden Sie den Bot auf Ihren Server ein und Ihr KI-Assistent ist auf Discord aktiv. Unterstuetzt Direktnachrichten, Server-Channel-Gespraeche, Reaktionen, Threads, Slash-Befehle und Rich Media. Einer der am einfachsten einzurichtenden Channels.
Discord Unterstützte Funktionen
Textnachrichten
Unterstützt
Medien & Dateien
Unterstützt
Reaktionen
Unterstützt
Threads
Unterstützt
Sprachnachrichten
Nicht unterstützt
Gruppenchat
Unterstützt
Discord Voraussetzungen
- Ein Discord-Konto mit Zugang zum Discord Developer Portal
- Ein Bot Token vom Discord Developer Portal (Applications → New Application → Bot)
- Message Content Intent aktiviert unter Privileged Gateway Intents
- OpenClaw Gateway laeuft und ist konfiguriert
Discord Schnelleinrichtung
Discord-Bot erstellen und Intents aktivieren
Gehen Sie zum Discord Developer Portal (discord.com/developers), erstellen Sie eine New Application, fuegen Sie einen Bot-Benutzer hinzu und kopieren Sie den Bot Token. Aktivieren Sie unter Privileged Gateway Intents den 'Message Content Intent' (erforderlich) und den 'Server Members Intent' (empfohlen fuer Mitglieder-Abfragen).
Discord-Channel-Konfiguration hinzufuegen
Fuegen Sie die Discord-Channel-Konfiguration zu ~/.openclaw/openclaw.json hinzu. Setzen Sie den Token (oder verwenden Sie die Umgebungsvariable DISCORD_BOT_TOKEN) und konfigurieren Sie dm.policy, um zu steuern, wer den Bot per DM kontaktieren kann.
Bot zum Server einladen und testen
Gehen Sie im Developer Portal zu OAuth2 → URL Generator. Waehlen Sie die Scopes 'bot' und 'applications.commands'. Waehlen Sie die Berechtigungen: View Channels, Send Messages, Read Message History, Embed Links, Attach Files, Add Reactions. Oeffnen Sie die generierte URL, um den Bot auf Ihren Server einzuladen. Senden Sie '@BotName hello', um zu testen.
Discord Konfigurationsbeispiel
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_DISCORD_BOT_TOKEN",
"dm": {
"policy": "pairing"
}
}
}
}Discord Detaillierte Dokumentation
Architektur-Ueberblick
Ihren Bot erstellen
DM-Richtlinien
{
"channels": {
"discord": {
"dm": {
"policy": "pairing",
"allowFrom": ["123456789012345678"]
}
}
}
}Server-Channel-Konfiguration
{
"channels": {
"discord": {
"groupPolicy": "open",
"guilds": {
"YOUR_GUILD_ID": {
"slug": "my-server",
"requireMention": true,
"channels": {
"CHANNEL_ID": {
"allow": true,
"requireMention": false,
"systemPrompt": "You are a helpful assistant in this channel."
}
}
}
}
}
}
}Reaktionen & Bestaetigungen
{
"channels": {
"discord": {
"messages": {
"ackReaction": "👀",
"removeAckAfterReply": true
},
"guilds": {
"GUILD_ID": {
"reactionNotifications": "own"
}
}
}
}
}Nachrichtenformatierung & Aufteilung
{
"channels": {
"discord": {
"textChunkLimit": 2000,
"chunkMode": "newline",
"historyLimit": 20
}
}
}Slash-Befehle & Tool-Aktionen
Medien & Dateiverarbeitung
PluralKit-Integration
{
"channels": {
"discord": {
"pluralkit": {
"enabled": true,
"token": "pk_live_..."
}
}
}
}Exec-Genehmigungen (Button-Oberflaeche)
{
"channels": {
"discord": {
"execApprovals": {
"enabled": true,
"approvers": ["USER_ID_1", "USER_ID_2"],
"agentFilter": [],
"sessionFilter": []
}
}
}
}Aktions-Gates
Erlaubnislisten-Aufloesung & Abgleich
Discord Konfigurationsreferenz
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Discord-Channel aktivieren oder deaktivieren |
| token | string | "" | Discord Bot Token. Kann auch die Umgebungsvariable DISCORD_BOT_TOKEN verwenden |
| dm.policy | string | "pairing" | Steuert, wer den Bot per DM kontaktieren kann. Optionen: pairing, allowlist, open, disabled |
| dm.allowFrom | string[] | [] | Discord-Benutzer-IDs, die den Bot per DM kontaktieren duerfen (wenn dm.policy allowlist ist) |
| groupPolicy | string | "allowlist" | Richtlinie fuer die Server-Channel-Verarbeitung. Optionen: open, disabled, allowlist |
| guilds | object | {} | Pro-Server-Konfiguration nach Server-ID. Beinhaltet slug, users, channels, requireMention usw. |
| requireMention | boolean | true | Ob der Bot eine @Erwaehnung benoetigt, um in Server-Channels zu antworten |
| messages.ackReaction | string | "" | Emoji als Nachrichtenbestaetigung waehrend der Verarbeitung |
| messages.removeAckAfterReply | boolean | false | Bestaetigungsreaktion entfernen, nachdem die KI geantwortet hat |
| textChunkLimit | number | 2000 | Maximale Zeichen pro Nachrichtenblock (Discord-Limit ist 2000) |
| chunkMode | string | "length" | Wie lange Antworten aufgeteilt werden. Optionen: length (hartes Zeichenlimit), newline (Absatzgrenzen) |
| historyLimit | number | 20 | Anzahl der aktuellen Server-Nachrichten, die als KI-Kontext einbezogen werden |
| mediaMaxMb | number | 8 | Maximale Mediendateigroesse in Megabyte fuer Uploads |
| replyToMode | string | "off" | Antwort-Threading-Modus. Optionen: off, first (nur ersten Block threaden), all (jeden Block threaden) |
| configWrites | boolean | true | Discord-initiierte Konfigurationsaktualisierungen ueber /config set|unset Befehle erlauben |
| allowBots | boolean | false | Ob Nachrichten von anderen Bots verarbeitet werden sollen. Mit Vorsicht verwenden, um Schleifen zu vermeiden |
| retry.attempts | number | 3 | Anzahl der Wiederholungsversuche fuer fehlgeschlagene Discord-API-Aufrufe |
| retry.minDelayMs | number | 500 | Minimale Verzoegerung in Millisekunden zwischen Wiederholungsversuchen |
| retry.maxDelayMs | number | 30000 | Maximale Verzoegerung in Millisekunden zwischen Wiederholungsversuchen |
| retry.jitter | number | 0.1 | Jitter-Faktor fuer Wiederholungsverzoegerungen zur Randomisierung |
| dm.enabled | boolean | true | Ob Direktnachrichten akzeptiert werden |
| dm.groupEnabled | boolean | false | Gruppen-DM-Verarbeitung aktivieren |
| dm.groupChannels | string[] | [] | Gruppen-DM-Channel-Erlaubnisliste |
| dmHistoryLimit | number | - | Pro-Benutzer-DM-Verlaufslimit-Ueberschreibung |
| maxLinesPerMessage | number | 17 | Weiches Zeilenlimit pro Nachrichtenblock |
| commands.native | string | boolean | "auto" | Native Slash-Befehl-Registrierung. Optionen: auto (fuer Discord aktiviert), true, false |
| commands.text | object | {} | Textbefehl-Konfiguration, die eigenstaendige /...-Nachrichten erfordert |
| commands.useAccessGroups | boolean | false | Ob Zugriffsgruppen-Pruefungen fuer Befehle erzwungen werden |
| actions.* | boolean | varies | Tool-Aktions-Gates. Die meisten standardmaessig aktiviert; roles, moderation und presence sind standardmaessig deaktiviert |
| pluralkit.enabled | boolean | false | PluralKit-Proxy-Nachrichtenaufloesung aktivieren |
Discord-Channel aktivieren oder deaktivieren
Discord Bot Token. Kann auch die Umgebungsvariable DISCORD_BOT_TOKEN verwenden
Steuert, wer den Bot per DM kontaktieren kann. Optionen: pairing, allowlist, open, disabled
Discord-Benutzer-IDs, die den Bot per DM kontaktieren duerfen (wenn dm.policy allowlist ist)
Richtlinie fuer die Server-Channel-Verarbeitung. Optionen: open, disabled, allowlist
Pro-Server-Konfiguration nach Server-ID. Beinhaltet slug, users, channels, requireMention usw.
Ob der Bot eine @Erwaehnung benoetigt, um in Server-Channels zu antworten
Emoji als Nachrichtenbestaetigung waehrend der Verarbeitung
Bestaetigungsreaktion entfernen, nachdem die KI geantwortet hat
Maximale Zeichen pro Nachrichtenblock (Discord-Limit ist 2000)
Wie lange Antworten aufgeteilt werden. Optionen: length (hartes Zeichenlimit), newline (Absatzgrenzen)
Anzahl der aktuellen Server-Nachrichten, die als KI-Kontext einbezogen werden
Maximale Mediendateigroesse in Megabyte fuer Uploads
Antwort-Threading-Modus. Optionen: off, first (nur ersten Block threaden), all (jeden Block threaden)
Discord-initiierte Konfigurationsaktualisierungen ueber /config set|unset Befehle erlauben
Ob Nachrichten von anderen Bots verarbeitet werden sollen. Mit Vorsicht verwenden, um Schleifen zu vermeiden
Anzahl der Wiederholungsversuche fuer fehlgeschlagene Discord-API-Aufrufe
Minimale Verzoegerung in Millisekunden zwischen Wiederholungsversuchen
Maximale Verzoegerung in Millisekunden zwischen Wiederholungsversuchen
Jitter-Faktor fuer Wiederholungsverzoegerungen zur Randomisierung
Ob Direktnachrichten akzeptiert werden
Gruppen-DM-Verarbeitung aktivieren
Gruppen-DM-Channel-Erlaubnisliste
Pro-Benutzer-DM-Verlaufslimit-Ueberschreibung
Weiches Zeilenlimit pro Nachrichtenblock
Native Slash-Befehl-Registrierung. Optionen: auto (fuer Discord aktiviert), true, false
Textbefehl-Konfiguration, die eigenstaendige /...-Nachrichten erfordert
Ob Zugriffsgruppen-Pruefungen fuer Befehle erzwungen werden
Tool-Aktions-Gates. Die meisten standardmaessig aktiviert; roles, moderation und presence sind standardmaessig deaktiviert
PluralKit-Proxy-Nachrichtenaufloesung aktivieren
Discord Häufig gestellte Fragen
Discord Fehlerbehebung
Message Content Intent ist nicht aktiviert, dem Bot fehlen Channel-Berechtigungen oder die Erwaehnungsanforderungen sind falsch konfiguriert.
Die DM-Verarbeitung ist moeglicherweise in der Konfiguration deaktiviert oder die Kopplungsgenehmigung steht noch aus.
Der Scope 'applications.commands' war nicht in der OAuth2-Einladungs-URL des Bots enthalten.
Discord-API-Ratenlimits wurden erreicht oder die Gateway-Verbindung ist in einem fehlerhaften Zustand.
groupPolicy ist standardmaessig 'allowlist', sodass der Bot nur in explizit konfigurierten Servern/Channels antwortet.
execApprovals ist nicht aktiviert oder die Discord-ID des Benutzers ist nicht im Approvers-Array aufgefuehrt.