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