A skill is a packaged, reusable bundle of instructions and know-how that an agent loads only when a task calls for it. Think of it as a mini playbook for one kind of job: how to run this project's deploy, how to write a changelog in your house style, how to work with a particular API. It sits on disk until it is relevant, then it gets pulled into context.
Why load on demand
You could stuff every procedure your agent might ever need into its system prompt. You should not. All that text would sit in the window on every single request, burning space and attention on instructions that are irrelevant to the task at hand. Skills are the fix. They are the practical form of progressive disclosure: keep the detail out of the way, and surface it only at the moment it is needed.
What a good skill tends to be:
- Scoped to one job, not a grab-bag of everything.
- Self-contained, with the steps and context needed to do that job well.
- Loaded on a trigger, when the agent recognises the task, rather than always on.
Skill versus tool versus AGENTS.md
These get muddled, so it helps to separate them. A tool is an action the model can take. A skill is knowledge about how to do a task, often including which tools to use and in what order. And where an AGENTS.md holds standing rules that apply to the whole project, a skill is specialised know-how you only want in scope some of the time.
Related terms
Agent
An agent is a language model wrapped in a loop that lets it call tools, read the results, and decide what to do next. The model supplies the judgement; the loop and the tools give it hands.
Read definition →Progressive disclosure
Progressive disclosure is revealing detail to the model only when it is needed, via pointers and on-demand loading, instead of putting everything into context up front. It saves window space and attention.
Read definition →Tool
A tool is a named action, with a typed input schema, that a model is allowed to call. Tools are how a model that can only produce text gets to actually do things: read a file, run a command, search the web.
Read definition →AGENTS.md
AGENTS.md is a project file of standing instructions and conventions that an agent loads into context at the start of a session. It gives a repo its own durable memory, checked into version control next to the code.
Read definition →