The Skills System: How Hermes Writes and Refines Its Own Capabilities

10 min read Module 4 of 9 Topic 11 of 25

What you'll learn

  • Explain what a Hermes skill is and how it differs from a one-off conversation
  • Use /learn to turn a demonstrated workflow into a reusable skill
  • Write a SKILL.md file by hand and drop it into ~/.hermes/skills/
  • Understand how skills become slash commands automatically
Building this at your company? For enterprise and company teams taking this to production: book a 30-minute session with our AI engineers for architecture guidance, code review, and a rollout plan for your use case.
Book a Team Session

What a Skill Actually Is

A skill is a saved, reusable procedure, written in a standard format, that Hermes can either invoke deliberately (as a slash command) or reach for automatically when a task matches. This is the mechanism behind “self-improving” from Lesson 1: rather than re-deriving how to do something from scratch in every conversation, Hermes accumulates a personal library of things it already knows how to do well.

flowchart LR
    DO["You do a multi-step\ntask in conversation"] --> LEARN["/learn"]
    LEARN --> AUTHOR["Agent gathers material\nwith its existing tools,\nauthors a SKILL.md"]
    AUTHOR --> SAVE[("~/.hermes/skills/\nyour-skill/SKILL.md")]
    SAVE --> CMD["Automatically becomes\na slash command"]
    CMD --> REUSE["Next time: /your-skill\nor auto-matched in\nconversation"]

    style DO fill:#EEF0F7,stroke:#6366F1,color:#0F172A
    style LEARN fill:#EEF0F7,stroke:#6366F1,color:#0F172A
    style AUTHOR fill:#f0fdf9,stroke:#0D9488,color:#0F172A
    style SAVE fill:#fff7ed,stroke:#f59e0b,color:#0F172A
    style CMD fill:#f0fdf9,stroke:#0D9488,color:#0F172A
    style REUSE fill:#EEF0F7,stroke:#6366F1,color:#0F172A

Teaching a Skill with /learn

The fastest way to create a skill is to demonstrate the workflow, then ask Hermes to capture it:

/learn

/learn is open-ended: point it at anything you can describe. The agent gathers material using tools it already has, REST clients, documentation directories, online docs, a workflow you just walked through, or notes you paste in, and authors a skill that follows the house authoring standard: a description under 60 characters, a standard section order, and framing consistent with how Hermes’ own tools are described (the same discipline from Lesson 7.1’s advice on writing good tool descriptions applies here too).

A realistic session:

You: /learn
Hermes: What would you like me to learn? You can describe a workflow,
        paste documentation, or point me at something to explore.
You: Every morning I check our staging health endpoint, our error
     dashboard, and our deploy log, then write a two-line summary.
     Here's the staging URL and dashboard link: ...
Hermes: [explores the URLs, tests the workflow]
        Created skill: daily-status-check
        Try it with /daily-status-check

Writing a Skill by Hand

You don’t have to go through /learn. Since skills are just files, you can author one directly:

# ~/.hermes/skills/daily-status-check/SKILL.md
---
name: daily-status-check
description: Check staging health, error dashboard, and deploy log; write a 2-line summary
---

## Instructions

1. Fetch the staging health endpoint (see project memory for the URL, or ask if not found).
2. Check the error dashboard for anything above the normal baseline.
3. Read the last deploy log entry.
4. Write a two-line summary: one line on health/errors, one line on the last deploy.

## Notes

- If staging is down, lead the summary with that fact before anything else.
- Keep the summary to two lines even if there is a lot to report; link out for detail rather than expanding.

Save the file, and the skill is live immediately, no separate registration or restart step, matching the same “drop a skill in and it’s live” behavior whether the skill came from /learn or from your own editor.

Skills as Slash Commands

Every installed skill, agent-authored or hand-written, automatically becomes a slash command matching its name:

/daily-status-check

This is what makes the skills system feel less like a hidden background feature and more like a personal command palette that grows over time. You can invoke a skill explicitly by name, or simply describe the task in normal conversation and let Hermes match it to an existing skill on its own, both paths work.

What Makes This “Self-Improving” Rather Than Just “Configurable”

The distinction matters: a static config file is something you set once. Skills accumulate through use, refine through repetition (the agent can update a skill’s instructions if it discovers a better approach), and get authored by the agent itself through /learn, not just by you editing files. That’s the loop Lesson 1 described as self-improvement happening entirely at the orchestration layer, no model retraining involved, just a growing, refined library of things the agent already knows how to do well.

Common pitfall: treating every one-off task as worth turning into a skill. A skill earns its keep through repetition. Teaching the agent a workflow you’ll genuinely repeat weekly is worth the /learn investment; a task you’ll do exactly once is not, that’s just a normal conversation.

Exercise: pick a real, multi-step task you do more than once (checking a status page, drafting a specific kind of message, running a recurring diagnostic), and use /learn to capture it. Then start a fresh session and invoke it by its new slash command to confirm it behaves the way you’d expect.

Knowledge Check

3 questions to test your understanding

1 You perform the same multi-step task (checking three dashboards and compiling a status summary) manually in chat three times over a week. What is the Hermes-native way to avoid repeating those instructions a fourth time?

2 Where do skills, whether agent-created or hand-written, actually live, and what makes a skill 'live' without restarting Hermes?

3 After installing a new skill called ascii-art, how do you actually invoke it?

Go further with expert guidance

Ready to build production AI?
Talk to our R&D team.

These courses give you the foundation. Our embedded AI teams take you from prototype to production in 30–90 days, with your team, your codebase, your goals. Book a free strategy call to see how we can accelerate your AI initiative.

30 minutes · No obligation · Expert AI engineers, not sales reps

AI Architecture Review

Audit your current stack and identify high-impact improvements

Project Review

Get expert feedback on your AI implementation and codebase

Team Mentoring

Upskill your engineers with hands-on AI coaching sessions

AI Strategy

Define your AI roadmap, prioritization, and implementation plan