# Skills

> Package a repeatable job once, bind it to an agent, and let an agent request a skill it does not have.

A **skill** packages a repeatable job — a procedure, a checklist, a set of steps — so you do not have to re-explain it every time. Bind a skill to an agent and it becomes part of what that agent can do.

## When to use it

Use a skill when the *how* is stable and worth reusing: a weekly report with a fixed structure, a triage procedure with rules, a research method you want followed the same way every time.

| Put it in | When |
| --- | --- |
| The [system prompt](/docs/build/system-prompt/) | It applies to everything the agent does |
| A skill | It is one specific job with steps, used occasionally |
| A [routine](/docs/automate/routines/) | The job should also happen on a schedule |

## Binding

A skill is bound to specific agents, like a [connection](/docs/connect/overview/). Installing or creating a skill does not hand it to every agent you own — you decide which agents get it.

Binding is what keeps an agent predictable. An agent offered twenty skills spends its judgment choosing between them; an agent with three uses them well.

## When an agent asks for a skill

An agent that would benefit from a skill it has not been given can **request** it rather than failing. The [run](/docs/work/runs/) pauses, and the conversation shows what it wants and why.

Grant it and the skill is bound and the run continues with it available. Decline and the agent carries on without it — usually by doing the job the long way.

<Aside type="note" title="Granting is a real binding">
  Approving a request binds the skill to that agent from then on, not just for the
  current run. If it was a one-off, unbind it afterwards in
  [Agent Builder](/docs/build/agent-builder/).
</Aside>

## Finding and creating skills

Agents can look through the skills available to them and pick a relevant one for the task at hand, rather than needing you to name it. They can also author a new skill from work you have just done together — useful when you have walked an agent through a procedure once and want it kept.

Skills you create are private to your account unless you publish them.

## Limits

- A skill is not access. A skill that reads your email still needs an email [connection](/docs/connect/overview/) bound to the same agent.
- Skills are bound per agent. There is no account-wide "all agents get this".
- Skill steps that call a connector are subject to the same [approval](/docs/work/approvals/) gate as any other action.

## Related

<CardGrid>
  <LinkCard
    title="Built-in tools"
    href="/docs/capabilities/built-in-tools/"
    description="What every agent can do before you bind anything."
  />
  <LinkCard
    title="Connectors overview"
    href="/docs/connect/overview/"
    description="Giving an agent access to a real service."
  />
  <LinkCard
    title="Routines"
    href="/docs/automate/routines/"
    description="Running a packaged job on a schedule."
  />
</CardGrid>
