Hermes Agent Skills sind die pro­ze­du­ra­le Memory-Ebene des KI-Agenten von Nous Research. Sie können wie­der­keh­ren­de, komplexe Abläufe mit mehreren Tool-Aufrufen in dauerhaft ge­spei­cher­te An­wei­sun­gen, Kon­fi­gu­ra­tio­nen, Skripte und Re­fe­renz­da­tei­en über­füh­ren. Dadurch kann Hermes bekannte Ar­beits­we­ge später gezielt laden, statt sie bei jeder Aufgabe voll­stän­dig neu her­zu­lei­ten.

Was sind Hermes Agent Skills?

Ein Skill ist eine lokal ge­spei­cher­te Anleitung für eine bestimmte Aufgabe. Er be­schreibt bei­spiels­wei­se, wie der Hermes Agent eine Anwendung be­reit­stellt, Daten aus einer Schnitt­stel­le abruft, einen Ku­ber­netes-Cluster überprüft oder einen wie­der­keh­ren­den Ent­wick­lungs­pro­zess ausführt.

Im Mit­tel­punkt steht jeweils eine Datei namens SKILL.md. Sie enthält eine kurze Be­schrei­bung, die Ein­satz­be­din­gun­gen, die einzelnen Ar­beits­schrit­te, bekannte Feh­ler­quel­len und eine Methode zur ab­schlie­ßen­den Kontrolle. Zu­sätz­lich kann ein Skill Skripte, Kon­fi­gu­ra­ti­ons­vor­la­gen, Beispiele und tech­ni­sche Re­fe­ren­zen enthalten. Alle lokal in­stal­lier­ten und vom Agenten er­stell­ten Skills liegen stan­dard­mä­ßig im Ver­zeich­nis ~/.hermes/skills/.

Ein Skill ist dabei nicht mit einem klas­si­schen Programm gleich­zu­set­zen. Er ist zunächst eine struk­tu­rier­te Ar­beits­an­wei­sung für das Sprach­mo­dell. Ent­hal­te­ne Skripte oder Kom­man­do­zei­len­be­feh­le können jedoch vom Agenten mithilfe seiner Tools aus­ge­führt werden. Hermes be­zeich­net Skills deshalb als pro­ze­du­ra­les Ge­dächt­nis: Das normale Memory speichert, was der Agent weiß, während ein Skill festhält, wie eine Aufgabe aus­ge­führt werden soll.

Hermes Agent VPS Hosting
Ihr VPS für den Hermes Agent – leis­tungs­stark, sicher, ska­lier­bar.
  • Hermes-ready: Root-Zugriff, SSH-optimiert, in Minuten ein­satz­be­reit
  • Dauerhaft schnell: NVMe-SSD und 1 Gbit/s, ohne Dros­se­lung
  • Sicher: In­di­vi­du­el­le API-An­bin­dun­gen und Docker-Un­ter­stüt­zung

Die 4-Layer-Spei­cher­ar­chi­tek­tur von Hermes Agent

Für das Ver­ständ­nis lässt sich das Zu­sam­men­spiel der ver­schie­de­nen Spei­cher­ar­ten des Hermes Agent in vier prak­ti­sche Ebenen gliedern.

Spei­cher­ebe­ne Funktion Per­sis­tenz­typ
L1: Session Context Enthält die aktuelle Un­ter­hal­tung, die laufende Auf­ga­ben­pla­nung und die Er­geb­nis­se der zuletzt ver­wen­de­ten Tools. Temporär; grund­sätz­lich an die aktuelle Sitzung gebunden
L2: Persisted Facts Speichert kompakte Fakten über die Nutzer, ihre Projekte, Prä­fe­ren­zen und die tech­ni­sche Umgebung in MEMORY.md und USER.md. Dauerhaft und sit­zungs­über­grei­fend
L3: Local File Search Er­mög­licht die be­darfs­ge­steu­er­te Suche in lokalen Dateien sowie in früheren Un­ter­hal­tun­gen. Ver­gan­ge­ne Sitzungen werden in einer lokalen SQLite-Datenbank ge­spei­chert und über FTS5 durch­sucht. Daten bleiben lokal ge­spei­chert, werden aber nur bei Bedarf geladen
L4: Pro­ce­du­ral Skills Speichert wie­der­ver­wend­ba­re Vor­ge­hens­wei­sen, Tool-Abfolgen, Kon­fi­gu­ra­tio­nen und Skripte in Skill-Ver­zeich­nis­sen mit einer SKILL.md. Dauerhaft und sit­zungs­über­grei­fend

