Вопрос

Как поставить и включить скилл в OpenClaw

Пошагово: от выбора источника до проверки в openclaw skills list, с gating, allowlist и границами для сторонних скиллов.

· 5 мин чтения

Коротко

  • Скилл — это каталог с SKILL.md: YAML-фронтматтер плюс инструкции агенту. Имя берётся из поля name, а при его отсутствии — из имени каталога.
  • OpenClaw загружает скиллы по приоритету: workspace → проект → личные → управляемые → workshop → встроенные. Источник с более высоким приоритетом перебивает источник с более низким при совпадении имени.
  • Установите через CLI (openclaw skills install) или положите SKILL.md в нужный корень, затем проверьте openclaw skills list и check.
  • Скиллы из сторонних источников требуют проверки: verify для ClawHub, skills-sh: помечены «Not scanned by ClawHub», а git: и локальные папки ставятся вообще без ClawHub, а --force не отменяет block от installPolicy.

Сверено с документацией OpenClaw 2026.10.2, 12 октября 2026.

Скилл в OpenClaw — это папка с SKILL.md: YAML-фронтматтер задаёт имя и описание, тело учит агента работать с инструментами. Установить и включить такой скилл можно через CLI или вручную, затем подключить через skills.entries или allowBundled, проверить загрузку и прогнать тест.

Где лежат файлы и как OpenClaw их находит

OpenClaw сканирует набор корней и при совпадении имени берёт источник с высшим приоритетом. Приоритет идёт от workspace вниз до дополнительных каталогов.

| Priority    | Source                 | Path                                                 |
| ----------- | ---------------------- | ---------------------------------------------------- |
| 1 — highest | Workspace skills       | `<workspace>/skills`                                 |
| 2           | Project agent skills   | `<workspace>/.agents/skills`                         |
| 3           | Personal agent skills  | `~/.agents/skills` (default state only)              |
| 4           | Managed / local skills | `<state-dir>/skills`                                 |
| 5           | Workshop skills        | `<state-dir>/agents/<agentId>/agent/workshop-skills` |
| 6           | Bundled skills         | shipped with the install                             |
| 6           | Custodian skills       | shipped; configured Custodian agent only             |
| 7 — lowest  | Extra directories      | `skills.load.extraDirs` + plugin skills              |

Поставить скилл из ClawHub, Git или локально

CLI-команды openclaw skills search, update и verify обращаются к ClawHub напрямую. Для проверки подлинности ClawHub-скилла есть отдельная команда verify. Git- и локальные установки копируются без сканирования ClawHub.

openclaw skills search "calendar"
openclaw skills install @owner/<slug>
openclaw skills install @owner/<slug> --version <version>
openclaw skills install skills-sh:<owner>/<repo>/<slug>
openclaw skills install git:owner/repo
openclaw skills install git:owner/repo@main
openclaw skills install ./path/to/skill --as custom-name
openclaw skills verify @owner/<slug>
openclaw skills verify @owner/<slug> --card
openclaw skills update @owner/<slug>
openclaw skills update --all --global

По умолчанию устанавливается в активный workspace. Флаг --global перенаправляет в общий управляемый каталог (<state-dir>/skills). Слаг для Git/локальной установки берётся из name во фронтматтере, иначе из имени каталога; переопределить можно --as <slug>. Установка падает до копирования, если корневой SKILL.md не проходит content rules: нет description или размер превышает skills.limits.maxSkillFileBytes.

Вручную: положить SKILL.md и включить

Минимальный путь: создать каталог и SKILL.md в нужном корне. Имя скилла и slash-команды берутся из поля name, а если его нет — из имени каталога. Список разрешённых скиллов агента тоже сверяется по этому полю.

mkdir -p ~/.openclaw/workspace/skills/hello-world
---
name: hello-world
description: A simple skill that prints a greeting.
---

# Hello World

When the user asks for a greeting, use the `exec` tool to run:

```bash
echo "Hello from your custom skill!"

Включить или выключить скилл и задать ему API-ключ и переменные окружения можно в `skills.entries` — это общая настройка для всех агентов. Какие скиллы видит конкретный агент, решает список `agents.entries.<id>.skills` (или общий `agents.defaults.skills`). Список `allowBundled` ограничивает набор встроенных скиллов, которые становятся доступны.

```json5
{
  skills: {
    allowBundled: ["gemini", "peekaboo"],
    entries: {
      "image-lab": {
        enabled: true,
        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },
        env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },
      },
      peekaboo: { enabled: true },
      sag: { enabled: false },
    },
  },
}

Ключ через apiKey инжектится в хост-процесс на один ход агента, в песочницу он не доходит. В env у записи можно задать свои переменные, как у image-lab выше.

Gating: когда скилл вообще загружается

Фронтматтер умеет прятать скилл, пока не появились нужные бинарники или переменные. Условия задаются в metadata.openclaw.

---
name: gemini-search
description: Search using Gemini CLI.
metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }
---

Проверки такие. requires.bins требует, чтобы все бинарники были на PATH. requires.anyBins требует хотя бы один. requires.env требует каждую переменную в процессе или конфиге. requires.config требует, чтобы путь в openclaw.json был truthy. os фильтрует платформу: ["darwin"], ["linux"] или ["win32"]. Поле always оставляет скилл на подходящей ОС даже при провале остальных проверок.

Проверка, что скилл подхватился

После установки OpenClaw следит за SKILL.md и обновляет снимок автоматически. Если вотчер выключен или сессия уже идёт, обновите список вручную и перезапустите сессию.

openclaw skills list
openclaw skills list --eligible
openclaw skills list --agent <id>
openclaw skills info <name>
openclaw skills check
openclaw skills check --agent <id>
openclaw skills check --json
openclaw agent --message "give me a greeting"
/new
openclaw gateway restart

check разделяет три состояния. Inventory: скилл найден в корне. Readiness: объявленные требования выполнены, скилл годен к запуску. Visibility: годный скилл реально показан агенту после allowlist (списка разрешённых) и флагов. Если в выводе Missing requirements, установите нужный бинарник или переменную и проверьте снова.

Границы: сторонние скиллы и безопасность

ClawHub-скиллы формата @owner/<slug> бывают claimed или ClawHub-scanned. Git-установки (git:owner/repo[@ref]) и локальные (./path) не сканируются ClawHub вообще.

При включённом security.installPolicy все установки — из ClawHub, Git, локальной папки, а также обновления — идут через локальную команду политики: она возвращает allow, warn или block. warn останавливает установку и требует подтверждения: в интерактивном режиме нужно набрать имя скилла, в неинтерактивном передаётся --acknowledge-install-policy-warning. Флаг --force не отменяет block и не одобряет предупреждения политики.

Частые ошибки

  • Bundled-скилл не виден агенту, потому что его нет в allowBundled. Добавьте slug туда.
  • После правки SKILL.md агент в той же сессии не видит изменений. Начните новую сессию через /new или перезапустите Gateway.
  • check показывает Missing requirements, хотя скилл «должен работать». Установите бинарник из requires.bins или задайте переменную из requires.env.
  • Установка git:owner/repo или локального пути упала без копирования. У источника нет валидного SKILL.md (нет description) или файл больше skills.limits.maxSkillFileBytes.