Zum Hauptinhalt springen

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 -q damit nur eine Chat-Session; erst mit --oneshot antwortet Hermes und beendet sich danach.
  • --provider brauchst du nicht. Hermes nimmt mittwald aus model.provider in der config.yaml, du gibst also nur -m/--model an. --provider mittwald geht trotzdem, denn das Flag kennt neben Hermes' eingebauten Providern auch die Schlüssel unter providers:.

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 auf
  • github – Pull Requests, Issues, Code-Reviews und Repositorys über die gh-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:

ServerBefehl
Library-Dokumentationnpx -y @upstash/context7-mcp
URL-Abrufuvx mcp-server-fetch
Browser-Automatisierungnpx -y @playwright/mcp
Dateisystemzugriffnpx -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 doctor prüft den Aufbau der config.yaml, meldet aber keine falsch geschriebenen oder unbekannten Schlüssel in einem providers:-Eintrag. Hermes übergeht solche Schlüssel und vermerkt sie nur in ~/.hermes/logs/errors.log, als providers.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 doctor das 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​

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.

Auf dieser Seite