L1: Session Context

Der Session Context ist das kurz­fris­ti­ge Ar­beits­ge­dächt­nis des Agenten. Er enthält die aktuelle Anfrage, bisherige Antworten, Zwi­schen­er­geb­nis­se und Tool-Ausgaben. Endet die Sitzung, steht dieser voll­stän­di­ge Verlauf in einer späteren Sitzung nicht au­to­ma­tisch wieder als aktiver Kontext zur Verfügung. Hermes speichert Un­ter­hal­tun­gen al­ler­dings lokal. Der Agent kann sie später mit dem Tool session_search erneut durch­su­chen.

L2: Persisted Facts

Besonders wichtige In­for­ma­tio­nen werden in MEMORY.md und USER.md abgelegt. Dazu gehören bei­spiels­wei­se be­vor­zug­te Pro­gram­mier­spra­chen, Pro­jekt­kon­ven­tio­nen, Ver­zeich­nis­struk­tu­ren oder wie­der­holt benötigte In­for­ma­tio­nen über die Ar­beits­um­ge­bung. Diese Dateien werden zu Beginn einer neuen Sitzung in den Sys­tem­kon­text geladen. Damit dieser Bereich nicht unnötig viele Tokens ver­braucht, ist er bewusst auf 2.200 Zeichen für MEMORY.md und 1.375 Zeichen für USER.md begrenzt.

L3: Lokale Dateien und frühere Sitzungen

Um­fang­rei­che Do­ku­men­ta­tio­nen, Quell­code­da­tei­en oder frühere Un­ter­hal­tun­gen müssen nicht dauerhaft im aktiven Kontext liegen. Hermes kann sie bei Bedarf gezielt durch­su­chen. Für ver­gan­ge­ne Sitzungen verwendet Hermes eine lokale SQLite-Datenbank unter ~/.hermes/state.db. Die darin in­te­grier­te FTS5-Voll­text­su­che arbeitet schlag­wort­ba­siert und liefert die tat­säch­lich ge­spei­cher­ten Nach­rich­ten zurück.

L4: Pro­ce­du­ral Skills

Skills bilden die oberste Ebene dieser Ar­chi­tek­tur. Sie speichern nicht nur einzelne Fakten, sondern voll­stän­di­ge Vor­ge­hens­wei­sen. Ein Skill kann zum Beispiel festlegen:

  • welche Vor­aus­set­zun­gen zuerst geprüft werden,
  • welche Tools oder Befehle verwendet werden,
  • in welcher Rei­hen­fol­ge die Schritte erfolgen,
  • wie typische Fehler behandelt werden,
  • wie das Ergebnis ab­schlie­ßend kon­trol­liert wird.

Genau diese Ebene er­mög­licht es Hermes, aus ab­ge­schlos­se­nen Aufgaben wie­der­ver­wend­ba­re Ar­beits­ab­läu­fe zu ent­wi­ckeln.

Der Self-Learning Loop

Der Self-Learning Loop verbindet die laufende Arbeit des Agenten mit seinem dau­er­haf­ten Skill-Speicher. Ver­ein­facht folgt der Prozess einem Kreislauf aus Ausführen, Auswerten, Speichern und Wie­der­ver­wen­den.

1. Hermes führt eine komplexe Aufgabe aus

Zunächst be­ar­bei­tet der Agent eine normale Anfrage. Dafür kann er mehrere Tools nach­ein­an­der aufrufen und so Dateien durch­su­chen, Ter­mi­nal­be­feh­le ausführen, eine API an­spre­chen und an­schlie­ßend das Ergebnis kon­trol­lie­ren. Die Ge­samt­heit aus Anfrage, Ent­schei­dun­gen, Tool-Aufrufen, Feh­ler­mel­dun­gen und Kor­rek­tu­ren wird häufig als Tra­jek­to­rie be­zeich­net.

2. Das System erkennt einen po­ten­zi­ell wie­der­ver­wend­ba­ren Ablauf

