# Skills and memory

Skills give a bot extra know-how for specific tasks; memory lets it remember things. Review and turn skills on and off, have a bot draft new skills, and read or edit a bot's memory.

Canonical page: https://themachine.myapps.ai/docs/desktop/bots/skills-and-memory

## Skills

A **skill** is a package of know-how for a specific kind of task: how to make
a good slide deck, how to work with spreadsheets, how to follow your team's
process for something. When a task matches a skill, the bot uses it, so it
does the job the right way without you explaining every step.

**Soul vs skill:** the [Soul](/docs/desktop/bots/soul) is *who the bot is*
and applies to everything. A skill is *how to do one kind of task*, used only
when it's relevant.

### See and change a bot's skills

![A bot's Skills section with on/off switches](/images/docs/desktop/skills.webp)

1. Open the bot's settings (click its name in the chat header).
2. Open **Skills**.

The **Learned skills** card lists every skill in your workspace. Each row
shows the skill's name, what it's for, and *Used when the bot decides it's
relevant*.

| To | Do this |
|---|---|
| **Read a skill** | Click its name. The whole skill opens in a window. Click **Close** when you're done. |
| **Turn a skill on** | Flip its switch. A window opens first: **Review … before enabling** shows the full skill. Read it, then click **Enable reviewed skill**, or **Cancel**. |
| **Turn a skill off** | Flip its switch off. It happens straight away. |
| **Remove a skill** | Click the **trash** button and confirm. This takes it away from this bot only. The skill stays in your workspace, so you can turn it back on later. |

Turn off skills a bot doesn't need, to keep it focused.

> **Why review before turning a skill on?**
> A skill is instructions the bot follows. Reading it first means you know
> exactly what you're adding, the same way you'd check a new
> [Soul](/docs/desktop/bots/soul).

### Get new skills

There are three ways:

| Way | How |
|---|---|
| **Have the bot draft one** | After a bot does a task well, send `/learn`. It writes a skill from what worked, for you to review. |
| **Save a run** | When the [run card](/docs/desktop/models/questions-and-runs) appears after a multi-step task, click **Save as skill**. |
| **Add from the Marketplace** | Open **Tools → Marketplace** and add a skill to a bot. See [Marketplace](/docs/desktop/bots/marketplace). |

Recipes come with skills too. When you add a [recipe](/docs/desktop/bots/recipes),
its skills start **off** so you can check them first.

### Draft a skill with /learn

Say a bot just did a great job turning last week's sales numbers into a
chart, and you'll want that again.

1. In the same thread, send:

   > /learn

   Or add notes: *"/learn — always use Monday to Sunday, and put the chart in
   a file called sales-chart.png."*
2. The bot looks back at the conversation and drafts a skill.
3. Check what it wrote. When a bot changes its own skills, a one-line note,
   *Changed its own setup*, appears in the chat with an **Undo** button. Read
   the new skill in **Bot settings → Skills** by clicking its name.

Changes a bot makes to its own setup go ahead with that note by default. To
be asked first, set **Change its own setup** to **Ask** in **Bot settings →
Access → What needs your OK**. See [Approvals](/docs/desktop/models/approvals#what-needs-your-ok).

`/learn` appears in the **/** menu only when skill drafting is on. To stop
bots from drafting skills, turn off **Settings → Experimental → Bots may draft
skills for your review**.

## Memory

**Memory** is notes a bot writes for itself, so it can remember things: your
preferences, facts about your work, decisions you've made.

Memory is plain Markdown files on the bot's cloud computer. You can read and
edit them yourself, right in the bot's settings.

### Open a bot's memory

![The Memory editor: MEMORY.md with Save, the size gauge, and the topic files](/images/docs/desktop/memory-editor.webp)

1. Open the bot's settings (click its name in the chat header).
2. Open **Memory**.

Memory lives on the bot's computer, so the computer needs to be awake to show
it. If it's asleep, you'll see a message saying so. Open the **Computer** tab
of [the bot's computer](/docs/desktop/cloud-computer/overview) to wake it,
then open **Memory** again. A brand-new bot has no computer until you send it
its first message.

### MEMORY.md, the main notes

**MEMORY.md** opens first. It's the bot's main list of things to remember. If
it's empty, the box says *Nothing remembered yet*: the bot writes notes here
as it works, or you can add your own.

1. Type in the box to change it.
2. Click **Save**. Or click **Discard changes** to go back to what's saved.

Keep it short and to the point. The gauge above it, **How much of MEMORY.md
loads**, shows how full it is, against limits of **200 lines** and **20,000
bytes** (shown as **19.5 KB**). Only the first 200 lines load into each turn.
Once the file passes 80% of either limit, the bars turn amber as a warning.
Move longer notes into topic files before it gets there.

### Topic files

Under **Topic files** are longer notes the bot reads when it needs them, like
one file about your clients and one about your products.

- **Open one**: click it to edit it, then **Save**. **Back to MEMORY.md**
  returns to the main notes.
- **Add one**: type a name in **New topic name** (for example *clients*) and
  click **New topic**.
- **Delete one**: click its **Delete** button and confirm. This removes the
  file from the bot's computer.

### If the bot changes a file while you're editing

Bots write to memory while they work. If Scout saves a change to the file
you have open, you'll see *Scout changed this file while you were editing*,
and nothing of yours is saved yet. Choose:

| Button | What happens |
|---|---|
| **Reload** | Shows Scout's version. Your draft is kept underneath, so you can copy from it. |
| **Overwrite with mine** | Saves your version over Scout's. |

### Ask a bot to remember or forget something

Just tell it:

> Remember that our fiscal year starts in April.

> Please note: I prefer charts with a white background.

Or type **/** in the message box and choose `/remember` or `/forget`. When a
bot saves something, a small note appears in the chat: *Saved to memory*,
with the file it went into.

If something should *always* apply, it's more reliable to put it in the bot's
[Soul](/docs/desktop/bots/soul).

## Soul, skills, and memory compared

| | Soul | Skills | Memory |
|---|---|---|---|
| **What** | Who the bot is and how it works | How to do specific tasks | Things the bot has learned |
| **Who writes it** | You (or the bot with `/setup`) | You, the bot (`/learn`), or the Marketplace | The bot, and you if you like |
| **When it's used** | Always | When a task matches | When relevant |
| **Where to see it** | Bot settings → **Soul** | Bot settings → **Skills** | Bot settings → **Memory** |
