Hermes Agent: Die Praktiker-Referenz (2026)
# v0.13 Tenacity bringt Multi-Agent-Kanban mit Heartbeat- und Zombie-Erkennung, /goal Ralph-Loop-Locking, video_analyze, xAI Custom Voices TTS, Internationalisierung in 7 Sprachen, Google Chat als 20. Plattform, ProviderProfile mit pluggable Providern, automatische Sitzungsfortsetzung, Checkpoints v2 sowie 8 P0-Sicherheitslücken-Schließungen.
TL;DR: Hermes Agent ist ein Open-Source-Self-Improving-AI-Agent von Nous Research. Er läuft als CLI und als Multi-Plattform-Messaging-Gateway, speichert eine dauerhafte Identität sowie persistenten Speicher auf der Festplatte, aggregiert Skills, die sich mit der Nutzung verbessern, und funktioniert mit jedem OpenAI-kompatiblen LLM-Provider — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, Hugging Face, Google oder Ihrem eigenen selbst gehosteten Endpoint.12 Die größte Hürde für die meisten neuen Benutzer ist die Provider-Authentifizierung: Hermes unterstützt rund 19 erstklassige Provider sowie benutzerdefinierte Endpoints und drei verschiedene Auth-Pfade (API-Schlüssel in
.env, OAuth viahermes modeloder benutzerdefinierter Endpoint inconfig.yaml). Das Auth-Modell sollten Sie zuerst verstehen — alles andere ergibt sich daraus, welcher Provider aufgelöst wird.
Hermes Agent arbeitet als vollwertige Agent-Runtime, nicht als Chat-Wrapper. Er liest Ihr Dateisystem, führt Befehle in Sandbox-Backends aus, scrapt das Web, spawnt Subagenten, führt geplante Cron-Jobs aus, kommuniziert mit Telegram/Discord/Slack/WhatsApp/Signal/E-Mail über einen einzigen Gateway-Prozess und erstellt aus Erfahrung eigene Skills.1 Die CLI ist ein Terminal-UI, das auf einem Conversation Loop in run_agent.py aufbaut; das Gateway ist ein langlaufender Prozess, der Nachrichten von Messaging-Plattformen durch denselben Conversation Loop routet.3
Der Unterschied zwischen gelegentlicher und expertenhafter Hermes-Nutzung liegt in fünf Systemen. Beherrschen Sie diese, wird Hermes zum Force Multiplier:
- Provider-Auflösung: Wie Auth-Flows auf API-Aufrufe abgebildet werden
- Konfigurationshierarchie:
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - Tool- und Toolset-System: Was der Agent tun kann, pro Plattform gesteuert
- Skills-System: Prozedurales Gedächtnis, das der Agent erstellt und weiterentwickelt
- Gateway + Cron + Profile: Hermes dort betreiben, wo Sie leben — nicht nur dort, wo Sie sind
Wichtigste Erkenntnisse
- Provider-Auth umfasst drei Pfade, nicht einen. API-Schlüssel in
.env, OAuth viahermes model/hermes authoder benutzerdefinierter Endpoint inconfig.yaml. Wählen Sie den Pfad, der zu Ihrem Provider passt — nicht den, der vertraut wirkt. - Provider zu wechseln ist ein einziger Befehl.
hermes modelführt Sie interaktiv durch jeden unterstützten Provider, einschließlich OAuth-Logins, und/model provider:modelwechselt mitten in der Session, ohne den Verlauf zu verlieren.2 - Zwei Dateien bilden die benutzerseitig editierbare Konfigurationsoberfläche.
~/.hermes/config.yamlenthält Einstellungen und~/.hermes/.enventhält Secrets.auth.json,SOUL.md,MEMORY.mdundskills/werden direkt von Hermes verwaltet —SOUL.mdkönnen Sie von Hand bearbeiten, der Rest wird vom Agent selbst angefasst.4 - Hermes ist der Nachfolger von OpenClaw. Bei einer Migration importiert
hermes claw migrateautomatisch über 30 Zustandskategorien.5 - Die Servicequalität hängt von Ihrem Auxiliary-Modell ab. Vision, Web-Zusammenfassung, Kompression und Memory-Flush nutzen alle ein separates Auxiliary-LLM. Standardmäßig ist dies Gemini Flash via Auto-Detection (OpenRouter → Nous → Codex) — wenn keiner davon konfiguriert ist, verschlechtern sich diese Funktionen stillschweigend, bis Sie die Auxiliary-Slots auf Ihren Hauptprovider umlenken.4
Jeder folgende Abschnitt stützt sich auf die Upstream-Dokumentation unter hermes-agent.nousresearch.com/docs und den Quellbaum unter github.com/NousResearch/hermes-agent. Jede sachliche Aussage hat eine Fußnote, die auf die spezifische Upstream-Seite verweist, von der sie stammt.
Wählen Sie Ihren Pfad
| Was Sie brauchen | Hier entlang |
|---|---|
| Hermes installieren | Installation — Einzeilen-Installer oder manuelle Schritte |
| Bei einem Provider anmelden | Authentication & Providers — der Abschnitt, dessentwegen Sie hier sind |
| Modelle mitten in der Session wechseln | The hermes auth Command und Custom & Self-Hosted Endpoints für /model-Syntax |
| Ein lokales LLM ausführen | Custom & Self-Hosted Endpoints — Ollama, vLLM, SGLang, llama.cpp, LM Studio |
| Messaging-Plattformen anbinden | Messaging Gateway — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat (insgesamt 20) |
| Einen Skill schreiben oder installieren | Skills System — Progressive Disclosure + Skill-Hub |
| Tiefenreferenz für jeden CLI-Befehl | Lesen Sie weiter — und springen Sie direkt zu CLI Commands |
Wie Hermes funktioniert: Das mentale Modell
Hermes basiert auf einer einzigen Konversationsschleife, die jeder Einstiegspunkt aufrufen kann. Die Einstiegspunkte sind die CLI (cli.py), das Messaging-Gateway (gateway/run.py), der ACP-Adapter für die Editor-Integration, der Batch-Runner und ein API-Server.3 Alle rufen letztlich AIAgent.run_conversation() in run_agent.py auf, wobei folgende Schritte durchlaufen werden:
- Aufbau des System-Prompts aus
SOUL.md,MEMORY.md,USER.md, Skills, Kontextdateien und Tool-Anweisungen überprompt_builder.py3 - Auflösung des Runtime-Providers über
runtime_provider.py— in diesem Schritt werden Authentifizierung, Basis-URL und API-Modus bestimmt3 - Aufruf des Providers in einem von drei API-Modi:
chat_completions,codex_responsesoderanthropic_messages3 - Weiterleitung aller zurückgegebenen Tool-Aufrufe über
model_tools.pyund die zentrale Tool-Registry (tools/registry.py)3 - Wiederholung der Schleife, bis das Modell eine endgültige Antwort liefert; anschließend wird die Sitzung in SQLite mit FTS5 persistiert3
Dieses Verständnis der Schleife ist entscheidend, da sich jede Funktion — Personalities, Memory, Skills, Komprimierung, Fallback — an eine dieser Stufen anhängt. Wenn Sie sich bei einem Konfigurationsschlüssel fragen, was er bewirkt, lautet die Antwort in der Regel: „Er ist ein Stellrad an Stufe 1, 2, 3 oder 4 der obigen Schleife.”
Plattformunabhängiger Kern. Eine einzige AIAgent-Klasse bedient CLI, Gateway, ACP, Batch und API-Server. Plattformspezifische Unterschiede befinden sich im Einstiegspunkt, nicht im Agenten selbst.3 Deshalb funktionieren dieselben Slash-Befehle sowohl im Terminal als auch in Telegram — sie werden über eine gemeinsame COMMAND_REGISTRY in hermes_cli/commands.py verteilt.6
Die Verzeichnisstruktur ist das System. Hermes speichert alles unter ~/.hermes/ (oder $HERMES_HOME für nicht standardmäßige Profile):4
~/.hermes/
├── config.yaml # Settings (model, terminal, TTS, compression, etc.)
├── .env # API keys and secrets
├── auth.json # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md # Primary agent identity (slot #1 in system prompt)
├── memories/ # Persistent memory (MEMORY.md, USER.md)
├── skills/ # Bundled + agent-created + hub-installed skills
├── cron/ # Scheduled jobs
├── sessions/ # Gateway session state
└── logs/ # agent.log, gateway.log, errors.log (secrets auto-redacted)
Jede der oben genannten Dateien hat eine spezifische Aufgabe; keine davon überschneidet sich mit einer anderen. Wenn Sie wissen möchten, „wo speichert Hermes X”, ist es eine dieser Dateien.
Installation
Das Einzeiler-Installationsskript ist der Weg für 95 % aller Benutzer. Es kümmert sich um Python, uv, Node.js, ripgrep, ffmpeg, das Repository-Klonen, die virtuelle Umgebung und den globalen hermes-Befehl.7
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Funktioniert unter Linux, macOS, WSL2 und Android/Termux (das Installationsskript erkennt Termux automatisch und wechselt zu einem getesteten Android-Bundle).7 Natives Windows wird nicht unterstützt — installieren Sie WSL2 und führen Sie den obigen Befehl von dort aus.7
Nach Abschluss der Installation:
source ~/.bashrc # or ~/.zshrc
hermes # Start chatting
Die einzige Voraussetzung ist git. Das Installationsskript stellt automatisch Python 3.11 über uv bereit (kein sudo erforderlich), dazu Node.js v22 (für Browser-Automatisierung und die WhatsApp-Bridge), ripgrep und ffmpeg.7
Installation überprüfen
hermes version # Check version
hermes doctor # Diagnose config/dependency issues
hermes status # Show current configuration + auth state
hermes dump # Copy-pasteable setup summary for debugging
hermes doctor zeigt Ihnen genau, was fehlt und wie Sie es beheben können.7 hermes dump ist der Diagnosebefehl, den Sie in ein GitHub-Issue oder einen Discord-Thread einfügen sollten, wenn Sie um Hilfe bitten — eine Klartextzusammenfassung Ihres gesamten Setups mit geschwärzten Geheimnissen.8
Manuelle Installation
Wenn Sie die volle Kontrolle benötigen — eine bestimmte Python-Version, spezifische Extras, Nix/NixOS-Integration — ist der manuelle Ablauf Schritt für Schritt in der Upstream-Installationsanleitung dokumentiert.7 Wichtige optionale Extras, die Sie mit uv pip install -e ".[<extras>]" kombinieren können:
| Extra | Was es hinzufügt |
|---|---|
all |
Alles Nachfolgende |
messaging |
Telegram- & Discord-Gateway |
cron |
Cron-Ausdrucksanalyse |
cli |
Terminal-Menü-UI für den Einrichtungsassistenten |
modal |
Modal-Cloud-Ausführungs-Backend |
voice |
CLI-Mikrofoneingabe + Audiowiedergabe |
tts-premium |
ElevenLabs-Premium-Stimmen |
honcho |
KI-natives Memory (Honcho-Integration) |
mcp |
Model Context Protocol-Unterstützung |
homeassistant |
Home Assistant-Integration |
acp |
ACP-Editor-Integrationsunterstützung |
slack |
Slack-Messaging |
pty |
PTY-Terminal-Unterstützung (interaktive CLI-Tools) |
dev |
pytest & Test-Utilities |
termux |
Getestetes Android-Bundle (enthält cron, cli, pty, mcp, honcho, acp) |
Der Termux-Installationsbefehl unterscheidet sich — er verwendet pip mit einer Constraints-Datei, nicht uv pip:
python -m pip install -e ".[termux]" -c constraints-termux.txt
Der Grund dafür ist, dass .[all] unter Android faster-whisper über das voice-Extra einbindet, welches von ctranslate2-Wheels abhängt, die nicht für Android veröffentlicht werden.7
Authentifizierung & Provider
Hermes unterstützt rund 19 erstklassige Provider sowie benutzerdefinierte Endpunkte und drei verschiedene Authentifizierungspfade. Hier finden Sie die gesamte Auth-Oberfläche, nach Pfad geordnet, damit Sie den passenden für Ihre Situation finden.
Die drei Authentifizierungspfade
Jeder Provider in Hermes lässt sich einem von drei Authentifizierungsmustern zuordnen:
Pfad 1 — API-Schlüssel in .env. Hinterlegen Sie Ihren Schlüssel in ~/.hermes/.env, und Hermes liest ihn beim Start ein. Verwendet von OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (sowie MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini und den meisten Drittanbietern.2
Pfad 2 — OAuth über hermes model oder hermes auth. Startet einen Device-Code-Flow, öffnet einen Browser und speichert die Anmeldedaten in ~/.hermes/auth.json (kann auch vorhandene Anmeldedaten aus Tools wie Claude Code oder Codex CLI importieren). Verwendet von Nous Portal, OpenAI Codex (ChatGPT-Konto), GitHub Copilot und Anthropic (Claude Pro/Max).2
Pfad 3 — Benutzerdefinierter Endpunkt in config.yaml. Für jede OpenAI-kompatible API — Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM-Proxy, Together AI, Groq, Azure OpenAI oder Ihren eigenen selbst gehosteten Server. Einmalig über hermes model → Custom endpoint konfiguriert und anschließend in config.yaml persistiert.2
Die vollständige Provider-Matrix
Dies ist die komplette Liste der erstklassigen Provider mit dem genauen Einrichtungsablauf für jeden einzelnen.2
| Provider | Auth-Pfad | Einrichtung |
|---|---|---|
| Nous Portal | OAuth | hermes model (OAuth-Login, abonnementbasiert) |
| OpenAI Codex | OAuth | hermes model (ChatGPT-Device-Code, nutzt Codex-Modelle) |
| GitHub Copilot | OAuth oder Token | hermes model (OAuth-Device-Code) oder COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token |
| GitHub Copilot ACP | Lokaler Subprozess | hermes model (erfordert copilot CLI in PATH + copilot login) |
| Anthropic | OAuth oder API-Schlüssel | hermes model (bevorzugt Claude Code-Anmeldedaten) oder ANTHROPIC_API_KEY oder ANTHROPIC_TOKEN Setup-Token |
| OpenRouter | API-Schlüssel | OPENROUTER_API_KEY in ~/.hermes/.env |
| AI Gateway (Vercel) | API-Schlüssel | AI_GATEWAY_API_KEY in ~/.hermes/.env (Provider: ai-gateway) |
| z.ai / GLM (ZhipuAI) | API-Schlüssel | GLM_API_KEY in ~/.hermes/.env (Provider: zai) |
| Kimi / Moonshot | API-Schlüssel | KIMI_API_KEY in ~/.hermes/.env (Provider: kimi-coding) |
| MiniMax (global) | API-Schlüssel | MINIMAX_API_KEY in ~/.hermes/.env (Provider: minimax) |
| MiniMax China | API-Schlüssel | MINIMAX_CN_API_KEY in ~/.hermes/.env (Provider: minimax-cn) |
| Alibaba Cloud (Qwen) | API-Schlüssel | DASHSCOPE_API_KEY in ~/.hermes/.env (Provider: alibaba, Aliase: dashscope, qwen) |
| Kilo Code | API-Schlüssel | KILOCODE_API_KEY in ~/.hermes/.env (Provider: kilocode) |
| OpenCode Zen | API-Schlüssel | OPENCODE_ZEN_API_KEY in ~/.hermes/.env (Provider: opencode-zen) |
| OpenCode Go | API-Schlüssel | OPENCODE_GO_API_KEY in ~/.hermes/.env (Provider: opencode-go) |
| DeepSeek | API-Schlüssel | DEEPSEEK_API_KEY in ~/.hermes/.env (Provider: deepseek) |
| Hugging Face | API-Schlüssel | HF_TOKEN in ~/.hermes/.env (Provider: huggingface, Alias: hf) |
| Google / Gemini | API-Schlüssel | GOOGLE_API_KEY oder GEMINI_API_KEY in ~/.hermes/.env (Provider: gemini) |
| xAI (Grok) | Nativer Provider | Erstklassiger Provider mit direktem API-Zugang und Modellkatalog (v0.9.0+). Aktiviert Prompt-Caching automatisch über den Header x-grok-conv-id.216 |
| xAI Custom Voices | API-Schlüssel | TTS-Provider mit Voice-Cloning. Neu in v0.13.0; konfigurieren Sie ihn unter tts: in config.yaml und hinterlegen Sie den xAI-Schlüssel in .env.18 |
| Xiaomi MiMo | Nativer Provider | Erstklassiger Provider mit Einrichtungsassistent und Modellkatalog. Kostenloses MiMo v2 Pro im Nous Portal für Hilfsaufgaben (v0.9.0+).1615 |
| Google AI Studio | API-Schlüssel | GOOGLE_API_KEY oder GEMINI_API_KEY in ~/.hermes/.env. Direkter Gemini-Zugriff mit automatisch erkannten Kontextlängen über die models.dev-Registry (v0.8.0+).15 |
| Qwen | OAuth | OAuth-Provider mit Portal-Request-Unterstützung (v0.8.0+).15 |
| Custom endpoint | config.yaml | hermes model → “Custom endpoint” (gespeichert in config.yaml) |
Anthropic: Drei Authentifizierungsmethoden
Anthropic erhält einen eigenen Abschnitt, weil Hermes drei verschiedene Wege in Claude unterstützt — und die Wahl des richtigen Wegs ist entscheidend. Aus der Upstream-Dokumentation:2
# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6
# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model
# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic
# Auto-detect Claude Code credentials
hermes chat --provider anthropic # reads Claude Code files automatically
Wenn Sie Anthropic OAuth über hermes model wählen, bevorzugt Hermes den Anmeldedatenspeicher von Claude Code, statt das Token in ~/.hermes/.env zu kopieren. Damit bleiben aktualisierbare Claude-Anmeldedaten aktualisierbar.2 Falls Sie Claude Code ohnehin auf derselben Maschine nutzen, ist dies der sauberste Weg.
Um Anthropic dauerhaft in config.yaml festzulegen:
model:
provider: "anthropic"
default: "claude-sonnet-4-6"
--provider claude und --provider claude-code funktionieren ebenfalls als Kurzschreibweise für --provider anthropic.2
GitHub Copilot: Zwei Modi
Copilot wird in zwei Modi unterstützt: direkte Copilot-API (empfohlen) und Copilot ACP (das die lokale Copilot-CLI als Subprozess startet).2
# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4
# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp
Die Authentifizierung wird laut Upstream-Dokumentation in dieser Reihenfolge geprüft:2
1. Umgebungsvariable COPILOT_GITHUB_TOKEN
2. Umgebungsvariable GH_TOKEN
3. Umgebungsvariable GITHUB_TOKEN
4. Fallback gh auth token CLI
5. OAuth-Device-Code-Login über hermes model
Der Token-Typ ist entscheidend. Die Copilot-API unterstützt keine klassischen Personal Access Tokens (ghp_*). Unterstützt werden OAuth-Tokens (gho_*), Fine-Grained PATs (github_pat_* mit der Berechtigung Copilot Requests) und GitHub-App-Tokens (ghu_*). Liefert gh auth token ein ghp_*-Token zurück, authentifizieren Sie sich stattdessen über hermes model per OAuth.2
Chinesische KI-Provider (erstklassige Unterstützung)
Hermes verfügt über integrierte Unterstützung für z.ai/GLM, Kimi/Moonshot, MiniMax (globale und chinesische Endpunkte) sowie Alibaba Cloud mit dedizierten Provider-IDs.2
# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5 # Requires: GLM_API_KEY
# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding # Requires: KIMI_API_KEY
# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7 # Requires: MINIMAX_API_KEY
# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7 # Requires: MINIMAX_CN_API_KEY
# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus # Requires: DASHSCOPE_API_KEY
Basis-URLs lassen sich über die Umgebungsvariablen GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL oder DASHSCOPE_BASE_URL überschreiben.2
Z.AI erkennt den Endpunkt automatisch. Beim Einsatz des z.ai/GLM-Providers prüft Hermes mehrere Endpunkte (global, China, Coding-Varianten), um einen zu finden, der Ihren API-Schlüssel akzeptiert. Der funktionierende Endpunkt wird automatisch zwischengespeichert — für die meisten Benutzer ist GLM_BASE_URL nicht nötig.2
xAI (Grok) aktiviert Prompt-Caching automatisch. Enthält die Basis-URL x.ai, sendet Hermes bei jeder Anfrage den Header x-grok-conv-id, um innerhalb einer Konversationssitzung an denselben Server zu routen und zwischengespeicherte System-Prompts und Verlauf wiederzuverwenden.2 Automatisch; keine Konfiguration erforderlich.
Der Befehl hermes auth
hermes auth ist der Befehl zur Verwaltung von Anmeldedaten für Pools und OAuth-Anmeldedaten.6
hermes auth # Interactive wizard
hermes auth list # Show all credential pools
hermes auth list openrouter # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2 # Remove by index
hermes auth reset openrouter # Clear cooldowns
Über Anmeldedaten-Pools rotieren Sie mehrere API-Schlüssel oder OAuth-Tokens für denselben Provider — nützlich, um Rate-Limits über mehrere Schlüssel zu verteilen, ohne den Code zu ändern.6 Die Legacy-Befehle hermes login / hermes logout wurden entfernt; verwenden Sie stattdessen hermes auth.6
Benutzerdefinierte und selbst gehostete Endpunkte
Hermes funktioniert mit jedem OpenAI-kompatiblen API-Endpunkt. Implementiert ein Server /v1/chat/completions, können Sie Hermes darauf verweisen.2
Interaktive Einrichtung (empfohlen):
hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name
Manuelle config.yaml:
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
api_key: your-key-or-leave-empty-for-local
Beide Ansätze persistieren in config.yaml, das die alleinige Quelle der Wahrheit für Hauptmodell, Provider und Basis-URL ist.2 Die Legacy-Umgebungsvariablen OPENAI_BASE_URL und LLM_MODEL werden nicht mehr für die Konfiguration des Hauptmodells gelesen — verwenden Sie hermes model oder bearbeiten Sie config.yaml direkt.2 (OPENAI_BASE_URL + OPENAI_API_KEY werden weiterhin als Fallback für den Routing-Pfad des Hilfs-provider: "main" berücksichtigt; löschen Sie sie also nicht blind, wenn Sie sie dort einsetzen.)4
Benutzerdefinierte Endpunkte mitten in der Sitzung wechseln:
/model custom:qwen-2.5 # Custom endpoint with explicit model
/model custom # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5 # Named custom provider "local"
/model custom:work:llama3 # Named custom provider "work"
/model openrouter:claude-sonnet-4 # Back to a cloud provider
/model custom (ohne Modellnamen) fragt die /v1/models-API Ihres Endpunkts ab und wählt automatisch das Modell aus, sofern genau eines geladen ist — nützlich für lokale Server, die ein einzelnes Modell betreiben.2
Lokale LLM-Server (Einrichtungsvorlagen)
Die Upstream-Dokumentation enthält vollständige Einrichtungsanleitungen für Ollama, vLLM, SGLang, llama.cpp und LM Studio. Hier sind die zentralen Befehle, die Sie tatsächlich ausführen werden. Jeder ist darauf ausgelegt, einen funktionierenden Endpunkt zu erzeugen, auf den Hermes verweisen kann.2
Ollama — der einfachste lokale Weg, ohne Konfiguration:
ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve # Raise from 4k default
hermes model # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b
Wichtige Ollama-Falle: Ollama verwendet standardmäßig sehr niedrige Kontextlängen (4.096 Tokens bei unter 24 GB VRAM). Sie müssen diese über OLLAMA_CONTEXT_LENGTH oder eine Modelfile erhöhen — die OpenAI-kompatible API akzeptiert die Kontextlänge nicht vom Client, daher kann Hermes sie nicht für Sie setzen.2 Für den Einsatz als Agent setzen Sie mindestens 16k–32k.
vLLM — leistungsstarkes GPU-Serving:
pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--port 8000 \
--max-model-len 65536 \
--tensor-parallel-size 2 \
--enable-auto-tool-choice \
--tool-call-parser hermes
Tool-Calling erfordert --enable-auto-tool-choice und --tool-call-parser <name>. Unterstützte Parser: hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Ohne diese Flags kommen Tool-Aufrufe als reiner Text zurück.2
SGLang — schnelles Serving mit RadixAttention für KV-Cache-Wiederverwendung:
pip install "sglang[all]"
python -m sglang.launch_server \
--model meta-llama/Llama-3.1-70B-Instruct \
--port 30000 \
--context-length 65536 \
--tp 2 \
--tool-call-parser qwen
SGLang-Falle: Der Standardwert für max_tokens ist 128. Setzen Sie --default-max-tokens auf dem Server oder konfigurieren Sie model.max_tokens in config.yaml, falls Antworten abgeschnitten werden.2
llama.cpp / llama-server — CPU und Apple Silicon Metal:
./build/bin/llama-server \
--jinja -fa \
-c 32768 \
-ngl 99 \
-m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
--port 8080 --host 0.0.0.0
--jinja ist für Tool-Calling erforderlich. Ohne dieses Flag ignoriert llama-server den tools-Parameter komplett, und das Modell versucht, Tools aufzurufen, indem es JSON in seinen Antworttext schreibt — was Hermes nicht als tatsächliche Tool-Aufrufe interpretieren kann.2
LM Studio — Desktop-App mit GUI:
Starten Sie den Server aus der LM-Studio-App heraus (Tab „Developer” → „Start Server”) oder über CLI: lms server start (startet auf Port 1234) und lms load qwen2.5-coder --context-length 32768.2 Verweisen Sie anschließend hermes model auf http://localhost:1234/v1.
Wichtige LM-Studio-Falle: LM Studio liest die Kontextlänge aus den Modell-Metadaten, viele GGUF-Modelle melden jedoch Standardwerte von 2048 oder 4096. Setzen Sie die Kontextlänge stets ausdrücklich in den LM-Studio-Modelleinstellungen — klicken Sie auf das Zahnradsymbol neben der Modellauswahl, setzen Sie „Context Length” auf mindestens 16384 (idealerweise 32768) und laden Sie das Modell neu.2
Benannte benutzerdefinierte Provider
Wenn Sie mit mehreren benutzerdefinierten Endpunkten arbeiten (etwa einem lokalen Entwicklungsserver und einem entfernten GPU-Server), definieren Sie diese als benannte benutzerdefinierte Provider in config.yaml:2
custom_providers:
- name: local
base_url: http://localhost:8080/v1
# api_key omitted — Hermes uses "no-key-required" for keyless local servers
- name: work
base_url: https://gpu-server.internal.corp/v1
api_key: corp-api-key
api_mode: chat_completions # optional, auto-detected from URL
- name: anthropic-proxy
base_url: https://proxy.example.com/anthropic
api_key: proxy-key
api_mode: anthropic_messages # for Anthropic-compatible proxies
Anschließend wechseln Sie mitten in der Sitzung mit der Tripel-Syntax zwischen ihnen:
/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4
Sie können benannte benutzerdefinierte Provider auch im interaktiven Menü von hermes model auswählen.2
Pluggable-Provider-Architektur (v0.13.0+)
v0.13.0 liefert eine ProviderProfile-ABC plus ein Verzeichnis plugins/model-providers/ aus, sodass Inferenz-Provider von Drittanbietern ohne Kernanpassungen integriert werden können.18 Spricht ein Provider einen OpenAI-, Anthropic- oder Codex-kompatiblen API-Modus, können Sie eine ProviderProfile-Subklasse implementieren, die den Auth-Pfad, die Basis-URL, den Modellkatalog und die Caching-Header deklariert; Hermes löst sie über denselben runtime_provider.py-Pfad auf, den auch die integrierten Provider nutzen. Dies ist die architektonische Änderung hinter der Provider-Erweiterung in v0.13.0: Statt den Kerncode zu bearbeiten, um einen Provider hinzuzufügen, liefern Sie ein Plugin aus.
Erkennung der Kontextlänge
Zwei Einstellungen werden laut Upstream-Dokumentation regelmäßig verwechselt:2
context_length— das gesamte Kontextfenster (kombiniertes Token-Budget für Eingabe + Ausgabe, z. B. 1.000.000 für Claude Opus 4.7 oder 200.000 für Sonnet 4.6). Hermes nutzt diesen Wert, um zu entscheiden, wann der Verlauf komprimiert werden soll.model.max_tokens— die Ausgabe-Obergrenze (maximale Anzahl Tokens, die das Modell in einer einzelnen Antwort generieren darf). Hat nichts mit der Verlaufslänge zu tun.
Setzen Sie context_length, wenn die automatische Erkennung die Fenstergröße falsch ermittelt:
model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens
Hermes nutzt eine mehrstufige Auflösungskette zur Erkennung von Kontextfenstern: Config-Override → benutzerdefinierter Provider pro Modell → persistenter Cache → Endpunkt /models → Anthropic /v1/models → OpenRouter-API → Nous Portal → models.dev (community-gepflegte Registry für 3800+ Modelle) → Fallback-Standardwerte (128K).2 Das System ist provider-bewusst, sodass dasselbe Modell je nach Anbieter unterschiedliche Kontextgrenzen aufweisen kann (z. B. ist claude-opus-4.6 direkt bei Anthropic 1M groß, bei GitHub Copilot dagegen 128K).2
Provider-Rotation & Fallback
Anmeldedaten-Pools. Wenn Sie mehrere API-Schlüssel für denselben Provider haben, konfigurieren Sie über hermes auth eine Rotationsstrategie. So verteilen Sie Rate-Limits auf mehrere Schlüssel.6
Fallback-Modell. Konfigurieren Sie ein Backup-provider:model, auf das Hermes automatisch umschaltet, wenn Ihr Hauptmodell ausfällt (Rate-Limits, Serverfehler, Auth-Fehler):2
fallback_model:
provider: openrouter # required
model: anthropic/claude-sonnet-4 # required
# base_url: http://localhost:8000/v1 # optional, for custom endpoints
# api_key_env: MY_CUSTOM_KEY # optional, env var name
Der Fallback tauscht Modell und Provider mitten in der Sitzung aus, ohne Ihre Konversation zu verlieren. Er löst höchstens einmal pro Sitzung aus.2 Unterstützte Provider für den Fallback: openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, deepseek, ai-gateway, opencode-zen, opencode-go, kilocode, alibaba, custom.2
Hilfsmodelle
Hermes setzt schlanke „Hilfsmodelle” für Nebenaufgaben ein: Bildanalyse, Zusammenfassung von Webseiten, Analyse von Browser-Screenshots, Klassifizierung der Freigabe gefährlicher Befehle, Kontextkompression, Zusammenfassung der Sitzungssuche, Skill-Matching, MCP-Tool-Dispatch und Memory-Flush.4 Standardmäßig nutzen diese Gemini Flash über automatische Erkennung (OpenRouter → Nous → Codex).
Sie können konfigurieren, welches Modell und welcher Provider für jede Hilfsaufgabe verwendet wird. Jeder Hilfsslot nutzt dieselben drei Stellschrauben: provider, model, base_url.4
auxiliary:
vision:
provider: "auto" # "auto", "openrouter", "nous", "codex", "main", etc.
model: "" # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
base_url: "" # Custom OpenAI-compatible endpoint
api_key: "" # Falls back to OPENAI_API_KEY
timeout: 30
download_timeout: 30
web_extract:
provider: "auto"
model: ""
timeout: 360
approval:
provider: "auto"
model: ""
timeout: 30
compression:
timeout: 120
session_search: { provider: "auto", model: "", timeout: 30 }
skills_hub: { provider: "auto", model: "", timeout: 30 }
mcp: { provider: "auto", model: "", timeout: 30 }
flush_memories:{ provider: "auto", model: "", timeout: 30 }
Die Provider-Option "main" bedeutet „den Provider verwenden, den auch mein Hauptagent nutzt” — gültig ausschließlich in den Konfigurationen auxiliary:, compression: und fallback_model:. Sie ist nicht für Ihre Top-Level-Einstellung model.provider gültig. Verwenden Sie einen benutzerdefinierten OpenAI-kompatiblen Endpunkt als Hauptmodell, setzen Sie provider: custom in Ihrem model:-Abschnitt.4
Warum das wichtig ist: Falls Sie nur Anthropic OAuth konfiguriert haben (kein OpenRouter-Schlüssel), werden Bildanalyse, Web-Zusammenfassung und Kompression beeinträchtigt oder schlagen fehl, weil die standardmäßige Hilfs-Fallback-Kette zuerst OpenRouter versucht. Ergänzen Sie einen OPENROUTER_API_KEY für Hilfsaufgaben oder konfigurieren Sie jeden Hilfsslot so um, dass er Ihren Haupt-Provider nutzt:
auxiliary:
vision:
provider: "main"
web_extract:
provider: "main"
Dies ist die mit Abstand häufigste „Meine Funktionen funktionieren stillschweigend nicht”-Falle für neue Hermes-Benutzer.
Konfigurationssystem
Hermes verfügt über ein mehrschichtiges Konfigurationssystem. Das Verständnis der Vorrangregeln ist entscheidend, da höhere Schichten niedrigere überschreiben und eine der Schichten eine globale Provider-Registry ist, die in config.yaml nicht sichtbar ist.
Aufbau der Konfigurationsdateien
Gemäß der offiziellen Dokumentation bilden die folgenden Dateien eine Hermes-Konfiguration:4
~/.hermes/
├── config.yaml # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env # Secrets (API keys, bot tokens, passwords)
├── auth.json # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md # Primary agent identity (slot #1 in system prompt)
├── memories/ # Persistent memory (MEMORY.md, USER.md)
├── skills/ # Bundled + agent-created + hub-installed skills
├── cron/ # Scheduled jobs
├── sessions/ # Gateway session state
└── logs/ # agent.log, gateway.log, errors.log (secrets auto-redacted)
config.yaml vs. .env — wenn beide gesetzt sind, hat config.yaml bei nicht-geheimen Einstellungen Vorrang.4 Die Regel lautet:
- Geheimnisse (API-Schlüssel, Bot-Tokens, Passwörter) → .env
- Alles andere (Modell, Terminal-Backend, Komprimierungseinstellungen, Memory-Limits, Toolsets) → config.yaml
Geheimnisse können aus config.yaml mittels Shell-artiger Interpolation referenziert werden:4
auxiliary:
vision:
api_key: ${GOOGLE_API_KEY}
base_url: ${CUSTOM_VISION_URL}
delegation:
api_key: ${DELEGATION_KEY}
Konfiguration verwalten
hermes config # View current configuration
hermes config show # Same as above
hermes config edit # Open config.yaml in your editor
hermes config set KEY VAL # Set a specific value
hermes config path # Print the config file path
hermes config env-path # Print the .env file path
hermes config check # Check for missing options (after updates)
hermes config migrate # Interactively add missing options
Beispiele:4
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-... # Saves to .env
hermes config check und hermes config migrate sind die Befehle, die Sie nach jedem hermes update ausführen sollten — sie erkennen neu hinzugefügte Konfigurationsoptionen, die in Ihrer Datei noch fehlen.6
Vorrang der Konfiguration
Hermes lädt die Konfiguration aus mehreren Quellen. Wenn mehrere Quellen denselben Wert setzen, gewinnt die Quelle mit der höchsten Priorität:4
- CLI-Argumente —
hermes chat --model anthropic/claude-sonnet-4(Override pro Aufruf) - Umgebungsvariablen — werden beim Prozessstart angewendet
config.yaml— die primäre Einstellungsdatei.env— ausschließlich Geheimnisse- Eingebaute Standardwerte — werden angewendet, wenn nichts anderes einen Wert setzt
CLI-Flags gewinnen für den jeweiligen einzelnen Aufruf immer. config.yaml ist die langfristige Quelle der Wahrheit.
Lokalisierung (v0.13.0+)
v0.13.0 fügt 7 Sprachversionen für CLI- und Gateway-Meldungen hinzu: Chinesisch (Vereinfacht), Japanisch, Deutsch, Spanisch, Französisch, Ukrainisch und Türkisch.18 Die Dokumentation ist derzeit nur in zh-Hans lokalisiert. Die Sprache wird aus den Umgebungsvariablen LC_ALL / LANG oder einem expliziten locale:-Schlüssel in config.yaml ermittelt. Englisch bleibt die Standardsprache und die Quelle der Wahrheit für jede Zeichenkette, die noch nicht von einer Übersetzung abgedeckt ist.
Profile — Mehrere isolierte Hermes-Instanzen
Profile ermöglichen mehrere isolierte Hermes-Instanzen, jede mit eigener Konfiguration, eigenen Sessions, Skills, Memory und Gateway-PID. So können Sie „Arbeits-Hermes” und „Privat-Hermes” parallel betreiben, ohne dass eine Instanz den Zustand der anderen sieht.6
hermes profile list
hermes profile create work --clone # Clone from current profile
hermes profile use work # Set sticky default
hermes profile alias work --name h-work # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile" # One-off without switching
Jedes Profil erhält sein eigenes HERMES_HOME (standardmäßig ~/.hermes-<name>/), sodass mehrere Profile das Gateway gleichzeitig betreiben können, ohne sich gegenseitig zu beeinträchtigen.63
CLI-Befehle
Dieser Abschnitt dient als Praxisreferenz für die übergeordneten CLI-Befehle. Die verbindliche, aus dem Quellcode abgeleitete Referenz finden Sie in der upstream-Dokumentation CLI Commands Reference.6
Globale Optionen
hermes [global-options] <command> [subcommand/options]
| Option | Beschreibung |
|---|---|
--version, -V |
Version anzeigen und beenden |
--profile <name>, -p <name> |
Hermes-Profil auswählen |
--resume <session>, -r <session> |
Sitzung anhand von ID oder Titel fortsetzen |
--continue [name], -c [name] |
Letzte Sitzung fortsetzen (oder nach Titel suchen) |
--worktree, -w |
In einem isolierten Git-Worktree starten |
--yolo |
Bestätigungsabfragen für gefährliche Befehle überspringen |
--pass-session-id |
Sitzungs-ID in den System-Prompt des Agenten einfügen |
Übergeordnete Befehle
| Befehl | Zweck |
|---|---|
hermes chat |
Interaktiver oder einmaliger Chat |
hermes model |
Standardanbieter und -modell interaktiv auswählen |
hermes gateway |
Messaging-Gateway starten oder verwalten |
hermes setup |
Interaktiver Einrichtungsassistent |
hermes auth |
Zugangsdaten verwalten — hinzufügen, auflisten, entfernen, zurücksetzen, Strategie festlegen |
hermes status |
Agent-, Authentifizierungs- und Plattformstatus anzeigen |
hermes cron |
Cron-Scheduler inspizieren und auslösen |
hermes webhook |
Dynamische Webhook-Abonnements verwalten |
hermes doctor |
Konfigurations- und Abhängigkeitsprobleme diagnostizieren |
hermes dump |
Kopierfähige Einrichtungszusammenfassung für Support/Debugging |
hermes logs |
Agent-/Gateway-/Fehlerprotokolle anzeigen, verfolgen und filtern |
hermes config |
Konfiguration anzeigen, bearbeiten, migrieren, abfragen |
hermes pairing |
Messaging-Pairing-Codes genehmigen oder widerrufen |
hermes skills |
Skills durchsuchen, installieren, veröffentlichen, prüfen |
hermes honcho |
Honcho-Sitzungsübergreifenden Speicher verwalten |
hermes memory |
Externen Speicheranbieter konfigurieren |
hermes acp |
Hermes als ACP-Server ausführen (Editor-Integration) |
hermes mcp |
MCP-Serverkonfiguration verwalten; Hermes als MCP-Server ausführen |
hermes plugins |
Plugins verwalten |
hermes tools |
Aktivierte Tools pro Plattform konfigurieren |
hermes sessions |
Sitzungen durchsuchen, exportieren, bereinigen, löschen |
hermes insights |
Token-/Kosten-/Aktivitätsanalysen anzeigen |
hermes claw |
OpenClaw-Migrationshelfer |
hermes profile |
Profile verwalten (mehrere isolierte Instanzen) |
hermes completion |
Shell-Completion-Skripte ausgeben (bash/zsh) |
hermes whatsapp |
WhatsApp-Bridge konfigurieren und koppeln |
hermes version |
Versionsinformationen ausgeben |
hermes update |
Neuesten Code abrufen und Abhängigkeiten neu installieren |
hermes uninstall |
Hermes vom System entfernen (--full löscht auch Konfiguration/Daten) |
hermes backup |
Vollständiges Backup von Konfiguration, Sitzungen, Skills und Speicher (v0.9.0+)16 |
hermes import |
Aus einem Backup-Archiv wiederherstellen — zwischen Rechnern migrieren oder zurücksetzen (v0.9.0+)16 |
hermes dashboard |
Lokales Web-Dashboard für browserbasierte Agentenverwaltung starten (v0.9.0+)16 |
hermes debug share |
Vollständigen Debug-Bericht zur Fehlerbehebung auf einen Pastebin hochladen (v0.9.0+)16 |
hermes chat — Der Haupteinstiegspunkt
hermes ohne Argumente öffnet den interaktiven Chat. hermes chat ist die explizite Form mit Optionen:6
hermes chat -q "Summarize the latest PRs" # One-shot, non-interactive
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills # Enable specific toolsets
hermes chat --quiet -q "Return only JSON" # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"
Wichtige Optionen:
| Option | Beschreibung |
|---|---|
-q, --query "..." |
Einmaliger, nicht-interaktiver Prompt |
-m, --model <model> |
Modell für diesen Durchlauf überschreiben |
-t, --toolsets <csv> |
Kommagetrennte Auswahl von Toolsets aktivieren |
--provider <provider> |
Anbieter erzwingen (siehe vollständige Liste) |
-s, --skills <name> |
Einen oder mehrere Skills für diese Sitzung vorladen |
-v, --verbose |
Ausführliche Ausgabe |
-Q, --quiet |
Programmatischer Modus (kein Banner, Spinner, Vorschauen) |
--resume <session> |
Sitzung direkt aus chat fortsetzen |
--worktree |
Isolierten Git-Worktree erstellen |
--checkpoints |
Dateisystem-Checkpoints vor destruktiven Änderungen aktivieren |
--yolo |
Bestätigungsabfragen überspringen |
--source <tag> |
Sitzungsquellen-Tag (Standard: cli; tool für Integrationen) |
--max-turns <N> |
Maximale Tool-Aufruf-Iterationen pro Durchgang (Standard: 90) |
hermes setup — Vollständiger Assistent
Startet den vollständigen Einrichtungsassistenten oder springt direkt in einen Abschnitt:6
hermes setup # Full wizard
hermes setup model # Provider and model only
hermes setup terminal # Terminal backend only
hermes setup gateway # Messaging platforms only
hermes setup tools # Tool enable/disable per platform
hermes setup agent # Agent behavior only
hermes setup --non-interactive
hermes setup --reset # Reset config to defaults before setup
hermes logs — Strukturierte Protokollabfragen
hermes logs ist leistungsfähiger als tail -f auf den Protokolldateien, da es gleichzeitig nach Level, Sitzungs-ID und Zeitraum filtern kann.6
hermes logs # Last 50 lines of agent.log
hermes logs -f # Follow in real time
hermes logs gateway -n 100 # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h # Warnings from the last hour
hermes logs --session abc123 # Filter by session ID substring
hermes logs errors --since 30m -f # Follow errors.log from 30m ago
hermes logs list # List all log files with sizes
Die Protokolldateien befinden sich in ~/.hermes/logs/:6
- agent.log — sämtliche Agentenaktivitäten (API-Aufrufe, Tool-Dispatch, Sitzungslebenszyklus, INFO+)
- errors.log — ausschließlich Warnungen und Fehler (gefilterte Teilmenge von agent.log)
- gateway.log — Messaging-Gateway-Aktivitäten (Plattformverbindungen, Dispatch, Webhooks)
Die Rotation erfolgt automatisch über Pythons RotatingFileHandler — achten Sie auf agent.log.1, agent.log.2 usw.6
hermes doctor — Diagnose
hermes doctor [--fix] ist der erste Befehl, den Sie bei Problemen ausführen sollten. Er prüft die Konfigurationsvalidität, das Vorhandensein von Abhängigkeiten, die Verfügbarkeit von API-Schlüsseln sowie den Dienststatus und kann mit --fix automatische Reparaturen versuchen.6
Um Diagnoseinformationen mit anderen zu teilen, verwenden Sie hermes dump — dieser Befehl erzeugt eine kompakte Klartextzusammenfassung mit geschwärzten API-Schlüsseln, die Sie direkt in ein GitHub-Issue oder einen Discord-Thread einfügen können.6
Slash-Befehle
Slash-Befehle werden innerhalb einer aktiven Chat-Sitzung ausgeführt (CLI oder Messaging-Plattform). Sie werden über ein gemeinsames COMMAND_REGISTRY in hermes_cli/commands.py verteilt, weshalb die meisten Befehle auf allen Oberflächen identisch funktionieren.9
Sitzungssteuerung
| Befehl | Beschreibung |
|---|---|
/new (Alias /reset) |
Eine neue Sitzung starten |
/clear |
Bildschirm löschen + neue Sitzung starten |
/history |
Konversationsverlauf anzeigen |
/save |
Die aktuelle Konversation speichern |
/retry |
Die letzte Nachricht erneut versuchen |
/undo |
Den letzten Benutzer-/Assistent-Austausch entfernen |
/title <name> |
Einen Titel für die aktuelle Sitzung festlegen |
/compress |
Konversationskontext manuell komprimieren |
/rollback [number] |
Dateisystem-Checkpoints auflisten oder wiederherstellen |
/stop |
Alle laufenden Hintergrundprozesse beenden |
/queue <prompt> |
Einen Prompt für die nächste Runde in die Warteschlange stellen. Achtung: /q wird sowohl von /queue als auch von /quit beansprucht; die letzte Registrierung gewinnt, und /q wird in der Praxis zu /quit aufgelöst — geben Sie immer explizit /queue ein.9 |
/resume [name] |
Eine zuvor benannte Sitzung fortsetzen |
/statusbar (Alias /sb) |
Kontext-/Modell-Statusleiste umschalten |
/background <prompt> (Alias /bg) |
Einen Prompt in einer separaten Hintergrundsitzung ausführen |
/btw <question> |
Kurzlebige Nebenfrage (keine Tools, nicht persistent) |
/plan [request] |
Den mitgelieferten plan-Skill laden, um einen Plan zu schreiben statt auszuführen |
/branch [name] (Alias /fork) |
Die aktuelle Sitzung verzweigen |
/goal <target> |
Den Agenten auf ein Ziel festlegen, damit er über mehrere Runden hinweg auf Kurs bleibt. Ralph-Loop-Pattern als erstklassiges Primitiv. Konfigurierbares Runden-Budget. Neu in v0.13.0.18 |
Konfiguration & Modell
| Befehl | Beschreibung |
|---|---|
/config |
Aktuelle Konfiguration anzeigen |
/model [model-name] |
Das aktuelle Modell anzeigen oder ändern |
/provider |
Verfügbare Provider und aktuellen Provider anzeigen |
/personality [name] |
Ein Persönlichkeits-Overlay festlegen |
/verbose |
Anzeige des Tool-Fortschritts durchschalten |
/reasoning |
Reasoning-Aufwand und -Anzeige verwalten |
/skin |
Anzeige-Skin/Theme anzeigen oder ändern |
/voice [on\|off\|tts\|status] |
CLI-Voice-Modus umschalten |
/yolo |
YOLO-Modus umschalten (Bestätigungsabfragen überspringen) |
/fast |
Fast Mode umschalten — Prioritätsverarbeitung für OpenAI- und Anthropic-Modelle (v0.9.0+)16 |
/debug |
Schnelldiagnose über alle Plattformen (v0.9.0+)16 |
Der Befehl /model ist das Arbeitstier für den Provider-Wechsel mitten in der Sitzung:9
/model # Show current model and options
/model claude-sonnet-4 # Switch model (auto-detect provider)
/model zai:glm-5 # Switch provider:model
/model custom:qwen-2.5 # Use model on custom endpoint
/model custom # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5 # Named custom provider
/model openrouter:anthropic/claude-sonnet-4 # Back to cloud
Tools, Skills & Infos
| Befehl | Beschreibung |
|---|---|
/tools [list\|disable\|enable] [name...] |
Tools für die aktuelle Sitzung verwalten |
/toolsets |
Verfügbare Toolsets auflisten |
/browser [connect\|disconnect\|status] |
Lokale Chrome-CDP-Verbindung verwalten |
/skills |
Skills suchen, installieren, inspizieren oder verwalten |
/cron |
Geplante Tasks verwalten |
/reload-mcp |
MCP-Server aus config.yaml neu laden |
/plugins |
Installierte Plugins auflisten |
/help |
Alle Befehle anzeigen |
/usage |
Token-Verbrauch, Kosten, Dauer anzeigen |
/insights |
Nutzungsanalysen anzeigen (letzte 30 Tage) |
/platforms |
Status der Messaging-Plattformen anzeigen |
/profile |
Aktiven Profilnamen und Home anzeigen |
Dynamische Skill-Slash-Befehle
Jeder installierte Skill wird automatisch als Slash-Befehl bereitgestellt:9
/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw # Just the skill name loads it and lets the agent ask what you need
Sie können in config.yaml zudem Quick Commands definieren, die einen Kurznamen als Alias für einen längeren Prompt verwenden:9
quick_commands:
review: "Review my latest git diff and suggest improvements"
deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
morning: "Check my calendar, unread emails, and summarize today's priorities"
Tippen Sie dann /review, /deploy oder /morning in der CLI.
Präfix-Matching
Befehle unterstützen Präfix-Matching: Die Eingabe /h wird zu /help aufgelöst, /mod zu /model. Bei einem mehrdeutigen Präfix gewinnt die erste Registrierung in der Registry-Reihenfolge. Vollständige Befehlsnamen und registrierte Aliase haben immer Vorrang vor Präfix-Treffern.9
Messaging-spezifische Befehle
Einige Befehle funktionieren nur auf Messaging-Plattformen (Telegram, Discord, Slack, WhatsApp, Signal, E-Mail, Home Assistant):9
/status— Sitzungsinformationen anzeigen/sethome(Alias/set-home) — Den aktuellen Chat als Platform Home markieren/approve [session|always]— Einen ausstehenden gefährlichen Befehl genehmigen/deny— Einen ausstehenden gefährlichen Befehl ablehnen/update— Hermes Agent auf die neueste Version aktualisieren/commands [page]— Alle Befehle und Skills durchsuchen (mit Seitenumbruch)
Und einige sind nur in der CLI verfügbar: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9
Tools & Toolsets
Hermes wird mit einer umfangreichen integrierten Tool-Registry ausgeliefert, die Websuche, Browser-Automatisierung, Terminal-Ausführung, Datei-Bearbeitung, Memory, Delegation, RL-Training, Messaging-Zustellung, Home Assistant-Integration und vieles mehr abdeckt.10 Tools sind in logische Toolsets organisiert, die pro Plattform aktiviert oder deaktiviert werden können.
Übergeordnete Kategorien
| Kategorie | Beispiele | Beschreibung |
|---|---|---|
| Web | web_search, web_extract |
Das Web durchsuchen und Seiteninhalte extrahieren |
| Terminal & Dateien | terminal, process, read_file, patch |
Befehle ausführen und Dateien manipulieren |
| Browser | browser_navigate, browser_snapshot, browser_vision |
Interaktive Browser-Automatisierung mit Text und Vision |
| Medien | vision_analyze, video_analyze, image_generate, text_to_speech |
Multimodale Analyse und Generierung. video_analyze ist Gemini-first mit erweiterbarer Unterstützung für kompatible multimodale Provider (v0.13.0+).18 |
| Agent-Orchestrierung | todo, clarify, execute_code, delegate_task |
Planung, Klärung, Code-Ausführung, Subagent-Delegation |
| Memory & Recall | memory, session_search |
Persistentes Memory + Session-Suche |
| Automatisierung & Zustellung | cronjob, send_message |
Geplante Aufgaben, ausgehende Nachrichten |
| Integrationen | ha_*, MCP-Tools, rl_* |
Home Assistant, MCP, RL-Training |
Gängige Toolset-Namen umfassen web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant und rl.10
Tools verwalten
hermes chat --toolsets "web,terminal" # Use specific toolsets
hermes tools # Interactive per-platform tool config
hermes tools --summary # Print enabled-tools summary
Tools können auch mitten in einer Session über /tools disable <name> und /tools enable <name> umgeschaltet werden, was die Session zurücksetzt, damit das neue Tool-Set wirksam wird.9
Terminal-Backends
Das Terminal-Tool kann Befehle in sechs verschiedenen Umgebungen ausführen:10
| Backend | Anwendungsfall |
|---|---|
local |
Auf Ihrer Maschine ausführen (Standard) — Entwicklung, vertrauenswürdige Aufgaben |
docker |
Isolierte Container — Sicherheit, Reproduzierbarkeit |
ssh |
Remote-Server — Sandbox, Agent vom eigenen Code fernhalten |
singularity |
HPC-Container — Cluster-Computing, rootless |
modal |
Serverlose Cloud-Ausführung |
daytona |
Cloud-Sandbox-Workspace — persistente Remote-Entwicklungsumgebung |
Wechseln Sie Backends mit hermes config set terminal.backend <name> oder in config.yaml:
terminal:
backend: docker # or: local, ssh, singularity, modal, daytona
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
SSH-Backend (empfohlen aus Sicherheitsgründen — der Agent kann seinen eigenen Code nicht modifizieren):10
terminal:
backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
Docker-Backend:
terminal:
backend: docker
docker_image: python:3.11-slim
Container-Ressourcen (gilt für docker, singularity, modal, daytona):10
terminal:
container_cpu: 1
container_memory: 5120 # MB (default 5GB)
container_disk: 51200 # MB (default 50GB)
container_persistent: true # Persist filesystem across sessions
Mit container_persistent: true überdauern installierte Pakete, Dateien und Konfigurationen mehrere Sessions.10
Alle Container-Backends laufen mit Sicherheitshärtung: schreibgeschütztes Root-Dateisystem (Docker), alle Linux-Capabilities außer DAC_OVERRIDE, CHOWN und FOWNER entfernt, keine Privilegien-Eskalation, PID-Limits (256 Prozesse), vollständige Namespace-Isolation, persistenter Workspace über Volumes.10
Hintergrundprozesse
Das Terminal-Tool unterstützt Hintergrundausführung mit expliziter Prozessverwaltung:10
terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}
process(action="list") # Show all running processes
process(action="poll", session_id="proc_abc123") # Check status
process(action="wait", session_id="proc_abc123") # Block until done
process(action="log", session_id="proc_abc123") # Full output
process(action="kill", session_id="proc_abc123") # Terminate
process(action="write", session_id="proc_abc123", data="y") # Send input
Der PTY-Modus (pty=true) ermöglicht interaktive CLI-Tools wie Codex und Claude Code.10
Sudo
Wenn ein Befehl sudo benötigt, fragt Hermes nach Ihrem Passwort (für die Session zwischengespeichert). Alternativ können Sie SUDO_PASSWORD in ~/.hermes/.env setzen.10
Multi-Agent Kanban (v0.13.0+)
v0.13.0 macht Multi-Agent-Kollaboration zu einem erstklassigen Primitiv: ein dauerhaftes Kanban-Board, das Aufgaben, Status und Worker-Identität über Agenten und Neustarts hinweg verfolgt.18 Das Board ist das, was einem Schwarm aus Hermes-Workern ermöglicht, Arbeit tatsächlich abzuschließen, statt an toten Übergaben zu stocken.
| Mechanismus | Was er bewirkt |
|---|---|
| Heartbeats | Jeder Worker pulsiert, solange er eine Aufgabe besitzt. Ein ausbleibender Heartbeat markiert den Worker als verdächtig und gibt die Aufgabe zur Übernahme frei. |
| Reclaim | Ein anderer Worker kann eine verlassene Aufgabe übernehmen — mit vollem Aufgabenstatus und vorheriger Teilausgabe. |
| Zombie-Erkennung | Worker, die sich beenden, ohne eine Aufgabe als abgeschlossen zu markieren, werden automatisch daran gehindert, neue Arbeit zu beanspruchen, sodass der Schwarm keine tote Identität ansammelt. |
| Halluzinations-Gate | Ausgaben, die das Gate nicht bestehen, werden mit einem vermerkten Grund zurück auf das Board geschickt, anstatt als erledigt markiert zu werden. |
Pro-Aufgabe max_retries |
Überschreiben Sie das Standard-Retry-Budget bei einer Aufgabe, von der Sie wissen, dass sie fragil ist. |
| Multi-Projekt-Boards | Ein Hermes-Home kann mehrere unabhängige Boards beherbergen. |
Das Kanban-Board passt natürlich zu /goal (Ralph-Loop mit fixiertem Ziel) auf der Zielseite und zum bestehenden delegate_task-Tool für die Spawn-Semantik. Das Ergebnis ist ein Schwarmmuster, bei dem jeder Agent eine einzige Quelle der Wahrheit darüber teilt, was als Nächstes zu tun ist, wer es tut und was feststeckt.
Skills-System
Skills sind bei Bedarf ladbare Wissensdokumente, die der Agent laden kann, wenn er sie benötigt. Sie folgen einem Muster der progressiven Offenlegung, um den Token-Verbrauch zu minimieren, und sind kompatibel mit dem offenen Standard von agentskills.io.11
Alle Skills liegen in ~/.hermes/skills/ — dem primären Verzeichnis und der Quelle der Wahrheit. Bei einer Neuinstallation werden mitgelieferte Skills aus dem Repo kopiert. Über den Hub installierte und vom Agenten erstellte Skills landen ebenfalls hier.11
Progressive Offenlegung
Level 0: skills_list() → [{name, description, category}, ...] (~3k tokens)
Level 1: skill_view(name) → Full content + metadata (varies)
Level 2: skill_view(name, path) → Specific reference file (varies)
Der Agent lädt den vollständigen Skill-Inhalt nur dann, wenn er ihn tatsächlich benötigt.11
SKILL.md-Format
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux] # Optional — restrict to OS platforms
metadata:
hermes:
tags: [python, automation]
category: devops
fallback_for_toolsets: [web] # Conditional activation
requires_toolsets: [terminal] # Conditional activation
config: # Config.yaml settings
- key: my.setting
description: "What this controls"
default: "value"
prompt: "Prompt for setup"
---
# Skill Title
## When to Use
Trigger conditions for this skill.
## Procedure
1. Step one
2. Step two
## Pitfalls
- Known failure modes and fixes
## Verifizierung
So bestätigen Sie, dass es funktioniert hat.
Bedingte Aktivierung
Skills können sich selbst ein- oder ausblenden, basierend darauf, welche Tools verfügbar sind. Dies ist besonders nützlich für Fallback-Skills — kostenlose oder lokale Alternativen, die nur erscheinen sollen, wenn ein Premium-Tool nicht verfügbar ist:11
| Feld | Verhalten |
|---|---|
fallback_for_toolsets |
Skill wird ausgeblendet, wenn die aufgeführten toolsets verfügbar sind |
fallback_for_tools |
Gleiches Verhalten, prüft jedoch einzelne Tools |
requires_toolsets |
Skill wird ausgeblendet, wenn die aufgeführten toolsets nicht verfügbar sind |
requires_tools |
Gleiches Verhalten, prüft jedoch einzelne Tools |
Beispiel: Der eingebaute duckduckgo-search-Skill verwendet fallback_for_toolsets: [web]. Wenn FIRECRAWL_API_KEY gesetzt ist, ist das web-toolset verfügbar und der Agent verwendet web_search — der DuckDuckGo-Skill bleibt ausgeblendet. Ohne den API-Schlüssel erscheint der DuckDuckGo-Skill automatisch als Fallback.11
Vom Agenten verwaltete Skills
Der Agent kann seine eigenen Skills über das skill_manage-Tool erstellen, aktualisieren und löschen. Dies ist das prozedurale Gedächtnis des Agenten — wenn er einen nicht trivialen Workflow ausarbeitet, speichert er den Ansatz als Skill zur späteren Wiederverwendung.11
Wann der Agent Skills erstellt:11 - Nach erfolgreichem Abschluss einer komplexen Aufgabe (5+ Tool-Aufrufe) - Wenn er auf Fehler oder Sackgassen gestoßen ist und den funktionierenden Pfad gefunden hat - Wenn der Benutzer seinen Ansatz korrigiert hat - Wenn er einen nicht trivialen Workflow entdeckt hat
Aktionen:11
| Aktion | Verwendung für |
|---|---|
create |
Neuer Skill von Grund auf |
patch |
Gezielte Korrekturen (bevorzugt — am Token-effizientesten) |
edit |
Größere strukturelle Überarbeitungen |
delete |
Einen Skill vollständig entfernen |
write_file |
Unterstützende Dateien hinzufügen/aktualisieren |
remove_file |
Eine unterstützende Datei entfernen |
Skill Hub
Skills aus Online-Registries durchsuchen, suchen, installieren und verwalten:611
hermes skills browse # Browse all hub skills
hermes skills browse --source official # Browse official optional skills
hermes skills search kubernetes # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s # Preview before installing
hermes skills install openai/skills/k8s # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check # Check for upstream updates
hermes skills update # Reinstall changed hub skills
hermes skills audit # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo # Add custom GitHub source
Integrierte Hub-Quellen:11
| Quelle | Beispiel | Hinweise |
|---|---|---|
official |
official/security/1password |
Optionale Skills, die mit Hermes ausgeliefert werden (builtin trust) |
skills-sh |
skills-sh/vercel-labs/agent-skills/vercel-react-best-practices |
Vercels öffentliches Skills-Verzeichnis |
well-known |
well-known:https://mintlify.com/docs/.well-known/skills/mintlify |
URL-basierte Erkennung von Websites, die /.well-known/skills/index.json veröffentlichen |
github |
openai/skills/k8s |
Direkte GitHub-Repo-/Pfad-Installationen |
clawhub |
— | Drittanbieter-Skills-Marktplatz |
claude-marketplace |
— | Claude-kompatible Plugin-/Marketplace-Manifeste |
lobehub |
— | LobeHub-Agent-Katalog-Konvertierung |
Standardmäßige GitHub-Taps (ohne Einrichtung durchsuchbar): openai/skills, anthropics/skills, VoltAgent/awesome-agent-skills, garrytan/gstack.11
Sicherheitsprüfung
Alle aus dem Hub installierten Skills durchlaufen einen Sicherheits-Scanner, der auf Datenabfluss, Prompt Injection, destruktive Befehle, Supply-Chain-Signale und andere Bedrohungen prüft.11
Vertrauensstufen:11
| Stufe | Quelle | Richtlinie |
|---|---|---|
builtin |
Wird mit Hermes ausgeliefert | Immer vertrauenswürdig |
official |
optional-skills/ im Repo |
Builtin-Vertrauen, keine Drittanbieter-Warnung |
trusted |
Vertrauenswürdige Registries (openai/skills, anthropics/skills) |
Großzügigere Richtlinie |
community |
Alles andere | Nicht gefährliche Befunde können mit --force überschrieben werden; dangerous-Urteile bleiben blockiert |
--force kann nicht gefährliche Richtlinienblockaden für Community-Skills überschreiben. Es überschreibt kein dangerous-Scan-Urteil.11
Externe Skill-Verzeichnisse
Sie können Hermes auf zusätzliche Skill-Verzeichnisse verweisen, die zusammen mit dem lokalen gescannt werden:11
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
Pfade unterstützen ~-Erweiterung und ${VAR}-Substitution von Umgebungsvariablen. Externe Verzeichnisse sind schreibgeschützt — wenn der Agent einen Skill erstellt oder bearbeitet, schreibt er immer in ~/.hermes/skills/. Die lokale Priorität gewinnt, falls ein Skill-Name an beiden Orten existiert.11
Persistentes Gedächtnis
Hermes verfügt über ein begrenztes, kuratiertes Gedächtnis, das über Sessions hinweg bestehen bleibt. Zwei Dateien bilden das Gedächtnis des Agenten, beide gespeichert in ~/.hermes/memories/:12
| Datei | Zweck | Zeichenlimit |
|---|---|---|
MEMORY.md |
Persönliche Notizen des Agenten — Umgebungsfakten, Konventionen, Erlerntes | 2.200 Zeichen (~800 Token) |
USER.md |
Benutzerprofil — Präferenzen, Kommunikationsstil, Erwartungen | 1.375 Zeichen (~500 Token) |
Beide werden als eingefrorener Snapshot beim Session-Start in den System-Prompt injiziert. Der Agent verwaltet sein eigenes Gedächtnis über das memory-Tool — add, replace oder remove.12
Eingefrorenes Snapshot-Muster: Die Injektion in den System-Prompt wird einmal beim Session-Start erfasst und ändert sich während der Session nicht mehr. Dies ist beabsichtigt — es bewahrt den Prefix-Cache des LLM für Performance. Während einer Session vorgenommene Änderungen werden sofort auf Festplatte persistiert, erscheinen aber erst beim nächsten Session-Start im System-Prompt.12
Was zu speichern ist
Speichern Sie diese (der Agent tut dies proaktiv):12
- Benutzerpräferenzen: „Ich bevorzuge TypeScript gegenüber JavaScript” → user
- Umgebungsfakten: „Dieser Server läuft mit Debian 12 und PostgreSQL 16” → memory
- Korrekturen: „Verwende kein sudo für Docker-Befehle, der Benutzer ist in der docker-Gruppe” → memory
- Konventionen: „Projekt verwendet Tabs, 120-Zeichen-Zeilenbreite, Google-style Docstrings” → memory
- Abgeschlossene Arbeit: „Datenbank am 15.01.2026 von MySQL zu PostgreSQL migriert” → memory
Diese überspringen:12 - Triviale/offensichtliche Informationen - Leicht wieder auffindbare Fakten - Rohdaten-Dumps (zu groß für das Gedächtnis) - Session-spezifische Ephemera - Informationen, die bereits in Kontextdateien enthalten sind
Session-Suche
Über MEMORY.md und USER.md hinaus kann der Agent seine vergangenen Konversationen mit dem session_search-Tool durchsuchen. Alle CLI- und Messaging-Sessions werden in SQLite (~/.hermes/state.db) mit FTS5-Volltextsuche gespeichert. Anfragen liefern relevante vergangene Konversationen mit Gemini-Flash-Zusammenfassung zurück.12
| Funktion | Persistentes Gedächtnis | Session-Suche |
|---|---|---|
| Kapazität | ~1.300 Token insgesamt | Unbegrenzt (alle Sessions) |
| Geschwindigkeit | Sofort (im System-Prompt) | Erfordert Suche + LLM-Zusammenfassung |
| Anwendungsfall | Schlüsselfakten immer verfügbar | Bestimmte vergangene Konversationen finden |
| Verwaltung | Manuell vom Agenten kuratiert | Automatisch — alle Sessions gespeichert |
| Token-Kosten | Fest pro Session (~1.300 Token) | Bei Bedarf |
Externe Memory Provider
Für tieferes persistentes Gedächtnis über MEMORY.md und USER.md hinaus liefert Hermes acht externe Memory-Provider-Plugins mit: Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover und Supermemory.12
Externe Provider laufen neben dem eingebauten Gedächtnis (ersetzen es nie) und fügen Funktionen wie Knowledge Graphs, semantische Suche, automatische Faktenextraktion und sessionübergreifende Benutzermodellierung hinzu:612
hermes memory setup # Pick a provider and configure it
hermes memory status # Check what's active
hermes memory off # Disable external provider (built-in only)
Nur ein externer Provider kann gleichzeitig aktiv sein. Das eingebaute Gedächtnis ist immer aktiv.6
Session Auto-Resume (v0.13.0+)
v0.13.0 macht Unterbrechungen mitten im Agentenlauf überlebbar. Das gateway nimmt unterbrochene Sessions nach einem Neustart automatisch wieder auf; /update-Neustarts erhalten den Session-Status durch das Upgrade hindurch; Reloads von Quelldateien während der Entwicklung halten die aktive Session am Leben, anstatt eine neue zu erzwingen.18 Praktischer Effekt: Lang laufende gateway-Arbeiten und cron-gesteuerte Jobs setzen ihr Kontextfenster nicht mehr zurück, wenn der Prozess neu startet.
Checkpoints v2 (v0.13.0+)
Die Zustandspersistenz ist in v0.13.0 als Single-Store-Design neu geschrieben — mit echtem Pruning, Disk-Schutzmaßnahmen und ohne verwaiste Shadow-Repos.18 Das frühere checkpoint-System sammelte über lang laufende profile hinweg Zustand auf der Festplatte an; der v2-Store setzt eine harte Obergrenze für lokalen checkpoint-Speicher und entfernt die duplizierte Buchhaltung, die dieses Wachstum antrieb. Es ist keine benutzerseitige Konfigurationsänderung erforderlich; der nächste checkpoint-Write verwendet den v2-Pfad.
Persönlichkeit & SOUL.md
SOUL.md ist die primäre Identität einer Hermes-Instanz. Sie belegt Slot 1 im System-Prompt und ersetzt die fest eincodierte Standardidentität.13
Hermes legt automatisch eine Standard-SOUL.md unter ~/.hermes/SOUL.md (oder $HERMES_HOME/SOUL.md bei benutzerdefinierten Profilen) an. Bestehende Benutzerdateien werden nie überschrieben. Hermes lädt SOUL.md ausschließlich aus HERMES_HOME — im aktuellen Arbeitsverzeichnis wird nicht gesucht. Dadurch bleibt die Persönlichkeit projektübergreifend vorhersehbar.13
Was in SOUL.md gehört
Verwenden Sie sie für dauerhafte Vorgaben zu Stimme und Persönlichkeit:13 - Tonfall - Kommunikationsstil - Direktheitsgrad - Standard-Interaktionsstil - Was stilistisch zu vermeiden ist - Wie Hermes mit Unsicherheit, Meinungsverschiedenheiten und Mehrdeutigkeit umgehen soll
Weniger geeignet ist sie für:13 - Einmalige Projektanweisungen - Dateipfade - Repo-Konventionen - Temporäre Workflow-Details
Diese gehören in AGENTS.md, nicht in SOUL.md.
SOUL.md vs. AGENTS.md
Dies ist die wichtigste Unterscheidung im Identitätsmanagement von Hermes:13
SOUL.md — Identität, Tonfall, Stil, Kommunikationsvorgaben, Verhalten auf Persönlichkeitsebene.
AGENTS.md — Projektarchitektur, Coding-Konventionen, Tool-Präferenzen, repo-spezifische Workflows, Befehle, Ports, Pfade, Deployment-Hinweise.
Eine nützliche Faustregel: Wenn es Sie überallhin begleiten soll, gehört es in SOUL.md. Wenn es zu einem Projekt gehört, gehört es in AGENTS.md.13
Eingebaute Persönlichkeiten
Hermes liefert eingebaute Persönlichkeiten mit, zu denen Sie mit /personality wechseln können:13
| Name | Beschreibung |
|---|---|
helpful |
Freundlicher Allzweckassistent |
concise |
Kurze, prägnante Antworten |
technical |
Detaillierter, präziser technischer Experte |
creative |
Innovatives, unkonventionelles Denken |
teacher |
Geduldiger Lehrer mit klaren Beispielen |
kawaii |
Niedliche Ausdrücke, Glitzer, Begeisterung |
catgirl |
Neko-chan mit katzenartigen Ausdrücken |
pirate |
Captain Hermes, technikaffiner Freibeuter |
shakespeare |
Bardische Prosa mit dramatischem Flair |
surfer |
Entspannte Bro-Vibes |
noir |
Hartgesottene Detektiv-Erzählweise |
uwu |
Maximale Niedlichkeit mit Uwu-Speak |
philosopher |
Tiefgründige Betrachtungen zu jeder Anfrage |
hype |
MAXIMALE ENERGIE |
Benutzerdefinierte Persönlichkeiten in config.yaml:13
agent:
personalities:
codereviewer: >
You are a meticulous code reviewer. Identify bugs, security issues,
performance concerns, and unclear design choices. Be precise and constructive.
Wechseln Sie dann mit /personality codereviewer.
SOUL.md vs. /personality
SOUL.md ist die Grundstimme. /personality ist eine Überlagerung auf Sitzungsebene.13 Pflegen Sie eine pragmatische Standard-SOUL.md und nutzen Sie dann /personality teacher für ein Lerngespräch oder /personality creative zum Brainstorming.
Nous Tool Gateway (v0.10.0+)
Seit Hermes Agent v0.10.0 (16.04.2026) erhalten zahlende Nous Portal-Abonnenten verwalteten Zugang zu einer kuratierten Auswahl von Tools über ihre bestehenden Portal-Anmeldedaten — keine zusätzlichen API-Schlüssel zu verwalten.20 Die Hermes CLI selbst bleibt MIT-lizenziert und vollständig Open Source. Geändert hat sich, dass Ihre Portal-Authentifizierung nun mehr als nur Modell-Inferenz freischaltet.
Was im Gateway enthalten ist
| Tool | Anbieter | Anwendungsfall |
|---|---|---|
| Web-Suche | Firecrawl | Retrieval für Agenten, die aktuelle Informationen benötigen |
| Bildgenerierung | FAL / FLUX 2 Pro | Bilder inline generieren, ohne einen FAL-Schlüssel zu konfigurieren |
| Text-to-Speech | OpenAI TTS | Sprachausgabe auf Messaging-Gateways |
| Browser-Automatisierung | Browser Use | Headless-Navigation und Scraping |
Funktionsweise
Das Gateway ist pro Tool optional aktivierbar über ein neues Konfigurationsfeld use_gateway. Wenn Sie Portal-Anmeldedaten in hermes auth haben und das Gateway für ein Tool aktivieren, werden die Aufrufe dieses Tools über das Portal geleitet. Andernfalls wird Ihr direkter API-Schlüssel (sofern vorhanden) verwendet.
# config.yaml — per-tool gateway opt-in
tools:
web_search:
provider: firecrawl
use_gateway: true # route via Nous Portal subscription
image_generation:
provider: fal
use_gateway: true
Laufzeit-Vorrang: Wenn das Gateway verfügbar ist und ein Tool use_gateway: true gesetzt hat, bevorzugt Hermes das Gateway, selbst wenn Sie zusätzlich einen direkten API-Schlüssel konfiguriert haben. Das ist für die Abrechnung relevant — Gateway-Aufrufe werden Ihrem Portal-Abonnement belastet, nicht dem Guthaben Ihres direkten API-Schlüssels.
Aktivierung des Gateways
hermes model # select Nous Portal (OAuth flow)
hermes tools # per-platform tool picker integrates gateway tools
hermes status # confirms gateway/subscription detection
Es gibt keinen separaten Befehl hermes subscribe oder hermes login --portal. Das Abonnement wird automatisch aus den Portal-OAuth-Anmeldedaten erkannt, die Sie bereits in hermes auth hinterlegt haben.
Preise und Zugang
Preise und Tarifnamen werden auf der Preisseite des Nous Portal veröffentlicht (https://portal.nousresearch.com/pricing). In dieser Anleitung werden die Tarife nicht aufgeführt, da sie in der Verantwortung des Portal-Produkts liegen, nicht der Hermes CLI, und sich unabhängig von Hermes-Releases ändern. Registrieren Sie sich unter https://portal.nousresearch.com/ und prüfen Sie die Preisseite für die aktuellen Tarife.
Deprecation-Hinweis
- Die Umgebungsvariable
HERMES_ENABLE_NOUS_MANAGED_TOOLSwurde in v0.10.0 entfernt. Verwaltete Tools werden nun über das Konfigurationsfelduse_gatewaypro Tool aktiviert und sind an den Status Ihres Portal-Abonnements gekoppelt.20
Einordnung: Was dieses Release nicht ist
Die Hermes Agent CLI ist nicht hinter einem Abonnement gesperrt. Das Projekt ist weiterhin MIT-lizenziert, alle Kernfunktionen (CLI, Skills, Memory, Messaging-Gateway, Cron, MCP, lokales Dashboard, BYOK für jeden Anbieter) funktionieren durchgängig, ohne dass Sie irgendjemanden bezahlen müssen. v0.10.0 fügt einen Komfortpfad für Benutzer hinzu, die ohnehin schon für Nous Portal zahlen — am freien Pfad wird nichts weggenommen.
Messaging Gateway
Hermes kann als langlaufender Gateway-Prozess laufen, der aus einem einzigen Prozess heraus Verbindungen zu 20 Messaging-Plattformen herstellt: Telegram, Discord, Slack, WhatsApp, Signal, SMS, E-Mail, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat sowie einen generischen Webhook-Adapter.3191718 v0.9.0 ergänzte iMessage via BlueBubbles (automatische Webhook-Registrierung, Setup-Assistent, Crash-Resilienz) und native WeChat-Unterstützung über die iLink Bot API mit WeCom-Callback-Modus für Unternehmens-Apps.16 v0.11.0 fügte QQBot hinzu.19 v0.12.0 ergänzte Microsoft Teams und Tencent Yuanbao.17 v0.13.0 nahm Google Chat als 20. Plattform auf — auf derselben pluggable Adapter-Architektur; IRC und Microsoft Teams wurden ebenfalls auf das neue Adapter-Pattern mit generischen Plugin-Hooks env_enablement_fn / cron_deliver_env_var migriert.18
Einrichtung
hermes gateway setup # Interactive platform configuration
hermes gateway install # Install as user service (systemd/launchd)
hermes gateway start # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run # Run in foreground (debugging)
Die interaktive Einrichtung führt Sie durch die Anbindung jeder Plattform: API-Tokens, Bot-IDs, Channel-Zuordnungen, Allowlists.6
Wie Nachrichten fließen
Aus der vorgelagerten Architekturdokumentation:3
Platform event → Adapter.on_message() → MessageEvent
→ GatewayRunner._handle_message()
→ authorize user
→ resolve session key
→ create AIAgent with session history
→ AIAgent.run_conversation()
→ deliver response back through adapter
Jede Messaging-Plattform durchläuft dieselbe AIAgent-Konversationsschleife wie die CLI. Deshalb funktionieren Slash-Befehle an beiden Stellen identisch, und deshalb kann ein in Telegram geplanter Cron-Job seine Ausgabe an Discord ausliefern — der Plattformunterschied liegt nur am Rand.3
Benutzerautorisierung & Pairing
hermes pairing list # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending
Pairing-Codes verhindern, dass beliebige Fremde mit Ihrem Gateway kommunizieren. Ein Benutzer sendet einen Pairing-Code von seiner Messaging-Plattform; Sie genehmigen ihn mit hermes pairing approve; ab diesem Zeitpunkt ist er autorisiert.6
Geplante Aufgaben (Cron)
Hermes verfügt über ein erstklassiges Cron-System, in dem Jobs Agent-Aufgaben sind, keine Shell-Befehle. Jeder geplante Job läuft durch einen frischen AIAgent mit dem konfigurierten Prompt, optional angehängten Skills, und liefert die Ergebnisse an eine beliebige Plattform:36
hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id> # Trigger now on the next tick
hermes cron remove <id>
hermes cron status # Check if scheduler is running
hermes cron tick # Run due jobs once and exit
Oder erstellen Sie einen Job konversationell direkt in einem Messaging-Chat:
Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
Der Agent richtet den Cron-Job über seine Tools ein. Jobs werden in JSON persistiert und überstehen Neustarts.3
MCP Integration
Hermes unterstützt das Model Context Protocol sowohl als Client als auch als Server:6
Als Client — verbinden Sie Hermes mit externen MCP-Servern, um seine Tool-Oberfläche zu erweitern:
hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name> # Toggle individual tool selection
Oder manuell in config.yaml:14
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
Als Server — stellen Sie Hermes-Konversationen anderen Agenten zur Verfügung:
hermes mcp serve
hermes mcp serve -v # Verbose
Kontextkomprimierung
Hermes komprimiert lange Konversationen automatisch, damit sie innerhalb des Kontextfensters Ihres Modells bleiben. Der Komprimierungs-Summarizer ist ein separater LLM-Aufruf — Sie können ihn auf einen beliebigen Provider oder Endpunkt richten.4
compression:
enabled: true
threshold: 0.50 # Compress at this % of context limit
target_ratio: 0.20 # Fraction to preserve as recent tail
protect_last_n: 20 # Min recent messages to keep uncompressed
summary_model: "google/gemini-3-flash-preview"
summary_provider: "auto" # "auto", "openrouter", "nous", "codex", "main", etc.
summary_base_url: null # Custom OpenAI-compatible endpoint
Provider-Optionen:4
summary_provider |
summary_base_url |
Ergebnis |
|---|---|---|
auto (Standard) |
nicht gesetzt | Automatische Erkennung des besten verfügbaren Providers |
nous / openrouter / etc. |
nicht gesetzt | Erzwingt diesen Provider, verwendet dessen Authentifizierung |
| beliebig | gesetzt | Verwendet den benutzerdefinierten Endpunkt direkt (Provider wird ignoriert) |
summary_model muss eine Kontextlänge unterstützen, die mindestens so groß ist wie die Ihres Hauptmodells, da es den vollständigen Mittelteil der Konversation zur Komprimierung erhält.4
Budget-Druck-Warnungen
Wenn der Agent an einer komplexen Aufgabe mit vielen Tool-Aufrufen arbeitet, kann er sein Iterationsbudget (Standard: 90 Durchläufe) verbrauchen, ohne es zu bemerken. Der Budget-Druck warnt das Modell automatisch:4
| Schwellwert | Stufe | Was das Modell sieht |
|---|---|---|
| 70 % | Hinweis | [BUDGET: 63/90. 27 iterations left. Start consolidating.] |
| 90 % | Warnung | [BUDGET WARNING: 81/90. Only 9 left. Respond NOW.] |
Stream-Timeouts
Die LLM-Streaming-Verbindung verfügt über zwei Timeout-Schichten, die sich für lokale Provider (localhost, LAN-IPs) automatisch anpassen:4
| Timeout | Standard | Lokale Provider | Env-Variable |
|---|---|---|---|
| Socket-Read-Timeout | 120 s | Automatisch auf 1800 s erhöht | HERMES_STREAM_READ_TIMEOUT |
| Erkennung veralteter Streams | 180 s | Automatisch deaktiviert | HERMES_STREAM_STALE_TIMEOUT |
| API-Aufruf (nicht streaming) | 1800 s | Unverändert | HERMES_API_TIMEOUT |
Der Socket-Read-Timeout wird für lokale Endpunkte auf 30 Minuten erhöht, weil lokale LLMs bei großen Kontexten Minuten für das Prefill benötigen können, bevor das erste Token erzeugt wird.4
Lokales Web-Dashboard (v0.9.0+)
Ein browserbasiertes Dashboard zur lokalen Verwaltung Ihres Hermes Agent. Konfigurieren Sie Einstellungen, überwachen Sie Sessions, durchsuchen Sie Skills und verwalten Sie Ihr Gateway, ohne Konfigurationsdateien oder das Terminal anzufassen.16 Starten Sie es mit hermes dashboard. Dies ist der einfachste Einstiegspfad für neue Benutzer, die eine GUI bevorzugen.
Hintergrundprozess-Überwachung (v0.9.0+)
watch_patterns ermöglicht es Ihnen, Muster zur Überwachung in der Ausgabe von Hintergrundprozessen festzulegen und in Echtzeit benachrichtigt zu werden, wenn diese übereinstimmen.16 Überwachen Sie auf Fehler, warten Sie auf bestimmte Ereignisse („listening on port”) oder beobachten Sie Build-Logs — alles ohne Polling. Kombiniert mit notify_on_complete aus v0.8.0 (das bei Abschluss von Hintergrundaufgaben benachrichtigt) verfügt Hermes nun über eine vollständige Beobachtungsschicht für Hintergrundprozesse.15
Pluggable Context Engine (v0.9.0+)
Das Kontextmanagement ist nun ein steckbarer Slot über hermes plugins. Tauschen Sie benutzerdefinierte context engines ein, die steuern, was der Agent in jedem Durchlauf sieht — Filterung, Zusammenfassung oder domänenspezifische Kontexteinspeisung.16 Dies entkoppelt die Kontextstrategie von der Kern-Agent-Schleife und ermöglicht eine projekt- oder domänenspezifische Kontextanpassung.
Backup & Wiederherstellung (v0.9.0+)
hermes backup erstellt ein vollständiges Archiv Ihrer Konfiguration, Sessions, Skills und Speicher. hermes import stellt aus einem Backup-Archiv wieder her.16 Verwenden Sie dies, um zwischen Maschinen zu migrieren, vor größeren Änderungen Snapshots zu erstellen oder eine bekannt funktionierende Konfiguration mit Teamkollegen zu teilen.
Termux / Android-Unterstützung (v0.9.0+)
Hermes läuft nativ auf Android über Termux. Angepasste Installationspfade, TUI-Optimierungen für mobile Bildschirme, Voice-Backend-Unterstützung und der /image-Befehl funktionieren on-device.16
Security Hardening (v0.13.0+)
v0.13.0 hat 8 P0-Sicherheitsprobleme geschlossen und einen Standard zugunsten des Benutzers geändert.18
| Fix | Was sich geändert hat |
|---|---|
| Secret-Redaction standardmäßig aktiviert | Zuvor opt-in. Logs und hermes debug share-Uploads schwärzen Secrets, sofern dies nicht explizit deaktiviert wird. v0.12.0 hatte die Redaction nach Berichten über Payload-Korruption standardmäßig deaktiviert; v0.13.0 reaktiviert sie als sichereren Standard. |
| Discord Cross-Guild-DM-Bypass (CVSS 8.1) | Discord-Rollen-Allowlists sind jetzt guild-scoped, wodurch ein Pfad geschlossen wird, bei dem eine Benutzerrolle in einer Guild DMs über alle Guilds hinweg autorisierte. |
| WhatsApp-Standardbeschränkungen | Der WhatsApp-Adapter weist Fremde standardmäßig ab und antwortet niemals im Self-Chat. |
| MCP OAuth TOCTOU-Fenster | Schließt eine Race Condition während des Credential-Save in MCP-OAuth-Flows. |
CLI auth.json TOCTOU |
Schließt ein analoges TOCTOU-Fenster im Credential-Writer für den CLI-Auth-Store. |
| Browser SSRF Floor | Hybrides Routing erzwingt einen Cloud-Metadata-SSRF-Floor gegen Anfragen, die 169.254.169.254 und Äquivalente erreichen wollen. |
| Cron-Prompt-Injection-Scanning | Zusammengesetzte Prompts (einschließlich geladener Skill-Inhalte) werden vor der Ausführung des Cron-Jobs auf Prompt-Injection gescannt. |
hermes debug share-Redaction |
Debug-Share-Uploads schwärzen Log-Inhalte zum Upload-Zeitpunkt, nicht nur zum Schreibzeitpunkt. |
Wenn Sie eine Hermes-Bereitstellung pflegen, behandeln Sie v0.13.0 als sicherheitsrelevantes Upgrade, nicht nur als Feature-Drop. Der Discord-Cross-Guild-Bypass und die beiden TOCTOU-Fenster sind auf früheren Versionen ausnutzbar.
Architektur für Praktiker
Dieser Abschnitt richtet sich an Personen, die verstehen möchten, was unter der Haube passiert, um es zu debuggen, zu erweitern oder über die Performance zu urteilen. Es handelt sich um eine Synthese der vorgelagerten Architekturdokumentation.3
Einstiegspunkte → AIAgent
Jeder Einstiegspunkt in Hermes ruft letztlich AIAgent.run_conversation() auf:
┌──────────────────────────────────────────────────────────────────┐
│ Entry Points │
│ │
│ CLI (cli.py) Gateway (gateway/run.py) ACP (acp_adapter/) │
│ Batch Runner API Server Python Library │
└──────────┬──────────────┬───────────────────────┬────────────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────────────────────────┐
│ AIAgent (run_agent.py) │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Prompt │ │ Provider │ │ Tool │ │
│ │ Builder │ │ Resolution │ │ Dispatch │ │
│ └──────┬──────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │
│ │ Compression │ │ 3 API Modes │ │ Tool Registry│ │
│ │ & Caching │ │ chat_compl │ │ 47 tools │ │
│ │ │ │ codex_resp │ │ 20 toolsets │ │
│ │ │ │ anthropic │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└──────────────────────────────────────────────────────────────────┘
Diagramm angepasst aus der vorgelagerten Architekturdokumentation.3
„47 tools / 20 toolsets” vs. „28 tools” in Ihrem Banner. Die Zahl „47 tools” ist die Gesamtzahl der Tool-Registry des vorgelagerten Repositorys — jedes Tool, für das Hermes Quellcode mitliefert, über alle toolsets hinweg. Ihr tatsächlich laufender CLI zeigt im Startbanner eine kleinere Zahl an (die Installation, gegen die ich diese Anleitung verifiziert habe, meldet 28 tools / 89 skills). Das ist kein Fehler. Viele toolsets sind opt-in und müssen explizit in config.yaml unter toolsets: aktiviert werden — Adapter für Messaging-Plattformen, Browser-Automatisierung, schwerere Scraping-Tools und so weiter. Die Gesamtzahl der Registry beschreibt „was verfügbar ist”; die Bannerzahl beschreibt „was im aktuellen profile aktiviert ist.” Prüfen Sie mit hermes tools --list, welche toolsets aktiv sind, und aktivieren oder deaktivieren Sie einzelne toolsets über den toolsets:-Block in ~/.hermes/config.yaml (oder /tools list / /tools enable <name> / /tools disable <name> innerhalb einer laufenden Session — das Entfernen eines Tools löst einen Session-Reset aus, damit der Agent sein Tool-Manifest neu aufbaut).
Die drei API-Modi
Hermes abstrahiert Provider-Unterschiede in drei API-Modi, die zur Laufzeit automatisch ausgewählt werden:3
| API-Modus | Verwendet von |
|---|---|
chat_completions |
OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, die meisten Custom-Endpunkte, jeder OpenAI-kompatible Server |
codex_responses |
OpenAI Codex (über ChatGPT OAuth) |
anthropic_messages |
Anthropic API (nativ), Anthropic OAuth, Anthropic-kompatible Proxys |
Der Resolver runtime_provider.py ordnet (provider, model)-Tupel auf (api_mode, api_key, base_url) für mehr als 18 Provider ab und kümmert sich um OAuth-Flows, Credential-Pools und Alias-Auflösung.3
Datenfluss durch eine CLI-Session
User input → HermesCLI.process_input()
→ AIAgent.run_conversation()
→ prompt_builder.build_system_prompt()
→ runtime_provider.resolve_runtime_provider()
→ API call (chat_completions / codex_responses / anthropic_messages)
→ tool_calls? → model_tools.handle_function_call() → loop
→ final response → display → save to SessionDB
Aus der vorgelagerten Architekturseite.3
Reihenfolge des Prompt-Aufbaus
Der Prompt-Stack umfasst:13
SOUL.md(Agent-Identität — oder integrierter Fallback, falls nicht verfügbar)- Tool-bewusste Verhaltensanleitung
- Memory/Benutzerkontext (
MEMORY.md,USER.md) - Skills-Anleitung
- Kontext-Dateien (
AGENTS.md,.cursorrules) - Zeitstempel
- Plattformspezifische Formatierungshinweise
- Optionale System-Prompt-Overlays wie
/personality
SOUL.md ist das Fundament — alles andere baut darauf auf.13
Session-Speicher
SQLite-basierter Session-Speicher mit FTS5-Volltextsuche. Sessions verfügen über Lineage-Tracking (Parent/Child über Komprimierungen hinweg), pro-Plattform-Isolation sowie atomare Schreibvorgänge mit Konfliktbehandlung.3
Plugin-System
Drei Discovery-Quellen: ~/.hermes/plugins/ (Benutzer), .hermes/plugins/ (Projekt) und pip-Entry-Points. Plugins registrieren Tools, Hooks und CLI-Befehle über eine Kontext-API. Memory-Provider sind ein spezialisierter Plugin-Typ unter plugins/memory/.3
hermes plugins # Interactive enable/disable UI
hermes plugins install <repo> # Install from Git URL or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list
Designprinzipien
Aus der vorgelagerten Architekturseite:3
| Prinzip | Was es in der Praxis bedeutet |
|---|---|
| Prompt-Stabilität | Der System-Prompt ändert sich nicht mitten in der Konversation. Keine Cache-brechenden Mutationen außer durch explizite Benutzeraktionen (/model) |
| Beobachtbare Ausführung | Jeder Tool-Aufruf ist für den Benutzer über Callbacks sichtbar. Fortschrittsmeldungen im CLI (Spinner) und im gateway (Chat-Nachrichten) |
| Unterbrechbar | API-Aufrufe und Tool-Ausführung können während des Vorgangs durch Benutzereingaben oder Signale abgebrochen werden |
| Plattformunabhängiger Kern | Eine einzige AIAgent-Klasse bedient CLI, gateway, ACP, Batch und API-Server. Plattformunterschiede leben im Einstiegspunkt |
| Lose Kopplung | Optionale Subsysteme (MCP, Plugins, Memory-Provider, RL-Umgebungen) verwenden Registry-Patterns und check_fn-Gating, keine harten Abhängigkeiten |
| Profile-Isolation | Jedes profile erhält sein eigenes HERMES_HOME, Config, Memory, Sessions und gateway-PID. Mehrere profiles laufen gleichzeitig |
Migration von OpenClaw
Hermes Agent ist der Nachfolger von OpenClaw. Wenn Sie von einer bestehenden OpenClaw-Installation migrieren:65
hermes claw migrate --dry-run # Preview what would be migrated
hermes claw migrate --preset full # Full migration including API keys
hermes claw migrate --preset user-data --overwrite # User data only, no secrets
hermes claw migrate --source /custom/path # Non-default OpenClaw location
hermes claw migrate liest standardmäßig aus ~/.openclaw (erkennt zudem automatisch die Legacy-Verzeichnisse ~/.clawdbot und ~/.moldbot) und schreibt nach ~/.hermes.6
Direkt importiert (mehr als 30 Kategorien): SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills aus 4 Quellverzeichnissen, Standardmodell, Custom Provider, MCP-Server, Tokens und Allowlists für Messaging-Plattformen (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), Agent-Defaults (Reasoning-Aufwand, Komprimierung, Human-Delay, Zeitzone, Sandbox), Session-Reset-Richtlinien, Approval-Regeln, TTS-Konfiguration, Browser-Einstellungen, Tool-Einstellungen, Exec-Timeout, Befehls-Allowlist, gateway-Konfiguration sowie API-Schlüssel aus 3 Quellen.6
Archiviert zur manuellen Überprüfung: cron-Jobs, Plugins, Hooks/Webhooks, Memory-Backend (QMD), Skills-Registry-Konfiguration, UI/Identität, Logging, Multi-Agent-Setup, Channel-Bindings, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6
Die Auflösung der API-Schlüssel prüft drei Quellen in priorisierter Reihenfolge: Config-Werte → ~/.openclaw/.env → auth-profiles.json.6
Fehlerbehebung
“API key not set”
Führen Sie hermes model aus, um Ihren Provider interaktiv zu konfigurieren, oder hermes config set OPENROUTER_API_KEY your_key. Der Befehl hermes doctor zeigt Ihnen genau, welche Schlüssel fehlen.7
“Context limit: 2048 tokens” beim Start (lokale Modelle)
Hermes erkennt die Kontextlänge automatisch über den /v1/models-Endpunkt Ihres Servers, viele lokale Server melden jedoch niedrige Standardwerte. Setzen Sie sie explizit in config.yaml:2
model:
default: your-model
provider: custom
base_url: http://localhost:11434/v1
context_length: 32768
Tool-Aufrufe erscheinen als Text statt ausgeführt zu werden
Auf Ihrem Server ist Tool Calling nicht aktiviert, oder das Modell unterstützt es nicht über die Implementierung des Servers.2
| Server | Lösung |
|---|---|
| llama.cpp | Fügen Sie --jinja zum Startbefehl hinzu |
| vLLM | Fügen Sie --enable-auto-tool-choice --tool-call-parser hermes hinzu |
| SGLang | Fügen Sie --tool-call-parser qwen (oder den passenden Parser) hinzu |
| Ollama | Tool Calling ist standardmäßig aktiviert — prüfen Sie mit ollama show <model>, ob Ihr Modell es unterstützt |
| LM Studio | Aktualisieren Sie auf 0.3.6+ und verwenden Sie ein Modell mit nativer Tool-Unterstützung |
Antworten werden mitten im Satz abgeschnitten
Zwei mögliche Ursachen:2
- Niedrige Ausgabengrenze (
max_tokens) auf dem Server — SGLang verwendet standardmäßig 128 Tokens pro Antwort. Setzen Sie--default-max-tokensauf dem Server oder konfigurieren Siemodel.max_tokensinconfig.yaml. - Kontext erschöpft — Das Modell hat sein Kontextfenster gefüllt. Erhöhen Sie
model.context_lengthoder aktivieren Sie die Kontextkomprimierung in Hermes.
“Connection refused” von WSL2 zu einem in Windows gehosteten Modellserver
WSL2 verwendet einen virtuellen Netzwerkadapter mit eigenem Subnetz — localhost innerhalb von WSL2 verweist auf die Linux-VM, nicht auf den Windows-Host. Zwei Möglichkeiten:2
Mirrored Networking (Windows 11 22H2+): Bearbeiten Sie %USERPROFILE%\.wslconfig:
[wsl2]
networkingMode=mirrored
Anschließend wsl --shutdown und neu starten. localhost funktioniert nun in beide Richtungen.
Host-IP als Fallback (ältere Windows-Versionen): Ermitteln Sie die Windows-Host-IP innerhalb von WSL2 und verwenden Sie sie anstelle von localhost:
ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host
Außerdem muss der Modellserver an 0.0.0.0 gebunden sein, nicht an 127.0.0.1 — setzen Sie OLLAMA_HOST=0.0.0.0 für Ollama, fügen Sie --host 0.0.0.0 für llama-server/SGLang hinzu, oder aktivieren Sie “Serve on Network” in LM Studio.2
Wo befindet sich was?
hermes status und hermes dump sind hier Ihre Freunde. hermes logs list zeigt alle Logdateien mit Größen an. hermes config path gibt den Speicherort der Konfigurationsdatei aus. hermes config env-path gibt den Speicherort der .env-Datei aus.6
FAQ
Was ist der Unterschied zwischen Hermes Agent und Claude Code?
Claude Code ist die offizielle CLI von Anthropic und auf Anthropic-Modelle festgelegt. Hermes Agent ist ein Open-Source-Agent-Framework von Nous Research, das mit jedem OpenAI-kompatiblen Provider funktioniert — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google oder Ihrem eigenen selbst gehosteten Endpunkt.12 Hermes liefert zudem ein Messaging-Gateway für Telegram/Discord/Slack/WhatsApp/Signal mit, das Claude Code nicht hat.
Kann ich Hermes mit einem Anthropic-API-Schlüssel verwenden?
Ja. Auf drei Wegen:2
- Setzen Sie
ANTHROPIC_API_KEYin~/.hermes/.envund führen Siehermes chat --provider anthropic --model claude-sonnet-4-6aus - Führen Sie
hermes modelaus und wählen Sie Anthropic — Hermes verwendet den Credential Store von Claude Code, sofern verfügbar - Setzen Sie ein manuelles
ANTHROPIC_TOKEN(Setup-Token oder OAuth-Token) als Fallback
Option 2 ist vorzuziehen, wenn Sie Claude Code bereits auf demselben Rechner verwenden — sie hält erneuerbare Claude-Anmeldedaten erneuerbar.
Wie wechsle ich den Provider, ohne meine Konversation zu verlieren?
Verwenden Sie /model provider:model innerhalb einer Sitzung. Konversationsverlauf, Memory und Skills werden alle übernommen:9
/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5
Ich habe Anthropic konfiguriert, aber Vision/Web/Komprimierung funktionieren nicht
Sie geraten an den Fallback für das Hilfsmodell. Vision, Web-Zusammenfassung, Komprimierung und andere Nebenaufgaben verwenden ein separates Hilfs-LLM — standardmäßig Gemini Flash über automatische Erkennung (OpenRouter → Nous → Codex). Wenn keiner davon konfiguriert ist und Sie nur Anthropic eingerichtet haben, verschlechtern sich diese Funktionen stillschweigend.4
Lösung: Fügen Sie entweder einen OPENROUTER_API_KEY für Hilfsaufgaben hinzu oder konfigurieren Sie die Hilfs-Slots so, dass sie Ihren Hauptprovider verwenden. Beachten Sie, dass die Kontextkomprimierung in einem eigenen Top-Level-compression:-Block lebt und summary_provider annimmt, nicht auxiliary.compression.provider — der auxiliary.compression-Slot bietet nur ein timeout. Vollständige Lösung:
auxiliary:
vision: { provider: "main" }
web_extract: { provider: "main" }
compression:
summary_provider: "main"
Was ist der Unterschied zwischen SOUL.md und AGENTS.md?
SOUL.md ist die Identität Ihres Agents — Tonfall, Stil, Kommunikationsvoreinstellungen. Sie liegt in ~/.hermes/SOUL.md und folgt Ihnen überallhin. AGENTS.md ist projektspezifisch — Architektur, Konventionen, Befehle, Pfade — und liegt in Ihrem Projektverzeichnis.13 Wenn es Sie überallhin begleiten soll, SOUL.md. Wenn es zu einem Projekt gehört, AGENTS.md.
Wie führe ich mehrere Hermes-Instanzen nebeneinander aus?
Über Profile. Jedes Profil erhält sein eigenes HERMES_HOME, eigene Konfiguration, Memory, Sitzungen und Gateway-PID:6
hermes profile create work --clone
hermes profile use work # Sticky default
hermes -p work chat -q "..." # One-off without switching
hermes profile alias work --name h-work # Wrapper script
Unterstützt Hermes lokale LLMs?
Ja, über den Pfad für benutzerdefinierte Endpunkte. Hermes funktioniert mit jedem OpenAI-kompatiblen Server: Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan oder Ihrem eigenen.2 Siehe Custom & Self-Hosted Endpoints für die Einrichtung pro Server.
Warum zeigt mein Start-Banner weniger Tools an, als laut Anleitung in Hermes enthalten sind?
Die Anleitung nennt 47 Tools / 20 Toolsets aus dem Upstream-Architektur-Registry — das ist die Gesamtzahl der Tools, für die Hermes Quellcode über alle Toolsets hinweg mitliefert. Ihre laufende Installation zeigt im Banner eine kleinere Zahl an (die Referenzinstallation für diese Anleitung meldet 28 Tools), weil Hermes beim Start nur die Standard-Toolsets aktiviert. Viele Toolsets sind opt-in: Messaging-Gateway-Adapter, Browser-Automatisierung, schwerere Scraping-Stacks und mehrere spezialisierte Integrationen müssen explizit unter toolsets: in ~/.hermes/config.yaml aufgeführt werden, bevor sie geladen werden. Registry-Gesamtzahl = “was verfügbar ist, wenn Sie es aktivieren.” Banner-Gesamtzahl = “was Ihr aktuelles Profil tatsächlich geladen hat.” Verwenden Sie hermes tools --list, um zu sehen, welche Toolsets aktiv sind und welche zwar verfügbar, aber deaktiviert sind. Schalten Sie einzelne Toolsets zur Laufzeit mit /tools enable <name> und /tools disable <name> um (Deaktivieren löst einen Sitzungs-Reset aus, damit der Agent sein Tool-Manifest mit der neuen Form neu aufbaut).
Wie geht Hermes mit Modell-Fallback um, wenn mein primärer Provider ausfällt?
Konfigurieren Sie einen fallback_model-Block in config.yaml:2
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
Wenn der primäre Provider ausfällt (Rate-Limit, Serverfehler, Authentifizierungsfehler), wechselt Hermes mitten in der Sitzung auf den Fallback, ohne den Konversationsverlauf zu verlieren. Wird höchstens einmal pro Sitzung ausgelöst.
Kann der Agent seine eigenen Skills im Lauf der Zeit verbessern?
Ja — das ist der “selbstverbessernde” Teil von Hermes Agent. Der Agent kann Skills über das Tool skill_manage erstellen, aktualisieren und löschen. Sobald er einen nicht trivialen Workflow herausfindet, speichert er den Ansatz als Skill zur künftigen Wiederverwendung.11 Der Agent erstellt Skills nach komplexen Aufgaben (5+ Tool-Aufrufe), wenn er auf Fehler stößt und den funktionierenden Pfad findet, wenn Sie seinen Ansatz korrigieren, oder wenn er einen nicht trivialen Workflow entdeckt.
Gibt es eine IDE-Integration?
Ja — Hermes kann als ACP (Agent Client Protocol)-Server für VS Code, Zed und JetBrains laufen:6
pip install -e '.[acp]'
hermes acp
Änderungsprotokoll
| Datum | Änderung | Quelle |
|---|---|---|
| 2026-05-07 | Leitfaden v1.5: v0.13.0 (7. Mai 2026) — das Tenacity-Release hinzugefügt. Schlagzeile: ein langlebiges Multi-Agent-Kanban-Board (Heartbeat, Reclaim, Zombie-Erkennung, Halluzinations-Gate, max_retries pro Aufgabe, Boards für mehrere Projekte), das Schwärme zu einer erstklassigen Primitive macht statt zu einem Delegationsmuster. Der /goal-Befehl fixiert den Agenten über Turns hinweg auf ein Ziel (Ralph-Loop-Muster als Slash-Befehl). Neues video_analyze-Tool, Gemini-zuerst mit erweiterbarer Unterstützung kompatibler Modelle. xAI Custom Voices TTS-Provider mit Voice Cloning. i18n in 7 Sprachen (zh-Hans, ja, de, es, fr, uk, tr) für CLI und Gateway-Meldungen; Dokumentation nur zh-Hans. Google Chat als 20. Messaging-Plattform über das pluggable Adapter-Muster; IRC + Microsoft Teams auf dasselbe Muster migriert. ProviderProfile ABC + plugins/model-providers/ für pluggable Drittanbieter-Provider ohne Core-Änderungen. Sitzungs-Auto-Resume über Gateway-Neustart, /update und Source-File-Reload hinweg. Checkpoints v2 als Neuschreibung mit Single-Store-Design, echtem Pruning und Disk-Schutzgrenzen. Acht P0-Sicherheitsschließungen: Secret-Redaction standardmäßig aktiv, Discord Cross-Guild DM Bypass (CVSS 8.1), WhatsApp Stranger-Reject + Self-Chat-Mute, MCP OAuth TOCTOU, CLI auth.json TOCTOU, Browser-SSRF-Untergrenze, Cron-Prompt-Injection-Scanning, hermes debug share-Redaction. Post-Write-Linting für Python/JSON/YAML/TOML, Cron no_agent Script-Only-Modus, Plattform-Allowlists in Slack/Telegram/Mattermost/Matrix/DingTalk, MCP-Erweiterungen (SSE-Transport, OAuth-Forwarding, Image-MEDIA-Tags). Statistik seit v0.12.0: 864 Commits, 588 gemergte PRs, 829 geänderte Dateien, 295 Community-Contributors, 282 geschlossene Issues (13 P0, 36 P1). |
18 |
| 2026-05-06 | Leitfaden v1.4: v0.12.0 (30. April 2026) — das Curator-Release hinzugefügt. Schlagzeile: ein autonomer Hintergrund-Curator, der auf dem Cron-Ticker des Gateways läuft (7-Tage-Standardzyklus), die Skill-Bibliothek anhand einer Rubrik bewertet, tote Skills entfernt, verwandte Skills konsolidiert und Berichte pro Lauf schreibt — Hermes pflegt sich zwischen aktiven Sitzungen selbst. Self-Improvement-Loop aufgewertet mit rubrikbasierter Bewertung, Active-Update-Bias, korrekter Runtime-Vererbung und scoped Toolsets, die auf Memory und Skills beschränkt sind. Vier neue Inference-Provider: GMI Cloud, Azure AI Foundry, MiniMax OAuth und Tencent Tokenhub. LM Studio zur First-Class-Komponente befördert. Remote-Modellkatalog-Manifeste werden jetzt ohne Releases automatisch aktualisiert. Zwei neue Messaging-Plattformen: Microsoft Teams (19., über pluggable Gateway-Architektur) und Tencent Yuanbao (18., natives Text + Medien). Natives Spotify über PKCE OAuth mit gebündeltem Skill; Google Meet-Plugin für Anrufe und Transkription; Piper Local TTS-Provider. ComfyUI v5 + TouchDesigner-MCP von optional auf standardmäßig gebündelt verschoben. Neue Skills: Humanizer, claude-design, design-md, airtable. CLI-Ergänzungen: hermes -z One-Shot-Modus, hermes update --check Preflight, /reload-skills-Slash-Befehl, pluggable Busy-Indicator-Stile. Sichtbarer TUI-Kaltstart um ca. 57% durch Lazy-Agent-Init und Lazy-Imports verkürzt. Sicherheit: Secret-Redaction standardmäßig deaktiviert, um Payload-Korruption zu vermeiden; harte Blocklist für nicht wiederherstellbare Befehle. Statistik: 1.096 Commits, 550 gemergte PRs, 213 Community-Contributors. |
17 |
| 2026-04-25 | Leitfaden v1.3: v0.11.0 (23. April 2026) — das Interface-Release hinzugefügt. Vollständiges React/Ink-Rewrite der interaktiven TUI mit einem Python JSON-RPC-Backend (tui_gateway); sticky Composer, Live-Streaming mit OSC-52-Clipboard-Support, stabile Picker-Keys, Statusleiste mit Stoppuhr pro Turn und Git-Branch, /clear-Bestätigung, Light-Theme-Preset, Subagent-Spawn-Observability-Overlay. Pluggable Transport-Architektur — Formatkonvertierung und HTTP-Transport in agent/transports/ ausgelagert für sauberere Provider-Verkabelung. Natives AWS Bedrock über die Converse API. Fünf neue Inference-Pfade: NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth und Vercel ai-gateway. GPT-5.5 über Codex OAuth — das neue OpenAI-Flaggschiff ist jetzt über die ChatGPT-Codex-OAuth ohne separaten API-Key erreichbar. QQBot (17. Messaging-Plattform) mit QR-Scan-Setup und Streaming. Erweiterung der Plugin-Oberfläche: Slash-Befehle, Tool-Dispatch, Ausführungsblockierung, Ergebnistransformation. /steer <prompt> — Agenten-Nudges während des Laufs, die eine Notiz einfügen, die der laufende Agent nach seinem nächsten Tool-Call sieht, ohne den Turn zu unterbrechen oder den Prompt-Cache zu zerstören. Shell-Hooks verbinden Skripte als Lifecycle-Hooks ohne Python-Plugins. Webhook-Direct-Delivery-Modus leitet Payloads direkt an einen Plattform-Chat weiter und umgeht den Agenten für Fan-Out. Intelligentere Delegation mit Orchestrator-Rollen, konfigurierbarer Spawn-Tiefe und Datei-Koordination. Dashboard erhält ein Plugin-System, Live-Theme-Wechsel, i18n und Mobile-Responsiveness. Statistik seit v0.9.0: 1.556 Commits, 761 gemergte PRs, 1.314 geänderte Dateien, 224.174 Einfügungen, 29 Community-Contributors. |
19 |
| 2026-04-16 | Leitfaden v1.2: v0.10.0 — Nous Tool Gateway hinzugefügt. Zahlende Nous Portal-Abonnenten erhalten jetzt Zugriff auf verwaltete Tools (Firecrawl Web-Suche, FAL / FLUX 2 Pro Bildgenerierung, OpenAI TTS, Browser Use Browser-Automatisierung) ohne zusätzliche API-Keys. Opt-in pro Tool über das neue use_gateway-Konfigurationsfeld. Die Laufzeit bevorzugt Gateway gegenüber direkten API-Keys, wenn beide konfiguriert sind. HERMES_ENABLE_NOUS_MANAGED_TOOLS-Umgebungsvariable entfernt. Hermes Agent CLI bleibt MIT-lizenziert und vollständig kostenlos. |
20 |
| 2026-04-13 | Leitfaden v1.1: Funktionen von v0.8.0 und v0.9.0 hinzugefügt. Lokales Web-Dashboard, /fast-Modus, iMessage + WeChat-Plattformen (insgesamt 16), Hintergrundprozess-Monitoring (watch_patterns), pluggable Context-Engine, hermes backup/hermes import, Termux/Android, xAI + MiMo + Google AI Studio + Qwen-Provider, /debug-Befehl, umfassende Sicherheitshärtung. |
15 16 |
| 2026-04-10 | Leitfaden v1.0: Erstrelease zu Hermes Agent v0.7.0. Provider-Authentifizierung, Konfiguration, CLI, Slash-Befehle, Tools, Skills, Memory, Gateway, Cron, MCP, Komprimierung, Architektur, OpenClaw-Migration, Troubleshooting, FAQ. |
Referenzen
-
Nous Research, “Hermes Agent” Projekt-README auf GitHub. Primärquelle für die Produktbeschreibung (selbstverbessernder Agent, Multi-Provider, Messaging-Gateway, Terminal-Backends, Skill-Evolution, Cron-Scheduler, Delegation) und den “Quick Install” Einzeiler. ↩↩↩
-
Nous Research, “AI Providers” in der Hermes Agent Dokumentation. Primärquelle für die vollständige Provider-Liste, Authentifizierungsmethoden pro Provider (Nous Portal OAuth, Codex Device Code, GitHub Copilot Token-Typen, Anthropic Drei-Methoden-Authentifizierung, chinesische AI-Provider, Hugging Face Routing, benutzerdefinierte Endpunkte), die drei Authentifizierungspfade (API Schlüssel in
.env, OAuth viahermes model, benutzerdefinierter Endpunkt inconfig.yaml), die/modelSlash-Command-Syntax (einschließlichcustom:name:model), Ollama/vLLM/SGLang/llama.cpp/LM Studio Setup-Vorlagen, WSL2-Netzwerkanweisungen, Kontextlängen-Erkennungskette, Fallback-Modellkonfiguration, Smart Model Routing und benannte benutzerdefinierte Provider. Alle providerspezifischen Umgebungsvariablennamen, Token-Typen, Base-URL-Überschreibungen und Modellbezeichner in diesem Beitrag stammen von dieser Seite. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Architecture” im Hermes Agent Entwicklerhandbuch. Primärquelle für das Systemübersichtsdiagramm, die Verzeichnisstruktur, den Datenfluss durch CLI Session- und Gateway-Nachrichtenpfade, die drei API Modi (
chat_completions,codex_responses,anthropic_messages), Provider-Auflösung viaruntime_provider.py, Session-Persistenz via SQLite + FTS5, Plattformliste des Messaging-Gateways, Plugin-System-Discovery-Quellen, Profilisolierung und die sechs Designprinzipien. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Configuration” im Hermes Agent Benutzerhandbuch. Primärquelle für die Konfigurationsverzeichnisstruktur, die
config.yamlvs..envRegel (“config.yamlgewinnt bei nicht geheimen Einstellungen”), die Konfigurationspräzedenzkette (CLI Argumente → env → config.yaml → .env → Standardwerte), Kontextkomprimierungs-Einstellungen (compression.*Block mitthreshold,target_ratio,protect_last_n,summary_model,summary_provider,summary_base_url), Budget-Druck-Schwellenwerte (70 % Vorsicht, 90 % Warnung), Streaming-Timeouts mit lokaler Provider-Auto-Anpassung und den vollständigen Hilfsmodell-Konfigurationsblock (auxiliary:mitvision,web_extract,approval,compression,session_search,skills_hub,mcp,flush_memoriesSlots). Die Beschränkung von"main"Provider auf Auxiliary/Compression/Fallback Slots stammt ebenfalls von dieser Seite. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Migrate from OpenClaw” in den Hermes Agent Guides. Quelle für den OpenClaw → Hermes Migrationsablauf. ↩↩
-
Nous Research, “CLI Commands Reference” in der Hermes Agent Referenzdokumentation. Primärquelle für jeden in diesem Beitrag dokumentierten Top-Level CLI Befehl, einschließlich
hermes chat,hermes model,hermes gateway,hermes setup,hermes auth,hermes status,hermes cron,hermes webhook,hermes doctor,hermes dump,hermes logs,hermes config,hermes pairing,hermes skills,hermes honcho,hermes memory,hermes acp,hermes mcp,hermes plugins,hermes tools,hermes sessions,hermes insights,hermes claw,hermes profile,hermes completion,hermes updateundhermes uninstall. Alle Subcommand-Flags, Optionsbeschreibungen, Credential-Pool-Verhalten, Log-Filter-Syntax, OpenClaw-Migrationsflags, Profilverwaltungsbefehle und Service-Installationsbefehle in diesem Beitrag stammen von dieser Seite. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Installation” im Hermes Agent Getting-Started-Guide. Primärquelle für den Einzeiler-Installer-Befehl, das Verhalten des Installers (Voraussetzungen, Plattformunterstützung, Termux-Auto-Erkennung, Windows/WSL2-Anforderungen), die Tabelle der optionalen Extras, die manuellen Installationsschritte und die Verifikationsbefehle. ↩↩↩↩↩↩↩↩
-
Nous Research, “CLI Commands Reference” — siehe insbesondere den Abschnitt
hermes dump, der das Ausgabeformat des Befehls beschreibt (Header, Umgebung, Identität, Modell, Terminal, API Schlüssel, Funktionen, Services, Workload, Config-Überschreibungen) und den vorgesehenen Einsatz zum Teilen von Diagnosedaten. ↩ -
Nous Research, “Slash Commands Reference” in der Hermes Agent Referenzdokumentation. Primärquelle für jeden in diesem Beitrag aufgeführten Slash-Befehl, die
COMMAND_REGISTRYArchitektur, die Aufteilung CLI vs. Messaging, dynamische Skill-Slash-Befehle, Quick Commands inconfig.yaml, Präfix-Matching-Verhalten und die Messaging-only Befehle (/status,/sethome,/approve,/deny,/update,/commands). ↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Tools & Toolsets” im Hermes Agent Benutzerhandbuch. Primärquelle für die Tool-Kategorieübersicht, Toolset-Nutzungsbefehle, die sechs Terminal-Backends (local, docker, ssh, singularity, modal, daytona), Container-Konfiguration (cpu, memory, disk, persistent), Sicherheitshärtung für Container, Hintergrundprozessverwaltung API und Sudo-Unterstützung. ↩↩↩↩↩↩↩↩↩↩
-
Nous Research, “Skills System” im Hermes Agent Benutzerhandbuch. Primärquelle für progressive Disclosure, das
SKILL.mdFormat, plattformspezifische Skills, bedingte Aktivierung (fallback_for_toolsets,requires_toolsets,fallback_for_tools,requires_tools), agent-verwaltete Skills viaskill_manage, die Skill-Hub-Befehle und Quellenliste (official,skills-sh,well-known,github,clawhub,claude-marketplace,lobehub), Sicherheitsscans und Vertrauensstufen sowie externe Skill-Verzeichnisse. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Persistent Memory” im Hermes Agent Benutzerhandbuch. Primärquelle für die
MEMORY.md/USER.mdZeichenlimits, das Pattern für eingefrorene Snapshots, Memory-Tool-Aktionen (add,replace,remove), was zu speichern vs. zu überspringen ist, den Vergleich Memory vs. Session-Suche und die Liste der acht externen Memory-Provider (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). ↩↩↩↩↩↩↩↩ -
Nous Research, “Personality & SOUL.md” im Hermes Agent Benutzerhandbuch. Primärquelle für das
SOUL.mdVerhalten (lebt inHERMES_HOME, wird nie überschrieben, Slot #1 im System-Prompt, sicherheitsgescannt vor Einbindung), die Unterscheidung SOUL.md vs. AGENTS.md, die Liste der eingebauten Persönlichkeiten (14 Persönlichkeiten vonhelpfulbishype), benutzerdefinierte Persönlichkeiten inconfig.yaml, das/personalityOverlay-Pattern und die vollständige Reihenfolge der Prompt-Stack-Zusammenstellung. ↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Use MCP with Hermes” und MCP Config Reference in den Hermes Agent Guides und Referenzen. Quelle für das
mcp_servers:Konfigurationsformat inconfig.yamlmit den Felderncommand,args,env. ↩ -
Hermes Agent v0.8.0 Release Notes. 8. April 2026. Auto-Benachrichtigungen für Hintergrundprozesse, kostenloses MiMo v2 Pro auf Nous Portal, Live-
/model-Switching plattformübergreifend, Google AI Studio nativer Provider, Qwen OAuth, inaktivitätsbasierte Timeouts, Approval-Buttons auf Slack/Telegram, MCP OAuth 2.1 PKCE, zentralisiertes Logging, Erweiterung des Plugin-Systems. ↩↩↩↩↩ -
Hermes Agent v0.9.0 Release Notes. 13. April 2026. Lokales Web-Dashboard, Fast Mode (
/fast), iMessage via BlueBubbles, WeChat + WeCom, Termux/Android, Hintergrundprozessüberwachung (watch_patterns), xAI + Xiaomi MiMo native Provider, austauschbarer Context Engine, einheitlicher Proxy-Support, Sicherheitshärtung (Path Traversal, Shell Injection, SSRF, RCE Fixes),hermes backup/hermes import,/debug+hermes debug share, 16 unterstützte Plattformen. 487 Commits, 269 gemergte PRs, 24 Mitwirkende. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.12.0 Release Notes. 30. April 2026. “The Curator release.” Autonomer Hintergrund-Curator, der die Skill-Bibliothek bewertet, ausdünnt und konsolidiert, in einem 7-Tage-Standardzyklus auf dem Cron-Ticker des Gateways. Self-Improvement-Loop verbessert: rubrikbasiertes Grading, aktiver Update-Bias, korrekte Runtime-Vererbung, gescopte Toolsets beschränkt auf Memory und Skills. Vier neue Inference-Provider: GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio in den First-Class-Status erhoben. Manifeste des Remote-Modellkatalogs aktualisieren sich automatisch ohne Releases. Zwei neue Messaging-Plattformen: Microsoft Teams (19., über austauschbare Gateway-Architektur) und Tencent Yuanbao (18., nativer Text + Medien). Natives Spotify via PKCE OAuth mit gebündeltem Skill; Google Meet Plugin für Anrufe und Transkription; Piper lokaler TTS-Provider. ComfyUI v5 + TouchDesigner-MCP standardmäßig gebündelt. Neue Skills: Humanizer, claude-design, design-md, airtable. CLI:
hermes -zOne-Shot-Modus,hermes update --checkPreflight,/reload-skillsSlash-Befehl, austauschbare Busy-Indicator-Stile. TUI-Kaltstart um ~57 % verkürzt durch Lazy Initialization. Sicherheit: Secret-Redaction standardmäßig deaktiviert; Hardline-Blocklist für nicht wiederherstellbare Befehle. Statistiken seit v0.11.0: 1.096 Commits, 550 gemergte PRs, 213 Community-Mitwirkende. Siehe auch: v2026.4.30 Release-Tag. ↩↩↩ -
Hermes Agent v0.13.0 Release Notes. 7. Mai 2026. “The Tenacity release.” Multi-Agent-Kanban-Board mit Heartbeat, Reclaim, Zombie-Detection, Halluzinations-Gate,
max_retriespro Task, Multi-Project-Boards./goalSlash-Befehl für Cross-Turn-Target-Locking (Ralph-Loop-Primitive) mit konfigurierbarem Turn-Budget.video_analyzeTool, Gemini-first mit kompatibler multimodaler Erweiterbarkeit. xAI Custom Voices TTS-Provider mit Voice Cloning. 7-Sprachen-i18n: zh-Hans, ja, de, es, fr, uk, tr (CLI + Gateway-Nachrichten; Docs nur zh-Hans). Google Chat als 20. Messaging-Plattform via austauschbarem Adapter-Pattern mit generischenenv_enablement_fn/cron_deliver_env_varPlugin-Hooks; IRC und Microsoft Teams auf dasselbe Pattern migriert.ProviderProfileABC +plugins/model-providers/für austauschbare Drittanbieter-Provider. Session-Auto-Resume über Gateway-Neustart,/updateund Source-File-Reloads hinweg. Checkpoints v2 Single-Store-Rewrite mit echtem Pruning, Disk-Guardrails, ohne Orphan-Shadow-Repos. Acht P0-Sicherheitslücken geschlossen: Secret-Redaction default-on, Discord Cross-Guild-DM-Bypass (CVSS 8.1, Rollen-Allowlists Guild-scoped), WhatsApp lehnt Fremde standardmäßig ab + antwortet niemals im Self-Chat, MCP OAuth Credential-Save TOCTOU, CLIauth.jsonTOCTOU in Credential-Writern, Browser Cloud-Metadata SSRF-Floor in Hybrid-Routing, Cron-Scanning zusammengesetzter Prompts (einschließlich Skill-Inhalt) auf Prompt-Injection,hermes debug shareLog-Content-Redaction zum Upload-Zeitpunkt. Weitere bemerkenswerte Punkte: Post-Write-Linting für Python/JSON/YAML/TOML, Cronno_agentScript-only-Watchdog-Modus, Plattform-Allowlists über Slack/Telegram/Mattermost/Matrix/DingTalk, MCP Verbesserungen (SSE-Transport, OAuth Forwarding, Bildergebnisse als MEDIA-Tags). Statistiken seit v0.12.0: 864 Commits, 588 gemergte PRs, 829 geänderte Dateien, 295 Community-Mitwirkende, 282 geschlossene Issues (13 P0, 36 P1). ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.11.0 Release Notes. 23. April 2026. “The Interface release” — vollständiger React/Ink-Rewrite des interaktiven CLI mit Python JSON-RPC-Backend (
tui_gateway); austauschbare Transport-Architektur (agent/transports/); natives AWS Bedrock via Converse API; fünf neue Inference-Pfade (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway); GPT-5.5 via Codex OAuth; QQBot als 17. Messaging-Plattform mit QR-Scan-Setup; erweiterte Plugin-Oberfläche (Slash-Befehle, Tool-Dispatch, Execution-Blocking, Result-Transformation);/steer <prompt>für Mid-Run-Agent-Nudges, die nach dem nächsten Tool-Call Kontext einfügen, ohne den Prompt-Cache zu brechen; Shell-Hooks für Lifecycle-Ereignisse ohne Python Plugins; Webhook Direct-Delivery-Modus, der Payloads direkt an einen Plattform-Chat weiterleitet; intelligentere Delegation mit Orchestrator-Rollen + konfigurierbarer Spawn-Tiefe + Datei-Koordination; Dashboard-Plugin-System, Live-Theme-Switching, i18n, mobile Responsiveness. Statistiken seit v0.9.0: 1.556 Commits · 761 gemergte PRs · 1.314 geänderte Dateien · 224.174 Insertions · 29 Community-Mitwirkende. Siehe auch: Hermes Agent v0.11.0 GitHub Release-Tag. ↩↩↩ -
Hermes Agent v0.10.0 Release Notes. 16. April 2026. “The Tool Gateway Release.” Nous Tool Gateway Integration für zahlende Nous Portal Abonnenten — verwalteter Zugriff auf Firecrawl Web-Suche, FAL / FLUX 2 Pro Bildgenerierung, OpenAI TTS und Browser Use Browser-Automatisierung ohne zusätzliche API Schlüssel. Per-Tool-Opt-in via neuem
use_gatewayConfig-Feld. Runtime bevorzugt Gateway gegenüber direkten API Schlüsseln, wenn beide konfiguriert sind. Vollständige Integration mithermes toolsundhermes status. Ersetzt veralteteHERMES_ENABLE_NOUS_MANAGED_TOOLSenv-Variable. Implementierung von @jquesnelle (emozilla). Hermes Agent CLI bleibt MIT-lizenziert und vollständig Open Source; das Gateway ist eine Integration mit dem bestehenden Portal-Abonnementprodukt, keine Paywall auf dem CLI. Siehe auch: Nous Portal für Abonnementpreise und Anmeldung. ↩↩↩