Hermes kann nach um­fang­rei­che­ren Aufgaben eine Über­prü­fung des bis­he­ri­gen Ablaufs anstoßen. Die Stan­dard­kon­fi­gu­ra­ti­on enthält dafür skills.creation_nudge_interval: 15. Nach jeweils 15 Tool-Ite­ra­tio­nen wird das Modell daran erinnert, zu prüfen, ob sich aus der Arbeit ein Skill ableiten lässt. Der Wert kann in der Kon­fi­gu­ra­ti­on verändert oder mit 0 de­ak­ti­viert werden.

3. Hermes ex­tra­hiert das wie­der­ver­wend­ba­re Muster

Bei der Aus­wer­tung soll der Agent die ein­ma­li­gen Details von den über­trag­ba­ren Ar­beits­schrit­ten trennen. Ein tem­po­rä­rer Dateiname oder eine einmalig auf­ge­tre­te­ne Feh­ler­mel­dung gehört bei­spiels­wei­se nicht zwingend in den Skill. Ein zu­ver­läs­sig funk­tio­nie­ren­der Befehl, eine not­wen­di­ge Rei­hen­fol­ge oder eine bekannte Feh­ler­be­hand­lung kann dagegen dauerhaft relevant sein. Aus diesen In­for­ma­tio­nen entsteht eine struk­tu­rier­te Anleitung. Sie enthält idea­ler­wei­se:

  • ein­deu­ti­ge Be­din­gun­gen für die Ver­wen­dung,
  • eine nach­voll­zieh­ba­re Schritt­fol­ge,
  • benötigte Tools und Vor­aus­set­zun­gen,
  • bekannte Fall­stri­cke,
  • einen ab­schlie­ßen­den Funk­ti­ons­test.

4. Der Skill wird erstellt oder ak­tua­li­siert

Mit dem internen Tool skill_manage kann Hermes einen neuen Skill erstellen oder einen vor­han­de­nen Skill verändern. Dabei stehen unter anderem die Aktionen create, patch, edit, write_file, remove_file und delete zur Verfügung. Kleinere Ver­bes­se­run­gen sollen bevorzugt über patch erfolgen. Dabei wird nur die be­trof­fe­ne Stelle geändert, anstatt die gesamte SKILL.md neu zu über­tra­gen. Das reduziert den er­for­der­li­chen Text­um­fang des Tool-Aufrufs.

5. Der Skill wird geladen

Hermes lädt nicht vor­sorg­lich den voll­stän­di­gen Inhalt aller Skills. Statt­des­sen verwendet das System eine mehr­stu­fi­ge Pro­gres­si­ve Dis­clo­sure:

  • skills_list() stellt zunächst nur Namen, Ka­te­go­rien und Kurz­be­schrei­bun­gen bereit.
  • skill_view(name) lädt die voll­stän­di­ge SKILL.md eines aus­ge­wähl­ten Skills.
  • skill_view(name, path) lädt bei Bedarf eine einzelne Referenz-, Skript- oder Vor­la­gen­da­tei.

Dadurch spart das System Kontext und kann bekannte Vor­ge­hens­wei­sen schneller wie­der­ver­wen­den. Die tat­säch­li­che Reduktion hängt von der Länge des Skills, der Kom­ple­xi­tät der Aufgabe, dem ver­wen­de­ten Modell und der Zahl ver­mie­de­ner Tool- und Kor­rek­tur­schrit­te ab. Auch die Reasoning-Phase entfällt nicht voll­stän­dig: Der Skill verkürzt und struk­tu­riert sie, ersetzt aber nicht jede si­tua­ti­ons­ab­hän­gi­ge Ent­schei­dung.

Custom Skills erstellen: Prompt-basiert oder manuell

Ent­wick­le­rin­nen und Ent­wick­ler müssen nicht darauf warten, dass Hermes selbst einen Skill vor­schlägt. Eigene Skills lassen sich sowohl über einen Chat-Befehl als auch direkt im Da­tei­sys­tem erstellen.

Mög­lich­keit 1: Skill ge­ne­rie­ren

Ein eigener Hermes Agent Skill lässt sich in nur wenigen Schritten be­reit­stel­len.

  1. Bereiten Sie die Wis­sens­quel­le vor. Dies kann eine bereits ab­ge­schlos­se­ne Un­ter­hal­tung, ein lokales Do­ku­men­ta­ti­ons­ver­zeich­nis, eine In­ter­net­sei­te oder direkt ein­ge­füg­te Notiz sein.
  2. Rufen Sie den /learn-Befehl auf. Möchten Sie bei­spiels­wei­se den gerade aus­ge­führ­ten De­ploy­ment-Prozess speichern, können Sie folgenden Befehl verwenden:
