A .md file that loads into AI agent context when relevant tasks arise, acting as reusable procedural memory.
A skill is a self-contained instruction file — typically written in Markdown — that an AI agent loads into its context when a relevant task type is detected. Skills serve as persistent, named procedural memory: rather than the agent deriving the same approach every time from conversation history, the agent can invoke a skill file and immediately access step-by-step guidance, tool commands, conventions, and pitfalls for a specific domain.
When an agent receives a task, it scans its available skills — usually stored in a dedicated directory like ~/.hermes/skills/ — and evaluates which ones apply. A skill is invoked by name, and its contents are injected into the prompt context, giving the agent the same knowledge a human would accumulate after completing that task type many times. This allows even a stateless agent session to behave as though it had experience with the task.
Skills differ from system prompts in that they are modular and targeted. A system prompt provides global behavior guidelines, while a skill provides a specific recipe for one task type. This separation makes skills easier to maintain, test, and reuse across different agents. Well-designed skills include trigger conditions, numbered steps, exact commands, known pitfalls, and verification checks — written so the agent can follow them reliably without needing clarification.
The quality of a skill depends on how well it anticipates failure modes and edge cases, not just the happy path. A skill that only describes what to do in the normal case is only marginally useful; a skill that accounts for common errors, environment quirks, and ambiguous inputs is what makes an agent genuinely autonomous. The open question for the field is how to evaluate skill quality systematically, and where the right boundary is between a skill (focused task recipe) and a tool (integrated system capability).