Hermes Agent mit mittwald AI Hosting
Hermes Agent ist ein CLI-Agent mit Datei-, Shell- und Web-Tools, einer eingebauten Skill-Bibliothek und MCP-Unterstützung. Er erreicht mittwald AI Hosting über einen eigenen Provider-Eintrag.
Installation
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Installation prüfen:
hermes --version
Hermes auf mittwald AI Hosting zeigen lassen
Hermes liest ~/.hermes/config.yaml. Leg unter providers: einen Eintrag an
und mach ihn zum Standard:
model:
default: Qwen3.8-27B-NVFP4
provider: mittwald
providers:
mittwald:
api: https://llm.aihosting.mittwald.de/v1
api_key: sk-...
models:
Qwen3.8-27B-NVFP4:
context_length: 256000
Qwen3.6-35B-A3B-FP8:
context_length: 256000
Ersetze sk-... durch deinen AI-Hosting-API-Key. Den legst du im Bereich
AI-Hosting deines mStudio-Projekts an — siehe
API-Key einrichten. Ein
mStudio-API-Token aus den Profileinstellungen ist ein anderes Zugangsmittel und
funktioniert hier nicht.
Ein Eintrag unter providers: kennt diese Schlüssel: api (alternativ
base_url oder url), name, api_key, key_env, key_cmd, transport
(oder api_mode), default_model (oder model), models, context_length,
rate_limit_delay, request_timeout_seconds, stale_timeout_seconds,
discover_models, extra_body, extra_headers, capabilities, ssl_ca_cert,
ssl_verify, catalog_provider und session_affinity_header. Alle anderen
Schlüssel ignoriert Hermes und vermerkt sie nur in ~/.hermes/logs/errors.log
(siehe Konfiguration und Endpoint getrennt prüfen).
Verhält sich der Provider seltsam, vergleich die Schreibweise also mit dieser
Liste.
Den Key musst du nicht als api_key in die config.yaml schreiben. Mit
key_env liest Hermes ihn aus einer Umgebungsvariable, die du in deiner Shell
oder in ~/.hermes/.env setzt:
key_env: MITTWALD_LLM_API_KEY
Verbindung prüfen
Führe hermes doctor als ersten Check aus:
hermes doctor
doctor deckt gängige Umgebungs- und Setup-Probleme auf, aber seine Ausgabe
unterscheidet sich je nach Installation. Falsch geschriebene Schlüssel in einem
providers:-Eintrag meldet er nicht, Hermes übergeht sie ohne Hinweis im
Terminal. Verhält sich der Provider nicht wie erwartet, prüf die Schreibweise
anhand der Schlüsselliste unter
Hermes auf mittwald AI Hosting zeigen lassen, statt dich
darauf zu verlassen, dass doctor das abfängt.
Führe dann einen Turn aus, der einen Tool Call erzwingt, denn eine reine Chat-Antwort würde auch bei kaputtem Tool Calling gelingen:
hermes chat --oneshot --model Qwen3.8-27B-NVFP4 \
-q "Create a file called hello.txt containing the word hello, then read it back."
Zwei Dinge an diesem Befehl weichen vom Erwarteten ab:
- Es gibt kein
-p-Flag. Die Anfrage übergibst du mit-q/--query. In einem interaktiven Terminal eröffnet-qdamit nur eine Chat-Session; erst mit--oneshotantwortet Hermes und beendet sich danach. --providerbrauchst du nicht. Hermes nimmtmittwaldausmodel.providerin derconfig.yaml, du gibst also nur-m/--modelan.--provider mittwaldgeht trotzdem, denn das Flag kennt neben Hermes' eingebauten Providern auch die Schlüssel unterproviders:.
Ein erfolgreicher Lauf zeigt, wie der Agent einen write_file-Call vorbereitet,
ein Diff dessen ausgibt, was geschrieben werden soll, dann einen
read_file-Call vorbereitet und abschließend eine Nachricht ausgibt, die den
Round-Trip bestätigt:
┊ ✍️ preparing write_file…
┊ review diff
a/hello.txt → b/hello.txt
@@ -0,0 +1 @@
+hello
┊ 📖 preparing read_file…
╭─ ⚕ Hermes ──────────────────────────────────────────────────╮
Done! Created `hello.txt` with the word "hello" and read it back:
```
hello
```
╰─────────────────────────────────────────────────────────────╯
Zwei getrennte Tool Calls, erst write_file, dann read_file, beide gegen
den mittwald-Endpoint – das ist Tool Calling, das End-to-End funktioniert.
Empfohlene Skills, Plugins und MCP-Server
Skills
Hermes bringt eine Skill-Bibliothek mit, ohne dass etwas installiert werden muss. Verfügbares auflisten:
hermes skills list
Nützlich für Entwicklungsarbeit:
codebase-inspection– zählt Codezeilen eines Repositorys und schlüsselt sie nach Sprache und Kommentaranteil aufgithub– Pull Requests, Issues, Code-Reviews und Repositorys über diegh-CLI
Für MCP-Server brauchst du keinen Skill, Hermes bindet sie selbst ein (siehe
MCP-Server). Der optionale Skill mcporter listet MCP-Server
im Terminal auf, meldet sich an und ruft ihre Tools auf. Du installierst ihn mit
hermes skills install official/mcp/mcporter.
Weitere Skills kommen aus Registries:
hermes skills search <term>
hermes skills inspect <name> # preview before installing
hermes skills install <name>
hermes skills audit # re-scan installed skills
Plugins
Plugins werden aus Git-Repositories installiert:
hermes plugins install owner/repo
hermes plugins list
Für mittwald AI Hosting ist nichts davon nötig – die Provider-Konfiguration oben reicht.
MCP-Server
MCP-Server geben dem Agenten Tools über Dateien und Shell hinaus. Einen hinzufügen und testen:
hermes mcp add context7 --command npx --args -y @upstash/context7-mcp
hermes mcp test context7
hermes mcp list
Eine sinnvolle Startauswahl:
| Server | Befehl |
|---|---|
| Library-Dokumentation | npx -y @upstash/context7-mcp |
| URL-Abruf | uvx mcp-server-fetch |
| Browser-Automatisierung | npx -y @playwright/mcp |
| Dateisystemzugriff | npx -y @modelcontextprotocol/server-filesystem <path> |
mittwalds eigener MCP-Server macht deine Infrastruktur für den Agenten zugänglich:
hermes mcp add mittwald --url https://mcp.mittwald.de/mcp --auth oauth
hermes mcp test mittwald
Die Variante mit API-Token und die Fehlerbehebung stehen unter Verbindung mit Hermes Agent herstellen.
Troubleshooting
Unknown provider 'mittwald'
Hermes kennt keinen Provider mit diesem Namen. --provider und
model.provider nehmen Hermes' eingebaute Provider-Namen und die Schlüssel
unter providers: in der config.yaml. Prüf, ob der Schlüssel unter
providers: genau so geschrieben ist wie der Name, den du übergibst, und ob der
Eintrag eine gültige api-URL hat. Einen Eintrag ohne gültige URL verwirft
Hermes.
Legacy custom_providers entry 'mittwald' has no providers: twin
Diese Warnung zeigt hermes doctor, wenn deine Konfiguration den Provider noch
in einer custom_providers:-Liste auf oberster Ebene definiert. So haben es
ältere Hermes-Versionen und frühere Fassungen dieser Anleitung gemacht. Hermes
liest die Liste zwar weiterhin, alles andere in Hermes bearbeitet aber nur noch
providers:. Verschieb den Eintrag unter providers:, wie in
Hermes auf mittwald AI Hosting zeigen lassen gezeigt, und
lösch die Liste. Die alten Schlüsselnamen funktionieren dort weiter, aktuell
heißen sie aber api statt base_url, default_model statt model und
transport statt api_mode. Willst du context_length pro Modell setzen, mach
aus der models-Liste eine Zuordnung.
Konfiguration und Endpoint getrennt prüfen
hermes doctor und ein erzwungener Tool Call decken zwei unterschiedliche
Fehlerarten ab, und es lohnt sich zu wissen, welche man gerade diagnostiziert:
hermes doctorprüft den Aufbau derconfig.yaml, meldet aber keine falsch geschriebenen oder unbekannten Schlüssel in einemproviders:-Eintrag. Hermes übergeht solche Schlüssel und vermerkt sie nur in~/.hermes/logs/errors.log, alsproviders.mittwald: unknown config keys ignored: …. Vergleich die Schreibweise mit der Schlüsselliste unter Hermes auf mittwald AI Hosting zeigen lassen oder such im Log nach dieser Meldung.- Parst die Konfiguration sauber, aber Endpoint, Key oder Modell sind falsch,
fängt
doctordas ebenfalls nicht ab, weil er den Endpoint nicht aufruft. Ein erzwungener Tool Call (wie unter Verbindung prüfen) bestätigt, dass der mittwald-Endpoint tatsächlich erreichbar ist und Tool Calls zurückliefert.
Der Agent wiederholt denselben Tool-Call
Der Agent liest immer wieder dieselbe Datei und kommt nie zu einer Änderung.
Hermes erkennt so eine Schleife und hängt eine Warnung an das Tool-Ergebnis an.
In einer interaktiven Session hält er sie von sich aus aber nicht an, und jede
Iteration geht von deinem Token-Kontingent ab. Schalte in der
~/.hermes/config.yaml den harten Stopp ein und begrenze die Iterationen pro
Turn:
tool_loop_guardrails:
hard_stop_enabled: true
agent:
max_turns: 30
Mit hard_stop_enabled beendet Hermes den Turn, sobald derselbe Call fünfmal
hintereinander dasselbe Ergebnis geliefert hat
(hard_stop_after.idempotent_no_progress), und sagt dir, welche Schutzregel
gegriffen hat. Antwortest du mit continue, macht der Agent weiter.
max_turns ist die Höchstzahl an Tool-Iterationen pro Turn, ohne Angabe gibt es
keine Grenze. Erreicht der Agent sie, fordert Hermes das Modell zum Abschluss
auf und lässt noch einen Call für die letzte Antwort zu. Für einen einzelnen
Lauf übergibst du stattdessen --max-turns 30 an hermes chat.
Die Limits beenden eine Schleife, verhindern sie aber nicht. Schleifen entstehen
vor allem mit ausgeschaltetem Thinking. Lass bei Qwen3.8-27B-NVFP4 Thinking für
Planung und Tool-Arbeit eingeschaltet, siehe
Agent-Schleifen im Non-Thinking-Modus.
Das Modell denkt standardmäßig mit. Sieh also nach, ob du Thinking im
Provider-Eintrag abgeschaltet hast, etwa mit enable_thinking: false unter
extra_body.
Nächste Schritte
- Pi – ein zweiter CLI-Agent
- opencode – ein dritter
- Verbindung mit Hermes Agent herstellen – mittwald-Infrastruktur aus dem Agenten heraus verwalten
- KI-Modelle – die vollständige Modellliste
Disclaimer
Drittanbieter-Tools, MCP-Server und externe Links werden zur Vereinfachung bereitgestellt, ohne Gewährleistung oder Empfehlung. Nutze sie auf eigenes Risiko, prüfe Lizenzen und Datenschutzrichtlinien und vergib nur die nötigen Berechtigungen (Least Privilege). Sende keine sensiblen Daten an externe Services, sofern nicht nötig und erlaubt.