Zurück zum Blog
HermesSkillsTutorialAI Agents

So erstellen Sie einen eigenen Hermes Agent Skill

Ein praxisnahes Tutorial zum Schreiben einer Hermes Agent SKILL.md von Grund auf: YAML-Frontmatter, die fünf entscheidenden Abschnitte und wie Sie sie testen.

Von Hermify Team||7 Min. Lesezeit
Dunkler Code-Editor mit einer SKILL.md-Datei mit YAML-Frontmatter und den Worten Custom Skill auf einem grün akzentuierten Panel

Ein Skill ist die kleinste Verhaltenseinheit, die Sie Hermes Agent beibringen können, ohne den Quellcode zu ändern. Es ist ein Ordner, eine Markdown-Datei und ein kurzer YAML-Header. Die offizielle Dokumentation von Nous Research beschreibt das Format als „portabel, weil es einfach ist", und ein eigener Skill ist in weniger als fünf Minuten geschrieben, sobald Sie die Struktur kennen.

Diese Anleitung führt Sie von Anfang bis Ende durch diese Struktur. Sie sehen, wo Skills auf der Festplatte abgelegt werden, was der SKILL.md-Header enthalten muss, welche Abschnitte der Agent zur Laufzeit tatsächlich liest, wie Sie Geheimnisse über required_environment_variables einbinden und wie Sie überprüfen, ob der Skill korrekt geladen wurde. Das Ergebnis ist ein Skill, den Sie in ~/.hermes/skills/ ablegen und noch am selben Tag verwenden können.

Wo Skills abgelegt werden und wie Hermes sie findet

Hermes speichert Skills als einfache Ordner in ~/.hermes/skills/. Gebündelte Skills werden während der Installation dorthin kopiert, und jeder eigene Skill, den Sie hinzufügen, registriert sich sofort beim nächsten Neustart. Die Verzeichnisstruktur ist flach:

~/.hermes/skills/
├── backup-check/
│   └── SKILL.md
├── invoice-followup/
│   └── SKILL.md
└── stripe-mrr-digest/
    ├── SKILL.md
    └── helper.py

Der Ordnername ist die Skill-ID. Hermes erkennt beim Start automatisch jeden Ordner und liest jede SKILL.md. Das Feld description im YAML-Frontmatter ist das, was der Agent zur Laufzeit mit Ihrer Nachricht abgleicht. Schreiben Sie es also für den Agenten, nicht für einen menschlichen Leser. Wenn die Beschreibung die Auslösebedingung nicht klar beschreibt, wird der Skill nicht ausgelöst, wenn Sie es erwarten.

Ein Skill kann zusätzliche Dateien in seinem Ordner enthalten: ein Python-Hilfsskript, eine SQL-Vorlage, eine Checklisten-Textdatei. Hermes führt sie nicht automatisch aus. Sie sind dafür da, dass der Agent sie liest oder ausführt, wenn die Prozedur es ihm vorgibt.

Diagramm von drei Skill-Ordnern innerhalb von ~/.hermes/skills/, von denen jeder eine SKILL.md-Datei enthält, mit Pfeilen, die auf den laufenden Hermes Agent-Prozess zeigen

Das SKILL.md-Dateiformat

Jeder Skill ist eine einzige Markdown-Datei. Der YAML-Header am Anfang ist der Metadatenblock, und der Markdown-Körper ist der Anweisungssatz. Hier ist ein minimales Grundgerüst, das Sie kopieren können:

---
name: backup-check
description: Verify nightly backup archives exist, are non-empty, and pass a quick checksum spot-check on the latest file.
version: 0.1.0
author: [email protected]
required_environment_variables: []
required_credential_files: []
---

Die Felder, die vom ersten Tag an wichtig sind:

  • name - entspricht dem Ordnernamen. Kebab-Case, keine Leerzeichen.
  • description - ein einzelner Satz, den Hermes verwendet, um zu entscheiden, wann der Skill geladen wird. Seien Sie präzise bei der Auslösebedingung („wenn der Nutzer nach X fragt", „bevor Y ausgeführt wird").
  • version - frei wählbar, aber behandeln Sie es wie SemVer, damit Sie es erhöhen können, während sich der Text weiterentwickelt.
  • required_environment_variables - ein Array mit Namen von Geheimnissen, die gesetzt sein müssen, bevor der Skill ausgeführt werden kann. Der Agent fragt diese bei der ersten Aktivierung ab und schreibt sie in die .env.
  • required_credential_files - Pfade zu OAuth-Tokens oder Dienstkonto-JSON-Dateien, die in die Sandbox eingebunden werden müssen.

