> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Создание Skills

Skills обучают агента тому, как и когда использовать инструменты. Каждый навык представляет собой каталог,
содержащий файл `SKILL.md` с YAML frontmatter и инструкциями в формате Markdown.
OpenClaw загружает навыки из нескольких корневых каталогов в определённом [порядке приоритета](https://docs2.openclaw.ai/ru/tools/skills.md#loading-order).

## Создание первого навыка

**1. Создайте каталог навыка**

Навыки хранятся в папке `skills/` вашей рабочей области:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
mkdir -p ~/.openclaw/workspace/skills/hello-world
```

Для удобства организации навыки можно группировать по вложенным папкам — имя навыка
по-прежнему задаётся полем `SKILL.md` во frontmatter, а не путём к папке:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world
# имя навыка по-прежнему "hello-world", вызывается как /hello-world
```

**2. Создайте SKILL.md**

Frontmatter определяет метаданные, а основная часть содержит инструкции для агента.

````markdown theme={"theme":{"light":"min-light","dark":"min-dark"}}
---
name: hello-world
description: Простой навык, который выводит приветствие.
---

# Привет, мир

Когда пользователь просит поприветствовать его, используйте инструмент `exec`, чтобы выполнить:

```bash
echo "Привет от вашего пользовательского навыка!"
````

````

Правила именования:
- Для `name` используйте строчные буквы, цифры и дефисы.
- Имя каталога должно совпадать со значением `name` во frontmatter.
- `description` отображается агенту и при поиске слеш-команд —
  оно должно занимать одну строку и содержать менее 160 символов.

</Step>

<Step title="Убедитесь, что навык загружен">
```bash
openclaw skills list
````

По умолчанию OpenClaw отслеживает файлы `SKILL.md` в корневых каталогах навыков. Если
отслеживание отключено или вы продолжаете существующий сеанс, начните новый,
чтобы агент получил обновлённый список:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
# В чате — архивировать текущий сеанс и начать новый
/new

# Или перезапустить Gateway
openclaw gateway restart
```

**3. Протестируйте навык**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw agent --message "give me a greeting"
```

Или откройте чат и обратитесь к агенту напрямую. Используйте `/skill hello-world`,
чтобы явно вызвать навык по имени.

## Справочник по SKILL.md

### Обязательные поля

| Поле | Описание |
| - | - |
| `name` | Уникальный идентификатор из строчных букв, цифр и дефисов |
| `description` | Однострочное описание, отображаемое агенту и в результатах поиска |

### Необязательные ключи frontmatter

| Поле | По умолчанию | Описание |
| - | - | - |
| `user-invocable` | `true` | Сделать навык доступным как пользовательскую слеш-команду |
| `disable-model-invocation` | `false` | Не включать навык в системный промпт агента (он по-прежнему запускается через `/skill`) |
| `command-dispatch` | — | Установите `tool`, чтобы направлять слеш-команду непосредственно инструменту в обход модели |
| `command-tool` | — | Имя инструмента, вызываемого при заданном `command-dispatch: tool` |
| `command-arg-mode` | `raw` | При перенаправлении инструменту передаёт исходную строку аргументов |
| `homepage` | — | URL, отображаемый как "Website" в интерфейсе Skills для macOS |

Описание полей условий загрузки (`requires.bins`, `requires.env` и других) см. в разделе
[Skills — условия загрузки](https://docs2.openclaw.ai/ru/tools/skills.md#gating).

### Использование `{baseDir}`

Ссылайтесь на файлы внутри каталога навыка без жёстко заданных путей —
агент разрешает `{baseDir}` относительно собственного каталога навыка:

```markdown theme={"theme":{"light":"min-light","dark":"min-dark"}}
Запустите вспомогательный скрипт по адресу `{baseDir}/scripts/run.sh`.
```

## Добавление условной активации

Настройте условия, чтобы навык загружался только при наличии его зависимостей:

```markdown theme={"theme":{"light":"min-light","dark":"min-dark"}}
---
name: gemini-search
description: Поиск с помощью Gemini CLI.
metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }
---
```

> [accordion] Параметры условий загрузки
>
> | Ключ | Описание |
> | - | - |
> | `requires.bins` | Все исполняемые файлы должны существовать в `PATH` |
> | `requires.anyBins` | В `PATH` должен существовать хотя бы один исполняемый файл |
> | `requires.env` | Каждая переменная окружения должна существовать в процессе или конфигурации |
> | `requires.config` | Каждый путь `openclaw.json` должен иметь истинное значение |
> | `os` | Фильтр платформ: `["darwin"]`, `["linux"]`, `["win32"]` |
> | `always` | Установите `true`, чтобы пропустить все проверки и всегда включать навык |
>
> Полный справочник: [Skills — условия загрузки](https://docs2.openclaw.ai/ru/tools/skills.md#gating).

> [accordion] Окружение и ключи API
>
> Свяжите ключ API с записью навыка в `openclaw.json`:
>
> ```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
> {
>   skills: {
>     entries: {
>       "gemini-search": {
>         enabled: true,
>         apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },
>       },
>     },
>   },
> }
> ```
>
> Ключ внедряется в процесс хоста только на время этого хода агента.
> Он не передаётся в песочницу — см.
> [переменные окружения в песочнице](https://docs2.openclaw.ai/ru/tools/skills-config.md#sandboxed-skills-and-env-vars).

## Создание предложения через Skill Workshop

Для навыков, подготовленных агентом, или когда перед активацией навыка требуется проверка оператором,
используйте предложения [Skill Workshop](https://docs2.openclaw.ai/ru/tools/skill-workshop.md), а не записывайте
`SKILL.md` напрямую.

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
# Предложить совершенно новый навык
openclaw skills workshop propose-create \
  --name "hello-world" \
  --description "A simple skill that prints a greeting." \
  --proposal ./PROPOSAL.md

# Предложить обновление существующего навыка
openclaw skills workshop propose-update hello-world \
  --proposal ./PROPOSAL.md \
  --description "Updated greeting skill"
```

Используйте `--proposal-dir`, если предложение содержит вспомогательные файлы:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw skills workshop propose-create \
  --name "hello-world" \
  --description "A simple skill that prints a greeting." \
  --proposal-dir ./hello-world-proposal/
```

Каталог должен содержать `PROPOSAL.md` в своём корне. Вспомогательные файлы размещаются в
`assets/`, `examples/`, `references/`, `scripts/` или `templates/`.

После проверки:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw skills workshop inspect <proposal-id>
openclaw skills workshop apply <proposal-id>
```

Полный жизненный цикл предложения описан в разделе [Skill Workshop](https://docs2.openclaw.ai/ru/tools/skill-workshop.md).

## Публикация в ClawHub

**1. Убедитесь, что ваш SKILL.md заполнен**

Убедитесь, что заданы `name`, `description` и все необходимые поля
условий загрузки `metadata.openclaw`. Добавьте URL `homepage`, если у вас есть страница проекта.

**2. Установите автономный ClawHub CLI и войдите в систему**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
npm i -g clawhub
clawhub login
```

**3. Опубликуйте навык**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
clawhub skill publish ./path/to/hello-world
```

Добавьте `--version <version>` или `--owner <owner>`, чтобы переопределить автоматически определённую
версию или опубликовать навык от имени определённого владельца. Полный процесс, область владельца и другие
команды обслуживания (`clawhub sync`, `clawhub skill rename`, ...) описаны в разделах
[ClawHub — публикация](https://docs2.openclaw.ai/ru/clawhub/publishing) и
[ClawHub CLI](https://docs2.openclaw.ai/ru/clawhub/cli).

## Рекомендации

> [!TIP]
>
> * **Будьте лаконичны** — указывайте модели, *что* делать, а не как быть ИИ.
> * **Безопасность прежде всего** — если ваш навык использует `exec`, убедитесь, что промпты не допускают
>   внедрения произвольных команд из недоверенных входных данных.
> * **Тестируйте локально** — перед публикацией используйте `openclaw agent --message "..."`.
> * **Используйте ClawHub** — прежде чем создавать навык с нуля, просмотрите навыки сообщества на [clawhub.ai](https://clawhub.ai).

## Связанные разделы

> [card] [Справочник по Skills](https://docs2.openclaw.ai/ru/tools/skills.md)
>
> Порядок загрузки, условия загрузки, списки разрешений и формат SKILL.md.

> [card] [Skill Workshop](https://docs2.openclaw.ai/ru/tools/skill-workshop.md)
>
> Очередь предложений для навыков, подготовленных агентом.

> [card] [Конфигурация Skills](https://docs2.openclaw.ai/ru/tools/skills-config.md)
>
> Полная схема конфигурации `skills.*`.

> [card] [ClawHub](https://docs2.openclaw.ai/clawhub.md)
>
> Просмотр и публикация навыков в общедоступном реестре.

> [card] [Создание плагинов](https://docs2.openclaw.ai/ru/plugins/building-plugins.md)
>
> Плагины могут поставлять навыки вместе с инструментами, которые они документируют.
