Wer nach dem Durchbruch von 170.000 GitHub-Stars das Hermes-Agent-Repository öffnet, stößt auf dieselbe Wand wie in unseren Support-Threads jede Woche: Das README verspricht One-Click-Installation, Produktion bedeutet aber Hostwahl, LLM-API-Schlüssel, hermes doctor, Telegram ohne Token-Leak und ein Gateway, das überlebt, wenn der Laptop schläft oder ein günstiger VPS neu startet. Hermes ist kein Wegwerf-Chat-Wrapper. Es ist ein lang lebendes Gateway mit SQLite-Episodenspeicher, Skill-Markdown und sitzungsübergreifenden User-Dateien, die nur dann Mehrwert liefern, wenn der Prozess dauerhaft online bleibt. Dieser Leitfaden richtet sich an Entwicklerinnen und Solo-Builder, die heute Nachmittag einen funktionierenden Telegram-Agenten und nächsten Monat noch denselben Host wollen. Enthalten sind Umgebungsvoraussetzungen für macOS, Linux und VPS-Formfaktoren, der offizielle Installer-Pfad, LLM-Provider-Konfiguration, CLI- und TUI-Smoke-Tests, BotFather-Verdrahtung sowie launchd- oder systemd-Persistenz. Warum Speicher immer-on-Infrastruktur erfordert, erklärt der Artikel zur Dreischicht-Speicherarchitektur; Felddaten zu Pi versus VPS versus Cloud-Mac nach der Installation liefert der 30-Tage-Hosting-Vergleich. Hier konzentrieren wir uns auf den Weg von null bis zum produktionsreifen Telegram-Gateway.
00Was Sie installieren und warum das Gateway zählt
Hermes Agent von Nous Research ist eine MIT-lizenzierte Agentenplattform zwischen Terminal-UI und Multi-Channel-Gateway. Ein Kernprozess bedient Telegram, Discord, Slack, WhatsApp, Signal und CLI-Sitzungen und teilt denselben Speicher-Stack: flüchtiger Sitzungskontext, dauerhafte Skill-Dokumente nach schwierigen Aufgaben sowie persistentes User-Model-Markdown plus SQLite-FTS5-Episodensuche. Tool Calling, Subagenten, Cron-ähnliche Planung und optionale MCP-Server erweitern die Laufzeit, ohne den Speicher-Store zu forken.
Installationserfolg ist nur das erste Tor. Nutzerinnen schreiben dem Bot vom Handy; sie erwarten Antworten, die frühere Entscheidungen referenzieren, keinen kalten Neustart jeden Morgen. Das setzt einen Host voraus, auf dem state.db, Skill-Ordner und Gateway-Webhooks Neustarts und OS-Updates überstehen. Ein Entwickler-MacBook eignet sich für die Schritte unten; Telegram-Produktionsverkehr auf einem schlafenden Laptop nicht. Teams, die Hobby-Hosting überwachsen, migrieren typischerweise dasselbe Config-Tarball auf einen dedizierten Cloud-Mac oder einen always-on-VPS, sobald die Lernschleife Wert beweist.
Dieser Artikel setzt Shell-Zugang, ausgehendes HTTPS und die Berechtigung voraus, API-Schlüssel auf der Platte zu speichern. Hermes unterstützt 200+ Modelle über OpenRouter, Nous Portal, OpenAI-kompatible Endpunkte und andere in der Upstream-Dokumentation beschriebene Provider. Wählen Sie einen Provider vor der Installation, damit Sie den vollständigen Pfad in einer Sitzung validieren können.
SCHMERZUmgebungsanforderungen und Fehler vor Schritt eins
Die meisten Installations-Tickets sind keine defekten curl-Pipes. Es sind Host-Mismatch, fehlende Abhängigkeiten oder Schlüssel an der falschen Stelle. Die Tabelle ordnet Plattform-Erwartungen dem zu, was Hermes für ein dauerhaft laufendes Telegram-Gateway tatsächlich braucht.
| Plattform | Mindest-Spec | Persistenz-Tooling | Typischer Fehler vor funktionierendem Telegram |
|---|---|---|---|
| macOS 14+ (Apple Silicon oder Intel) | 16 GB RAM empfohlen; 20 GB freier Speicher | launchd LaunchAgent | Gatekeeper blockiert unsignierten Helper; API-Key in Shell-Profil, aber nicht für LaunchAgent-Umgebung sichtbar |
| Ubuntu 22.04 / Debian 12 VPS | 2 vCPU, 4 GB RAM, 40 GB Disk | systemd User- oder System-Unit | Ausgehendes 443 blockiert; python3-venv fehlt; root-eigener Install-Pfad bricht Updates |
| Generisches Linux (Fedora, Arch) | Wie VPS; glibc prüfen | systemd | SELinux oder Custom-Firewall verwirft Telegram-Webhook-Callbacks |
| Nur Entwickler-Laptop | Jedes unterstützte macOS oder Linux | Manueller Start | Gateway stirbt beim Sleep; Nutzer sehen stille Telegram-Lücken über Nacht |
| NUKCLOUD Cloud-Mac (Produktion) | 16–24 GB SKU; persistenter Mandanten-Disk | launchd plus SSH-Tunnel für Admin-TUI | Geringste Reibung, wenn Sie Laptop-Babysitting vermeiden, aber macOS-Pfade und optionale Metal-Nähe brauchen |
- Python- und Node-Adjazenz: Der offizielle Installer zieht Laufzeit-Abhängigkeiten. Auf minimalen VPS-Images Build-Essentials installieren und sicherstellen, dass
curl,gitund funktionierendespython3existieren, bevor Sie das Skript pipen. - Dedizierter Unix-User: Hermes unter einem Nicht-Root-Konto mit festem Home-Verzeichnis betreiben. Gateway-State mit root oder geteilten Login-Usern zu mischen, erschwert Token-Berechtigungen und Backup.
- Disk-Layout: Getrennten Platz für
state.db, Skill-Bäume und Logs planen. Ein 20-GB-Root-Volume füllt sich schnell, sobald Episodensuche und Skill-Distillation wochenlang laufen. - Netzwerk: Telegram braucht stabiles ausgehendes HTTPS und im Webhook-Modus einen erreichbaren HTTPS-Endpunkt oder dokumentiertes Long-Polling-Fallback in der Gateway-Config. Heim-NAT und Carrier-Grade-NAT auf günstigen VPS-Pools erzeugen das klassische Muster: funktioniert auf dem Mac, tot auf dem VPS.
- Secrets-Hygiene: BotFather-Tokens oder LLM-Keys niemals committen. In mode-600-Dateien außerhalb von git speichern und nur Pfade aus der Gateway-Config referenzieren.
Führen Sie nach der Installation hermes doctor aus, um fehlende Abhängigkeiten zu finden, bevor Sie Telegram beschuldigen. Umgebungs-Drift vorab zu beheben, spart Stunden Gateway-Log-Archäologie.
01One-Click-Installation auf macOS, Linux und VPS
Der Upstream-Installer ist auf macOS und Linux identisch. VPS-Provisioning unterscheidet sich nur darin, wie Sie per SSH einsteigen und welcher User das Home-Verzeichnis besitzt. Folgen Sie diesen sechs Schritten in Reihenfolge; sie spiegeln wider, was wir auf frischen NUKCLOUD-Instanzen und sauberen Ubuntu-Images verwenden.
-
01
Host vorbereiten: Unter macOS Xcode Command Line Tools bestätigen oder Installer-Prompt akzeptieren. Auf Ubuntu- oder Debian-VPS
sudo apt update && sudo apt install -y curl git python3 python3-venv build-essentialausführen. Dedizierten User wiehermesmit Home auf persistentem Disk anlegen, nicht auf tmpfs. -
02
Offiziellen Installer ausführen: Als dieser User das Einzeiler-Install-Skript von Nous Research starten. Auf Abschluss warten; das Skript legt die CLI auf den PATH und initialisiert Standard-Config-Verzeichnisse. Release pinnen, das Sie getestet haben, statt main auf einem Produktions-Gateway zu verfolgen.
-
03
Binary und Version prüfen:
hermes --versionausführen und CLI-Antwort bestätigen. Findet die Shell die Binary nicht, ab- und wieder anmelden, damit PATH-Updates aus dem Profil greifen, oder Profil-Snippet sourcen, das der Installer ausgibt. -
04
Gesundheitsdiagnose:
hermes doctorausführen und jede Warnung vor Modell-Konfiguration beheben. Doctor prüft Python-Pakete, Disk-Berechtigungen und Gateway-Voraussetzungen. Diesen Schritt zu überspringen ist der schnellste Weg zu einem Telegram-Bot, der installiert, aber nie online bleibt. -
05
TUI einmal interaktiv starten:
hermes tuiper SSH mit Pseudo-TTY starten. Bestätigen, dass Terminal-UI lädt, Tastatureingabe akzeptiert und Netzwerk erreicht. Das beweist die Kern-Laufzeit, bevor Sie in einen Daemon wechseln. -
06
Baseline-Snapshot: macOS-Minor-Version oder
/etc/os-release, Zeitzone, Install-Pfad und Verzeichnislisting für Config- und Memory-Ordner notieren. Diesen Baum tarbieren, bevor Telegram-Traffic kommt, damit Sie bei fehlerhaftem Upgrade mit korrupten FTS5-Indizes wiederherstellen können.
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes --version
hermes doctor
hermes tui
Auf frischem VPS zuerst über Provider-Panel provisionieren, SSH-Keys anhängen, sshd härten und erst dann den Installer laufen lassen. Bei SKU-Sizing für Produktion über die Bestellseite Disk und RAM wählen, bevor SQLite und Skills nie einen beengten Root-Volume mit OS-Snapshots teilen müssen.
02LLM-Keys, Provider-Profile und CLI-Smoke-Tests
Hermes ohne Model-Endpunkt ist ein leeres Gateway. Konfiguration liegt in YAML und Umgebungsdateien unter dem Hermes-Home; exakte Dateinamen entwickeln sich mit Releases weiter – Upstream-Docs als autoritativ behandeln und gepinnte Version bookmarken.
Provider-Setup: API-Key in eingeschränkter Datei exportieren, zum Beispiel ~/.hermes/secrets/openrouter.env mit mode 600, dann aus dem Provider-Block referenzieren. OpenRouter ist der übliche Default für Multi-Model-Zugang; Nous Portal und OpenAI-kompatible Base-URLs funktionieren für Teams mit bestehenden Verträgen. Default-Model-Slug setzen, der Budget und Latenz-Ziel trifft. Provider auf live Gateway wechseln, ohne state.db und Skill-Verzeichnisse zu sichern, vermeiden.
Memory-Pfade: Bestätigen, dass MEMORY.md, USER.md und Skill-Ordner auf persistenten Volumes liegen. Auf Docker oder ephemeralen VPS-Images diese Pfade explizit bind-mounten, sonst geht kumulierender Speicher bei Container-Recreate verloren.
CLI-Validierung: Aus TUI oder One-Shot-CLI-Modus Prompt senden, der Tool-Nutzung oder Memory-Write erfordert, dann Follow-up in neuer Sitzung stellen, die den Fakt erinnern soll. Schlägt Recall nach kontrolliertem Reboot fehl, Disk-Persistenz fixen, bevor Menschen Telegram öffnen.
export OPENROUTER_API_KEY="sk-or-v1-xxxxxxxx"
export HERMES_DEFAULT_MODEL="anthropic/claude-sonnet-4"
Nach Bearbeitung der Provider-Config erneut hermes doctor ausführen. Doctor-Output ist das schnellste Signal, dass Ihr Key für denselben User-Kontext sichtbar ist, der den Gateway-Daemon starten wird.
03Telegram-Gateway-Verdrahtung und 24/7-Persistenz
Telegram ist das am häufigsten angefragte erste Gateway, weil BotFather-Setup schnell geht und mobile Clients überall sind. Token-Handling als Produktionssicherheitsarbeit behandeln, nicht als Demo-Shortcut.
BotFather-Flow: In Telegram @BotFather öffnen, /newbot ausführen, Anzeigenamen und Username mit bot-Suffix wählen und HTTP-API-Token kopieren. Token in mode-600-Datei speichern, etwa ~/.hermes/secrets/telegram.token. Pfad aus dem Hermes-Gateway-Konfigurationsblock für Telegram referenzieren; Tokens nicht in Shell-History einfügen oder in git-getrackte Dotfiles committen.
Gateway-Start: Dokumentierten Hermes-Gateway-Subbefehl für Telegram nutzen, typischerweise nach geladenem Provider-Env. Mit Direktnachricht an den Bot testen, bevor er Gruppen-Chats beitritt. Gruppenmodus kann Privacy-Einstellungen über BotFather erfordern, je nachdem ob der Bot alle Nachrichten lesen muss.
macOS-Persistenz mit launchd: LaunchAgent-plist erstellen, der Secrets-Env-Datei lädt, WorkingDirectory auf Hermes-Home setzt und Gateway-Binary mit KeepAlive true startet. Mit launchctl bootstrap unter dediziertem User laden. Nach Reboot mit launchctl print verifizieren.
Linux-VPS-Persistenz mit systemd: User-systemd-Unit mit EnvironmentFile auf Secrets, Restart=on-failure und WantedBy=multi-user.target oder aktiviertem User-Lingering. Lingering für Hermes-User aktivieren, damit Gateway SSH-Logout überlebt: loginctl enable-linger hermes.
[Unit]
Description=Hermes Telegram Gateway
After=network-online.target
[Service]
EnvironmentFile=%h/.hermes/secrets/openrouter.env
EnvironmentFile=%h/.hermes/secrets/telegram.env
ExecStart=%h/.local/bin/hermes gateway telegram
Restart=on-failure
RestartSec=10
[Install]
WantedBy=default.target
Admin-Zugang: TUI per SSH mit Port-Forwarding erreichen; Management-Ports niemals ins öffentliche Internet stellen. Log-Wachstum, Gateway-Restart-Zähler und Telegram-Webhook- oder Long-Poll-Fehler in der ersten Woche täglich beobachten. Nach sieben Tagen stabiler Uptime wöchentliche Tarball-Backups von state.db und Skill-Bäumen planen.
Cheat-Sheet für Day-Two-Ops: hermes --version für Drift-Checks, hermes doctor nach Upgrades, hermes tui für interaktives Debug, Gateway-Logs via journalctl --user -u hermes-telegram.service unter Linux oder log show --predicate-Filter unter macOS. Diese Befehle im Runbook neben On-Call-Kontakten pinnen.
04Plattform-Matrix: Wo dieselbe Installation läuft
| Dimension | Lokales macOS-Dev | Linux-VPS | NUKCLOUD Cloud-Mac |
|---|---|---|---|
| Install-Befehl | Derselbe offizielle curl-Installer | Derselbe offizielle curl-Installer | Derselbe offizielle curl-Installer per SSH |
| Telegram 24/7 | Schlecht, solange Mac schläft | Gut mit systemd und linger | Exzellent mit launchd und Rechenzentrum-Strom |
| Memory-Persistenz | Volle lokale Kontrolle | Abhängig von Disk-Policy; fragil auf kleinen Images | Mandanten-gebundene NVMe; auditierbarer Backup-Pfad |
| Ops-Overhead | Niedrig für Install; hoch für Uptime | Mittel; CPU-Steal und Egress beobachten | Niedrig nach initialem SSH-Baseline |
| Apple-Toolchain-Adjazenz | Nativ | Nicht verfügbar | Native macOS-SKUs |
| Typische Monatskosten | Sunk Hardware plus Strom | 5–40 USD Sticker plus Incident-Zeit | Gemessene Stunden; siehe Preise |
Der Installer ist bewusst plattformübergreifend; die Hosting-Wahl bestimmt, ob Telegram-Nutzer Lücken bemerken. Geteilte VPS-Pools locken mit Fünf-Dollar-Stickern, aber Bandbreiten-Jitter, überbuchte CPUs und abgebrochene Long-Polling-Sitzungen treten genau dann auf, wenn Ihr User-Model intelligent wirkt. Heim-Mac-minis funktionieren, wenn Sie Strom und ISP kontrollieren; Enterprise-Teams bevorzugen meist Cloud-Mac oder gehärteten VPS mit dokumentierten Mandantengrenzen.
Für Teams, die kumulierenden Hermes-Speicher ohne Hardware-Kauf vor Validierung brauchen, erhält gemessener Cloud-Mac bei NUKCLOUD den Cashflow, während Sie Recall-Qualität und Support-Last messen. Generische minutenbasierte macOS-VPS-Angebote überverkaufen oft CPU und lassen Gateways während Summarization-Jobs ausfallen. Wenn Telegram produktionsnah ist, zählen stabiler Disk, vorhersagbares ausgehendes Networking und ein Host, der Reboots überlebt, mehr als zehn Euro im Monat auf einem überbuchten Pool zu sparen.
05Häufig gestellte Fragen
hermes doctor ausführen und dediziertes User-Konto für Gateway-State bevorzugen. Für 24/7-Telegram auf Maschine wechseln, die nicht schläft, oder auf Cloud-Mac-Instanz, nachdem Sie Config lokal validiert haben.hermes doctor, dann Provider-Key-Sichtbarkeit im Daemon-Kontext. BotFather-Token-Pfad, ausgehende Firewall-Regeln und ob Bot blockiert oder aus Chat entfernt wurde bestätigen. Webhook-Modus braucht zusätzlich gültigen HTTPS-Endpunkt; Long-Polling ist auf bare VPS einfacher, braucht aber stabile ausgehende Konnektivität.