EN·ES·DE·PT·FR
⌘K

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

  1. Gehe zum Discord Developer Portal
  2. Klicke auf New Application und benenne sie (z.B. “aidaemon”)
  3. Unter Bot klicke auf Add Bot
  4. Kopiere das Bot Token — dies ist dein bot_token
  5. Aktiviere diese Privileged Gateway Intents:
    • Message Content Intent — Nachrichtentext lesen
    • Server Members Intent — Benutzerinformationen auflösen
  6. Unter OAuth2 → URL Generator wähle die Scopes bot und applications.commands, dann die Berechtigungen: Send Messages, Read Message History, Attach Files, Use Slash Commands
  7. 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
KeyTypeDefaultDescription
bot_tokenstringDiscord Bot-Token aus dem Developer Portal. Unterstützt "keychain".
allowed_user_idsarray[]Discord-Benutzer-IDs (Snowflake-Ganzzahlen), die interagieren dürfen. Leer = keine Einschränkung.
guild_idintegernullOptionale 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.