Zum Hauptinhalt springen

Hermes Agent – Der vollständige Guide

Worum geht's?

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​

AspektClaude CodeOpenClawHermes
HauptzweckCoding im Terminal/IDEMessaging-GatewayAllzweck-Agent mit Lernschleife
Model-ProviderAnthropicflexibelOpenRouter, Anthropic, OpenAI, Ollama, Copilot, Nous Portal, DeepSeek, Gemini, …
Self-Improvement––Ja (skill_manage, Memory-Curation)
Terminal-Backends1 (lokal)1 + Sandbox6
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)
Windows

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)​

  1. CLI-Argumente (per Invocation)
  2. config.yaml (primäre Settings, kein Secret)
  3. .env (API-Keys & Secrets)
  4. 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-...
ENV-Substitution

In config.yaml funktioniert ${VAR_NAME} – so kannst du Secrets sauber aus .env injizieren, ohne sie hartzucodieren.

base_url schaltet den Provider aus

Sobald 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.

BackendWofĂĽrIsolationKosten
localSchnellste Iteration, Devkeine–
dockerSicheres lokales SandboxingContainer–
sshRemote-Box, HomelabHost-OS–
daytonaDev-Sandboxes in der CloudContainergering
singularityHPC / ForschungsclusterContainerje nach Cluster
modalServerless – „costs nearly nothing when idle"Containerper-Sekunde

Container-Sicherheits-Defaults​

  • Read-only Root-Filesystem (Docker)
  • Alle Linux-Capabilities gedroppt
  • Kein Privilege-Escalation
  • PID-Limit (256 Prozesse)
  • Vollständige Namespace-Isolation
Lokales Backend ohne Sandbox

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​

PlattformVoiceBilder/FilesThreadsReaktionen
Telegram✅✅––
Discordâś…âś…âś…âś…
Slackâś…âś…âś…âś…
WhatsApp–✅––
Signal–✅––
Matrixâś…âś…âś…âś…
Mattermost✅✅––
iMessage (BlueBubbles)–✅––
Email–✅✅–
SMS––––
Feishu/Lark, WeCom, Weixin, QQ, Yuanbao, DingTalktlw.âś…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.md und USER.md werden 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 vs. Skills
  • 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:

  1. List-Metadata – nur Name + Description (~3.000 Tokens für die ganze Library)
  2. Full Content – auf Anfrage des Agents
  3. Reference Files – tiefere Sub-Files, falls referenziert

Wo leben Skills?​

  • ~/.hermes/skills/ – Source of Truth, beim Erstinstall vom Repo gespiegelt
  • external_dirs in config.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 reviewen

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​

KategorieTools
Webweb_search, web_extract
Terminal & Filesterminal, process, read_file, patch
Browserbrowser_navigate, browser_snapshot, browser_vision
Mediavision_analyze, image_generate, text_to_speech
Agent-Orchestrationtodo, clarify, execute_code, delegate_task
Memory & Recallmemory, session_search
Automation & Deliverycronjob, send_message
IntegrationenHome 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​

Prompt-Injection

Eingehende Messages können den Agent manipulieren. Schutzschichten:

  • Container-Backend (docker, modal) statt local
  • 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​

ProblemLösung
Installer schlägt fehlgit --version prüfen, ggf. WSL2 statt nativem Windows
hermes: command not foundShell neu laden (source ~/.bashrc), PATH prĂĽfen
Modell antwortet nichtAPI-Key in .env, Guthaben checken, hermes doctor
Memory-Updates greifen nichtKorrekt – sie sind erst in der nächsten Session aktiv
Voice funktioniert nichtffmpeg installiert? Channel voice-fähig?
Skills explodieren im Token-BudgetToolset-Filter, external_dirs ausmisten

16. Weiterführend​

Quote

„The self-improving AI agent — it creates skills from experience, improves them during use."