Du möchtest einen KI-Agenten, den du von deinem Handy aus anschreiben kannst, der weiterläuft, wenn du den Laptop zuklappst, und nach einem Neustart von selbst zurückkommt? Hermes Agent macht genau das: Er läuft als Gateway, mit dem du über Telegram kommunizierst, und sobald du ihn richtig eingerichtet hast, startet er nach einem Absturz oder Stromausfall neu.
Ich habe das gleiche Setup auf zwei Rechnern aufgebaut, einer günstigen Cloud-VPS und dem Mac Mini auf meinem Schreibtisch, damit ich den gesamten Weg lückenlos dokumentieren kann. Es ist ein Weg. Der Rechner ändert nur zwei Dinge: den Installationsbefehl und den Teil, der das Gateway am Leben hält. Alles dazwischen ist identisch.
Alles unten lief auf meiner eigenen Hardware. Der Linux-Pfad ist eine Hetzner CX23 (x86, 2 vCPU, 4 GB RAM, 40 GB Festplatte) mit Ubuntu 24.04.4 LTS – der Mac-Pfad ist ein Mac Mini M4 mit macOS 15. Beide liefen mit Hermes Agent v0.16.0.
Was du am Ende haben wirst
- Hermes Agent installiert, läuft als normaler Benutzer, nicht als root
- Ein Telegram-Bot, den du von deinem Handy aus anschreibst, nur auf dein Konto beschränkt
- Das Gateway läuft als verwalteter Dienst, sodass es nach einem Absturz oder Neustart zurückkommt
- Auf der VPS eine gehärtete Box: Nur-Schlüssel-SSH, kein Root-Login, eine Firewall
Wähle deine Box
Eine VPS ist der günstigste Einstieg. Jede x86-Box mit 4 GB RAM und etwa 20 GB freiem Speicherplatz läuft damit; meine ist eine Hetzner CX23 für 7,79 $/Monat (Hetzner US-Preise, 18.06.2026). Miete sie, und sie ist per Definition immer an.
Ein Mac, den du bereits besitzt, ist die andere Option. Jeder Apple-Silicon-Mac, der eingeschaltet bleibt, funktioniert, und die laufenden Kosten sind über das Modell hinaus null. Der Nachteil ist, dass die Haltbarkeitsebene unter macOS fummeliger ist, was ich am Ende behandle.
Du brauchst einen SSH-Schlüssel auf deinem eigenen Rechner (ssh-keygen -t ed25519, falls du keinen hast), ein Telegram-Konto und ein Modell für den Agenten. Diese Anleitung verweist auf Nous Portal, das OAuth verwendet, sodass kein API-Schlüssel in einer Datei gespeichert werden muss. Hermes benötigt ein Modell mit mindestens 64k Kontext.
Schritt 1: Die Box vorbereiten
auf einer VPS
Erstelle den Server bei deinem Anbieter: Ubuntu 24.04, eine x86-Instanz (nicht Arm, siehe Kostenhinweis), und füge bei der Erstellung deinen öffentlichen SSH-Schlüssel ein.
Eine frische öffentliche Box braucht ein paar Minuten Härtung, bevor du einen Agenten darauf setzt. Das secure-box.sh-Skript im Rezept erledigt das in einem Durchgang: ein apt-Upgrade, eine 2-GB-Swap-Datei, einen Nicht-Root-Sudo-Benutzer mit deinem Schlüssel, Nur-Schlüssel-SSH mit deaktiviertem Root-Login und eine Firewall, die nur SSH zulässt. Bearbeite die beiden Variablen oben, kopiere es und führe es als root aus:
1scp secure-box.sh root@<deine-vps-ip>:2ssh root@<deine-vps-ip> 'bash secure-box.sh'
Dieses Ubuntu-Image wurde mit aktivierter PasswordAuthentication ausgeliefert, obwohl ich die Box mit einem SSH-Schlüssel erstellt hatte. Das Skript schaltet es aus. Bevor du die Root-Sitzung schließt, öffne ein zweites Terminal und bestätige, dass sich der neue Benutzer anmelden kann, damit dich ein Fehler nicht aussperrt:
1ssh hermes@<deine-vps-ip>
Ab hier bist du hermes, nicht root.
auf einem Mac
Kein Härtungsdurchgang. Es ist dein Rechner in deinem eigenen Netzwerk, keine öffentliche Box. Installiere Homebrew, falls du es nicht hast (der Installer verwendet es im nächsten Schritt), und du bist bereit.
Schritt 2: Hermes installieren
Die Installation ist ein Befehl, derselbe auf beiden Rechnern, ausgeführt als dein normaler Benutzer:
1curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash2source ~/.bashrc3hermes --version
Der Installer erkennt dein Betriebssystem und zieht seine eigene Toolchain (uv, Python 3.11, Node.js 22, ripgrep, ffmpeg, ein Playwright-Chromium für Browser-Tools) in ~/.hermes, sodass er dein System-Python nie berührt. Auf meiner Hetzner-Box landete Hermes Agent v0.16.0 auf Python 3.11.15.
Dies ist der schwere Schritt. Auf der VPS ging der Speicherplatz von 1,2 GB belegt auf 7,8 GB, etwa 6,6 GB, der größte Teil davon die Browser-Engine und Node. Plane 20 GB frei ein und mach dir keine Sorgen. Wenn es über einen einfachen SSH-Befehl ohne Terminal ausgeführt wird, gibt der Installer "Setup wizard skipped (no terminal available)" aus, was in Ordnung ist, das Setup ist der nächste Schritt.
Auf einem Mac läuft der gleiche Befehl, mit einer Einschränkung: Installiere zuerst Homebrew. Mit vorhandenem Homebrew zieht der Installer git und seine Abhängigkeiten ohne Aufforderung. Ohne Homebrew fällt er auf die Apple Command Line Tools zurück, die einen macOS-Dialog öffnen können, den du anklicken musst, und ein Dialog ist über SSH nicht gut (das liegt im macOS-Zweig des Installers). Danach ist es der gleiche Ablauf wie oben.
Schritt 3: Auf ein Modell ausrichten
1hermes setup --portal
Dies ist OAuth gegen Nous Portal: Es gibt eine URL und einen Code aus, du genehmigst es im Browser, und jetzt spricht die Box mit einem Modell, ohne dass ein API-Schlüssel in einer Datei liegt. Nous Portal hat einen kostenlosen Tarif, und ich habe das Ganze mit einem kostenlosen Modell betrieben. Wenn du lieber deinen eigenen Anbieter mitbringen möchtest, führe hermes model aus und wähle einen aus; der Schlüssel liegt dann in ~/.hermes/.env.
Schritt 4: Mit ihm sprechen
auf einer VPS
Sobald deine SSH-Verbindung abbricht, stirbt eine Vordergrundsitzung mit ihr. tmux hält die Sitzung am Leben: Starte in tmux, trenne die Verbindung, und es läuft weiter.
1sudo apt-get install -y tmux2tmux new -s hermes # dann, darin: hermes
Trenne die Verbindung mit Strg-b und dann d, und verbinde dich später von überall wieder:
1ssh hermes@<deine-vps-ip>2tmux attach -t hermes
Der erste Start des interaktiven Agenten dauert einen Moment. Meiner verbrachte etwa 30 Sekunden damit, das Modell und die Fähigkeiten zu laden, bevor die Eingabeaufforderung erschien. Sobald er läuft, funktionieren die Schrägstrich-Befehle.
/goal ist der, den es sich zu zeigen lohnt: Er setzt ein dauerhaftes Ziel, an dem der Agent über mehrere Runden hinweg arbeitet, wobei ein Bewertungsmodell nach jeder Runde prüft, ob es erledigt ist.
1/goal Überprüfe den gesamten RAM und freien Speicherplatz dieser Box mit Shell-Tools, melde dann beides in einer Zeile und markiere das Ziel als erledigt
Meiner führte den Shell-Befehl selbst aus und kam mit "VPS total RAM: 3.7Gi, free disk space: 28G" in etwa 15 Sekunden zurück. Das ist der Agent, der seine eigenen Werkzeuge verwendet.
Halte zwei Konzepte auseinander: tmux hält eine interaktive Sitzung über eine abgebrochene SSH-Verbindung hinweg offen, aber nicht über einen Neustart hinweg. Für ein unbeaufsichtigtes Gateway, das einen Neustart überlebt, möchtest du einen verwalteten Dienst, das ist Schritt 6.
auf einem Mac
Du sitzt am Rechner, also kannst du hermes in einem Terminal ausführen. tmux hilft immer noch, wenn du dich von deinem Laptop aus per SSH einloggst, ist aber hier optional.
Schritt 5: Das Telegram-Gateway
Dieser Teil ist auf beiden Rechnern identisch. Erstelle einen Bot: Schicke @BotFather auf Telegram eine Nachricht, sende /newbot und kopiere das Token. Hole deine numerische Benutzer-ID von @userinfobot. Konfiguriere dann das Gateway:
1hermes gateway setup
Wähle Telegram, füge das Token ein und setze die erlaubten Benutzer auf deine numerische ID, sodass nur du mit ihm sprechen kannst. Das Token landet in ~/.hermes/.env, der Rest in ~/.hermes/gateway.json.
Das Setup schreibt nur die Konfiguration. Es startet nichts, also bleibt der Bot stumm, und das überrascht Leute: Es pollt noch nichts bei Telegram. Starte es einmal im Vordergrund, um zu überprüfen, ob es sich verbindet:
1hermes gateway run
Du möchtest im Log sehen:
1gateway.run: Connecting to telegram...2[Telegram] Connected to Telegram (polling mode)3gateway.run: ✓ telegram connected
Polling-Modus bedeutet, dass das Gateway Telegram kontaktiert; nichts verbindet sich zu deiner Box, weshalb die Firewall außer SSH keinen eingehenden Port benötigt. Schicke deinem Bot eine Nachricht; er sollte antworten. Stoppe dann das Vordergrund-Gateway mit Strg-C, da du nicht zwei Dinge gleichzeitig dasselbe Token pollen lassen kannst, und der nächste Schritt führt es als Dienst aus.
Schritt 6: Einen Neustart überleben lassen
Dies ist die eine Stelle, an der sich die beiden Rechner unterscheiden.
auf einer VPS: systemd
hermes gateway install registriert das Gateway als systemd-Dienst, sodass es bei einem Absturz neu startet und nach einem Neustart zurückkommt. In dieser Version stellt der Installer zwei [Y/n]-Fragen und es gibt kein Flag, um sie zu überspringen. Wenn du es über einen nicht-interaktiven SSH-Befehl ausführst, was beim Skripten einer Box natürlich ist, erhält es keine Antwort, bricht ab und installiert nichts. Gib die Antworten über die Standardeingabe ein:
1printf 'n\nY\n' | hermes gateway install
Die beiden Fragen sind "Gateway jetzt starten?" und "Automatisch beim Login/Start starten?". Das n und dann Y bedeutet: Starte es jetzt nicht, aber aktiviere es beim Start. Der Installer aktiviert auch das User-Session-Lingering, das es einem Benutzerdienst ermöglicht, zu laufen, bevor du dich angemeldet hast. Bestätige es, denn das macht "überlebt Neustart" wahr und nicht nur "überlebt Abmeldung":
1loginctl show-user $USER -p Linger # sollte: Linger=yes
Starte es und überprüfe es:
1hermes gateway start2systemctl --user status hermes-gateway
Du möchtest active (running) und NRestarts=0. Auf meiner Box verbrauchte das Gateway etwa 280 MB und der gesamte Rechner lag bei etwa 556 MB, bequem auf 4 GB.
Jetzt der echte Test. Starte neu und fasse es nicht an:
1sudo reboot
Meiner kam in etwa 15 Sekunden zurück, das Gateway hatte von selbst gestartet, sich wieder mit Telegram verbunden und die nächste Nachricht mit dem vollständigen Gesprächsverlauf von vor dem Neustart beantwortet. Das ist der springende Punkt.
auf einem Mac: launchd und ein Watchdog
macOS verwendet launchd, nicht systemd, und es gibt eine Falle. Unter macOS 15 mit Hermes v0.16.0 kann hermes gateway start fehlschlagen, den launchd-Dienst zu registrieren, und fällt, ohne dich zu informieren, auf einen unbeaufsichtigten Hintergrundprozess zurück. Du siehst das:
1Bootstrap failed: 5: Input/output error2⚠ launchd kann das Gateway auf dieser macOS-Version nicht verwalten (launchctl exit 5)3✓ Gateway stattdessen als Hintergrundprozess gestartet4 Es wird NICHT automatisch beim Login starten oder bei einem Absturz neu starten.
Wenn du vorher einen funktionierenden launchd-Job hattest, hat der Befehl ihn entladen, und der Fallback läuft einwandfrei, bis zum ersten Absturz oder Neustart, dann ist dein Agent weg, ohne dass du benachrichtigt wirst. Rohes launchctl funktioniert dort, wo die CLI versagt, auch über SSH:
1launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.hermes.gateway.plist2launchctl print gui/$(id -u)/ai.hermes.gateway | grep state # sollte: state = running
Die plist startet das Gateway beim Login, startet es aber bei einem Absturz nicht neu. Ein Cron-Watchdog schließt beide Lücken, und Cron läuft beim Start ohne erforderlichen Login. Das Rezept enthält gateway-watchdog.sh; es überprüft alle 5 Minuten, ob der Gateway-Prozess noch lebt, und startet ihn bei Bedarf neu. Installiere es in einem Zeitplan:
1(crontab -l 2>/dev/null; echo '*/5 * * * * $HOME/scripts/gateway-watchdog.sh >/dev/null 2>&1') | crontab -
Ich habe beobachtet, wie diese Sequenz ein herabgestuftes Gateway auf meinem eigenen Mac Mini wiederhergestellt hat. Starte es neu und bestätige, dass das Gateway innerhalb von fünf Minuten ohne Anmeldung zurück ist.
Überprüfe dein Setup
- Der Dienst läuft:
systemctl --user status hermes-gatewayunter Linux (active (running)), oderlaunchctl print gui/$(id -u)/ai.hermes.gateway | grep stateunter macOS (state = running) - Schicke deinem Bot eine Nachricht: Er antwortet dir und ignoriert jeden, der nicht in deinen erlaubten Benutzern ist
- Unter Linux zeigt
loginctl show-user [$USER](https://x.com/search?q=%24USER&src=cashtag_click) -p LingerLinger=yes - Starte die Box neu, warte, schicke dem Bot erneut eine Nachricht, ohne dich wieder anzumelden: Er antwortet
Kosten
Auf der VPS ist die Box die einzige Ausgabe. Meine ist eine Hetzner CX23 für 0,012 $/Stunde, gedeckelt bei 7,79 $/Monat (Hetzner US-Preise, 18.06.2026; die EU-CX22 hat die gleiche Form und ist günstiger).
Auf dem Mac ist es ein Rechner, den du bereits besitzt, null zusätzliche Dienste. Das Modell ist in beiden Fällen im kostenlosen Tarif von Nous Portal kostenlos.
Hier ist der Speicher nicht die Grenze: Das Gateway verbrauchte etwa 280 MB, die gesamte Box etwa 556 MB, also reicht 1 GB RAM völlig aus. Die Festplatte ist die eigentliche Grenze: Die Installation ist etwa 6,6 GB groß, also ist ein 1-GB- oder 10-GB-Image knapp bemessen, gib ihr 20 GB. Und verwende x86, das ist die sichere Wahl.
Führe es selbst aus, und was als Nächstes kommt
Beide Rechner haben ein vollständiges Rezept mit den genauen Skripten, die sofort ausführbar sind:
- Der VPS-Pfad: cheap-vps
- Der Mac-Pfad: mac-mini-24-7
Du hast jetzt einen ständig aktiven Agenten auf Telegram, der einen Neustart überlebt.
Der nächste Flightplan baut darauf auf: Geplante Aufgaben, die dich nur benachrichtigen, wenn etwas wichtig ist, ein git-synchronisierter Arbeitsbereich, den der Agent liest und schreibt, und der Entwurf-und-Freigabe-Ablauf, der bei jeder öffentlichen Aktion einen Menschen im Prozess hält.
Danke fürs Lesen





