Навыки (OpenClaw)
OpenClaw использует папки skills, совместимые с AgentSkills, чтобы обучать агента использованию инструментов. Каждый skill — это каталог, содержащийSKILL.md с YAML frontmatter и инструкциями. OpenClaw загружает bundled skills, а также необязательные локальные переопределения, и фильтрует их во время загрузки на основе окружения, конфига и наличия бинарников.
Расположение и приоритеты
Skills загружаются из трёх мест:- Bundled skills: поставляются вместе с установкой (npm‑пакет или OpenClaw.app)
- Управляемые/локальные навыки:
~/.openclaw/skills - Навыки рабочего пространства:
<workspace>/skills
<workspace>/skills (наивысший) → ~/.openclaw/skills → bundled skills (наинизший)
Кроме того, можно настроить дополнительные папки skills (наинизший приоритет) через
skills.load.extraDirs в ~/.openclaw/openclaw.json.
Skills для каждого агента и общие skills
В многоагентных конфигурациях у каждого агента есть собственное рабочее пространство. Это означает:- Skills для каждого агента находятся в
<workspace>/skillsи доступны только этому агенту. - Общие skills находятся в
~/.openclaw/skills(managed/local) и видны всем агентам на одной машине. - Общие папки также можно добавить через
skills.load.extraDirs(наинизший приоритет), если нужен общий набор skills для нескольких агентов.
Плагины + skills
Плагины могут поставлять собственные skills, указывая каталогиskills в
openclaw.plugin.json (пути относительно корня плагина). Skills плагина загружаются
при включении плагина и участвуют в стандартных правилах приоритета skills.
Вы можете открыть их через файл metadata.openclaw.requires.config в файле конфигурации плагина
. См. Plugins для обнаружения/настройки и Tools для описания
поверхности инструментов, которым обучают эти skills.
ClawHub (установка + синхронизация)
ClawHub — это публичный реестр skills для OpenClaw. Просмотр доступен по адресу https://clawhub.com. Используйте его для поиска, установки, обновления и резервного копирования skills. Полное руководство: ClawHub. Общие потоки:- Установка skill в рабочее пространство:
clawhub install <skill-slug>
- Обновление всех установленных skills:
clawhub update --all
- Синхронизация (сканирование + публикация обновлений):
clawhub sync --all
clawhub устанавливает skills в ./skills в текущем рабочем
каталоге (или использует настроенное рабочее пространство OpenClaw). OpenClaw
подхватывает это как <workspace>/skills в следующем сеансе.
Примечания по безопасности
- Рассматривайте сторонние skills как недоверенный код. Читайте их перед включением.
- Предпочитайте “песочница” запусков для ненадежных входов и рискованных инструментов. См. Sandboxing.
skills.entries.*.envиskills.entries.*.apiKeyвнедряют секреты в процесс хоста для данного хода агента (не в sandbox). Не допускайте попадания секретов в подсказки и логи.- Для более широкой модели угроз и чек‑листов см. Security.
Формат (AgentSkills + совместимость с Pi)
SKILL.md должен включать как минимум:
- Мы следуем спецификации AgentSkills для структуры и назначения.
- Парсер, используемый встроенным агентом, поддерживает только однострочные ключи frontmatter.
metadataдолжен быть однострочным JSON‑объектом.- Используйте
{baseDir}в инструкциях для ссылки на путь папки skill. - Необязательные ключи frontmatter:
-
homepage— URL, отображаемый как «Website» в macOS Skills UI (также поддерживается черезmetadata.openclaw.homepage). -
user-invocable—true|false(по умолчанию:true). Приtrueskill доступен как пользовательская slash‑команда. -
disable-model-invocation—true|false(по умолчанию:false). Приtrueskill исключается из подсказки модели (но остаётся доступным через вызов пользователем). -
command-dispatch—tool(необязательно). При значенииtoolslash‑команда обходит модель и напрямую диспетчеризуется в инструмент. -
command-tool— имя инструмента для вызова, когда заданоcommand-dispatch: tool. -
command-arg-mode—raw(по умолчанию). Для диспетчеризации инструмента передаёт исходную строку аргументов в инструмент (без парсинга ядром). Инструмент вызывается с параметрами:{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
-
Гейтинг (фильтры во время загрузки)
OpenClaw фильтрует skills во время загрузки, используяmetadata (однострочный JSON):
metadata.openclaw:
always: true— всегда включать skill (пропустить остальные проверки).emoji— необязательный эмодзи, используемый в macOS Skills UI.homepage— необязательный URL, отображаемый как «Website» в macOS Skills UI.os— необязательный список платформ (darwin,linux,win32). Если задан, skill доступен только на этих ОС.requires.bins— список; каждый элемент должен существовать наPATH.requires.anyBins— список; хотя бы один должен существовать наPATH.requires.env— список; переменная окружения должна существовать или быть задана в конфиге.requires.config— список путейopenclaw.json, которые должны быть истинными.primaryEnv— имя переменной окружения, связанной сskills.entries.<name>.apiKey.install— необязательный массив спецификаций установщиков, используемых macOS Skills UI (brew/node/go/uv/download).
requires.binsпроверяется на хосте во время загрузки skill.- Если агент работает в sandbox, бинарник также должен существовать внутри контейнера.
Установите его через
agents.defaults.sandbox.docker.setupCommand(или используйте пользовательский образ).setupCommandвыполняется один раз после создания контейнера. Установки пакетов также требуют сетевого доступа, доступной для записи корневой ФС и пользователя root в sandbox. Пример: skillsummarize(skills/summarize/SKILL.md) требует наличия CLIsummarizeв контейнере sandbox для выполнения там.
- Если указано несколько установщиков, Gateway выбирает один предпочтительный вариант (brew при наличии, иначе node).
- Если все установщики имеют значение
download, OpenClaw перечисляет каждый элемент, чтобы вы могли видеть доступные артефакты. - Спецификации установщиков могут включать
os: ["darwin"|"linux"|"win32"]для фильтрации вариантов по платформе. - Установки Node учитывают
skills.install.nodeManagerвopenclaw.json(по умолчанию: npm; варианты: npm/pnpm/yarn/bun). Это влияет только на установку skills; среда выполнения Gateway всё равно должна быть Node (Bun не рекомендуется для WhatsApp/Telegram). - Установки Go: если
goотсутствует и доступенbrew, gateway сначала устанавливает Go через Homebrew и по возможности устанавливаетGOBINвbinот Homebrew. - Установки через download:
url(обязательно),archive(tar.gz|tar.bz2|zip),extract(по умолчанию: auto при обнаружении архива),stripComponents,targetDir(по умолчанию:~/.openclaw/tools/<skillKey>).
metadata.openclaw отсутствует, skill всегда доступен (если только
он не отключён в конфиге или не заблокирован skills.allowBundled для bundled skills).
Переопределения конфига (~/.openclaw/openclaw.json)
Bundled/managed skills можно включать/выключать и снабжать значениями переменных окружения:
metadata.openclaw.skillKey, используйте этот ключ в skills.entries.
Правила:
enabled: falseотключает skill, даже если он bundled/установлен.env: внедряется только если переменная ещё не установлена в процессе.apiKey: удобство для skills, которые объявляютmetadata.openclaw.primaryEnv.config: необязательный контейнер для пользовательских полей per‑skill; пользовательские ключи должны находиться здесь.allowBundled: необязательный список разрешённых только для bundled skills. Если задан, доступны только bundled skills из списка (managed/workspace skills не затрагиваются).
Впрыскивание среды (на каждого агента)
При старте запуска агента OpenClaw:- Считывает метаданные skills.
- Применяет любые
skills.entries.<key>.envилиskills.entries.<key>.apiKeyкprocess.env. - Формирует системную подсказку с доступными skills.
- Восстанавливает исходное окружение после завершения запуска.
Снимок сеанса (производительность)
OpenClaw делает снимок доступных skills при начале сеанса и повторно использует этот список для последующих ходов в рамках того же сеанса. Изменения в skills или конфиге вступают в силу при следующем новом сеансе. Skills также могут обновляться в середине сеанса, когда включён наблюдатель skills или когда появляется новый доступный удалённый узел (см. ниже). Рассматривайте это как горячую перезагрузку: обновлённый список применяется на следующем ходе агента.Удалённые узлы macOS (Linux gateway)
Если Gateway запущен на Linux, но подключён узел macOS с разрешённымsystem.run (без установки безопасности Exec approvals в deny), OpenClaw может считать skills только для macOS доступными, когда требуемые бинарники присутствуют на этом узле. Агент должен выполнять такие skills через инструмент nodes (обычно nodes.run).
Это опирается на отчёт узла о поддерживаемых командах и на проверку бинарников через system.run. Если узел macOS позже отключится, skills останутся видимыми; вызовы могут завершаться ошибкой до повторного подключения узла.
Наблюдатель skills (автообновление)
По умолчанию OpenClaw отслеживает папки skills и обновляет снимок skills при изменении файловSKILL.md. Это настраивается в skills.load:
Влияние на токены (список skills)
Когда skills доступны, OpenClaw внедряет компактный XML‑список доступных skills в системную подсказку (черезformatSkillsForPrompt в pi-coding-agent). Стоимость детерминирована:
- Базовые накладные расходы (только при ≥1 skill): 195 символов.
- На каждый skill: 97 символов + длина XML‑экранированных значений
<name>,<description>и<location>.
- XML‑экранирование расширяет
& < > " 'в сущности (&,<и т. д.), увеличивая длину. - Количество токенов зависит от токенизатора модели. Грубая оценка в стиле OpenAI — ~4 символа на токен, поэтому 97 символов ≈ 24 токена на skill плюс фактические длины полей.
Жизненный цикл managed skills
OpenClaw поставляется с базовым набором skills как bundled skills в составе установки (npm‑пакет или OpenClaw.app).~/.openclaw/skills существует для локальных
переопределений (например, закрепление версии/патчинг skill без изменения bundled‑копии). Workspace skills принадлежат пользователю и при конфликте имён переопределяют оба варианта.