Skills are the playbook an agent reads when a particular task is in front of it. Where a Tool is “code the agent calls”, a Skill is “prose the agent loads into context” — long-form instructions, examples, formatting rules, edge cases. The agent decides when to consult one based on itsDocumentation Index
Fetch the complete documentation index at: https://docs.mirobody.ai/llms.txt
Use this file to discover all available pages before exploring further.
description.
Mirobody supports the Claude Agent Skills format directly: any folder under skills/ that contains a SKILL.md is auto-discovered at startup and exposed to every agent that has the skill loader enabled.
File layout
SKILL.md end-to-end when the skill activates; anything in sibling files is referenced by relative path from the playbook.
SKILL.md
| Field | Required | Purpose |
|---|---|---|
name | yes | Stable identifier, kebab-case. Used in logs and tool calls. |
description | yes | What this skill does and when to use it. The model sees this verbatim when deciding whether to load the skill. Be specific about triggers. |
license | recommended | Free-text license note. |
metadata.json
metadata.json is Mirobody-specific. It’s lighter weight than the SKILL.md body and is what the skill loader scans first.
| Field | Purpose |
|---|---|
name | Must match the frontmatter name. |
summary | One- or two-sentence pitch. Shown in skill lists. |
when_to_use | Array of intent triggers. The orchestrator matches user requests against these. |
when_not_to_use | Negative triggers — keeps the skill from over-firing. |
tags | Free-form labels for filtering. |
when_to_use / when_not_to_use are left empty, the loader falls back to matching on description from SKILL.md.
A complete example: the xlsx skill
The upstream repo ships four reference skills under skills/ — xlsx, pdf, pptx, docx. The xlsx skill is the most representative:
- Agent (e.g. DeepAgent) sees an
.xlsxattachment in the user message. - Skill loader scans
metadata.jsonfiles;xlsx’ssummarymatches. - The full
SKILL.mdbody is injected into the system context for this turn. - The agent now has all the formatting standards, color-coding conventions, and
recalc.pydocumentation it needs — no extra tool calls required.
Adding your own skill
Pick a slot in `skills/`
Use kebab-case for the folder name. Multi-word skills like
glucose-coach or legal-citation are fine.Write `SKILL.md`
Start with frontmatter (
name, description, license). Then write the playbook in plain Markdown. Aim for “I’m onboarding a new colleague” tone — explicit, with worked examples.Write `metadata.json`
At minimum:
name, summary, and either populated when_to_use or a strong description in SKILL.md. Add tags if you want to filter skills in custom agents.Restart the server
Skills are auto-discovered at startup. After
./deploy.sh (or restarting your local dev server) the skill is live across every agent that runs the skill loader.Skills vs Tools — quick mental model
| Tool | Skill | |
|---|---|---|
| Form | Python function | Markdown playbook + metadata |
| When agent uses it | Calls it like a function and reads the return value | Loads the whole body into context when relevant |
| Best for | Side-effecting actions, structured data fetches | Domain rules, formats, examples, style guides |
| Discovery | Auto-loaded from tools/ | Auto-loaded from skills/ |
| Versioned with | Pinned imports | The folder itself + git |
health-coach skill that tells the model the tone and structure for advice, paired with fetch_health_data, search_health_indicators, and chart_* tools that supply the underlying numbers.
Next steps
Adding Tools
The other half: write Python functions the agent can call.
Tools & Agents Overview
See how Skills, Tools, and the three agent types fit together.