Skills
Skills
Skills — це файли інструкцій Markdown, які навчають агента, як і коли використовувати
інструменти. Кожен Skills розміщений у каталозі, що містить файл SKILL.md із YAML
frontmatter та тілом Markdown. OpenClaw завантажує вбудовані Skills, а також будь-які локальні
перевизначення, і фільтрує їх під час завантаження на основі середовища, конфігурації та
наявності бінарних файлів.
Створіть і протестуйте власний Skills з нуля.
Переглядайте й затверджуйте пропозиції Skills, підготовлені агентом.
Повна схема конфігурації skills.* і списки дозволів агентів.
Переглядайте й установлюйте Skills спільноти.
Порядок завантаження
OpenClaw завантажує з цих джерел, спершу з найвищим пріоритетом. Коли однакова назва Skills з’являється в кількох місцях, перемагає джерело з найвищим пріоритетом.
| Пріоритет | Джерело | Шлях |
|---|---|---|
| 1 — найвищий | Skills робочої області | <workspace>/skills |
| 2 | Skills агента проєкту | <workspace>/.agents/skills |
| 3 | Особисті Skills агента | ~/.agents/skills |
| 4 | Керовані / локальні Skills | ~/.openclaw/skills |
| 5 | Вбудовані Skills | постачаються з інсталяцією |
| 6 — найнижчий | Додаткові каталоги | skills.load.extraDirs + Skills Plugin |
Корені Skills підтримують згруповані макети. OpenClaw виявляє Skills щоразу, коли
SKILL.md з’являється будь-де під налаштованим коренем:
<workspace>/skills/research/SKILL.md ✓ found as "research"<workspace>/skills/personal/research/SKILL.md ✓ also found as "research"Шлях до папки призначений лише для організації. Назва Skills, slash-команда та
ключ списку дозволів усі беруться з поля frontmatter name (або з назви каталогу,
коли name відсутнє).
Skills для окремого агента та спільні Skills
У налаштуваннях із кількома агентами кожен агент має власну робочу область. Використовуйте шлях, який відповідає бажаній видимості:
| Область | Шлях | Видимо для |
|---|---|---|
| Для окремого агента | <workspace>/skills |
Лише цього агента |
| Агент проєкту | <workspace>/.agents/skills |
Лише агента цієї робочої області |
| Особистий агент | ~/.agents/skills |
Усі агенти на цій машині |
| Спільні керовані | ~/.openclaw/skills |
Усі агенти на цій машині |
| Додаткові каталоги | skills.load.extraDirs |
Усі агенти на цій машині |
Списки дозволів агентів
Розташування Skills (пріоритет) і видимість Skills (який агент може його використовувати) є окремими засобами керування. Використовуйте списки дозволів, щоб обмежити, які Skills бачить агент, незалежно від того, звідки вони завантажені.
{ agents: { defaults: { skills: ["github", "weather"], // shared baseline }, list: [ { id: "writer" }, // inherits github, weather { id: "docs", skills: ["docs-search"] }, // replaces defaults entirely { id: "locked-down", skills: [] }, // no skills ], },}Правила списків дозволів
- Пропустіть
agents.defaults.skills, щоб за замовчуванням залишити всі Skills без обмежень. - Пропустіть
agents.list[].skills, щоб успадкуватиagents.defaults.skills. - Установіть
agents.list[].skills: [], щоб не відкривати жодних Skills для цього агента. - Непорожній список
agents.list[].skillsє остаточним набором — він не об’єднується зі значеннями за замовчуванням. - Ефективний список дозволів застосовується до побудови промптів, виявлення slash-команд, синхронізації sandbox і знімків Skills.
- Це не межа авторизації хостової оболонки. Якщо той самий агент може
використовувати
exec, обмежте цю оболонку окремо за допомогою sandboxing, ізоляції користувача ОС, списків заборон/дозволів для exec і облікових даних для окремих ресурсів.
Plugin і Skills
Plugin можуть постачати власні Skills, перелічуючи каталоги skills в
openclaw.plugin.json (шляхи відносно кореня Plugin). Skills Plugin завантажуються,
коли Plugin увімкнено — наприклад, браузерний Plugin постачає Skills
browser-automation для багатокрокового керування браузером.
Каталоги Skills Plugin об’єднуються на тому самому рівні низького пріоритету, що й
skills.load.extraDirs, тому вбудовані, керовані, агентські або робочої області
Skills з такою самою назвою перевизначають їх. Обмежуйте їх через metadata.openclaw.requires.config у
записі конфігурації Plugin.
Див. Plugin і Інструменти, щоб ознайомитися з повною системою Plugin.
Майстерня Skills
Майстерня Skills — це черга пропозицій між агентом
і вашими активними файлами Skills. Коли агент помічає роботу, яку можна повторно використати, він створює
пропозицію замість прямого запису в SKILL.md. Ви переглядаєте й затверджуєте
перед будь-якими змінами.
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Див. Майстерня Skills, щоб ознайомитися з повним життєвим циклом, довідкою CLI та конфігурацією.
Установлення з ClawHub
ClawHub — це публічний реєстр Skills. Використовуйте
команди openclaw skills для встановлення та оновлення або CLI clawhub для
публікації та синхронізації.
| Дія | Команда |
|---|---|
| Установити Skills у робочу область | openclaw skills install @owner/<slug> |
| Установити з Git-репозиторію | openclaw skills install git:owner/repo@ref |
| Установити локальний каталог Skills | openclaw skills install ./path/to/skill --as my-tool |
| Установити для всіх локальних агентів | openclaw skills install @owner/<slug> --global |
| Оновити всі Skills робочої області | openclaw skills update --all |
| Оновити спільний керований Skills | openclaw skills update @owner/<slug> --global |
| Оновити всі спільні керовані Skills | openclaw skills update --all --global |
| Перевірити довірчий конверт Skills | openclaw skills verify @owner/<slug> |
| Надрукувати згенеровану картку Skills | openclaw skills verify @owner/<slug> --card |
| Опублікувати / синхронізувати через CLI ClawHub | clawhub sync --all |
Деталі встановлення
openclaw skills install за замовчуванням установлює в каталог активної робочої області
skills/. Додайте --global, щоб установити в спільний каталог
~/.openclaw/skills, видимий усім локальним агентам, якщо списки дозволів агентів
не звужують доступ.
Git- і локальні встановлення очікують SKILL.md у корені джерела. Slug береться
з frontmatter SKILL.md name, коли він коректний, а потім використовується
назва каталогу або репозиторію як запасний варіант. Використовуйте --as <slug> для перевизначення.
openclaw skills update відстежує лише встановлення ClawHub — перевстановіть Git- або
локальні джерела, щоб оновити їх.
Перевірка та сканування безпеки
openclaw skills verify @owner/<slug> запитує в ClawHub довірчий конверт Skills
clawhub.skill.verify.v1. Установлені Skills ClawHub перевіряються
щодо версії та реєстру, записаних у .clawhub/origin.json.
Голі slug залишаються прийнятними для вже встановлених або однозначних Skills, але
посилання з власником уникають неоднозначності видавця.
Сторінки Skills у ClawHub показують найновіший стан сканування безпеки перед встановленням
зі сторінками деталей для VirusTotal, ClawScan і статичного аналізу. Команда
завершується з ненульовим кодом, коли ClawHub позначає перевірку як невдалу. Видавці
усувають хибнопозитивні результати через панель ClawHub або
clawhub skill rescan @owner/<slug>.
Установлення з приватних архівів
Клієнти Gateway, яким потрібне постачання не через ClawHub, можуть підготувати zip-архів Skills
за допомогою skills.upload.begin, skills.upload.chunk і skills.upload.commit,
а потім установити через skills.install({ source: "upload", ... }). Цей шлях
вимкнений за замовчуванням і потребує skills.install.allowUploadedArchives: true в
openclaw.json. Звичайні встановлення ClawHub ніколи не потребують цього налаштування.
Безпека
Обмеження шляхів
Виявлення Skills у робочій області, агента проєкту та додаткових каталогах приймає лише корені Skills,
чий розв’язаний realpath залишається всередині налаштованого кореня, якщо тільки
skills.load.allowSymlinkTargets явно не довіряє цільовому кореню.
Майстерня Skills записує через ці довірені цілі лише тоді, коли
skills.workshop.allowSymlinkTargetWrites увімкнено.
Керований ~/.openclaw/skills і особистий ~/.agents/skills можуть містити
символічно зв’язані папки Skills, але кожен realpath SKILL.md усе одно має залишатися
всередині свого розв’язаного каталогу Skills.
Політика встановлення оператора
Налаштуйте security.installPolicy, щоб запускати довірену локальну команду політики
перед продовженням установлення Skills. Політика отримує метадані та підготовлений
шлях джерела, застосовується до шляхів ClawHub, завантажених архівів, Git, локальних, оновлення та
інсталятора залежностей і завершується відмовою, коли команда не може повернути
чинне рішення.
Область ін’єкції секретів
skills.entries.*.env і skills.entries.*.apiKey ін’єктують секрети в
процес хоста лише для цього ходу агента — не в sandbox. Не додавайте
секрети до промптів і журналів.
Ширшу модель загроз і контрольні списки безпеки див. у Безпека.
Формат SKILL.md
Кожному Skills потрібні щонайменше name і description у frontmatter:
---name: image-labdescription: Generate or edit images via a provider-backed image workflow--- When the user asks to generate an image, use the `image_generate` tool...Необов’язкові ключі frontmatter
homepagestringURL, який відображається як "Вебсайт" в інтерфейсі Skills macOS. Також підтримується через
metadata.openclaw.homepage.
user-invocablebooleandefault: trueКоли true, Skills відкривається як доступна користувачу slash-команда.
disable-model-invocationbooleandefault: falseКоли true, OpenClaw не включає інструкції Skills у звичайний
промпт агента. Skills усе ще доступний як slash-команда, коли user-invocable
також має значення true.
command-dispatch"tool"Коли встановлено tool, slash-команда обходить модель і спрямовується
безпосередньо до зареєстрованого інструмента.
command-toolstringНазва інструмента для виклику, коли встановлено command-dispatch: tool.
command-arg-mode"raw"default: rawДля диспетчеризації інструментів передає сирий рядок аргументів інструменту без
парсингу в ядрі. Інструмент отримує
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Обмеження доступності
OpenClaw фільтрує skills під час завантаження за допомогою metadata.openclaw (однорядковий
JSON у frontmatter). Skill без блока metadata.openclaw завжди
доступний, якщо його явно не вимкнено.
---name: image-labdescription: Generate or edit images via a provider-backed image workflowmetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---alwaysbooleanКоли true, завжди включати skill і пропускати всі інші обмеження.
emojistringНеобов’язковий emoji, що показується в інтерфейсі macOS Skills.
homepagestringНеобов’язкова URL-адреса, що показується як «Вебсайт» в інтерфейсі macOS Skills.
os"darwin" | "linux" | "win32"Фільтр платформи. Якщо задано, skill доступний лише на перелічених ОС.
requires.binsstring[]Кожен бінарний файл має існувати в PATH.
requires.anyBinsstring[]Принаймні один бінарний файл має існувати в PATH.
requires.envstring[]Кожна змінна середовища має існувати в процесі або бути надана через конфігурацію.
requires.configstring[]Кожен шлях openclaw.json має бути truthy.
primaryEnvstringІм’я змінної середовища, пов’язане з skills.entries.<name>.apiKey.
installobject[]Необов’язкові специфікації інсталяторів, які використовує інтерфейс macOS Skills (brew / node / go / uv / download).
Специфікації інсталяторів
Специфікації інсталяторів повідомляють інтерфейсу macOS Skills, як встановити залежність:
---name: geminidescription: 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. - Перевага інсталяторів Gateway: Homebrew → uv → налаштований менеджер node → go → download.
Деталі для кожного інсталятора
- Homebrew: OpenClaw не встановлює Homebrew автоматично й не перетворює формули brew
на команди системного менеджера пакетів. У Linux-контейнерах без
brewінсталятори лише для brew приховано; використовуйте власний образ або встановіть залежність вручну. - Go: OpenClaw потребує Go 1.21 або новішого для автоматичних інсталяцій skills і
зберігає наявні налаштування
GOBIN,GOPATHіGOTOOLCHAIN. Якщо налаштований toolchain не може задовольнити потрібну версію Go для модуля, onboarding групує skill з ручними передумовами Go після спроби інсталяції. Якщоgoвідсутній, а Homebrew доступний, OpenClaw спочатку встановлює Go через Homebrew і встановлюєGOBINуbinHomebrew. У Linux OpenClaw натомість може використатиapt-getвід root або через безпарольнийsudo, коли оновлений кандидатgolang-goвідповідає мінімальній версії. - Download:
url(обов’язково),archive(tar.gz|tar.bz2|zip),extract(типово: auto, коли виявлено архів),stripComponents,targetDir(типово:~/.openclaw/tools/<skillKey>).
Нотатки щодо sandboxing
requires.bins перевіряється на host під час завантаження skill. Якщо агент
працює в sandbox, бінарний файл також має існувати всередині контейнера.
Установіть його через agents.defaults.sandbox.docker.setupCommand або власний
образ. setupCommand виконується один раз після створення контейнера й потребує
виходу в мережу, кореневої файлової системи з правом запису та користувача root у sandbox.
Перевизначення конфігурації
Перемикайте й налаштовуйте bundled або managed skills у skills.entries в
~/.openclaw/openclaw.json:
{ skills: { entries: { "image-lab": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, config: { endpoint: "https://example.invalid", model: "nano-pro", }, }, peekaboo: { enabled: true }, sag: { enabled: false }, }, },}enabledbooleanfalse вимикає skill, навіть якщо він bundled або installed. Bundled skill coding-agent
є opt-in — задайте skills.entries.coding-agent.enabled: true
і переконайтеся, що один із claude, codex, opencode або інший підтримуваний CLI
встановлено й автентифіковано.
apiKeystring | { source, provider, id }Зручне поле для skills, які оголошують metadata.openclaw.primaryEnv.
Підтримує plaintext-рядок або об’єкт SecretRef.
env"Record<string,configobjectНеобов’язковий контейнер для власних полів конфігурації для окремого skill.
allowBundledstring[]Необов’язковий allowlist лише для bundled skills. Якщо задано, доступні лише bundled skills зі списку. Managed і workspace skills не зачіпаються.
Інжекція середовища
Коли запуск агента починається, OpenClaw:
Читає метадані skill
OpenClaw визначає ефективний список skills для агента, застосовуючи правила обмеження доступності, allowlists і перевизначення конфігурації.
Інжектує env і API-ключі
skills.entries.<key>.env і skills.entries.<key>.apiKey застосовуються до
process.env на час виконання запуску.
Будує system prompt
Доступні skills компілюються в компактний XML-блок і інжектуються в system prompt.
Відновлює середовище
Після завершення запуску початкове середовище відновлюється.
Для bundled backend claude-cli OpenClaw також матеріалізує той самий
знімок доступних skills як тимчасовий Claude Code plugin і передає його через
--plugin-dir. Інші CLI backends використовують лише каталог prompt.
Знімки й оновлення
OpenClaw робить знімок доступних skills коли починається сесія і повторно використовує цей список для всіх наступних ходів у сесії. Зміни в skills або конфігурації набувають чинності в наступній новій сесії.
Skills оновлюються посеред сесії у двох випадках:
- watcher skills виявляє зміну
SKILL.md. - Під’єднується новий доступний remote node.
Оновлений список використовується на наступному ході агента. Якщо ефективний allowlist агента змінюється, OpenClaw оновлює знімок, щоб видимі skills залишалися узгодженими.
Watcher Skills
Типово OpenClaw стежить за папками skills і підвищує версію знімка, коли
файли SKILL.md змінюються. Налаштування в skills.load:
{ skills: { load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, watchDebounceMs: 250, }, },}Використовуйте allowSymlinkTargets для навмисних symlinked-layouts, де symlink кореня skill
вказує за межі налаштованого кореня, наприклад
<workspace>/skills/manager -> ~/Projects/manager/skills.
Увімкніть skills.workshop.allowSymlinkTargetWrites лише тоді, коли Skill Workshop
також має застосовувати пропозиції через ці довірені symlinked-шляхи.
Віддалені вузли macOS (Linux gateway)
Якщо Gateway працює на Linux, але під’єднано вузол macOS із дозволеним
system.run, OpenClaw може вважати skills лише для macOS доступними, коли
потрібні бінарні файли присутні на цьому вузлі. Агент має запускати ці
skills через інструмент exec з host=node.
Offline-вузли не роблять skills лише для віддалених вузлів видимими. Якщо вузол перестає відповідати на bin probes, OpenClaw очищає його кешовані збіги bin.
Вплив на токени
Коли skills доступні, OpenClaw інжектує компактний XML-блок у system prompt. Вартість детермінована:
total = 195 + Σ (97 + len(name) + len(description) + len(filepath))- Базові накладні витрати (лише коли ≥ 1 skill): ~195 символів
- На skill: ~97 символів + довжини ваших полів
name,descriptionіlocation - XML-екранування розгортає
& < > " 'в entities, додаючи кілька символів на кожну появу - За ~4 символи/токен, 97 символів ≈ 24 токени на skill до врахування довжин полів
Тримайте описи короткими й інформативними, щоб мінімізувати накладні витрати prompt.
Пов’язане
Покроковий посібник зі створення власного skill.
Черга пропозицій для skills, підготовлених агентом.
Повна схема конфігурації skills.* і allowlists агентів.
Як slash-команди skill реєструються й маршрутизуються.
Переглядайте й публікуйте skills у публічному registry.
Plugins можуть постачати skills разом з інструментами, які вони документують.