# Skills

> Reusable instruction packages for FlyMy.AI agents: create a skill once, attach it to any agent with create_skill, attach_skill, and the other gateway skill tools.

A **skill** is a reusable, named instruction package. You write the know-how once - a voice guide, a customer's rules, a recipe that works - and attach it to any agent that should carry it. The agent reads its attached skills alongside its goal, so one well-written skill upgrades every agent it is attached to, and updating the skill updates them all.

## When to use a skill

Reach for a skill whenever the same know-how needs to live in more than one agent:

- **Voice and tone** - your brand's writing style, shared by every content agent
- **Per-customer rules** - "for ACME, always CC their PM and use their template", attached to each agent that touches that account
- **A proven pipeline recipe** - the steps and checks that made one agent reliable, packaged so new agents start from them instead of rediscovering them

If the instruction only matters to a single agent, just put it in that agent's goal. Skills earn their keep when the same text would otherwise be copy-pasted.

## Working with skills

Skills are managed through the [FlyMyAI Agents MCP gateway](https://docs.flymy.ai/mcp/connect-via-oauth.md) at `https://mcp-agents.flymy.ai/mcp`. Once your AI client is connected, you ask in plain words - the client calls the matching tool for you.

| Tool | What it does |
|---|---|
| `create_skill` | Save a named instruction package |
| `list_skills` | List the skills in your workspace |
| `get_skill` | Read one skill's content |
| `attach_skill` | Attach a skill to an agent |
| `detach_skill` | Remove a skill from an agent |

Typical requests:

```
"Save these writing rules as a skill called Brand Voice."
"What skills do I have?"
"Attach the Brand Voice skill to my Newsletter agent."
"Detach the ACME Rules skill from this agent."
```

> **Tip: Turn a good conversation into a skill**
>
> When an agent finally nails the tone or the process after a few corrections, say "save this as a skill" right there. The corrections become a package you attach to the next agent instead of repeating them.

Not connected yet? One line for Claude Code:

```bash
claude mcp add --transport http flymyai https://mcp-agents.flymy.ai/mcp --header "X-API-Key: YOUR_KEY"
```

GUI clients (Claude Desktop, claude.ai, ChatGPT) add `https://mcp-agents.flymy.ai/mcp` as a custom connector and sign in - see [Connect to your AI client](https://docs.flymy.ai/mcp/connect-via-oauth.md). API keys live at [app.flymy.ai/profile](https://app.flymy.ai/profile).

## Skills vs freeze

Skills and [freezing](https://docs.flymy.ai/agents/concepts/runs.md#freeze--re-run) both make agents repeatable, but at different layers:

| | Skill | Freeze |
|---|---|---|
| Captures | Know-how: rules, style, a recipe | One exact pipeline from a successful run |
| At run time | Agent still plans, guided by the skill | Replays the frozen instruction - deterministic, cheaper, faster |
| Scope | Attach to any number of agents | One compilation of one agent |

A skill **shapes future planning** - the agent stays flexible and applies the know-how to whatever input arrives. A freeze **pins one exact pipeline** - no re-planning at all.

They compose: attach skills while you iterate, and once a run with those skills produces exactly what you want, freeze it with `freeze_agent` and re-run it with `run_frozen`.

> **Note**
>
> A frozen compilation does not change when you later edit a skill - that is the point of freezing. To pick up updated skills in a frozen workflow, run the agent live again and cut a new freeze.

## Next steps

- **[Runs](https://docs.flymy.ai/agents/concepts/runs.md)** - the run lifecycle and the freeze workflow in detail
- **[Training Agents with Patches](https://docs.flymy.ai/agents/guides/training.md)** - iterate on a single agent's goal before extracting a skill
- **[Connect to your AI client](https://docs.flymy.ai/mcp/connect-via-oauth.md)** - hook the gateway into Claude, Cursor, ChatGPT, or Codex
