> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-yajing-skill-management-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills

> Package a task and its supporting files into a reusable skill, then share it workspace-wide

A *skill* is a self-contained package you build once and reuse. It includes a `SKILL.md` that holds the instructions for one task and tells the agent when to use it, plus any reference materials and scripts the task needs. For the full format, see [Agent Skills](https://agentskills.io/home).

You can keep a skill in the library to share it workspace-wide. Publish it once, and every agent that uses it picks up your latest change. The library can hold up to 500 skills.

Use a skill in:

* a [New Agent](/en/self-host/use-dify/build/new-agent/build#skills) app
* a [New Agent node](/en/self-host/use-dify/nodes/agent) in a [Workflow app](/en/self-host/use-dify/build/workflow-chatflow)

Create, import, and manage your library skills on the **Skills** page.

<Info>
  Creating and managing skills requires the Editor role or above.
</Info>

## Create a Skill

From **Skills**, click **Create**. To start from a copy instead, choose **Duplicate** from an existing skill's **⋯** menu; you get a copy of the last published version, or of the current draft if the skill has never been published. Either way you land in the editor, where you write the skill yourself or draft it with the [Skill Builder](#draft-with-the-skill-builder).

In the body of `SKILL.md`, lay out the procedure for the agent to follow. In the frontmatter, set:

* **Name**: the skill's unique ID, like `refund-requests`. The agent reads it and the description to decide when to use the skill.
* **Description**: the main factor in the agent's decision. Make it specific.
* **Display name**: the name you see and pick wherever the skill appears. Make it easy to recognize.
* **Metadata**: custom fields for your own reference details, like `owner: payments-team` or `source: https://wiki.example.com/refund-policy`.

Add any scripts, references, and other supporting files through the file tree. What you can do with each depends on its type:

* **Text and code** (Markdown, scripts, JSON, YAML, CSV, and the like): edit in place.
* **Images and PDFs**: preview in place.
* **Other files**: download to view.

### Draft with the Skill Builder

Chat with the Skill Builder and it drafts the skill for you. Describe the scenario or attach existing process docs, and it writes the `SKILL.md` and creates supporting files to review and refine.

It accepts the following file types:

| Type          | Examples                                         |
| :------------ | :----------------------------------------------- |
| PDF           | `.pdf`                                           |
| Word          | `.doc`, `.docx`                                  |
| Excel         | `.xls`, `.xlsx`                                  |
| PowerPoint    | `.ppt`, `.pptx`                                  |
| RTF           | `.rtf`                                           |
| Image         | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg` |
| Text and data | `.txt`, `.md`, `.csv`, `.json`, `.yaml`          |

Attach up to 10 files per message, up to 15 MB each, or 10 MB for an image. They are context for the Skill Builder, not part of the skill. To include a file, add it through the file tree.

## Import a Skill

To bring in a skill built elsewhere as a library skill, click **Import** and choose a `.zip` or `.skill` package. Make sure it has a `SKILL.md` inside. Once imported, it arrives as a draft for you to review and publish.

## Tag a Skill

Add tags to a skill on its card or in the editor, then filter skills by tags.

## Publish and Versions

Your edits autosave as a draft. Publish the draft so you can add it to agents. Each publish is saved as a version you can revisit or restore later. To record what a version changed, give it a title and note with **Edit version info** in its **⋯** menu.

<Note>
  Restoring a version replaces your current draft. Publish the draft to make it the newest version.
</Note>

## Export a Skill

To take a skill beyond this workspace, choose **Export** from the **⋯** menu on its card. You get the skill's latest published version as a `.zip`.

## Delete a Skill

Deleting a skill removes it from the workspace and from every agent that uses it, along with all of its versions. A deleted skill can't be recovered; export a copy first if you may need it again.
