Skills
Skills
OpenClaw використовує AgentSkills-сумісні папки навичок, щоб навчити агента користуватися інструментами. Кожна навичка — це каталог, що містить SKILL.md із YAML frontmatter та інструкціями. OpenClaw завантажує вбудовані навички плюс необовʼязкові локальні перевизначення та фільтрує їх під час завантаження на основі середовища, конфігурації та наявності бінарних файлів.
Розташування та пріоритет
OpenClaw завантажує навички з цих джерел, від найвищого пріоритету до найнижчого:
| # | Джерело | Шлях |
|---|---|---|
| 1 | Навички робочої області | <workspace>/skills |
| 2 | Навички агента проєкту | <workspace>/.agents/skills |
| 3 | Особисті навички агента | ~/.agents/skills |
| 4 | Керовані/локальні навички | ~/.openclaw/skills |
| 5 | Вбудовані навички | постачаються разом зі встановленням |
| 6 | Додаткові папки навичок | skills.load.extraDirs (конфігурація) |
Якщо назва навички конфліктує, перемагає джерело з найвищим пріоритетом.
Власний каталог Codex CLI $CODEX_HOME/skills не є одним із цих коренів навичок OpenClaw. У режимі Codex harness локальні запуски сервера застосунку використовують ізольовані домівки Codex для кожного агента, тому особисті навички Codex CLI не завантажуються неявно. Використовуйте openclaw migrate codex --dry-run, щоб інвентаризувати їх, і openclaw migrate codex, щоб вибрати каталоги навичок через інтерактивний запит із прапорцями перед копіюванням їх у поточну робочу область агента OpenClaw. Для неінтерактивних запусків повторюйте --skill <name> для точних навичок, які потрібно скопіювати.
Навички окремого агента та спільні навички
У налаштуваннях із кількома агентами кожен агент має власну робочу область:
| Область | Шлях | Видима для |
|---|---|---|
| Окремого агента | <workspace>/skills |
Лише цього агента |
| Агента проєкту | <workspace>/.agents/skills |
Лише агента цієї робочої області |
| Особиста для агента | ~/.agents/skills |
Усіх агентів на цій машині |
| Спільна керована/локальна | ~/.openclaw/skills |
Усіх агентів на цій машині |
| Спільні додаткові каталоги | skills.load.extraDirs (найнижчий пріоритет) |
Усіх агентів на цій машині |
Однакова назва в кількох місцях → перемагає джерело з найвищим пріоритетом. Робоча область переважає агента проєкту, той переважає особистого агента, той переважає керовані/локальні, ті переважають вбудовані, а ті переважають додаткові каталоги.
Списки дозволених навичок агента
Розташування навички та видимість навички — це окремі елементи керування. Розташування/пріоритет визначає, яка копія навички з однаковою назвою перемагає; списки дозволів агента визначають, які навички агент може фактично використовувати.
{
agents: {
defaults: {
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // inherits github, weather
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
{ id: "locked-down", skills: [] }, // no skills
],
},
}
Правила списку дозволів
- Опустіть
agents.defaults.skills, щоб навички за замовчуванням були необмежені. - Опустіть
agents.list[].skills, щоб успадкуватиagents.defaults.skills. - Задайте
agents.list[].skills: [], щоб навичок не було. - Непорожній список
agents.list[].skillsє остаточним набором для цього агента - він не обʼєднується зі значеннями за замовчуванням. - Ефективний список дозволів застосовується до побудови промптів, виявлення slash-команд навичок, синхронізації sandbox і знімків навичок.
Plugins і навички
Plugins можуть постачати власні навички, перелічивши каталоги skills в openclaw.plugin.json (шляхи відносно кореня plugin). Навички plugin завантажуються, коли plugin увімкнено. Це правильне місце для інструкцій з експлуатації конкретних інструментів, які надто довгі для опису інструмента, але мають бути доступні щоразу, коли plugin встановлено - наприклад, browser plugin постачає навичку browser-automation для багатокрокового керування браузером.
Каталоги навичок plugin обʼєднуються в той самий шлях із низьким пріоритетом, що й skills.load.extraDirs, тому вбудована, керована, агентська або робочої області навичка з тією самою назвою перевизначає їх. Ви можете обмежувати їх через metadata.openclaw.requires.config у записі конфігурації plugin.
Див. Plugins для виявлення/конфігурації та Інструменти для поверхні інструментів, які ці навички пояснюють.
Skill Workshop
Необовʼязковий експериментальний plugin Skill Workshop може створювати або оновлювати навички робочої області з повторно використовуваних процедур, помічених під час роботи агента. За замовчуванням він вимкнений і має бути явно ввімкнений через plugins.entries.skill-workshop.
Skill Workshop записує лише в <workspace>/skills, сканує згенерований вміст, підтримує очікування схвалення або автоматичні безпечні записи, ізолює небезпечні пропозиції та оновлює знімок навичок після успішних записів, щоб нові навички стали доступні без перезапуску Gateway.
Використовуйте його для виправлень на кшталт "next time, verify GIF attribution" або здобутих практикою процесів, як-от чеклисти QA для медіа. Починайте з очікування схвалення; використовуйте автоматичні записи лише в довірених робочих областях після перегляду його пропозицій. Повний посібник: plugin Skill Workshop.
ClawHub (встановлення та синхронізація)
ClawHub — це публічний реєстр навичок для OpenClaw. Використовуйте нативні команди openclaw skills для виявлення/встановлення/оновлення або окремий CLI clawhub для процесів публікації/синхронізації. Повний посібник: ClawHub.
| Дія | Команда |
|---|---|
| Установити навичку в робочу область | openclaw skills install <skill-slug> |
| Оновити всі встановлені навички | openclaw skills update --all |
| Синхронізувати (сканування + публікація оновлень) | clawhub sync --all |
Нативна команда openclaw skills install встановлює в каталог skills/ активної робочої області. Окремий CLI clawhub також встановлює в ./skills у вашому поточному робочому каталозі (або повертається до налаштованої робочої області OpenClaw). OpenClaw підхоплює це як <workspace>/skills у наступному сеансі.
Налаштовані корені навичок також підтримують один рівень групування, як-от skills/<group>/<skill>/SKILL.md, тож повʼязані сторонні навички можна тримати в спільній папці без широкого рекурсивного сканування.
Сторінки навичок ClawHub показують найновіший стан сканування безпеки перед встановленням, зі сторінками деталей сканерів для VirusTotal, ClawScan і статичного аналізу. openclaw skills install <slug> залишається лише шляхом встановлення; видавці усувають хибні спрацювання через панель ClawHub або clawhub skill rescan <slug>.
Безпека
- Виявлення навичок у робочій області та додаткових каталогах приймає лише корені навичок і файли
SKILL.md, чий розвʼязаний realpath залишається всередині налаштованого кореня. - Встановлення залежностей навичок через Gateway (
skills.install, onboarding і UI налаштувань Skills) запускає вбудований сканер небезпечного коду перед виконанням метаданих встановлювача. Знахідкиcriticalблокують за замовчуванням, якщо викликач явно не задає небезпечне перевизначення; підозрілі знахідки все одно лише попереджають. openclaw skills install <slug>відрізняється - він завантажує папку навички ClawHub у робочу область і не використовує шлях метаданих встановлювача вище.skills.entries.*.envіskills.entries.*.apiKeyінжектують секрети в процес хоста для цього ходу агента (не в sandbox). Не допускайте секретів у промпти й журнали.
Ширшу модель загроз і чеклисти див. у Безпека.
Формат SKILL.md
SKILL.md має містити щонайменше:
---
name: image-lab
description: Generate or edit images via a provider-backed image workflow
---
OpenClaw дотримується специфікації AgentSkills щодо структури/намірів. Парсер, який використовує вбудований агент, підтримує лише однорядкові ключі frontmatter; metadata має бути однорядковим JSON-обʼєктом. Використовуйте {baseDir} в інструкціях, щоб посилатися на шлях папки навички.
Необовʼязкові ключі frontmatter
homepagestringURL, який відображається як "Вебсайт" в UI Skills для macOS. Також підтримується через metadata.openclaw.homepage.
user-invocablebooleanКоли true, навичка показується як користувацька slash-команда.
disable-model-invocationbooleanКоли true, OpenClaw не додає інструкції навички до звичайного промпта агента. Навичка все ще встановлена й усе ще може бути запущена явно як slash-команда, коли user-invocable також true.
command-dispatch"tool"Коли встановлено tool, slash-команда оминає модель і спрямовується безпосередньо до інструмента.
command-toolstringНазва інструмента для виклику, коли встановлено command-dispatch: tool.
command-arg-mode"raw"Для маршрутизації до інструмента передає сирий рядок аргументів інструменту (без парсингу ядром). Інструмент викликається з { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Обмеження (фільтри під час завантаження)
OpenClaw фільтрує навички під час завантаження за допомогою metadata (однорядковий JSON):
---
name: image-lab
description: Generate or edit images via a provider-backed image workflow
metadata:
{
"openclaw":
{
"requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
"primaryEnv": "GEMINI_API_KEY",
},
}
---
Поля в metadata.openclaw:
alwaysbooleanКоли true, завжди включати навичку (пропускати інші обмеження).
emojistringНеобовʼязковий emoji, який використовує UI Skills для macOS.
homepagestringНеобовʼязковий URL, показаний як "Вебсайт" в UI Skills для macOS.
os"darwin" | "linux" | "win32"Необовʼязковий список платформ. Якщо задано, навичка придатна лише на цих ОС.
requires.binsstring[]Кожен має існувати в PATH.
requires.anyBinsstring[]Принаймні один має існувати в PATH.
requires.envstring[]Змінна середовища має існувати або бути надана в конфігурації.
requires.configstring[]Список шляхів openclaw.json, які мають бути truthy.
primaryEnvstringНазва змінної середовища, повʼязана з skills.entries.<name>.apiKey.
installobject[]Необовʼязкові специфікації встановлювача, які використовує UI Skills для macOS (brew/node/go/uv/download).
Якщо metadata.openclaw відсутній, навичка завжди придатна (якщо не вимкнена в конфігурації або не заблокована skills.allowBundled для вбудованих навичок).
Примітки щодо sandbox
requires.binsперевіряється на хості під час завантаження навички.- Якщо агент працює в sandbox, бінарний файл також має існувати всередині контейнера. Установіть його через
agents.defaults.sandbox.docker.setupCommand(або власний образ).setupCommandвиконується один раз після створення контейнера. Встановлення пакетів також потребує мережевого виходу, кореневої файлової системи з правом запису та root-користувача в sandbox. - Приклад: навичці
summarize(skills/summarize/SKILL.md) потрібен CLIsummarizeу sandbox-контейнері, щоб запускатися там.
Специфікації інсталяторів
---
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)",
},
],
},
}
---
Правила вибору інсталятора
- Якщо вказано кілька інсталяторів, 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 керується пріоритетами: коли специфікації встановлення змішують типи, OpenClaw надає перевагу Homebrew, якщо
skills.install.preferBrewувімкнено іbrewіснує, потімuv, потім налаштованому менеджеру Node, потім іншим резервним варіантам, як-отgoабоdownload. - Якщо кожна специфікація встановлення має тип
download, OpenClaw показує всі варіанти завантаження замість зведення до одного пріоритетного інсталятора.
Подробиці для кожного інсталятора
- Встановлення Go: якщо
goвідсутній, аbrewдоступний, Gateway спершу встановлює Go через Homebrew і, коли можливо, задаєGOBINякbinвід Homebrew. - Встановлення через завантаження:
url(обов’язково),archive(tar.gz|tar.bz2|zip),extract(типово: auto, коли виявлено архів),stripComponents,targetDir(типово:~/.openclaw/tools/<skillKey>).
Перевизначення конфігурації
Вбудовані та керовані Skills можна вмикати/вимикати й передавати їм значення середовища
у skills.entries в ~/.openclaw/openclaw.json:
{
skills: {
entries: {
"image-lab": {
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 },
},
},
}
enabledbooleanfalse вимикає skill, навіть якщо він вбудований або встановлений.
Вбудований skill coding-agent потребує явного ввімкнення: задайте
skills.entries.coding-agent.enabled: true, перш ніж відкривати його агентам,
а потім переконайтеся, що один із claude, codex, opencode або pi встановлений і
автентифікований для власного CLI.
apiKeystring | { source, provider, id }Зручний параметр для Skills, які оголошують metadata.openclaw.primaryEnv. Підтримує відкритий текст або SecretRef.
env"Record<string,configobjectНеобов’язковий контейнер для власних полів окремого skill. Власні ключі мають розміщуватися тут.
allowBundledstring[]Необов’язковий allowlist лише для вбудованих Skills. Якщо задано, придатними є тільки вбудовані Skills зі списку (це не впливає на керовані Skills або Skills робочої області).
Якщо назва skill містить дефіси, візьміть ключ у лапки (JSON5 дозволяє ключі
в лапках). Ключі конфігурації типово відповідають назві skill - якщо skill
визначає metadata.openclaw.skillKey, використовуйте цей ключ у skills.entries.
Впровадження середовища
Коли запускається виконання агента, OpenClaw:
- Читає метадані skill.
- Застосовує
skills.entries.<key>.envіskills.entries.<key>.apiKeyдоprocess.env. - Формує системний промпт із придатними Skills.
- Відновлює початкове середовище після завершення виконання.
Впровадження середовища обмежене виконанням агента, а не глобальним середовищем shell.
Для вбудованого бекенда claude-cli OpenClaw також матеріалізує той самий
придатний знімок як тимчасовий plugin Claude Code і передає його через
--plugin-dir. Після цього Claude Code може використовувати власний розв’язувач skill, тоді як
OpenClaw усе ще керує пріоритетами, allowlist для окремих агентів, gating і
впровадженням env/API-ключів skills.entries.*. Інші CLI-бекенди використовують
лише каталог промпта.
Знімки та оновлення
OpenClaw робить знімок придатних Skills під час запуску сесії і повторно використовує цей список для наступних ходів у тій самій сесії. Зміни в Skills або конфігурації набирають чинності в наступній новій сесії.
Skills можуть оновлюватися посеред сесії у двох випадках:
- Увімкнено watcher Skills.
- З’являється новий придатний віддалений Node.
Сприймайте це як гаряче перезавантаження: оновлений список підхоплюється на наступному ході агента. Якщо ефективний allowlist Skills агента змінюється для цієї сесії, OpenClaw оновлює знімок, щоб видимі Skills залишалися узгодженими з поточним агентом.
Watcher Skills
Типово OpenClaw відстежує папки Skills і оновлює знімок Skills,
коли змінюються файли SKILL.md. Налаштовується в skills.load:
{
skills: {
load: {
watch: true,
watchDebounceMs: 250,
},
},
}
Віддалені вузли macOS (Linux Gateway)
Якщо Gateway працює на Linux, але під’єднано вузол macOS з дозволеним
system.run (безпека Exec approvals не задана як deny),
OpenClaw може вважати Skills лише для macOS придатними, коли потрібні
бінарні файли присутні на цьому вузлі. Агент має виконувати ці Skills
через інструмент exec з host=node.
Це залежить від того, чи вузол повідомляє підтримку команд, і від перевірки бінарного файлу
через system.which або system.run. Офлайн-вузли не роблять
віддалені-only Skills видимими. Якщо під’єднаний вузол перестає відповідати на перевірки
бінарних файлів, OpenClaw очищає кешовані збіги бінарних файлів, тож агенти більше не бачать
Skills, які наразі не можуть там виконуватися.
Вплив на токени
Коли Skills придатні, OpenClaw впроваджує компактний XML-список доступних
Skills у системний промпт (через formatSkillsForPrompt у
pi-coding-agent). Вартість детермінована:
- Базові накладні витрати (лише коли є ≥1 skill): 195 символів.
- На skill: 97 символів + довжина XML-екранованих значень
<name>,<description>і<location>.
Формула (символи):
total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
XML-екранування розгортає & < > " ' у сутності (&, < тощо),
збільшуючи довжину. Кількість токенів залежить від токенізатора моделі. Приблизна
оцінка в стилі OpenAI становить ~4 символи/токен, тому 97 символів ≈ 24 токени на
skill плюс фактичні довжини ваших полів.
Життєвий цикл керованих Skills
OpenClaw постачає базовий набір Skills як вбудовані Skills разом із
встановленням (npm-пакет або OpenClaw.app). ~/.openclaw/skills існує для
локальних перевизначень - наприклад, щоб зафіксувати або пропатчити skill без
зміни вбудованої копії. Skills робочої області належать користувачу й перевизначають
обидва джерела в разі конфліктів назв.
Шукаєте більше Skills?
Перегляньте https://clawhub.ai. Повна схема конфігурації: Конфігурація Skills.
Пов’язане
- ClawHub - публічний реєстр Skills
- Створення Skills - створення власних Skills
- Plugins - огляд системи plugin
- Plugin Skill Workshop - генерування Skills з роботи агента
- Конфігурація Skills - довідник із конфігурації skill
- Slash-команди - усі доступні slash-команди