chore(i18n): refresh uk translations
This commit is contained in:
parent
8f4da6baa4
commit
aec0ea8b00
@ -1,62 +1,55 @@
|
||||
---
|
||||
read_when:
|
||||
- Додавання або змінення Skills
|
||||
- Зміна правил гейтінгу або завантаження Skills
|
||||
summary: 'Skills: керовані чи робочого простору, правила гейтінгу та підключення config/env'
|
||||
- Додавання або зміна Skills
|
||||
- Зміна правил gating або завантаження Skills
|
||||
summary: 'Skills: керовані чи workspace, правила gating і wiring конфігурації/env'
|
||||
title: Skills
|
||||
x-i18n:
|
||||
generated_at: "2026-04-25T02:42:07Z"
|
||||
generated_at: "2026-04-25T22:45:30Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 44f946d91588c878754340aaf55e0e3b9096bba12aea36fb90c445cd41e4f892
|
||||
source_hash: 22741e7f3ae7117675b73056ae8148f7864dac210df1a63ed19903525df7d823
|
||||
source_path: tools/skills.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
OpenClaw використовує **[AgentSkills](https://agentskills.io)-сумісні** папки Skills, щоб навчати агента користуватися інструментами. Кожен Skill — це директорія, що містить `SKILL.md` з YAML frontmatter та інструкціями. OpenClaw завантажує **вбудовані Skills** плюс необов’язкові локальні перевизначення і фільтрує їх під час завантаження на основі середовища, конфігурації та наявності бінарних файлів.
|
||||
OpenClaw використовує **сумісні з [AgentSkills](https://agentskills.io)** теки навичок, щоб навчати агента користуватися інструментами. Кожна навичка — це директорія, що містить `SKILL.md` з YAML frontmatter та інструкціями. OpenClaw завантажує **вбудовані навички** плюс необов’язкові локальні перевизначення й фільтрує їх під час завантаження на основі середовища, конфігурації та наявності бінарних файлів.
|
||||
|
||||
## Розташування та пріоритетність
|
||||
## Розташування та пріоритет
|
||||
|
||||
OpenClaw завантажує Skills із таких джерел:
|
||||
OpenClaw завантажує навички з таких джерел:
|
||||
|
||||
1. **Додаткові папки Skills**: налаштовуються через `skills.load.extraDirs`
|
||||
2. **Вбудовані Skills**: постачаються разом з установленням (npm package або OpenClaw.app)
|
||||
3. **Керовані/локальні Skills**: `~/.openclaw/skills`
|
||||
4. **Персональні Skills агента**: `~/.agents/skills`
|
||||
5. **Skills агента проєкту**: `<workspace>/.agents/skills`
|
||||
6. **Skills робочого простору**: `<workspace>/skills`
|
||||
1. **Додаткові теки навичок**: налаштовуються через `skills.load.extraDirs`
|
||||
2. **Вбудовані навички**: постачаються разом з інсталяцією (npm package або OpenClaw.app)
|
||||
3. **Керовані/локальні навички**: `~/.openclaw/skills`
|
||||
4. **Персональні навички агента**: `~/.agents/skills`
|
||||
5. **Навички агента проєкту**: `<workspace>/.agents/skills`
|
||||
6. **Навички workspace**: `<workspace>/skills`
|
||||
|
||||
Якщо назва Skill конфліктує, пріоритетність така:
|
||||
Якщо назва навички конфліктує, пріоритет такий:
|
||||
|
||||
`<workspace>/skills` (найвища) → `<workspace>/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → вбудовані Skills → `skills.load.extraDirs` (найнижча)
|
||||
`<workspace>/skills` (найвищий) → `<workspace>/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → вбудовані навички → `skills.load.extraDirs` (найнижчий)
|
||||
|
||||
## Skills для окремого агента та спільні Skills
|
||||
## Навички для окремого агента vs спільні навички
|
||||
|
||||
У конфігураціях **multi-agent** кожен агент має власний робочий простір. Це означає:
|
||||
У конфігураціях **з кількома агентами** кожен агент має власний workspace. Це означає:
|
||||
|
||||
- **Skills для окремого агента** містяться в `<workspace>/skills` лише для цього агента.
|
||||
- **Skills агента проєкту** містяться в `<workspace>/.agents/skills` і застосовуються до
|
||||
цього робочого простору перед звичайною папкою `skills/` робочого простору.
|
||||
- **Персональні Skills агента** містяться в `~/.agents/skills` і застосовуються в усіх
|
||||
робочих просторах на цій машині.
|
||||
- **Спільні Skills** містяться в `~/.openclaw/skills` (керовані/локальні) і видимі
|
||||
**усім агентам** на цій самій машині.
|
||||
- **Спільні папки** також можна додати через `skills.load.extraDirs` (найнижчий
|
||||
пріоритет), якщо ви хочете спільний набір Skills, який використовується кількома агентами.
|
||||
- **Навички для окремого агента** зберігаються в `<workspace>/skills` лише для цього агента.
|
||||
- **Навички агента проєкту** зберігаються в `<workspace>/.agents/skills` і застосовуються до цього workspace перед звичайною текою workspace `skills/`.
|
||||
- **Персональні навички агента** зберігаються в `~/.agents/skills` і застосовуються до всіх workspace на цій машині.
|
||||
- **Спільні навички** зберігаються в `~/.openclaw/skills` (керовані/локальні) і видимі **всім агентам** на цій машині.
|
||||
- **Спільні теки** також можна додати через `skills.load.extraDirs` (найнижчий пріоритет), якщо ви хочете мати спільний набір навичок, який використовують кілька агентів.
|
||||
|
||||
Якщо одна й та сама назва Skill існує більш ніж в одному місці, застосовується
|
||||
звичайна пріоритетність: спочатку робочий простір, потім Skills агента проєкту, потім персональні Skills агента,
|
||||
потім керовані/локальні, потім вбудовані, потім додаткові директорії.
|
||||
Якщо та сама назва навички існує в кількох місцях, застосовується звичайний пріоритет: перемагає workspace, потім навички агента проєкту, потім персональні навички агента, потім керовані/локальні, потім вбудовані, потім extra dirs.
|
||||
|
||||
## Allowlist-и Skills агента
|
||||
## Allowlist навичок агента
|
||||
|
||||
**Розташування** Skill і **видимість** Skill — це окремі механізми керування.
|
||||
**Розташування** навички та **видимість** навички — це окремі механізми керування.
|
||||
|
||||
- Розташування/пріоритетність визначає, яка копія Skill з однаковою назвою перемагає.
|
||||
- Allowlist-и агента визначають, які видимі Skills агент фактично може використовувати.
|
||||
- Розташування/пріоритет визначає, яка копія однойменної навички перемагає.
|
||||
- Allowlist агента визначає, які з видимих навичок агент реально може використовувати.
|
||||
|
||||
Використовуйте `agents.defaults.skills` для спільної базової конфігурації, а потім перевизначайте для кожного агента через
|
||||
`agents.list[].skills`:
|
||||
Використовуйте `agents.defaults.skills` для спільної базової конфігурації, а потім перевизначайте для окремих агентів через `agents.list[].skills`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -65,9 +58,9 @@ OpenClaw завантажує Skills із таких джерел:
|
||||
skills: ["github", "weather"],
|
||||
},
|
||||
list: [
|
||||
{ id: "writer" }, // inherits github, weather
|
||||
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
|
||||
{ id: "locked-down", skills: [] }, // no skills
|
||||
{ id: "writer" }, // успадковує github, weather
|
||||
{ id: "docs", skills: ["docs-search"] }, // замінює значення за замовчуванням
|
||||
{ id: "locked-down", skills: [] }, // без навичок
|
||||
],
|
||||
},
|
||||
}
|
||||
@ -75,80 +68,72 @@ OpenClaw завантажує Skills із таких джерел:
|
||||
|
||||
Правила:
|
||||
|
||||
- Не вказуйте `agents.defaults.skills`, щоб за замовчуванням Skills були необмеженими.
|
||||
- Не вказуйте `agents.list[].skills`, щоб успадковувати `agents.defaults.skills`.
|
||||
- Установіть `agents.list[].skills: []`, щоб не було жодних Skills.
|
||||
- Непорожній список `agents.list[].skills` — це остаточний набір для цього агента; він
|
||||
не об’єднується зі значеннями за замовчуванням.
|
||||
- Не вказуйте `agents.defaults.skills`, якщо за замовчуванням навички не мають бути обмежені.
|
||||
- Не вказуйте `agents.list[].skills`, щоб успадкувати `agents.defaults.skills`.
|
||||
- Встановіть `agents.list[].skills: []`, щоб не було жодних навичок.
|
||||
- Непорожній список `agents.list[].skills` є остаточним набором для цього агента; він не об’єднується зі значеннями за замовчуванням.
|
||||
|
||||
OpenClaw застосовує ефективний набір Skills агента до побудови prompt-ів, виявлення slash-команд Skill, синхронізації sandbox і знімків Skills.
|
||||
OpenClaw застосовує ефективний набір навичок агента під час побудови prompt, виявлення slash-command навичок, синхронізації sandbox і знімків навичок.
|
||||
|
||||
## Plugins + Skills
|
||||
## Plugins + навички
|
||||
|
||||
Plugins можуть постачати власні Skills, перелічуючи директорії `skills` у
|
||||
`openclaw.plugin.json` (шляхи відносно кореня Plugin). Skills Plugin завантажуються,
|
||||
коли Plugin увімкнено. Це правильне місце для інструкцій з використання інструментів,
|
||||
які надто довгі для опису інструмента, але мають бути доступні
|
||||
завжди, коли Plugin встановлено; наприклад, Plugin browser постачає
|
||||
Skill `browser-automation` для багатокрокового керування браузером. Сьогодні ці
|
||||
Plugins можуть постачати власні навички, вказуючи директорії `skills` у
|
||||
`openclaw.plugin.json` (шляхи відносно кореня plugin). Навички plugin завантажуються, коли plugin увімкнений. Це правильне місце для операційних інструкцій, специфічних для інструмента, які надто довгі для опису інструмента, але мають бути доступні щоразу, коли plugin встановлено; наприклад, browser plugin постачає навичку
|
||||
`browser-automation` для багатокрокового керування браузером. Наразі ці
|
||||
директорії об’єднуються в той самий шлях із низьким пріоритетом, що й
|
||||
`skills.load.extraDirs`, тому Skill з такою самою назвою з вбудованих, керованих, агентських
|
||||
або робочого простору Skills перевизначає їх.
|
||||
Ви можете керувати ними через `metadata.openclaw.requires.config` у записі конфігурації Plugin.
|
||||
Див. [Plugins](/uk/tools/plugin) для виявлення/конфігурації та [Tools](/uk/tools) для
|
||||
поверхні інструментів, яку пояснюють ці Skills.
|
||||
`skills.load.extraDirs`, тому однойменна вбудована, керована, агентська або
|
||||
workspace-навішка перевизначає їх.
|
||||
Ви можете керувати ними через `metadata.openclaw.requires.config` у записі конфігурації plugin.
|
||||
Див. [Plugins](/uk/tools/plugin) для виявлення/конфігурації і [Tools](/uk/tools) для поверхні
|
||||
інструментів, яку пояснюють ці навички.
|
||||
|
||||
## Skill Workshop
|
||||
|
||||
Необов’язковий, експериментальний Plugin Skill Workshop може створювати або оновлювати Skills робочого простору
|
||||
з повторно використовуваних процедур, помічених під час роботи агента. Він вимкнений
|
||||
за замовчуванням і має бути явно увімкнений через
|
||||
Необов’язковий експериментальний plugin Skill Workshop може створювати або оновлювати навички workspace з повторно використовуваних процедур, помічених під час роботи агента. Його вимкнено за замовчуванням, і його потрібно явно ввімкнути через
|
||||
`plugins.entries.skill-workshop`.
|
||||
|
||||
Skill Workshop записує лише в `<workspace>/skills`, сканує згенерований вміст,
|
||||
підтримує відкладене схвалення або автоматичний безпечний запис, ізолює небезпечні
|
||||
пропозиції й оновлює знімок Skill після успішних записів, щоб нові
|
||||
Skills могли стати доступними без перезапуску Gateway.
|
||||
Skill Workshop записує лише до `<workspace>/skills`, сканує згенерований вміст,
|
||||
підтримує очікування схвалення або автоматичні безпечні записи, поміщає небезпечні
|
||||
пропозиції в карантин і оновлює знімок навичок після успішних записів, щоб нові
|
||||
навички могли ставати доступними без перезапуску Gateway.
|
||||
|
||||
Використовуйте його, коли хочете, щоб виправлення на кшталт «наступного разу перевіряй attribution GIF» або
|
||||
важко здобуті робочі процеси, як-от контрольні списки медіа-QA, стали
|
||||
стійкими процедурними інструкціями. Починайте з відкладеного схвалення; використовуйте автоматичний запис
|
||||
лише в довірених робочих просторах після перегляду його пропозицій. Повний посібник:
|
||||
[Plugin Skill Workshop](/uk/plugins/skill-workshop).
|
||||
Використовуйте його, коли хочете, щоб такі виправлення, як «наступного разу перевіряй attribution GIF», або важко здобуті процеси, як-от контрольні списки медіа-QA, стали стійкими процедурними інструкціями. Починайте з режиму очікування схвалення; автоматичні записи використовуйте лише в довірених workspace після перевірки його пропозицій. Повний посібник:
|
||||
[Skill Workshop Plugin](/uk/plugins/skill-workshop).
|
||||
|
||||
## ClawHub (встановлення + синхронізація)
|
||||
|
||||
ClawHub — це публічний реєстр Skills для OpenClaw. Переглядайте на
|
||||
[https://clawhub.ai](https://clawhub.ai). Використовуйте нативні команди `openclaw skills`
|
||||
для виявлення/встановлення/оновлення Skills або окремий CLI `clawhub`, коли
|
||||
вам потрібні робочі процеси публікації/синхронізації.
|
||||
ClawHub — це публічний реєстр навичок для OpenClaw. Переглянути можна на
|
||||
[https://clawhub.ai](https://clawhub.ai). Використовуйте вбудовані команди `openclaw skills`
|
||||
для пошуку/встановлення/оновлення навичок або окремий CLI `clawhub`, коли
|
||||
потрібні процеси публікації/синхронізації.
|
||||
Повний посібник: [ClawHub](/uk/tools/clawhub).
|
||||
|
||||
Поширені сценарії:
|
||||
Типові сценарії:
|
||||
|
||||
- Установити Skill у свій робочий простір:
|
||||
- Встановити навичку у ваш workspace:
|
||||
- `openclaw skills install <skill-slug>`
|
||||
- Оновити всі встановлені Skills:
|
||||
- Оновити всі встановлені навички:
|
||||
- `openclaw skills update --all`
|
||||
- Синхронізація (сканування + публікація оновлень):
|
||||
- `clawhub sync --all`
|
||||
|
||||
Нативна команда `openclaw skills install` установлює в активну директорію `skills/` робочого простору. Окремий CLI `clawhub` також встановлює в `./skills` у
|
||||
поточній робочій директорії (або використовує налаштований робочий простір OpenClaw як резервний варіант).
|
||||
OpenClaw підхоплює це як `<workspace>/skills` у наступному сеансі.
|
||||
Вбудована команда `openclaw skills install` встановлює в активну директорію workspace `skills/`.
|
||||
Окремий CLI `clawhub` також встановлює в `./skills` у вашій
|
||||
поточній робочій директорії (або використовує fallback до налаштованого workspace OpenClaw).
|
||||
OpenClaw підхопить це як `<workspace>/skills` у наступній сесії.
|
||||
|
||||
## Примітки щодо безпеки
|
||||
|
||||
- Ставтеся до сторонніх Skills як до **ненадійного коду**. Прочитайте їх перед увімкненням.
|
||||
- Сприймайте сторонні навички як **ненадійний код**. Прочитайте їх перед увімкненням.
|
||||
- Для ненадійних вхідних даних і ризикованих інструментів віддавайте перевагу запуску в sandbox. Див. [Sandboxing](/uk/gateway/sandboxing).
|
||||
- Виявлення Skills у робочому просторі та додаткових директоріях приймає лише корені Skill і файли `SKILL.md`, чий обчислений realpath залишається в межах налаштованого кореня.
|
||||
- Установлення залежностей Skill через Gateway (`skills.install`, onboarding і UI налаштувань Skills) запускають вбудований сканер небезпечного коду перед виконанням метаданих інсталятора. Знахідки рівня `critical` блокують за замовчуванням, якщо викликаюча сторона явно не встановить dangerous override; підозрілі знахідки все ще лише попереджають.
|
||||
- `openclaw skills install <slug>` — це інше: команда завантажує папку Skill із ClawHub до робочого простору і не використовує шлях метаданих інсталятора, описаний вище.
|
||||
- `skills.entries.*.env` і `skills.entries.*.apiKey` інжектують секрети в процес **хоста**
|
||||
для цього ходу агента (не в sandbox). Не допускайте потрапляння секретів у prompt-и та журнали.
|
||||
- Виявлення навичок у workspace і extra-dir приймає лише корені навичок та файли `SKILL.md`, чий розв’язаний realpath залишається всередині налаштованого кореня.
|
||||
- Встановлення залежностей навичок через Gateway (`skills.install`, onboarding і UI налаштувань Skills) запускають вбудований dangerous-code scanner перед виконанням метаданих інсталятора. Знахідки рівня `critical` за замовчуванням блокують виконання, якщо виклик явно не встановлює dangerous override; підозрілі знахідки все ще лише попереджають.
|
||||
- `openclaw skills install <slug>` відрізняється: ця команда завантажує теку навички ClawHub у workspace і не використовує описаний вище шлях через метадані інсталятора.
|
||||
- `skills.entries.*.env` і `skills.entries.*.apiKey` інжектують секрети в процес **host**
|
||||
для цього ходу агента (а не в sandbox). Не допускайте потрапляння секретів у prompt і логи.
|
||||
- Для ширшої моделі загроз і контрольних списків див. [Security](/uk/gateway/security).
|
||||
|
||||
## Формат (AgentSkills + Pi-compatible)
|
||||
## Формат (AgentSkills + сумісний із Pi)
|
||||
|
||||
`SKILL.md` має містити щонайменше:
|
||||
|
||||
@ -164,21 +149,21 @@ description: Generate or edit images via a provider-backed image workflow
|
||||
- Ми дотримуємося специфікації AgentSkills щодо структури/призначення.
|
||||
- Парсер, який використовує вбудований агент, підтримує лише **однорядкові** ключі frontmatter.
|
||||
- `metadata` має бути **однорядковим JSON-об’єктом**.
|
||||
- Використовуйте `{baseDir}` в інструкціях, щоб посилатися на шлях до папки Skill.
|
||||
- Використовуйте `{baseDir}` в інструкціях, щоб посилатися на шлях до теки навички.
|
||||
- Необов’язкові ключі frontmatter:
|
||||
- `homepage` — URL, що показується як «Website» у macOS Skills UI (також підтримується через `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-команда оминає модель і напряму передає виклик інструменту.
|
||||
- `homepage` — URL, який показується як “Website” в macOS UI Skills (також підтримується через `metadata.openclaw.homepage`).
|
||||
- `user-invocable` — `true|false` (типове значення: `true`). Якщо `true`, навичка доступна як slash-command користувача.
|
||||
- `disable-model-invocation` — `true|false` (типове значення: `false`). Якщо `true`, навичка виключається з model prompt (але все ще доступна через виклик користувачем).
|
||||
- `command-dispatch` — `tool` (необов’язково). Якщо встановлено `tool`, slash-command минає модель і напряму диспетчеризується до інструмента.
|
||||
- `command-tool` — назва інструмента, який слід викликати, коли встановлено `command-dispatch: tool`.
|
||||
- `command-arg-mode` — `raw` (типове значення). Для dispatch до інструмента передає сирий рядок аргументів до інструмента (без парсингу на рівні core).
|
||||
- `command-arg-mode` — `raw` (типове значення). Для диспетчеризації до інструмента передає сирий рядок args до інструмента (без парсингу в core).
|
||||
|
||||
Інструмент викликається з параметрами:
|
||||
`{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }`.
|
||||
|
||||
## Гейтінг (фільтри під час завантаження)
|
||||
## Gating (фільтри під час завантаження)
|
||||
|
||||
OpenClaw **фільтрує Skills під час завантаження** за допомогою `metadata` (однорядковий JSON):
|
||||
OpenClaw **фільтрує навички під час завантаження** за допомогою `metadata` (однорядковий JSON):
|
||||
|
||||
```markdown
|
||||
---
|
||||
@ -197,30 +182,30 @@ metadata:
|
||||
|
||||
Поля в `metadata.openclaw`:
|
||||
|
||||
- `always: true` — завжди включати Skill (пропустити інші gate-и).
|
||||
- `emoji` — необов’язковий emoji, який використовується в macOS Skills UI.
|
||||
- `homepage` — необов’язковий URL, що показується як «Website» у macOS Skills UI.
|
||||
- `os` — необов’язковий список платформ (`darwin`, `linux`, `win32`). Якщо встановлено, Skill доступний лише на цих ОС.
|
||||
- `always: true` — завжди включати навичку (пропустити інші gate).
|
||||
- `emoji` — необов’язкове emoji, яке використовується в macOS UI Skills.
|
||||
- `homepage` — необов’язковий URL, який показується як “Website” в macOS UI Skills.
|
||||
- `os` — необов’язковий список платформ (`darwin`, `linux`, `win32`). Якщо вказано, навичка доступна лише на цих ОС.
|
||||
- `requires.bins` — список; кожен елемент має існувати в `PATH`.
|
||||
- `requires.anyBins` — список; у `PATH` має існувати принаймні один елемент.
|
||||
- `requires.env` — список; змінна середовища має існувати **або** бути наданою в конфігурації.
|
||||
- `requires.anyBins` — список; принаймні один елемент має існувати в `PATH`.
|
||||
- `requires.env` — список; змінна середовища має існувати **або** бути надана в конфігурації.
|
||||
- `requires.config` — список шляхів `openclaw.json`, які мають бути truthy.
|
||||
- `primaryEnv` — назва змінної середовища, пов’язаної з `skills.entries.<name>.apiKey`.
|
||||
- `install` — необов’язковий масив специфікацій інсталятора, який використовується в macOS Skills UI (brew/node/go/uv/download).
|
||||
- `install` — необов’язковий масив специфікацій інсталятора, який використовується в macOS UI Skills (brew/node/go/uv/download).
|
||||
|
||||
Застарілі блоки `metadata.clawdbot` усе ще приймаються, якщо
|
||||
`metadata.openclaw` відсутній, тому старіші встановлені Skills зберігають свої
|
||||
gate-и залежностей і підказки щодо інсталятора. Нові та оновлені Skills мають використовувати
|
||||
Застарілі блоки `metadata.clawdbot` усе ще підтримуються, коли
|
||||
`metadata.openclaw` відсутній, тож старіші встановлені навички зберігають свої
|
||||
gate залежностей і підказки для інсталятора. Для нових і оновлених навичок слід використовувати
|
||||
`metadata.openclaw`.
|
||||
|
||||
Примітка щодо sandbox:
|
||||
Примітка щодо sandboxing:
|
||||
|
||||
- `requires.bins` перевіряється на **хості** під час завантаження Skill.
|
||||
- `requires.bins` перевіряється на **host** під час завантаження навички.
|
||||
- Якщо агент працює в sandbox, бінарний файл також має існувати **всередині контейнера**.
|
||||
Установіть його через `agents.defaults.sandbox.docker.setupCommand` (або власний image).
|
||||
Встановіть його через `agents.defaults.sandbox.docker.setupCommand` (або власний образ).
|
||||
`setupCommand` виконується один раз після створення контейнера.
|
||||
Для встановлення пакетів також потрібні вихід у мережу, записувана коренева файлова система та root-користувач у sandbox.
|
||||
Приклад: Skill `summarize` (`skills/summarize/SKILL.md`) потребує CLI `summarize`
|
||||
Для встановлення пакетів також потрібні мережевий egress, записувана коренева FS і root-користувач у sandbox.
|
||||
Приклад: навичка `summarize` (`skills/summarize/SKILL.md`) потребує CLI `summarize`
|
||||
у контейнері sandbox, щоб працювати там.
|
||||
|
||||
Приклад інсталятора:
|
||||
@ -252,27 +237,27 @@ metadata:
|
||||
|
||||
Примітки:
|
||||
|
||||
- Якщо перелічено кілька інсталяторів, gateway вибирає **один** бажаний варіант (brew, якщо доступний, інакше node).
|
||||
- Якщо вказано кілька інсталяторів, Gateway вибирає **один** пріоритетний варіант (brew, якщо доступний, інакше node).
|
||||
- Якщо всі інсталятори мають тип `download`, OpenClaw показує кожен запис, щоб ви могли бачити доступні артефакти.
|
||||
- Специфікації інсталятора можуть містити `os: ["darwin"|"linux"|"win32"]`, щоб фільтрувати варіанти за платформою.
|
||||
- Установлення node враховують `skills.install.nodeManager` у `openclaw.json` (типове значення: npm; варіанти: npm/pnpm/yarn/bun).
|
||||
Це впливає лише на **встановлення Skills**; середовищем виконання Gateway все одно має бути Node
|
||||
- Інсталяції node враховують `skills.install.nodeManager` в `openclaw.json` (типове значення: npm; варіанти: npm/pnpm/yarn/bun).
|
||||
Це впливає лише на **встановлення навичок**; середовищем виконання Gateway усе одно має бути Node
|
||||
(Bun не рекомендується для WhatsApp/Telegram).
|
||||
- Вибір інсталятора через Gateway ґрунтується на пріоритетах, а не лише на node:
|
||||
коли специфікації встановлення змішують типи, OpenClaw віддає перевагу Homebrew, якщо
|
||||
- Вибір інсталятора через Gateway базується на пріоритетах, а не лише на node:
|
||||
коли специфікації інсталяції змішують різні типи, OpenClaw віддає перевагу Homebrew, якщо
|
||||
увімкнено `skills.install.preferBrew` і існує `brew`, потім `uv`, потім
|
||||
налаштований node manager, а далі інші резервні варіанти, як-от `go` або `download`.
|
||||
- Якщо кожна специфікація встановлення має тип `download`, OpenClaw показує всі варіанти завантаження,
|
||||
а не згортає їх до одного бажаного інсталятора.
|
||||
- Установлення Go: якщо `go` відсутній, а `brew` доступний, gateway спочатку встановлює Go через Homebrew і за можливості встановлює `GOBIN` на `bin` Homebrew.
|
||||
- Установлення download: `url` (обов’язково), `archive` (`tar.gz` | `tar.bz2` | `zip`), `extract` (типове значення: auto, коли виявлено архів), `stripComponents`, `targetDir` (типове значення: `~/.openclaw/tools/<skillKey>`).
|
||||
налаштований node manager, а потім інші fallback-варіанти, як-от `go` або `download`.
|
||||
- Якщо кожна специфікація інсталяції має тип `download`, OpenClaw показує всі варіанти завантаження
|
||||
замість зведення до одного пріоритетного інсталятора.
|
||||
- Інсталяції Go: якщо `go` відсутній, а `brew` доступний, gateway спочатку встановлює Go через Homebrew і за можливості встановлює `GOBIN` у `bin` від Homebrew.
|
||||
- Інсталяції через download: `url` (обов’язково), `archive` (`tar.gz` | `tar.bz2` | `zip`), `extract` (типове значення: auto, якщо архів виявлено), `stripComponents`, `targetDir` (типове значення: `~/.openclaw/tools/<skillKey>`).
|
||||
|
||||
Якщо `metadata.openclaw` відсутній, Skill завжди допустимий (якщо тільки
|
||||
він не вимкнений у конфігурації або не заблокований `skills.allowBundled` для вбудованих Skills).
|
||||
Якщо `metadata.openclaw` відсутній, навичка завжди вважається допустимою (якщо
|
||||
її не вимкнено в конфігурації або не заблоковано через `skills.allowBundled` для вбудованих навичок).
|
||||
|
||||
## Перевизначення конфігурації (`~/.openclaw/openclaw.json`)
|
||||
|
||||
Вбудовані/керовані Skills можна вмикати або вимикати та передавати їм значення env:
|
||||
Вбудовані/керовані навички можна вмикати або вимикати та передавати їм значення env:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -280,7 +265,7 @@ metadata:
|
||||
entries: {
|
||||
"image-lab": {
|
||||
enabled: true,
|
||||
apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
|
||||
apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // або plaintext-рядок
|
||||
env: {
|
||||
GEMINI_API_KEY: "GEMINI_KEY_HERE",
|
||||
},
|
||||
@ -296,69 +281,68 @@ metadata:
|
||||
}
|
||||
```
|
||||
|
||||
Примітка: якщо назва Skill містить дефіси, візьміть ключ у лапки (`JSON5` дозволяє ключі в лапках).
|
||||
Примітка: якщо назва навички містить дефіси, візьміть ключ у лапки (JSON5 дозволяє ключі в лапках).
|
||||
|
||||
Якщо вам потрібне стандартне генерування/редагування зображень безпосередньо в самому OpenClaw, використовуйте core-інструмент
|
||||
`image_generate` з `agents.defaults.imageGenerationModel` замість
|
||||
вбудованого Skill. Приклади Skills тут наведено для нетипових або сторонніх робочих процесів.
|
||||
Якщо вам потрібне стандартне генерування/редагування зображень безпосередньо в OpenClaw, використовуйте core-інструмент
|
||||
`image_generate` разом із `agents.defaults.imageGenerationModel`, а не
|
||||
вбудовану навичку. Наведені тут приклади навичок призначені для власних або сторонніх workflow.
|
||||
|
||||
Для нативного аналізу зображень використовуйте інструмент `image` з `agents.defaults.imageModel`.
|
||||
Для нативного генерування/редагування зображень використовуйте `image_generate` з
|
||||
`agents.defaults.imageGenerationModel`. Якщо ви вибираєте `openai/*`, `google/*`,
|
||||
`fal/*` або іншу модель зображень, прив’язану до конкретного провайдера, також додайте
|
||||
автентифікацію/API-ключ цього провайдера.
|
||||
Для нативного аналізу зображень використовуйте інструмент `image` разом із `agents.defaults.imageModel`.
|
||||
Для нативного генерування/редагування зображень використовуйте `image_generate` разом із
|
||||
`agents.defaults.imageGenerationModel`. Якщо ви обираєте `openai/*`, `google/*`,
|
||||
`fal/*` або іншу модель зображень, специфічну для провайдера, також додайте auth/API
|
||||
ключ цього провайдера.
|
||||
|
||||
Ключі конфігурації за замовчуванням відповідають **назві Skill**. Якщо Skill визначає
|
||||
Ключі конфігурації за замовчуванням відповідають **назві навички**. Якщо навичка визначає
|
||||
`metadata.openclaw.skillKey`, використовуйте цей ключ у `skills.entries`.
|
||||
|
||||
Правила:
|
||||
|
||||
- `enabled: false` вимикає Skill, навіть якщо він вбудований/встановлений.
|
||||
- `enabled: false` вимикає навичку, навіть якщо вона вбудована/встановлена.
|
||||
- `env`: інжектується **лише якщо** змінна ще не встановлена в процесі.
|
||||
- `apiKey`: зручний варіант для Skills, які оголошують `metadata.openclaw.primaryEnv`.
|
||||
Підтримує звичайний текстовий рядок або об’єкт SecretRef (`{ source, provider, id }`).
|
||||
- `config`: необов’язковий контейнер для власних полів конкретного Skill; нетипові ключі мають міститися тут.
|
||||
- `allowBundled`: необов’язковий allowlist лише для **вбудованих** Skills. Якщо його встановлено, допустимими є
|
||||
лише вбудовані Skills зі списку (керовані/робочого простору Skills це не зачіпає).
|
||||
- `apiKey`: зручний механізм для навичок, які оголошують `metadata.openclaw.primaryEnv`.
|
||||
Підтримує plaintext-рядок або об’єкт SecretRef (`{ source, provider, id }`).
|
||||
- `config`: необов’язковий набір для користувацьких полів окремої навички; користувацькі ключі мають бути лише тут.
|
||||
- `allowBundled`: необов’язковий allowlist **лише** для вбудованих навичок. Якщо його задано, допустимими є лише
|
||||
вбудовані навички зі списку (керовані/navички workspace це не зачіпає).
|
||||
|
||||
## Інжекція середовища (на кожен запуск агента)
|
||||
## Інжекція середовища (для кожного запуску агента)
|
||||
|
||||
Коли починається запуск агента, OpenClaw:
|
||||
|
||||
1. Читає метадані Skill.
|
||||
1. Зчитує метадані навичок.
|
||||
2. Застосовує будь-які `skills.entries.<key>.env` або `skills.entries.<key>.apiKey` до
|
||||
`process.env`.
|
||||
3. Будує system prompt з **допустимими** Skills.
|
||||
3. Будує system prompt з **допустимими** навичками.
|
||||
4. Відновлює початкове середовище після завершення запуску.
|
||||
|
||||
Це **обмежено запуском агента**, а не глобальним середовищем shell.
|
||||
Це **обмежено запуском агента**, а не є глобальним shell-середовищем.
|
||||
|
||||
Для вбудованого бекенда `claude-cli` OpenClaw також матеріалізує той самий
|
||||
допустимий знімок як тимчасовий плагін Claude Code і передає його через
|
||||
`--plugin-dir`. Тоді Claude Code може використовувати власний нативний resolver Skills, тоді як
|
||||
OpenClaw усе ще керує пріоритетністю, allowlist-ами для окремих агентів, гейтінгом і
|
||||
інжекцією env/API-ключів через `skills.entries.*`. Інші CLI-бекенди використовують
|
||||
лише каталог у prompt.
|
||||
Для вбудованого backend `claude-cli` OpenClaw також матеріалізує той самий
|
||||
допустимий знімок як тимчасовий plugin Claude Code і передає його через
|
||||
`--plugin-dir`. Тоді Claude Code може використовувати власний нативний resolver навичок, тоді як
|
||||
OpenClaw усе одно керує пріоритетом, allowlist-ами окремих агентів, gating і
|
||||
інжекцією env/API key через `skills.entries.*`. Інші CLI backend використовують лише каталог prompt.
|
||||
|
||||
## Знімок сеансу (продуктивність)
|
||||
## Знімок сесії (продуктивність)
|
||||
|
||||
OpenClaw створює знімок допустимих Skills **на початку сеансу** і повторно використовує цей список для наступних ходів у межах того самого сеансу. Зміни в Skills або конфігурації набувають чинності в наступному новому сеансі.
|
||||
OpenClaw створює знімок допустимих навичок **на початку сесії** і повторно використовує цей список для наступних ходів у тій самій сесії. Зміни в навичках або конфігурації набирають чинності під час наступної нової сесії.
|
||||
|
||||
Skills також можуть оновлюватися посеред сеансу, коли ввімкнено watcher Skills або коли з’являється новий допустимий віддалений node (див. нижче). Думайте про це як про **гаряче перезавантаження**: оновлений список підхоплюється на наступному ході агента.
|
||||
Навички також можуть оновлюватися всередині сесії, коли увімкнено watcher навичок або коли з’являється новий допустимий віддалений Node (див. нижче). Сприймайте це як **гаряче перезавантаження**: оновлений список буде підхоплено на наступному ході агента.
|
||||
|
||||
Якщо для цього сеансу змінюється ефективний allowlist Skills агента, OpenClaw
|
||||
оновлює знімок, щоб видимі Skills залишалися узгодженими з поточним
|
||||
Якщо для цієї сесії змінюється ефективний allowlist навичок агента, OpenClaw
|
||||
оновлює знімок, щоб видимі навички залишалися узгодженими з поточним
|
||||
агентом.
|
||||
|
||||
## Віддалені macOS node-и (Linux gateway)
|
||||
## Віддалені macOS Node (Linux Gateway)
|
||||
|
||||
Якщо Gateway працює на Linux, але підключено **macOS node** **з дозволеним `system.run`** (налаштування безпеки Exec approvals не встановлено на `deny`), OpenClaw може вважати допустимими Skills лише для macOS, якщо потрібні бінарні файли присутні на цьому node. Агент має виконувати такі Skills через інструмент `exec` з `host=node`.
|
||||
Якщо Gateway працює на Linux, але підключено **macOS Node** **з дозволеним `system.run`** (налаштування безпеки Exec approvals не встановлене в `deny`), OpenClaw може вважати навички лише для macOS допустимими, коли потрібні бінарні файли присутні на цьому Node. Агент повинен виконувати такі навички через інструмент `exec` з `host=node`.
|
||||
|
||||
Це спирається на те, що node повідомляє про підтримку своїх команд, і на перевірку бінарних файлів через `system.run`. Якщо macOS node згодом від’єднається, Skills залишаться видимими; виклики можуть завершуватися помилкою, доки node не підключиться знову.
|
||||
Це спирається на те, що Node повідомляє про свою підтримку команд, а також на перевірку бінарних файлів через `system.which` або `system.run`. Node, які перебувають offline, не роблять віддалені навички видимими. Якщо підключений Node перестає відповідати на перевірки бінарних файлів, OpenClaw очищає кешовані збіги бінарних файлів, щоб агенти більше не бачили навички, які наразі неможливо виконати там.
|
||||
|
||||
## Watcher Skills (автооновлення)
|
||||
## Watcher навичок (автооновлення)
|
||||
|
||||
За замовчуванням OpenClaw стежить за папками Skills і оновлює знімок Skills, коли змінюються файли `SKILL.md`. Налаштовується це в `skills.load`:
|
||||
За замовчуванням OpenClaw відстежує теки навичок і оновлює знімок навичок, коли змінюються файли `SKILL.md`. Налаштування виконується в `skills.load`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -371,12 +355,12 @@ Skills також можуть оновлюватися посеред сеан
|
||||
}
|
||||
```
|
||||
|
||||
## Вплив на токени (список Skills)
|
||||
## Вплив на токени (список навичок)
|
||||
|
||||
Коли Skills допустимі, OpenClaw інжектує компактний XML-список доступних Skills у system prompt (через `formatSkillsForPrompt` у `pi-coding-agent`). Вартість детермінована:
|
||||
Коли навички допустимі, OpenClaw інжектує компактний XML-список доступних навичок у system prompt (через `formatSkillsForPrompt` у `pi-coding-agent`). Вартість детермінована:
|
||||
|
||||
- **Базові накладні витрати (лише коли ≥1 Skill):** 195 символів.
|
||||
- **На кожен Skill:** 97 символів + довжина XML-екранованих значень `<name>`, `<description>` і `<location>`.
|
||||
- **Базовий overhead (лише коли є ≥1 навичка):** 195 символів.
|
||||
- **На одну навичку:** 97 символів + довжина XML-escaped значень `<name>`, `<description>` і `<location>`.
|
||||
|
||||
Формула (символи):
|
||||
|
||||
@ -386,21 +370,21 @@ total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(locati
|
||||
|
||||
Примітки:
|
||||
|
||||
- XML-екранування розширює `& < > " '` до сутностей (`&`, `<` тощо), збільшуючи довжину.
|
||||
- Кількість токенів залежить від tokenizer конкретної моделі. Груба оцінка в стилі OpenAI — приблизно 4 символи на токен, тобто **97 символів ≈ 24 токени** на Skill плюс фактична довжина ваших полів.
|
||||
- XML escaping розширює `& < > " '` у сутності (`&`, `<` тощо), що збільшує довжину.
|
||||
- Кількість токенів залежить від tokenizer моделі. Груба оцінка в стилі OpenAI — приблизно 4 символи на токен, тож **97 символів ≈ 24 токени** на навичку плюс фактична довжина ваших полів.
|
||||
|
||||
## Життєвий цикл керованих Skills
|
||||
## Життєвий цикл керованих навичок
|
||||
|
||||
OpenClaw постачає базовий набір Skills як **вбудовані Skills** у складі
|
||||
встановлення (npm package або OpenClaw.app). `~/.openclaw/skills` існує для локальних
|
||||
перевизначень (наприклад, щоб зафіксувати/виправити Skill без зміни вбудованої
|
||||
копії). Skills робочого простору належать користувачу та перевизначають обидва варіанти при конфліктах назв.
|
||||
OpenClaw постачає базовий набір навичок як **вбудовані навички** у складі
|
||||
інсталяції (npm package або OpenClaw.app). `~/.openclaw/skills` існує для локальних
|
||||
перевизначень (наприклад, щоб зафіксувати версію/пропатчити навичку без зміни вбудованої
|
||||
копії). Навички workspace належать користувачу й перевизначають обидва варіанти у разі конфлікту назв.
|
||||
|
||||
## Довідник конфігурації
|
||||
|
||||
Див. [Конфігурація Skills](/uk/tools/skills-config) для повної схеми конфігурації.
|
||||
Див. [Skills config](/uk/tools/skills-config), щоб ознайомитися з повною схемою конфігурації.
|
||||
|
||||
## Шукаєте більше Skills?
|
||||
## Шукаєте більше навичок?
|
||||
|
||||
Перегляньте [https://clawhub.ai](https://clawhub.ai).
|
||||
|
||||
@ -408,7 +392,7 @@ OpenClaw постачає базовий набір Skills як **вбудова
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Створення Skills](/uk/tools/creating-skills) — створення власних Skills
|
||||
- [Конфігурація Skills](/uk/tools/skills-config) — довідник із конфігурації Skills
|
||||
- [Slash Commands](/uk/tools/slash-commands) — усі доступні slash-команди
|
||||
- [Plugins](/uk/tools/plugin) — огляд системи Plugin
|
||||
- [Creating Skills](/uk/tools/creating-skills) — створення власних навичок
|
||||
- [Skills Config](/uk/tools/skills-config) — довідник із конфігурації навичок
|
||||
- [Slash Commands](/uk/tools/slash-commands) — усі доступні slash-command
|
||||
- [Plugins](/uk/tools/plugin) — огляд системи plugin
|
||||
|
||||
Loading…
Reference in New Issue
Block a user