How skills work
Each skill is a directory containing aSKILL.md file with metadata (frontmatter) and instructions (content). When an agent starts processing a message, it sees a compact index of available skills in its system prompt — just names and descriptions. When it identifies a relevant skill, it loads the full instructions on demand.
System prompt structure
When an agent processes a message, its system prompt is assembled from multiple sources in this order:- Your system prompt — the prompt you configured when deploying the agent
- Memory — the agent’s memory index and any recalled memories (see Memory)
- Skill index — a compact listing of available skills with names, descriptions, and triggers
load_skill tool to fetch full instructions when it decides a skill is relevant.
Skill format
ASKILL.md file has YAML frontmatter followed by markdown content:
Frontmatter fields
Skill storage
Skills are discovered from three tiers, in precedence order — a per-agent skill overrides a bundled skill with the same name:Managed directory
Each agent has a managed skills directory outside its workspace:Additional paths
From the agent’s Skills tab in Desktop, you can add extra directories to scan for skills. If a path is inside the agent’s workspace, the agent’s file tools can read and write to it. This is an opt-in choice for power users who want to manage skills alongside project files.Bundled library
Dash ships a curated library of ready-made skills covering assistant, dev, creative, and communication tasks. These are available to every agent by default and are read-only. To stop using one, install a same-named skill to shadow it — or turn the whole bundled library off from the agent’s Skills tab.Squad member skill creation
Squad members can create their own skills when given thecreate_skill tool. This is opt-in — include create_skill in the squad member’s tool list when deploying.
When a user says something like “remember how to deploy to staging”, the agent uses create_skill to write a SKILL.md to the managed directory. The skill is available in future conversations.
Squad member-created skills:
- Are saved to the managed directory (outside the workspace)
- Are labeled “Squad member” in Desktop so you can distinguish them from skills you pushed
- Cannot overwrite existing skills — the agent can only create new ones
- Can be reviewed, edited, or deleted by the operator through Desktop
Learning from experience
Squad members also pick up skills on their own. After a turn where the squad member did real work, Dash runs a short review that asks the squad member’s own model one question: did this session teach anything worth keeping? Anything it finds is written into a skill the squad member owns, so the next conversation starts already knowing it. You don’t have to do anything to switch this on — it is on by default.What gets learned
A lesson is one short, self-contained instruction: a technique that worked, a correction you made, a dead end worth avoiding next time. Corrections are the richest source — telling the agent “always use X here, never Y” is what turns into a lasting rule. Lessons are grouped into skills named for a kind of task rather than for one job, so a handful of useful skills build up instead of a long list of near-duplicates. The review is told not to record a few things that look like lessons but age badly:- Problems with your setup — a missing program, an unset key, a path that only breaks on this machine. Those get fixed; they aren’t lasting rules.
- “This tool is broken.” A claim like that would be repeated back to the agent for months after the real cause was fixed. If something failed because of setup, the lesson is the fix, not the failure.
- Errors that went away on their own. If retrying worked, the lesson is to retry.
- One-off jobs. Summarising a single document isn’t a kind of work worth a skill.
Seeing it happen
When the review records something, a small chip appears in the conversation where it happened — “Learned: write-files”, or “Remembered: …” for a memory. It is part of the conversation, so it is still there when you scroll back or reopen it later. The same chip shows in Desktop, on iPhone, and on the web.Where it lives
Learned skills sit in the same managed directory as any other squad member skill, are labelled Squad member in Desktop, and can be read, edited, or deleted there like the rest. Beside each one is alessons.json file holding the individual lessons.
Open a learned skill in Desktop and you see its lessons one by one, each with how often the agent has judged it helpful or harmful, and a Retire button. On iPhone and on the web the list is read-only — you can see what an agent knows and read the lessons, but changing them is done from Desktop.
Learning only ever writes to skills the agent created itself. A skill you wrote, one installed from the ecosystem, and anything in the bundled library are never modified. When the agent learns something about one of those, it records it in a companion skill that is loaded alongside the original, so the lesson still arrives when it is relevant.
Correcting a lesson
Each lesson carries a count of how often the review judged it right and how often it judged it wrong. A lesson that keeps proving wrong and never proves useful retires itself, and retired lessons are kept in the file rather than deleted, so you can see what happened and put one back by hand. To correct something immediately, open the skill in Desktop and Retire the lesson. Retiring keeps it in the file and stops the agent proposing it again. To stop Dash managing a learned skill altogether, delete itslessons.json — the skill stays as an ordinary one that learning no longer touches.
Settings
From the agent’s Skills tab, or via the API:
A turn where you correct the agent is always reviewed, however little work it involved — “stop doing that”, “use X instead”, “always do it this way” is the most useful thing a session can teach, and those turns are usually short.
Each review that runs costs one extra model call, on the agent’s own model.
Learning applies to turns that complete normally. A turn that fails or is cancelled is not reviewed — there is no finished outcome to learn from.
Installing skills from the ecosystem
Skills use the openSKILL.md standard, so an agent can install skills published by the wider ecosystem (for example anthropics/skills, openai/skills, or NousResearch/hermes-agent). Give an agent the install_skill tool, then ask it in chat:
“Install the arxiv skill from NousResearch/hermes-agent”Skills can be installed from any of these sources:
- Git —
git:owner/repo[/subpath][@ref](e.g.git:NousResearch/hermes-agent/skills/research/arxiv@main) - URL — a direct link to a
SKILL.md - Local path — a folder on the HQ host
remove_skill tool to uninstall a skill the agent installed or created. Bundled skills can’t be removed.
Chat commands
When an agent serves a messaging channel, users can manage skills inline:
Natural language works too — “what skills do you have?” or “install the arxiv skill from …” — when the agent has the relevant tools.
Managing skills in Desktop
The agent detail page has a Skills tab where you can manage an agent’s skills directly:- View every skill the squad member can use, with a source badge (Bundled / Managed / Squad member / Remote). Click a skill to read its
SKILL.md. - Create a new skill from a name, description, and content.
- Edit the body of a managed, installed, or agent-created skill (bundled skills are read-only).
- Install a skill from a git repo, URL, or local path — security-scanned, dangerous skills refused.
- Remove a skill the agent installed or created.
- Configure the skill library: toggle the bundled library on/off and add extra skill directories.