/learn wie ich gerade den Staging-Server bereitgestellt habe
  1. Hermes sammelt die re­le­van­ten In­for­ma­tio­nen und erstellt daraus eine struk­tu­rier­te SKILL.md.
  2. Kon­trol­lie­ren Sie den erzeugten Skill.
  3. Ak­ti­vie­ren Sie bei Bedarf die Schreib­frei­ga­be. Mit skills.write_approval: true können Sie festlegen, dass au­to­ma­tisch erzeugte Än­de­run­gen zunächst nur vor­ge­merkt werden. An­schlie­ßend lassen sie sich mit /skills pending und /skills diff <id> prüfen und mit /skills approve <id> freigeben.
  4. Testen Sie den Hermes Agent Skill in einer neuen Sitzung. Er steht au­to­ma­tisch als Slash-Befehl zur Verfügung:
/mein-skill führe den Ablauf für das Testsystem aus

Mög­lich­keit 2: Skill manuell anlegen

Sie brauchen nicht zwingend den /learn-Befehl, um neue Hermes Agent Skills zu erstellen. Auch eine manuelle Ge­ne­rie­rung neuer Skills ist möglich.

  1. Erstellen Sie das Skill-Ver­zeich­nis mit mkdir -p ~/.hermes/skills/finance/market-data.
  2. Legen Sie eine Datei namens SKILL.md an. Diese kann für einen Skill, der Kurs- und Markt­da­ten abruft, zum Beispiel fol­gen­der­ma­ßen aussehen:
---
name: market-data
description: Ruft Marktdaten ab und prüft die Ergebnisse
version: 1.0.0
metadata:
    hermes:
        tags: [finance, api, data]
        category: finance
---
# Market Data
## When to Use
Verwenden Sie diesen Skill für aktuelle Kurs- und Marktdaten.
## Procedure
1. Prüfen Sie, welches Wertpapier und welcher Zeitraum gemeint sind.
2. Rufen Sie die Daten über die konfigurierte Datenquelle ab.
3. Prüfen Sie die Antwort auf fehlende Werte und Zeitstempel.
4. Bereiten Sie das Ergebnis verständlich auf.
## Pitfalls
- Verwechseln Sie verzögerte Kursdaten nicht mit Echtzeitdaten.
- Verwenden Sie keine nicht dokumentierten Endpunkte ohne Prüfung.
## Verification
Prüfen Sie Symbol, Handelsplatz, Währung und Zeitpunkt der Daten.
  1. Ver­knüp­fen Sie externe Werkzeuge. Für Fi­nanz­da­ten kann der Skill bei­spiels­wei­se ein vor­han­de­nes Python-Skript oder eine kon­fi­gu­rier­te Markt­da­ten­quel­le verwenden.
  2. Lagern Sie längere Inhalte aus. Um­fang­rei­che API-Do­ku­men­ta­tio­nen gehören bei­spiels­wei­se in references/, wie­der­ver­wend­ba­re Kon­fi­gu­ra­tio­nen in templates/ und längere aus­führ­ba­re Abläufe in scripts/.
  3. Speichern Sie keine API-Schlüssel im Skill.
  4. Laden und testen Sie den Skill bei­spiels­wei­se mit folgendem Aufruf:
hermes chat -q "/market-data zeige die Daten für das gewünschte Wertpapier"

Neu angelegte Skills werden au­to­ma­tisch erkannt.

IONOS CLOUD AI Model Hub
Erste deutsche, mul­ti­mo­da­le KI-Plattform
  • 100 % DSGVO-konform und sicher in Deutsch­land gehostet
  • Die leis­tungs­stärks­ten KI-Modelle auf einer Plattform
  • Kein Vendor Lock-in durch Open Source

Best Practices und Behebung von Retrieval-Fehlern

Damit Hermes einen Skill zu­ver­läs­sig nutzt, muss der Agent erkennen, dass dieser zur aktuellen Anfrage passt. Probleme entstehen meist durch unklare Namen, zu all­ge­mei­ne Be­schrei­bun­gen oder eine falsche Erwartung an das Retrieval-System.

FTS5 ist nicht für die Skill-Ak­ti­vie­rung zuständig

