Skills (OpenClaw)
OpenClaw використовує папки skill, сумісні з AgentSkills, щоб навчати агента користуватися інструментами. Кожен skill — це каталог, що міститьSKILL.md із YAML frontmatter та інструкціями. OpenClaw завантажує вбудовані skills разом з необов’язковими локальними перевизначеннями та фільтрує їх під час завантаження на основі середовища, конфігурації та наявності бінарних файлів.
Розташування та пріоритет
OpenClaw завантажує skills із таких джерел:- Додаткові папки skills: налаштовуються через
skills.load.extraDirs - Вбудовані skills: постачаються разом з інсталяцією (npm package або OpenClaw.app)
- Керовані/локальні skills:
~/.openclaw/skills - Особисті agent skills:
~/.agents/skills - Project agent skills:
<workspace>/.agents/skills - Skills робочого простору:
<workspace>/skills
<workspace>/skills (найвищий) → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → вбудовані skills → skills.load.extraDirs (найнижчий)
Skills для окремого агента та спільні skills
У конфігураціях multi-agent кожен агент має власний робочий простір. Це означає:- Skills для окремого агента розміщуються в
<workspace>/skillsлише для цього агента. - Project agent skills розміщуються в
<workspace>/.agents/skillsі застосовуються до цього робочого простору перед звичайною папкоюskills/робочого простору. - Особисті agent skills розміщуються в
~/.agents/skillsі застосовуються в усіх робочих просторах на цій машині. - Спільні skills розміщуються в
~/.openclaw/skills(керовані/локальні) і видимі всім агентам на цій самій машині. - Спільні папки також можна додати через
skills.load.extraDirs(найнижчий пріоритет), якщо ви хочете мати спільний набір skills, який використовується кількома агентами.
Allowlist skills для агентів
Розташування skill і видимість skill — це окремі механізми керування.- Розташування/пріоритет визначає, яка копія skill з однаковою назвою перемагає.
- Allowlist агента визначає, які видимі skills агент фактично може використовувати.
agents.defaults.skills для спільної базової конфігурації, а потім перевизначайте для окремих агентів через agents.list[].skills:
- Пропустіть
agents.defaults.skills, якщо за замовчуванням skills не мають бути обмежені. - Пропустіть
agents.list[].skills, щоб успадкуватиagents.defaults.skills. - Установіть
agents.list[].skills: [], щоб не дозволити жодних skills. - Непорожній список
agents.list[].skillsє остаточним набором для цього агента; він не об’єднується з defaults.
Plugins + skills
Plugins можуть постачати власні skills, вказуючи каталогиskills у
openclaw.plugin.json (шляхи відносно кореня plugin). Skills plugin завантажуються,
коли plugin увімкнено. Зараз ці каталоги об’єднуються в той самий шлях із
низьким пріоритетом, що й skills.load.extraDirs, тому однойменний bundled,
managed, agent або workspace skill перевизначає їх.
Ви можете обмежувати їх через metadata.openclaw.requires.config у записі
конфігурації plugin. Див. Plugins для виявлення/конфігурації та Tools для
поверхні інструментів, які пояснюють ці skills.
ClawHub (інсталяція + синхронізація)
ClawHub — це публічний реєстр skills для OpenClaw. Переглянути його можна на https://clawhub.ai. Використовуйте рідні командиopenclaw skills
для пошуку/інсталяції/оновлення skills або окремий CLI clawhub, якщо вам
потрібні робочі процеси публікації/синхронізації.
Повний посібник: ClawHub.
Поширені сценарії:
- Інсталювати skill у ваш робочий простір:
openclaw skills install <skill-slug>
- Оновити всі інстальовані skills:
openclaw skills update --all
- Синхронізувати (сканування + публікація оновлень):
clawhub sync --all
openclaw skills install інсталює у каталог skills/ активного робочого простору. Окремий CLI clawhub також інсталює у ./skills у вашому
поточному робочому каталозі (або використовує налаштований робочий простір OpenClaw як резервний варіант).
Під час наступної сесії OpenClaw розпізнає це як <workspace>/skills.
Примітки щодо безпеки
- Ставтеся до сторонніх skills як до ненадійного коду. Читайте їх перед увімкненням.
- Для ненадійних вхідних даних і ризикованих інструментів надавайте перевагу запуску в sandbox. Див. Sandboxing.
- Виявлення skills у workspace та extra-dir приймає лише корені skill і файли
SKILL.md, чий визначенийrealpathзалишається всередині налаштованого кореня. - Інсталяції залежностей skills через gateway (
skills.install, onboarding і UI налаштувань Skills) запускають вбудований сканер небезпечного коду перед виконанням метаданих інсталятора. Знахідкиcriticalблокуються за замовчуванням, якщо викликач явно не встановить dangerous override; підозрілі знахідки, як і раніше, лише попереджають. openclaw skills install <slug>— це інше: команда завантажує папку skill з ClawHub у робочий простір і не використовує шлях метаданих інсталятора, описаний вище.skills.entries.*.envіskills.entries.*.apiKeyін’єктують секрети в процес host для цього ходу агента (не в sandbox). Не допускайте потрапляння секретів у prompts і логи.- Для ширшої моделі загроз і контрольних списків див. Security.
Формат (сумісний з AgentSkills + Pi)
SKILL.md має містити щонайменше:
- Ми дотримуємося специфікації AgentSkills щодо структури та призначення.
- Парсер, який використовує вбудований агент, підтримує лише однорядкові ключі frontmatter.
metadataмає бути однорядковим JSON object.- Використовуйте
{baseDir}в інструкціях, щоб посилатися на шлях до папки skill. - Необов’язкові ключі frontmatter:
-
homepage— URL, що відображається як “Website” в macOS Skills UI (також підтримується черезmetadata.openclaw.homepage). -
user-invocable—true|false(типове значення:true). Якщоtrue, skill доступний як slash command користувача. -
disable-model-invocation—true|false(типове значення:false). Якщоtrue, skill виключається з model prompt (але все ще доступний через виклик користувачем). -
command-dispatch—tool(необов’язково). Якщо встановленоtool, slash command оминає model і напряму передається інструменту. -
command-tool— назва інструменту, який потрібно викликати, якщо встановленоcommand-dispatch: tool. -
command-arg-mode—raw(типове значення). Для dispatch інструмента передає рядок сирих аргументів інструменту (без розбору на рівні core). Інструмент викликається з параметрами:{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
-
Гейтінг (фільтри під час завантаження)
OpenClaw фільтрує skills під час завантаження за допомогоюmetadata (однорядковий JSON):
metadata.openclaw:
always: true— завжди включати skill (пропустити інші умови).emoji— необов’язковий emoji, який використовується в macOS Skills UI.homepage— необов’язковий URL, що відображається як “Website” в macOS Skills UI.os— необов’язковий список платформ (darwin,linux,win32). Якщо встановлено, skill доступний лише на цих ОС.requires.bins— список; кожен має існувати вPATH.requires.anyBins— список; принаймні один має існувати вPATH.requires.env— список; змінна середовища має існувати або бути надана в config.requires.config— список шляхівopenclaw.json, які мають бути truthy.primaryEnv— назва змінної середовища, пов’язаної зskills.entries.<name>.apiKey.install— необов’язковий масив специфікацій інсталятора, який використовує macOS Skills UI (brew/node/go/uv/download).
requires.binsперевіряється на host під час завантаження skill.- Якщо агент працює в sandbox, бінарний файл також має існувати всередині контейнера.
Інсталюйте його через
agents.defaults.sandbox.docker.setupCommand(або через власний образ).setupCommandзапускається один раз після створення контейнера. Для інсталяції пакетів також потрібні вихід у мережу, записувана root FS і користувач root у sandbox. Приклад: skillsummarize(skills/summarize/SKILL.md) потребуєsummarizeCLI у контейнері 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). - Вибір інсталятора через gateway залежить від пріоритетів, а не лише від node:
коли специфікації інсталяції змішують різні типи, OpenClaw надає перевагу Homebrew, якщо
увімкнено
skills.install.preferBrewі існуєbrew, потімuv, потім налаштований node manager, а далі інші резервні варіанти, як-отgoабоdownload. - Якщо кожна специфікація інсталяції має тип
download, OpenClaw показує всі варіанти завантаження замість зведення до одного бажаного інсталятора. - Go-інсталяції: якщо
goвідсутній, аbrewдоступний, gateway спочатку інсталює Go через Homebrew і за можливості встановлюєGOBINуbinHomebrew. - Download-інсталяції:
url(обов’язково),archive(tar.gz|tar.bz2|zip),extract(типово: автоматично, якщо виявлено archive),stripComponents,targetDir(типово:~/.openclaw/tools/<skillKey>).
metadata.openclaw відсутній, skill завжди вважається допустимим (якщо
його не вимкнено в config і якщо його не блокує skills.allowBundled для вбудованих skills).
Перевизначення config (~/.openclaw/openclaw.json)
Вбудовані/керовані skills можна вмикати або вимикати та передавати їм значення env:
image_generate разом з agents.defaults.imageGenerationModel, а не
вбудований skill. Наведені тут приклади skill призначені для користувацьких або сторонніх робочих процесів.
Для нативного аналізу зображень використовуйте інструмент image разом з agents.defaults.imageModel.
Для нативної генерації/редагування зображень використовуйте image_generate разом з
agents.defaults.imageGenerationModel. Якщо ви вибираєте openai/*, google/*,
fal/* або іншу модель зображень, прив’язану до конкретного провайдера, також додайте auth/API
key цього провайдера.
Ключі config за замовчуванням відповідають назві skill. Якщо skill визначає
metadata.openclaw.skillKey, використовуйте цей ключ у skills.entries.
Правила:
enabled: falseвимикає skill, навіть якщо він вбудований/інстальований.env: ін’єктується лише якщо змінна ще не встановлена в процесі.apiKey: зручний варіант для skills, які оголошуютьmetadata.openclaw.primaryEnv. Підтримує plaintext string або об’єкт SecretRef ({ source, provider, id }).config: необов’язковий набір для користувацьких полів конкретного skill; користувацькі ключі мають розміщуватися тут.allowBundled: необов’язковий allowlist лише для вбудованих skills. Якщо його задано, допустимими є лише вбудовані skills зі списку (керовані/skills робочого простору не зачіпаються).
Ін’єкція середовища (для кожного запуску агента)
Коли починається запуск агента, OpenClaw:- Зчитує метадані skill.
- Застосовує будь-які
skills.entries.<key>.envабоskills.entries.<key>.apiKeyдоprocess.env. - Будує системний prompt з допустимими skills.
- Відновлює початкове середовище після завершення запуску.
claude-cli OpenClaw також матеріалізує той самий
знімок допустимих skills як тимчасовий плагін Claude Code і передає його через
--plugin-dir. Тоді Claude Code може використовувати власний вбудований resolver skill, тоді як
OpenClaw усе ще керує пріоритетом, allowlist для окремих агентів, гейтінгом і
ін’єкцією env/API key через skills.entries.*. Інші CLI backend використовують лише каталог prompt.
Знімок сесії (продуктивність)
OpenClaw створює знімок допустимих skills коли починається сесія і повторно використовує цей список для наступних ходів у межах тієї самої сесії. Зміни в skills або config набувають чинності під час наступної нової сесії. Skills також можуть оновлюватися посеред сесії, коли ввімкнено watcher skills або коли з’являється новий допустимий віддалений вузол (див. нижче). Думайте про це як про гаряче перезавантаження: оновлений список буде підхоплено під час наступного ходу агента. Якщо ефективний allowlist skills агента змінюється для цієї сесії, OpenClaw оновлює знімок, щоб видимі skills залишалися узгодженими з поточним агентом.Віддалені вузли macOS (Linux gateway)
Якщо Gateway запущено на Linux, але підключено вузол macOS з дозволенимsystem.run (параметр безпеки Exec approvals не встановлено в deny), OpenClaw може вважати допустимими skills лише для macOS, якщо потрібні бінарні файли присутні на цьому вузлі. Агент має виконувати такі skills через інструмент exec з host=node.
Це спирається на те, що вузол повідомляє про підтримку команд, а також на перевірку бінарних файлів через system.run. Якщо вузол macOS пізніше переходить в офлайн, skills залишаються видимими; виклики можуть завершуватися помилкою, доки вузол знову не підключиться.
Watcher skills (автооновлення)
За замовчуванням OpenClaw відстежує папки skills і оновлює знімок skills, коли змінюються файлиSKILL.md. Це налаштовується в skills.load:
Вплив на токени (список skills)
Коли skills допустимі, OpenClaw ін’єктує компактний XML-список доступних skills у системний prompt (черезformatSkillsForPrompt у pi-coding-agent). Вартість детермінована:
- Базові накладні витрати (лише коли ≥1 skill): 195 символів.
- Для кожного skill: 97 символів + довжина XML-екранованих значень
<name>,<description>і<location>.
- XML-екранування розширює
& < > " 'до сутностей (&,<тощо), збільшуючи довжину. - Кількість токенів залежить від tokenizer моделі. Груба оцінка в стилі OpenAI — приблизно 4 символи/токен, тож 97 символів ≈ 24 токени на skill плюс фактична довжина ваших полів.
Життєвий цикл керованих skills
OpenClaw постачається з базовим набором skills як вбудовані skills у складі інсталяції (npm package або OpenClaw.app).~/.openclaw/skills існує для локальних
перевизначень (наприклад, щоб зафіксувати/пропатчити skill без зміни вбудованої
копії). Skills робочого простору належать користувачу й перевизначають обидва варіанти при конфліктах назв.
Довідник config
Див. Skills config, щоб переглянути повну схему конфігурації.Шукаєте більше skills?
Перегляньте https://clawhub.ai.Пов’язане
- Creating Skills — створення користувацьких skills
- Skills Config — довідник із конфігурації skills
- Slash Commands — усі доступні slash commands
- Plugins — огляд системи plugin