Optionale Felder, die man kennen sollte: platforms (ein Array aus macos, linux, windows, falls der Skill nur auf bestimmten Systemen funktioniert), requires_toolsets, um den Skill nur anzuzeigen, wenn bestimmte Toolsets geladen sind, und fallback_for_toolsets für den umgekehrten Fall. Skill-spezifische Konfiguration liegt in metadata.hermes.config und landet unter skills.config in Ihrer config.yaml für nicht-geheime Einstellungen wie Pfade oder Domain-Einstellungen.

Die fünf Abschnitte, die tatsächlich gelesen werden

Unterhalb des Frontmatters ist der Markdown-Körper Fließtext. Hermes verlangt keinen bestimmten Abschnitt, aber eine fünfteilige Struktur hat sich aus der offiziellen Anleitung „Working with Skills" sowie aus Autorenbeiträgen auf dev.to und glukhov.org herauskristallisiert. Der Agent honoriert sie, weil jeder Teil eine andere Frage zur Laufzeit beantwortet.

When to Use

Ein kurzer Absatz, der diesen Skill von anderen Skills abgrenzt, die der Agent auswählen könnte. Wenn Sie einen Skill namens invoice-followup und einen weiteren namens client-update haben, ist „when to use" das, was den Agenten davon abhält, den falschen auszulösen.

Quick Reference

Eine Aufzählung der Befehle, Pfade oder Konstanten, von denen die Prozedur abhängt. Der Agent liest dies vor der Prozedur, um den Kontext zu laden. Tragen Sie hier Ihre Dateipfade, Ihren S3-Bucket-Namen, Ihre Umgebungsvariablennamen und Ihre Ziel-Telegram-Chat-ID ein.

Procedure

Die nummerierten Schritte, die der Agent befolgen soll. Schreiben Sie sie als imperative Anweisungen („führe X aus", „wenn die Antwort Y enthält, tue Z"). Der Agent behandelt diesen Abschnitt wie ein Rezept und wird Ihnen Schritte zitieren oder paraphrasieren, während er sie ausführt.

Pitfalls

Die Fallstricke, die Sie bereits kennen. Ratenbegrenzungen, stille Fehler, Zeitzonen-Bugs, der eine Kunde, dessen Daten merkwürdig strukturiert sind. Der Agent liest diese als Leitplanken und verweigert oder warnt, wenn er die Bedingungen erkennt.

Verification

Wie der Agent bestätigt, dass er das Richtige getan hat. Ein grep, ein curl, eine Prüfsumme, ein „zeig mir die letzte Zeile". Die Verifizierung ist das, was einen Skill zu etwas macht, das Sie laufen lassen können.

Geheimnisse und Anmeldedaten einbinden

Wenn Ihr Skill mit einer API kommuniziert, deklarieren Sie das Geheimnis in required_environment_variables:

required_environment_variables:
  - STRIPE_RESTRICTED_KEY
  - SLACK_WEBHOOK_URL

Beim ersten Aktivieren des Skills fragt der Agent jeden Wert ab und schreibt ihn in die projektbezogene .env. Sie werden dann automatisch an Sandboxes (Docker, Modal, ephemere Runner) weitergegeben. Schreiben Sie niemals einen Schlüssel fest in den Text. Der Agent wird ihn während der Ausführung zurückgeben und das Geheimnis irgendwo in einem Log verbrennen.

Für OAuth-Tokens oder Dienstkonto-JSON-Dateien verwenden Sie required_credential_files:

required_credential_files:
  - ~/.config/gcloud/application_default_credentials.json

Diese werden als schreibgeschützte Volumes in die Sandbox eingebunden. Der Agent parst sie nicht, er stellt nur sicher, dass sie vorhanden sind, bevor die Prozedur ausgeführt wird.

