> ## 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 to consult and scripts to run as the agent works. 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.

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 in your workspace.

## Create a Skill

From **Skills**, click **Create**. To start from a copy instead, choose **Duplicate** from an existing skill's **⋯** menu. Either way you land in the editor, where you build the skill by hand or with the **Skill Builder**.

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

### Write It by Hand

Build the skill yourself in the editor: write the `SKILL.md` and add any supporting files it needs.

`SKILL.md` holds the skill itself. The body is the procedure the agent follows, and the frontmatter sets:

* **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 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.

Each file can be up to 100 MB. To allow larger uploads, raise `NGINX_CLIENT_MAX_BODY_SIZE` in your [environment variables](/en/self-host/deploy/configuration/environments).

### Draft with the Skill Builder

Instead of writing the skill yourself, chat with the Skill Builder. Describe the scenario or attach existing process docs, and it writes the `SKILL.md` and creates supporting files for you 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`                                  |
| Text and data | `.txt`, `.md`, `.csv`, `.json`, `.yaml` |

Attach up to 3 files per message, up to 20 MB each. 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. It must contain a `SKILL.md`. Once imported, it arrives as a draft for you to review and publish.

## Tag a Skill

Hover a skill's card and click **Add tag**. You can 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.

<Note>
  Restoring a version publishes it immediately as 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.
