Discord Bot-Einrichtung
Verbinde aidaemon mit Discord über die Gateway-API.
Vorgefertigte Binärdateien
Wenn du über das Einzeiler-Skript oder Homebrew installiert hast, ist Discord-Unterstützung bereits enthalten. Konfiguriere einfach
config.toml wie unten beschrieben. Das Feature-Flag wird nur beim Kompilieren aus dem Quellcode benötigt.Eine Discord-Anwendung erstellen
- Gehe zum Discord Developer Portal
- Klicke auf New Application und benenne sie (z.B. “aidaemon”)
- Unter Bot klicke auf Add Bot
- Kopiere das Bot Token — dies ist dein
bot_token - Aktiviere diese Privileged Gateway Intents:
Message Content Intent— Nachrichtentext lesenServer Members Intent— Benutzerinformationen auflösen
- Unter OAuth2 → URL Generator wähle die Scopes
botundapplications.commands, dann die Berechtigungen: Send Messages, Read Message History, Attach Files, Use Slash Commands - Verwende die generierte URL, um den Bot auf deinen Server einzuladen
Konfiguration
config.toml
[discord]
bot_token = "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.AbCdEf.xxxxx"
allowed_user_ids = [123456789012345678]
guild_id = 987654321098765432| Key | Type | Default | Description |
|---|---|---|---|
bot_token | string | — | Discord Bot-Token aus dem Developer Portal. Unterstützt "keychain". |
allowed_user_ids | array | [] | Discord-Benutzer-IDs (Snowflake-Ganzzahlen), die interagieren dürfen. Leer = keine Einschränkung. |
guild_id | integer | null | Optionale Server-/Guild-ID. Wenn gesetzt, antwortet der Bot nur auf diesem Server. |
Deine Discord-Benutzer-ID ermitteln
Aktiviere den Entwicklermodus in den Discord-Einstellungen (Darstellung → Erweitert), dann klicke mit der rechten Maustaste auf deinen Benutzernamen und wähle ID kopieren.
Funktionen
- Gateway-Verbindung — Echtzeit-WebSocket-Verbindung über das Serenity-Framework
- Slash-Befehle — registrierte Anwendungsbefehle (siehe Befehle)
- Interaktive Buttons — Genehmigungsablauf mit klickbaren Buttons (siehe Genehmigungsablauf)
- Dateiübertragung — Dateien als Discord-Anhänge senden und empfangen
- Nachrichtenaufteilung — lange Antworten werden aufgeteilt, um Discords 2000-Zeichen-Nachrichtenlimit einzuhalten
- Automatische Wiederverbindung — exponentielles Backoff bei Verbindungsfehlern (5s → 60s Maximum)
- Benutzer-Allowlist — Zugriffskontrolle pro Bot-Token
- Multi-Bot-Unterstützung — mehrere Discord-Bots mit separaten Konfigurationen betreiben
Sitzungsmodell
Discord-Sitzungen werden nach Channel identifiziert:
- Channel-Nachricht:
discord:{channel_id}
Jeder Channel pflegt seinen eigenen Gesprächsverlauf, Arbeitsgedächtnis und Faktenkontext.
Zugriffskontrolle
Wenn
allowed_user_ids leer ist, kann jeder, der dem Bot eine Nachricht senden kann, mit ihm interagieren. Setze dies immer im Produktivbetrieb.