Wie Hermes Skills automatisch aus Konversationen extrahiert

Sie können Hermes auch Skills für Sie schreiben lassen. Nach einer komplexen Aufgabe, die fünf oder mehr Tool-Aufrufe umfasste, erfasst das Tool skill_manage das erfolgreiche Muster und schreibt einen wiederverwendbaren Skill in ~/.hermes/skills/. Der Agent analysiert die Konversation, wählt den wiederverwendbaren Workflow aus und gibt eine SKILL.md mit einer Prozedur aus, die widerspiegelt, was er tatsächlich getan hat.

Dies ist derselbe Mechanismus, der Hermes mit der Zeit immer schärfer wirken lässt. Die persistente Speicherschicht erinnert sich daran, worüber Sie gesprochen haben; die automatisch extrahierten Skills erinnern sich daran, wie ein Problem gelöst wurde. Die beiden Schichten werden ausführlicher in unserem Beitrag über Hermes Agent Speicher und Skills erklärt.

Die ersten paar automatisch extrahierten Skills sind in der Regel zu 80 Prozent das, was Sie wollen, und zu 20 Prozent daneben. Öffnen Sie die SKILL.md, schärfen Sie die Beschreibung, entfernen Sie alle Schritte, die der Agent nur versehentlich ausgeführt hat, und erhöhen Sie die Version. Jetzt haben Sie einen handbearbeiteten Skill, der zuverlässig auslöst.

Einen Skill von Anfang bis Ende testen

Sobald die SKILL.md vorhanden ist, starten Sie Hermes neu (oder führen Sie hermes skill reload aus, falls Ihr Build dies unterstützt). Führen Sie dann drei Prüfungen durch:

  1. Bitten Sie Hermes, seine Skills aufzulisten. Der neue Skill sollte mit dem Namen und der Beschreibung erscheinen, die Sie geschrieben haben.
  2. Senden Sie eine Nachricht, die der Auslösebedingung entspricht. Der Agent sollte ankündigen, dass er den Skill verwendet, bevor er irgendetwas tut.
  3. Führen Sie den Verifizierungsschritt manuell aus. Wenn Ihr Skill eine Datei schreibt, prüfen Sie die Datei. Wenn er an einen Webhook sendet, prüfen Sie den Webhook.

Wenn der Skill nicht lädt, ist meist das YAML schuld. Ein verirrtes Tab-Zeichen oder ein nicht in Anführungszeichen gesetzter Doppelpunkt kann den Frontmatter-Parser stillschweigend zerstören. Hermes protokolliert beim Start einen Parse-Fehler; prüfen Sie beim ersten Neuladen die stderr-Ausgabe des Agenten.

Fotorealistische Szene eines Entwickler-Terminals, das eine Hermes Agent-Sitzung beim Laden eines eigenen Skills zeigt, mit einem grünen Prompt und gedämpfter Umgebungsbeleuchtung

Überspringen Sie das Drumherum mit verwaltetem Hermes

Ein eigener Skill ist eine Markdown-Datei, aber Hermes selbst zu betreiben ist es nicht. Sie brauchen einen Host, einen API-Schlüssel eines Modell-Anbieters, einen Telegram-Bot oder eine Web-Oberfläche, eine Backup-Strategie für das Skills-Verzeichnis und eine Möglichkeit, Änderungen zu testen, ohne Ihren laufenden Agenten zu beschädigen.

Hermify ist verwaltetes Hermes Agent Hosting, das all das übernimmt. Ihr Skills-Verzeichnis bleibt über Neustarts hinweg erhalten, die Modellschlüssel liegen in einem verschlüsselten Speicher im Ruhezustand, und Sie können die hier geschriebenen eigenen Skills mit den MCP-Integrationen kombinieren, die Hermes bereits beherrscht. Starten Sie mit Hermify, und Ihr erster eigener Skill kann in weniger als fünf Minuten auf einem echten Agenten laufen.

Quellen

Betreiben Sie Ihren eigenen Hermes Agent

Bringen Sie Ihren API-Schlüssel mit, verbinden Sie Telegram und erhalten Sie in 60 Sekunden einen selbstlernenden KI-Agenten.

Loslegen