Hermes Agent auf Discord einrichten (Bot + Sprache)
Bringen Sie Hermes Agent auf Discord: Bot-Token, Gateway-Intents, Allowlist, Home-Channel und die /voice-Befehle, mit denen der Bot einen Sprachkanal betritt.
Warum Hermes Agent in Discord betreiben
Wenn Ihr Projekt, Ihr Studio oder Ihre Freunde bereits auf einem Discord-Server unterwegs sind, sollte Ihr Agent auch dort erreichbar sein. Threads, Sprachkanäle und rollenbeschränkte Räume liefern Hermes einen Kontext, den ein isoliertes Dashboard nicht bieten kann: Wer fragt, in welchem Kanal er sich befindet, ob gerade gesprochen oder getippt wird und wo die Antwort landen soll.
Hermes Agent bringt erstklassige Discord-Unterstützung für Text und Sprache eines Servers mit. Die Runtime verbindet sich ausgehend über das Standard-Gateway-WebSocket zu Discord, sodass sie auf Ihrem Laptop, einem kleinen VPS oder hinter dem NAT zu Hause sitzen kann und trotzdem Nachrichten in Echtzeit streamt. Kein öffentlicher Webhook, kein eingehender Port. Dieselbe Runtime, die Textnachrichten beantwortet, kann per /voice join auch einem Sprachkanal beitreten, über STT zuhören und über TTS antworten.
Diese Anleitung führt die vollständige Einrichtung von A bis Z durch: Discord-Anwendung erstellen, Bot-Token generieren, die stillen Pflicht-Intents aktivieren, Allowlist und Home-Channel verdrahten, den Bot mit der richtigen OAuth2-URL einladen und die Stolpersteine bei der ersten Bereitstellung ausräumen.
Was Sie vorher brauchen
Eine saubere Discord-Bereitstellung braucht fünf Dinge:
- Einen Discord-Server, auf dem Sie Bots hinzufügen dürfen. Ist es nicht Ihrer, fragen Sie die Administration: Die Einladungs-URL funktioniert nur für jemanden mit „Server verwalten" auf dem Zielserver.
- Eine laufende Hermes-Agent-Instanz. Die Hermes-Agent-Docker-Anleitung ist der sauberste Weg; unter Windows ist die WSL2-Einrichtung das Pendant.
- Einen API-Schlüssel Ihres Modell-Anbieters. Anthropic, OpenAI, OpenRouter oder jeder OpenAI-kompatible Endpoint funktionieren. Die Runtime nutzt ihn, um tatsächlich zu antworten.
- Ihre numerische Discord-Benutzer-ID für die Allowlist (Entwicklermodus → Rechtsklick auf Ihren Namen → Benutzer-ID kopieren).
- Etwa 15 Minuten für die erste Installation. Spätere erneute Bereitstellungen dauern unter einer Minute.
Schritt 1 - Discord-Anwendung und Bot anlegen
Öffnen Sie das Discord-Developer-Portal, klicken Sie auf New Application, geben Sie einen Namen (z. B. hermes-agent) und akzeptieren Sie die Entwicklerbedingungen. So entsteht ein Anwendungs-Container, der den Bot-Benutzer, die OAuth2-Zugangsdaten und den Token enthält.
Auf der Anwendungsseite wechseln Sie in der Seitenleiste zu Bot. Discord verlangt für neue Anwendungen keinen Klick auf Add Bot mehr: Der Bot-Benutzer wird automatisch erstellt. Sie müssen ihm nur einen Anzeigenamen, ein Avatar geben und Public Bot deaktivieren, wenn nur Sie die Einladungs-URL nutzen sollen.
Dann klicken Sie auf Reset Token, um den Bot-Token anzuzeigen. Er beginnt mit MTA…. Kopieren Sie ihn einmal und fügen Sie ihn direkt in Ihre .env ein: Discord zeigt ihn nie wieder, sondern lässt Sie nur neu generieren.
Behandeln Sie diesen Token wie einen SSH-Schlüssel. Wer ihn hat, kann als Ihr Bot handeln, jede Nachricht in jedem Kanal lesen, in dem der Bot ist, und Ihre Modell-Anbieter-Kontingente durch das Auslösen des Agenten verbrennen.
Schritt 2 - Die von Discord verlangten Gateway-Intents aktivieren
Das ist der Schritt, der die meisten Discord-Bot-Bereitstellungen still bricht. Discord unterteilt „was Discord an Ihren Bot schickt" in Intents. Einige sind privilegiert, das heißt, Sie müssen sie für jede Anwendung explizit aktivieren, sonst öffnet Discord das WebSocket, liefert die Ereignisse und lässt die Felder, die Sie nicht angefordert haben, einfach leer.
Weiterhin in Bot, scrollen Sie zu Privileged Gateway Intents und aktivieren Sie:
- Message Content Intent - erforderlich, um den Text von Nachrichten zu lesen. Ohne ihn erhält Hermes Nachrichtenereignisse mit leerem Inhalt und bleibt für immer stumm.
- Server Members Intent - erforderlich, um die Allowlist gegen echte Mitglieds-IDs aufzulösen und zu erkennen, wenn Mitglieder beitreten oder gehen.
- Presence Intent - optional, nützlich, wenn der Bot auf Statuswechsel oder das Betreten eines Sprachkanals reagieren soll.
Klicken Sie unten auf Save Changes. Das muss im Developer-Portal geschehen; es gibt keinen .env-Schalter dafür.
Sobald Ihr Bot verifiziert und auf mehr als 100 Servern aktiv ist, verlangt Discord einen Antrag für diese Intents. Darunter genügen die Schalter.
Schritt 3 - Ihre numerische Discord-Benutzer-ID finden
Hermes Agent antwortet nur auf IDs, die in DISCORD_ALLOWED_USERS stehen. Das ist die wichtigste Sicherheitskontrolle der gesamten Einrichtung, und sie erwartet numerische IDs, keine @handles.
Öffnen Sie in Discord Benutzereinstellungen → Erweitert → schalten Sie Entwicklermodus ein. Schließen Sie die Einstellungen, klicken Sie in einem Kanal oder in der Mitgliederliste mit rechts auf Ihren Namen und wählen Sie Benutzer-ID kopieren. Die ID sieht so aus: 284102345871466496. Wiederholen Sie das für jede Person, die Sie autorisieren möchten.
Die Allowlist auszulassen entspricht dem Veröffentlichen des Anbieter-Schlüssels vor dem ganzen Server. Ist eine Hermes-Instanz aus einem öffentlichen Server mit leerer Allowlist erreichbar, verbrennt jede Nachricht, die der Bot lesen kann, Ihre Kontingente, und in einem Sprachkanal wird jedes Geräusch transkribiert.
Schritt 4 - Die Hermes-Runtime konfigurieren
Öffnen Sie ~/.hermes/.env (oder die .env, die Ihr Container liest) und ergänzen Sie:
DISCORD_BOT_TOKEN=MTA...ihr-bot-token...
DISCORD_ALLOWED_USERS=284102345871466496,297811223344556677
DISCORD_HOME_CHANNEL=123456789012345678
DISCORD_HOME_CHANNEL_NAME="#bot-updates"
Kurz zu jedem:
DISCORD_BOT_TOKEN- der Token, den Sie in Schritt 1 kopiert haben.DISCORD_ALLOWED_USERS- kommagetrennte Liste numerischer Benutzer-IDs. Der Bot ignoriert alle anderen, auch Server-Admins und andere Bots.DISCORD_HOME_CHANNEL(optional) - die Kanal-ID für proaktive Nachrichten, Ausgaben geplanter Aufgaben und Skill-getriebene Benachrichtigungen. Rechtsklick auf den Kanal in Discord →Kanal-ID kopieren. Ohne Wert geht die proaktive Ausgabe an den DM des Bots mit dem ersten autorisierten Benutzer.DISCORD_HOME_CHANNEL_NAME(optional) - ein lesbares Etikett in den Logs, ohne Einfluss auf das Routing.
chmod 600 ~/.hermes/.env nach dem Speichern. Der Token gewährt vollen Zugriff auf Ihren Bot; behandeln Sie ihn wie einen SSH-Schlüssel.
Schritt 5 - Den Bot auf Ihren Server einladen
Bots treten Servern nicht bei, sie werden über eine OAuth2-URL eingeladen, die von Anfang an die richtigen Scopes und Berechtigungen anfordert. Hermes erwartet:
- Scopes:
botundapplications.commands(letzterer aktiviert die/voice-Slash-Befehle). - Permissions Integer:
274878286912, das Kanäle anzeigen, Nachrichten senden, Links einbetten, Dateien anhängen, Nachrichtenverlauf lesen, Nachrichten in Threads senden und Reaktionen hinzufügen abdeckt.
Nehmen Sie die Client-ID Ihrer Anwendung aus General Information im Portal und setzen Sie sie in diese Vorlage ein:
https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&scope=bot+applications.commands&permissions=274878286912
Öffnen Sie die URL, wählen Sie Ihren Server, bestätigen Sie die Berechtigungen, und Discord fügt den Bot als Mitglied hinzu. Sie können die URL auch über OAuth2 → URL Generator im Portal per Checkboxen zusammenklicken; das Ergebnis ist dasselbe.
Für Sprache brauchen Sie zusätzlich Verbinden und Sprechen auf dem konkreten Sprachkanal. Fehlen sie nach der Einladung, weisen Sie dem Bot eine Rolle zu, die sie gewährt, oder bearbeiten Sie die Berechtigungs-Überschreibungen des Kanals direkt.
Schritt 6 - Gateway starten und die erste Nachricht senden
Starten Sie das Gateway neu, damit es die neue Umgebung übernimmt:
hermes gateway restart
Oder mit Docker Compose:
docker compose restart gateway
Verfolgen Sie die Logs und warten Sie auf den Discord-Handshake:
hermes gateway logs --follow
Sie suchen zwei Zeilen in dieser Reihenfolge:
discord: connecting to Gateway
discord: connected as ihr-bot-name#1234 (guilds: 1)
Sehen Sie nur die erste und danach nichts, ist der Token falsch oder wurde rotiert. Verbindet sich der Bot, antwortet aber im Kanal nicht, ist Message Content Intent im Portal noch aus, oder Ihre ID steht nicht in DISCORD_ALLOWED_USERS.
Läuft er, senden Sie ihm eine DM oder erwähnen ihn mit @ in einem für ihn sichtbaren Kanal. Hermes antwortet in derselben Unterhaltung, mit vollem Speicher und Skill-Kontext. Ab hier funktionieren alle Hermes-Fähigkeiten, persistenter Speicher, geplante Aufgaben und eigene Skills, genau wie auf der Telegram-Oberfläche.
Schritt 7 - Sprache einschalten (optional, aber schön)
Discord-Sprachkanäle sind eine erstklassige Oberfläche für Hermes. Ist der Bot mit Verbinden und Sprechen auf dem Server, betreten Sie selbst einen Sprachkanal und tippen in einem beliebigen sichtbaren Textkanal:
/voice join
Der Bot betritt Ihren aktuellen Sprachkanal, hört über den konfigurierten STT-Anbieter zu und antwortet über TTS laut. Die Befehlsübersicht:
/voice join- Ihrem aktuellen Sprachkanal beitreten./voice channel- Alias für/voice join./voice leave- vom Sprachkanal trennen./voice status- meldet, ob der Sprachmodus aktiv ist und in welchem Kanal.
Nur Benutzer aus DISCORD_ALLOWED_USERS werden transkribiert; das Audio aller anderen wird ignoriert. Das ist wichtig, wenn der Sprachkanal mit Personen geteilt wird, die Sie nicht ausdrücklich autorisiert haben. Für die Auswahl eines STT/TTS-Stacks, der auf Discords Opus-Stream gut läuft, ist die Übersicht zum Sprachmodus von Hermes die nächste Lektüre.
Die Fehler, die zuerst zuschlagen
Fünf Fehler erklären fast alle „Discord-Setup kaputt"-Threads:
Message Content Intent noch aus. Der Bot verbindet sich, kommt auf den Server und antwortet nicht. Discord warnt nicht. Im Portal einschalten und Gateway neu starten.
Leeres DISCORD_ALLOWED_USERS. Voreinstellung ist, alle zu ignorieren. Ein bewusst sicherer Standard, wirkt aber wie ein defekter Bot für den ersten Tester, der die eigene ID vergessen hat.
Falsche Berechtigungen bei der Einladung. Sieht der Bot den Kanal nicht oder fehlt Nachrichten senden, bleibt er auch für autorisierte Benutzer stumm. Mit dem Permissions Integer 274878286912 neu einladen oder die Rolle in Servereinstellungen → Rollen korrigieren.
Fehlende Sprachrechte auf einem konkreten Kanal. Der Bot hat Verbinden und Sprechen serverweit, aber eine Kanal-Überschreibung entzieht sie. Discord zeigt den Bot als „verbunden", produziert aber in keiner Richtung Audio. Prüfen Sie den Berechtigungsreiter des Sprachkanals.
Zwei Gateway-Prozesse auf demselben Datenvolumen. Starten Sie ein Discord-Gateway und ein Telegram-Gateway gegen dasselbe /data-Verzeichnis, korrumpieren sich Nachrichtenreihenfolge und Speicherschreibvorgänge binnen Minuten gegenseitig. Betreiben Sie ein einziges Gateway mit den Blöcken DISCORD_* und TELEGRAM_* gemeinsam in .env, wenn Sie beide Oberflächen wollen: Die Runtime multiplext beide nativ.
Wirkt das Problem nach Discord, fühlen sich die Symptome aber allgemein an, behandelt der Telegram-Troubleshooting-Leitfaden Gateway- und Anbieterprobleme tiefer, und die meisten sind oberflächenunabhängig.
Discord und Telegram im direkten Vergleich
| Thema | Discord | Telegram |
|---|---|---|
| Einrichtungszeit | 15 min (App + Intents + Einladung) | 5 min (ein BotFather-Token) |
| Erreichbarkeit | Hinter Firewall (Gateway-WebSocket) | Hinter Firewall (Long-Poll) |
| Allowlist-Feld | DISCORD_ALLOWED_USERS (numerische IDs) |
TELEGRAM_ALLOWED_USERS (numerische IDs) |
| Am besten für | Communities, Sprachräume, Projekt-Server | Persönlich, mobile first, Sprachnotizen |
| Threads | Nativ (Kanäle + Threads) | Nur zitierte Antworten |
| Sprache | Sprachkanal beitreten, Live-STT/TTS | Sprachnotizen, transkribierte Antworten |
Die beiden Oberflächen schließen sich nicht aus. Dieselbe Hermes-Runtime kann beide gleichzeitig bedienen, praktisch, wenn ein persönlicher Telegram-Chat und ein geteilter Discord-Sprachraum aus demselben persistenten Speicher schöpfen.
Sparen Sie sich die Discord-Klempnerei
Die Schritte selbst sind überschaubar, doch der Host bleibt Ihre Sache: Backups, TLS fürs Dashboard, Log-Rotation und der Upgrade-Rhythmus. Für eine persönliche Installation ist das in Ordnung. Für einen Server, der den Bot in Minuten und danach ohne Betriebsaufwand haben will, stellt Hermify eine verwaltete Hermes-Runtime auf Telegram bereit, hält den persistenten Speicher stabil und rotiert die Tokens, ohne dass Sie eine .env berühren.
Sie liefern den Modell-Anbieter-Schlüssel und die gewünschte Oberfläche; die Plattform kümmert sich um alles darunter. Wenn Sie diese Abwägung treffen, bevor Sie in einen eigenen VPS investieren, geht der Vergleich Selbsthosting vs. verwaltet die Kosten- und Wartungszahlen durch.
Sources
Betreiben Sie Ihren eigenen Hermes Agent
Bringen Sie Ihren API-Schlüssel mit, verbinden Sie Telegram und erhalten Sie in 60 Sekunden einen selbstlernenden KI-Agenten.
Loslegen