SQLite FTS5 durch­sucht im Hermes Agent vor allem frühere Sitzungen. Lokale Skills werden dagegen über einen kompakten Index aus Namen, Ka­te­go­rien und Kurz­be­schrei­bun­gen gefunden. Hermes ent­schei­det anhand dieser In­for­ma­tio­nen, ob es einen Skill mit skill_view() laden soll. Al­ter­na­tiv können Sie einen Hermes Agent Skill direkt aufrufen.

Verwenden Sie ein­deu­ti­ge Be­schrei­bun­gen

Der Name und die Be­schrei­bung eines Skills sollten klar erkennen lassen, wofür er gedacht ist. All­ge­mei­ne For­mu­lie­run­gen wie „hilf­rei­cher Workflow“ sind wenig aus­sa­ge­kräf­tig. Besser ist bei­spiels­wei­se:

description: Prüft Kubernetes-Deployments, Logs und Rollout-Fehler

Auch der Abschnitt When to Use sollte typische Aufgaben und konkrete Such­be­grif­fe enthalten.

Trennen Sie Anleitung und Skripte

Die SKILL.md sollte erklären, wann der Skill verwendet wird und welche Schritte aus­zu­füh­ren sind. Längere oder immer gleich ab­lau­fen­de Prozesse sollten dagegen in geprüften Skripten ge­spei­chert werden. Dadurch muss Hermes den Code nicht bei jedem Aufruf neu erzeugen. Gleich­zei­tig lassen sich die Skripte separat testen und ver­sio­nie­ren.

Fort­ge­schrit­te­ne User können einen eigenen se­man­ti­schen Router ent­wi­ckeln. Dieser ver­gleicht neue Anfragen mit den Be­schrei­bun­gen vor­han­de­ner Skills und lädt an­schlie­ßend den pas­sends­ten Skill. Dafür lassen sich bei­spiels­wei­se Milvus oder Qdrant einsetzen. Eine solche Anbindung gehört jedoch nicht zur stan­dard­mä­ßi­gen Hermes-Kon­fi­gu­ra­ti­on und muss selbst ent­wi­ckelt oder über ein zu­sätz­li­ches Plugin umgesetzt werden.

Prüfen Sie au­to­ma­tisch erstellte Skills

Der Learning Loop kann auch feh­ler­haf­te oder nur vor­über­ge­hend funk­tio­nie­ren­de Abläufe speichern. In pro­duk­ti­ven Um­ge­bun­gen sollten neue Skills deshalb vor der Ver­wen­dung geprüft werden. Mit folgender Ein­stel­lung werden Än­de­run­gen zunächst nur vor­ge­merkt:

skills:
    write_approval: true

Die Dateien landen an­schlie­ßend unter ~/.hermes/pending/skills/ und können vor der Freigabe kon­trol­liert werden. Zu­sätz­lich kann skills.guard_agent_created: true eine au­to­ma­ti­sche Si­cher­heits­prü­fung ak­ti­vie­ren. Diese ersetzt jedoch keine manuelle Kontrolle.

Hinweis

Die Ein­stel­lung skills.guard_agent_created steht stan­dard­mä­ßig auf false. Au­to­ma­tisch erstellte oder ver­än­der­te Skills werden daher nicht durch den in­te­grier­ten Skills Guard geprüft, solange Sie die Funktion nicht aus­drück­lich ak­ti­vie­ren..

Fazit: Skills machen Erfahrung wie­der­ver­wend­bar

Hermes Agent Skills speichern keine bloßen Ge­sprächs­er­in­ne­run­gen, sondern wie­der­ver­wend­ba­re Ar­beits­me­tho­den. Der Agent kann komplexe Tool-Abläufe ana­ly­sie­ren, daraus eine SKILL.md mit er­gän­zen­den Skripten und Re­fe­ren­zen erstellen und diesen Ablauf bei ähnlichen Aufgaben erneut laden. Der wich­tigs­te Ef­fi­zi­enz­ge­winn entsteht durch die Kom­bi­na­ti­on aus pro­ze­du­ra­lem Ge­dächt­nis und Pro­gres­si­ve Dis­clo­sure: Hermes lädt zunächst nur einen kompakten Skill-Index und ruft die voll­stän­di­ge Anleitung erst bei Bedarf ab. Dadurch werden wie­der­keh­ren­de Aufgaben struk­tu­rier­ter, nach­voll­zieh­ba­rer und häufig auch to­ken­är­mer be­ar­bei­tet.

Reviewer

Zum Hauptmenü