Навыки
Навыки
OpenClaw использует папки навыков, совместимые с AgentSkills, чтобы научить агента пользоваться инструментами. Каждый навык — это директория, содержащая файл SKILL.md с YAML-фронтметтером и инструкциями. OpenClaw загружает встроенные навыки плюс опциональные локальные переопределения и фильтрует их во время загрузки на основе окружения, конфигурации и наличия бинарных файлов.
Расположение и приоритет
Навыки загружаются из трёх мест:
- Встроенные навыки: поставляются с установкой (npm-пакет или OpenClaw.app)
- Управляемые/локальные навыки:
~/.openclaw/skills - Рабочие навыки:
/skills
Если имена навыков конфликтуют, приоритет следующий: /skills (наивысший) → ~/.openclaw/skills → встроенные навыки (наименьший) Дополнительно вы можете настроить дополнительные папки с навыками (наименьший приоритет) через skills.load.extraDirs в ~/.openclaw/openclaw.json.
Навыки на агента vs общие навыки
В настройках с несколькими агентами у каждого агента есть своё рабочее пространство. Это означает:
- Навыки на агента находятся в
/skillsтолько для этого агента. - Общие навыки находятся в
~/.openclaw/skills(управляемые/локальные) и видны всем агентам на одной машине. - Общие папки также можно добавить через
skills.load.extraDirs(наименьший приоритет), если вы хотите использовать общий пакет навыков для нескольких агентов.
Если одно и то же имя навыка существует в нескольких местах, применяется обычный приоритет: рабочее пространство побеждает, затем управляемые/локальные, затем встроенные.
Плагины + навыки
Плагины могут поставлять собственные навыки, перечисляя директории skills в openclaw.plugin.json (пути относительно корня плагина). Навыки плагина загружаются, когда плагин включён, и участвуют в обычных правилах приоритета навыков. Вы можете ограничить их доступность через metadata.openclaw.requires.config в конфигурационной записи плагина. См. Плагины для обнаружения/настройки и Инструменты для инструментов, которым эти навыки обучают.
ClawHub (установка + синхронизация)
ClawHub — это публичный реестр навыков для OpenClaw. Просматривайте по адресу https://clawhub.com. Используйте его для обнаружения, установки, обновления и резервного копирования навыков. Полное руководство: ClawHub. Типичные сценарии:
- Установить навык в ваше рабочее пространство:
clawhub install <skill-slug>
- Обновить все установленные навыки:
clawhub update --all
- Синхронизировать (сканировать + публиковать обновления):
clawhub sync --all
По умолчанию clawhub устанавливает в ./skills под вашей текущей рабочей директорией (или возвращается к настроенному рабочему пространству OpenClaw). OpenClaw подхватывает это как /skills в следующей сессии.
Примечания по безопасности
- Относитесь к сторонним навыкам как к ненадёжному коду. Читайте их перед включением.
- Предпочитайте запуск в песочнице для ненадёжных входных данных и рискованных инструментов. См. Песочница.
- Обнаружение навыков в рабочем пространстве и дополнительных директориях принимает только корни навыков и файлы
SKILL.md, чей разрешённый реальный путь остаётся внутри настроенного корня. skills.entries.*.envиskills.entries.*.apiKeyвнедряют секреты в хост-процесс для хода этого агента (не в песочницу). Держите секреты подальше от промптов и логов.- Для более широкой модели угроз и чек-листов см. Безопасность.
Формат (AgentSkills + Pi-совместимый)
SKILL.md должен содержать как минимум:
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
---
Примечания:
- Мы следуем спецификации AgentSkills для структуры/назначения.
- Парсер, используемый встроенным агентом, поддерживает только однострочные ключи фронтметтера.
metadataдолжен быть однострочным JSON-объектом.- Используйте
{baseDir}в инструкциях для ссылки на путь к папке навыка. - Опциональные ключи фронтметтера:
homepage— URL, отображаемый как «Веб-сайт» в UI навыков macOS (также поддерживается черезmetadata.openclaw.homepage).user-invocable—true|false(по умолчанию:true). Еслиtrue, навык доступен как пользовательская слеш-команда.disable-model-invocation—true|false(по умолчанию:false). Еслиtrue, навык исключается из промпта модели (остаётся доступным через вызов пользователем).command-dispatch—tool(опционально). Если установленоtool, слеш-команда обходит модель и отправляется напрямую инструменту.command-tool— имя инструмента для вызова, когда установленоcommand-dispatch: tool.command-arg-mode—raw(по умолчанию). Для отправки инструменту передаёт сырую строку аргументов (без разбора ядром). Инструмент вызывается с параметрами:{ command: "", commandName: "", skillName: "" }.
Ограничение (фильтры во время загрузки)
OpenClaw фильтрует навыки во время загрузки, используя metadata (однострочный JSON):
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
metadata:
{
"openclaw":
{
"requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
"primaryEnv": "GEMINI_API_KEY",
},
}
---
Поля под metadata.openclaw:
always: true— всегда включать навык (пропустить другие ограничения).emoji— опциональный эмодзи, используемый UI навыков macOS.homepage— опциональный URL, отображаемый как «Веб-сайт» в UI навыков macOS.os— опциональный список платформ (darwin,linux,win32). Если задан, навык доступен только на этих ОС.requires.bins— список; каждый должен существовать вPATH.requires.anyBins— список; хотя бы один должен существовать вPATH.requires.env— список; переменная окружения должна существовать или быть предоставлена в конфигурации.requires.config— список путей вopenclaw.json, которые должны быть истинными.primaryEnv— имя переменной окружения, связанной сskills.entries..apiKey.install— опциональный массив спецификаций установщика, используемых UI навыков macOS (brew/node/go/uv/download).
Примечание о песочнице:
requires.binsпроверяется на хосте во время загрузки навыка.- Если агент запущен в песочнице, бинарный файл также должен существовать внутри контейнера. Установите его через
agents.defaults.sandbox.docker.setupCommand(или пользовательский образ).setupCommandвыполняется один раз после создания контейнера. Установка пакетов также требует исходящего сетевого доступа, доступной для записи корневой ФС и пользователя root в песочнице. Пример: навыкsummarize(skills/summarize/SKILL.md) нуждается в CLIsummarizeв контейнере песочницы для запуска там.
Пример установщика:
---
name: gemini
description: Use Gemini CLI for coding assistance and Google search lookups.
metadata:
{
"openclaw":
{
"emoji": "♊️",
"requires": { "bins": ["gemini"] },
"install":
[
{
"id": "brew",
"kind": "brew",
"formula": "gemini-cli",
"bins": ["gemini"],
"label": "Install Gemini CLI (brew)",
},
],
},
}
---
Примечания:
- Если перечислено несколько установщиков, шлюз выбирает один предпочтительный вариант (brew, если доступен, иначе node).
- Если все установщики —
download, OpenClaw перечисляет каждую запись, чтобы вы могли видеть доступные артефакты. - Спецификации установщика могут включать
os: ["darwin"|"linux"|"win32"]для фильтрации вариантов по платформе. - Установки Node учитывают
skills.install.nodeManagerвopenclaw.json(по умолчанию: npm; варианты: npm/pnpm/yarn/bun). Это влияет только на установку навыков; среда выполнения Шлюза всё равно должна быть Node (Bun не рекомендуется для WhatsApp/Telegram). - Установки Go: если
goотсутствует иbrewдоступен, шлюз сначала устанавливает Go через Homebrew и устанавливаетGOBINвbinHomebrew, когда это возможно. - Установки Download:
url(обязательно),archive(tar.gz|tar.bz2|zip),extract(по умолчанию: автоматически при обнаружении архива),stripComponents,targetDir(по умолчанию:~/.openclaw/tools/).
Если metadata.openclaw отсутствует, навык всегда доступен (если не отключён в конфигурации или не заблокирован skills.allowBundled для встроенных навыков).
Переопределения конфигурации (~/.openclaw/openclaw.json)
Встроенные/управляемые навыки можно включать/выключать и снабжать значениями окружения:
{
skills: {
entries: {
"nano-banana-pro": {
enabled: true,
apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
env: {
GEMINI_API_KEY: "GEMINI_KEY_HERE",
},
config: {
endpoint: "https://example.invalid",
model: "nano-pro",
},
},
peekaboo: { enabled: true },
sag: { enabled: false },
},
},
}
Примечание: если имя навыка содержит дефисы, заключайте ключ в кавычки (JSON5 позволяет ключи в кавычках). Ключи конфигурации по умолчанию соответствуют имени навыка. Если навык определяет metadata.openclaw.skillKey, используйте этот ключ под skills.entries. Правила:
enabled: falseотключает навык, даже если он встроен/установлен.env: внедряется только если переменная ещё не установлена в процессе.apiKey: удобство для навыков, которые объявляютmetadata.openclaw.primaryEnv. Поддерживает обычную строку или объект SecretRef ({ source, provider, id }).config: опциональный набор д ля пользовательских полей на навык; пользовательские ключи должны находиться здесь.allowBundled: опциональный белый список только для встроенных навыков. Если задан, доступны только встроенные навыки из списка (на управляемые/рабочие навыки не влияет).
Внедрение окружения (за запуск агента)
Когда запускается ход агента, OpenClaw:
- Читает метаданные навыков.
- Применяет любые
skills.entries..envилиskills.entries..apiKeyкprocess.env. - Строит системный промпт с доступными навыками.
- Восстанавливает исходное окружение после завершения хода.
Это ограничено ходом агента, а не глобальной средой оболочки.