Hermes Agent – Der vollständige Guide
Hermes Agent ist ein Open-Source-AI-Agent von Nous Research, der sich durch Nutzung selbst verbessert: Er erstellt eigene Skills aus Erfahrung, kuratiert Memory über Sessions hinweg und läuft auf nahezu beliebiger Infrastruktur – vom günstigen VPS bis zu Cloud-Clustern. Mit einem Gateway verbindet er 15+ Messaging-Plattformen (Telegram, Discord, Slack, WhatsApp, Signal, iMessage, Matrix, …) zu einem persönlichen, persistenten Assistenten.
Repo: NousResearch/hermes-agent · Lizenz: MIT
1. Was ist Hermes?​
Hermes ist kein Coding-Copilot und keine Chatbot-HĂĽlle, sondern ein autonomer Agent mit:
- Closed-Loop-Learning – kuratierte Memory + periodische Nudges
- Skill-Self-Authoring – der Agent schreibt nach komplexen Tasks eigene Skills
- Cross-Session-Recall – SQLite-Volltextsuche + Gemini-Flash-Summarization
- User-Modeling via Honcho-Integration
- 6 Terminal-Backends – local, Docker, SSH, Daytona, Singularity, Modal
- Subagent-Spawning fĂĽr parallele Workstreams
- Cron-Scheduler fĂĽr wiederkehrende Tasks (60-Sekunden-Tick)
Hermes vs. Claude Code vs. OpenClaw​
| Aspekt | Claude Code | OpenClaw | Hermes |
|---|---|---|---|
| Hauptzweck | Coding im Terminal/IDE | Messaging-Gateway | Allzweck-Agent mit Lernschleife |
| Model-Provider | Anthropic | flexibel | OpenRouter, Anthropic, OpenAI, Ollama, Copilot, Nous Portal, DeepSeek, Gemini, … |
| Self-Improvement | – | – | Ja (skill_manage, Memory-Curation) |
| Terminal-Backends | 1 (lokal) | 1 + Sandbox | 6 |
| Channels | – | 10+ | 18+ |
| Voice-Mode | – | – | Ja (TTS + voice-fähige Channels) |
2. Voraussetzungen​
- Git (alles andere ĂĽbernimmt der Installer)
- Linux, macOS, WSL2 oder Android/Termux
- API-Key eines LLM-Providers (oder lokales Ollama-Modell)
Native Windows-UnterstĂĽtzung gibt es nicht. Auf Windows wird WSL2 verwendet.
Der Installer holt automatisch:
uv(Python-Paketmanager)- Python 3.11
- Node.js v22
ripgrep(schnelle Dateisuche)ffmpeg(Audio-Konvertierung fĂĽr Voice-Mode)
3. Installation​
One-Line-Installer (empfohlen)​
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Der Installer erkennt Linux, macOS, WSL2 und Termux automatisch.
Aus Quellcode (für Contributors)​
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
# Setup laut Contributing-Guide
Erste Schritte nach der Installation​
source ~/.bashrc # oder ~/.zshrc
hermes # interaktive Session starten
Setup-Wizard​
hermes setup # kompletter Wizard
# oder einzelne Bereiche:
hermes model # LLM-Provider konfigurieren
hermes tools # Tools aktivieren/deaktivieren
hermes gateway setup # Messaging-Plattformen einrichten
hermes doctor # Diagnose
4. LLM-Provider konfigurieren​
Konfigurations-Reihenfolge (höchste Priorität zuerst)​
- CLI-Argumente (per Invocation)
config.yaml(primäre Settings, kein Secret).env(API-Keys & Secrets)- Eingebaute Defaults
Unterstützte Provider​
- OpenRouter – einfachster Einstieg, viele Modelle
- Anthropic – Claude Opus/Sonnet/Haiku
- OpenAI – GPT-4o, o-Serie
- Copilot – via ChatGPT-OAuth
- Custom Endpoints – Ollama, vLLM, LM Studio, eigene OpenAI-kompatible Server
- Nous Portal – Hermes-Eigenmodelle
- DeepSeek, Gemini, weitere via Provider-Registry
Universelles Schema​
# ~/.hermes/config.yaml
llm:
provider: anthropic
model: claude-opus-4-7
# base_url: https://meine-ollama:11434/v1 # optional, ĂĽbersteuert provider
# ~/.hermes/.env
ANTHROPIC_API_KEY=sk-ant-...
OPENROUTER_API_KEY=sk-or-...
In config.yaml funktioniert ${VAR_NAME} – so kannst du Secrets sauber aus .env injizieren, ohne sie hartzucodieren.
base_url schaltet den Provider ausSobald base_url gesetzt ist, ignoriert Hermes das provider-Feld und ruft den Endpoint direkt. Praktisch fĂĽr Self-Hosting, aber Authentifizierung musst du selbst regeln.
5. Terminal-Backends​
Hermes kann Tool-Calls in 6 unterschiedlichen Umgebungen ausfĂĽhren.
| Backend | WofĂĽr | Isolation | Kosten |
|---|---|---|---|
| local | Schnellste Iteration, Dev | keine | – |
| docker | Sicheres lokales Sandboxing | Container | – |
| ssh | Remote-Box, Homelab | Host-OS | – |
| daytona | Dev-Sandboxes in der Cloud | Container | gering |
| singularity | HPC / Forschungscluster | Container | je nach Cluster |
| modal | Serverless – „costs nearly nothing when idle" | Container | per-Sekunde |
Container-Sicherheits-Defaults​
- Read-only Root-Filesystem (Docker)
- Alle Linux-Capabilities gedroppt
- Kein Privilege-Escalation
- PID-Limit (256 Prozesse)
- Vollständige Namespace-Isolation
local fĂĽhrt direkt auf deinem Host aus. FĂĽr riskante Workflows (Web-Browsing, fremde Skripte) immer docker oder modal verwenden.
6. Messaging-Gateway​
hermes gateway setup
Der Wizard fĂĽhrt dich durch die Konfiguration. Bereits eingerichtete Services werden markiert.
Plattform-Übersicht​
| Plattform | Voice | Bilder/Files | Threads | Reaktionen |
|---|---|---|---|---|
| Telegram | ✅ | ✅ | – | – |
| Discord | âś… | âś… | âś… | âś… |
| Slack | âś… | âś… | âś… | âś… |
| – | ✅ | – | – | |
| Signal | – | ✅ | – | – |
| Matrix | âś… | âś… | âś… | âś… |
| Mattermost | ✅ | ✅ | – | – |
| iMessage (BlueBubbles) | – | ✅ | – | – |
| – | ✅ | ✅ | – | |
| SMS | – | – | – | – |
| Feishu/Lark, WeCom, Weixin, QQ, Yuanbao, DingTalk | tlw. | âś… | tlw. | tlw. |
| Home Assistant, Webhooks | – | – | – | – |
Architektur​
Ein Hintergrundprozess verbindet sich mit allen konfigurierten Plattformen, verwaltet Per-Chat-Sessions, läuft den Cron-Scheduler (60s-Tick) und liefert Voice-Messages aus.
- Linux → systemd User- oder System-Service
- macOS → launchd-Agent (inkl. PATH/ENV-Konfiguration)
7. Memory-System​
- MEMORY.md — ~2.200 Zeichen, Umgebungsnotizen & Lessons Learned
- USER.md — ~1.375 Zeichen, Nutzer-Präferenzen & Stil
- config.yaml
- .env
Wie Memory funktioniert​
- Snapshot beim Session-Start –
MEMORY.mdundUSER.mdwerden in den System-Prompt eingefroren und nicht während der Session aktualisiert. Grund: der Prefix-Cache des LLM bleibt warm → schneller, billiger. - Updates schreibt der Agent zwar laufend, sie werden aber erst in der nächsten Session sichtbar.
- Cross-Session-Recall läuft über das Tool
session_search:- Volltextsuche in der SQLite-Sessions-DB
- Treffer werden via Gemini Flash zusammengefasst
- So findet der Agent Inhalte aus Wochen alten Gesprächen, ohne sie aktiv im Kontext halten zu müssen
MEMORY.md= deklarativ (was weiĂź ich? Fakten, Vorlieben).skills/= prozedural (wie macht man X? wiederholbare Workflows).
8. Skills-System​
Skills sind die prozedurale Memory des Agents – versionierbare Markdown-Dokumente mit YAML-Frontmatter.
SKILL.md – Format​
---
name: deploy-staging
description: Deployt das aktuelle Repo auf Staging via Helm
version: 1.2.0
platforms: [linux, darwin]
---
## When to Use
Wenn der User nach „deploy", „staging", „release candidate" fragt
und ein `helm/` Ordner im Repo existiert.
## Procedure
1. `git status` → muss clean sein
2. Image bauen: `docker build -t app:$(git rev-parse --short HEAD) .`
3. `helm upgrade --install app helm/ -f helm/values.staging.yaml`
4. Health-Check: `curl https://staging.example.com/health`
## Pitfalls
- Bei dirty working tree → abbrechen
- Bei fehlgeschlagenem Health-Check → `helm rollback`
## Verification
- HTTP 200 vom Health-Endpoint
- Pods im Status `Running`
Progressive Disclosure​
Damit Skills den Token-Budget nicht sprengen, werden sie dreistufig geladen:
- List-Metadata – nur Name + Description (~3.000 Tokens für die ganze Library)
- Full Content – auf Anfrage des Agents
- Reference Files – tiefere Sub-Files, falls referenziert
Wo leben Skills?​
~/.hermes/skills/– Source of Truth, beim Erstinstall vom Repo gespiegeltexternal_dirsinconfig.yaml– externe Verzeichnisse einbinden- agentskills.io – offener Standard, kompatibel mit anderen Agent-Plattformen
Self-Improvement: skill_manage​
Der Agent erstellt selbst Skills nach:
- komplexen Tasks (≥ 5 Tool-Calls)
- erfolgreich behobenen Fehlern
- entdeckten nicht-trivialen Workflows
Aktionen: create, patch, edit, delete.
Skills sind vom Agent geschrieben – schau sie regelmäßig durch (hermes skills list, manueller Diff im Git-Backup), bevor sie sich falsche Gewohnheiten einprägen.
9. Built-in Tools & Toolsets​
Tool-Kategorien​
| Kategorie | Tools |
|---|---|
| Web | web_search, web_extract |
| Terminal & Files | terminal, process, read_file, patch |
| Browser | browser_navigate, browser_snapshot, browser_vision |
| Media | vision_analyze, image_generate, text_to_speech |
| Agent-Orchestration | todo, clarify, execute_code, delegate_task |
| Memory & Recall | memory, session_search |
| Automation & Delivery | cronjob, send_message |
| Integrationen | Home Assistant, MCP-Server, RL-Training |
Toolsets​
Toolsets bündeln Tools logisch und können per Agent / per Channel ein- oder ausgeschaltet werden:
web · terminal · file · browser · vision · image_gen · moa · skills
tts · todo · memory · session_search · cronjob · code_execution
delegation · clarify · homeassistant
hermes tools # Toolsets togglen
10. MCP – Model Context Protocol​
Hermes ist MCP-Client und kann beliebige MCP-Server einbinden – z. B. Filesystem, GitHub, Postgres, Brave Search, eigene Server.
# ~/.hermes/config.yaml
mcp:
servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_TOKEN: ${GITHUB_TOKEN}
Damit erweiterst du den Tool-Pool ohne Hermes-Code zu ändern.
11. Voice-Mode​
Auf voice-fähigen Channels (Telegram, Discord, Slack, Mattermost, Matrix, Feishu/Lark, WeCom, Weixin, QQ, Yuanbao):
- Eingehende Voice-Nachrichten → Transkription
- Ausgehende Antworten →
text_to_speech→ Audio-Reply
ffmpeg wird vom Installer mitgebracht.
12. Subagents & Cron​
Delegation an Subagents​
„Recherchiere parallel: Konkurrent A, B und C – jeweils Pricing,
Tech-Stack und letzte 3 Pressemeldungen."
Der Agent spawnt mit delegate_task parallele Subagents, jeder mit eigener Session, und konsolidiert deren Ergebnisse.
Cron-Scheduler​
„Prüfe jeden Werktag um 8:30 die GitHub-Issues mit Label `urgent`
und schick mir eine Zusammenfassung auf Telegram."
Der Agent legt einen Cronjob via cronjob-Tool an. Der Gateway-Scheduler tickt alle 60s.
13. Sicherheit – Pflichtlektüre​
Eingehende Messages können den Agent manipulieren. Schutzschichten:
- Container-Backend (
docker,modal) stattlocal - Toolset-Restrictions pro Channel: fĂĽr unbekannte Sender keine
terminal/browser/code_execution-Tools - Sender-Allowlists im Gateway
- MCP-Server sind ebenfalls Code-Quellen → genauso vorsichtig behandeln
Audit & Diagnose​
hermes doctor # Health-Checks
hermes gateway status # Gateway + Channels
hermes logs # zentrale Logs
14. Cheatsheet​
# Lifecycle
hermes # interaktive Session
hermes setup # vollständiger Wizard
hermes doctor # Diagnose
# LLM
hermes model # Provider/Modell wechseln
# Tools
hermes tools # Toolsets togglen
# Gateway
hermes gateway setup
hermes gateway status
hermes gateway start|stop|restart
# Skills
hermes skills list
hermes skills edit <name>
15. Häufige Probleme​
| Problem | Lösung |
|---|---|
| Installer schlägt fehl | git --version prüfen, ggf. WSL2 statt nativem Windows |
hermes: command not found | Shell neu laden (source ~/.bashrc), PATH prĂĽfen |
| Modell antwortet nicht | API-Key in .env, Guthaben checken, hermes doctor |
| Memory-Updates greifen nicht | Korrekt – sie sind erst in der nächsten Session aktiv |
| Voice funktioniert nicht | ffmpeg installiert? Channel voice-fähig? |
| Skills explodieren im Token-Budget | Toolset-Filter, external_dirs ausmisten |
16. Weiterführend​
- Docs-Index: hermes-agent.nousresearch.com/docs
- Installation: /docs/getting-started/installation
- Quickstart: /docs/getting-started/quickstart
- Konfiguration: /docs/user-guide/configuration
- Memory: /docs/user-guide/features/memory
- Skills: /docs/user-guide/features/skills
- Tools: /docs/user-guide/features/tools
- MCP: /docs/user-guide/features/mcp
- Architektur: /docs/developer-guide/architecture
- Skills-Hub: agentskills.io
- GitHub: NousResearch/hermes-agent
„The self-improving AI agent — it creates skills from experience, improves them during use."