diff --git a/docs/uk/channels/slack.md b/docs/uk/channels/slack.md
index 51a34b9c2..f8d59a4fb 100644
--- a/docs/uk/channels/slack.md
+++ b/docs/uk/channels/slack.md
@@ -1,28 +1,28 @@
---
read_when:
- - Налаштування Slack або налагодження режиму socket/HTTP у Slack
+ - Налаштування Slack або налагодження режиму сокета/HTTP у Slack
summary: Налаштування Slack і поведінка під час виконання (Socket Mode + URL-адреси HTTP-запитів)
title: Slack
x-i18n:
- generated_at: "2026-04-24T23:03:44Z"
+ generated_at: "2026-04-24T23:30:39Z"
model: gpt-5.4
provider: openai
- source_hash: aef3302e3c535f6e4eaba8460b3a89fcfa7043a8a6da856f4a734c2d997c9374
+ source_hash: d0ab5b0865102175477bacac2ef948cdb2e42892fdfd5adb73afe89f0f482de5
source_path: channels/slack.md
workflow: 15
---
-Готово до продакшн-використання для приватних повідомлень і каналів через інтеграції застосунку Slack. Режим за замовчуванням — Socket Mode; також підтримуються URL-адреси HTTP-запитів.
+Готово до production для особистих повідомлень і каналів через інтеграції застосунку Slack. Режим за замовчуванням — Socket Mode; також підтримуються URL-адреси HTTP-запитів.
-
- Для приватних повідомлень Slack за замовчуванням використовується режим сполучення.
+
+ Для особистих повідомлень Slack режим прив’язки використовується за замовчуванням.
-
- Нативна поведінка команд і каталог команд.
+
+ Вбудована поведінка команд і каталог команд.
-
- Діагностика між каналами та сценарії виправлення.
+
+ Міжканальна діагностика та інструкції з відновлення.
@@ -34,8 +34,8 @@ x-i18n:
У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
- - виберіть **from a manifest** і виберіть робочий простір для вашого застосунку
- - вставте [приклад маніфесту](#manifest-and-scope-checklist) нижче та продовжуйте створення
+ - виберіть **from a manifest** і виберіть робочий простір для свого застосунку
+ - вставте [приклад маніфесту](#manifest-and-scope-checklist) нижче та продовжте створення
- згенеруйте **App-Level Token** (`xapp-...`) з `connections:write`
- встановіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`)
@@ -55,7 +55,7 @@ x-i18n:
}
```
- Резервне значення через змінні середовища (лише для облікового запису за замовчуванням):
+ Резервний варіант через змінні середовища (лише для облікового запису за замовчуванням):
```bash
SLACK_APP_TOKEN=xapp-...
@@ -80,7 +80,7 @@ openclaw gateway
У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
- - виберіть **from a manifest** і виберіть робочий простір для вашого застосунку
+ - виберіть **from a manifest** і виберіть робочий простір для свого застосунку
- вставте [приклад маніфесту](#manifest-and-scope-checklist) і оновіть URL-адреси перед створенням
- збережіть **Signing Secret** для перевірки запитів
- встановіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`)
@@ -104,9 +104,9 @@ openclaw gateway
```
- Використовуйте унікальні шляхи webhook для багатьох HTTP-облікових записів
+ Використовуйте унікальні шляхи Webhook для багатокористувацького HTTP
- Надайте кожному обліковому запису окремий `webhookPath` (за замовчуванням `/slack/events`), щоб реєстрації не конфліктували.
+ Для кожного облікового запису задавайте окремий `webhookPath` (типово `/slack/events`), щоб реєстрації не конфліктували.
@@ -125,7 +125,7 @@ openclaw gateway
## Контрольний список маніфесту та scope
-Базовий маніфест застосунку Slack однаковий для Socket Mode і URL-адрес HTTP-запитів. Відрізняється лише блок `settings` (і `url` для slash-команди).
+Базовий маніфест застосунку Slack однаковий для Socket Mode і URL-адрес HTTP-запитів. Відрізняється лише блок `settings` (і `url` слеш-команди).
Базовий маніфест (Socket Mode за замовчуванням):
@@ -199,7 +199,7 @@ openclaw gateway
}
```
-Для **режиму URL-адрес HTTP-запитів** замініть `settings` на HTTP-варіант і додайте `url` до кожної slash-команди. Потрібна публічна URL-адреса:
+Для **режиму URL-адрес HTTP-запитів** замініть `settings` на HTTP-варіант і додайте `url` до кожної слеш-команди. Потрібна публічна URL-адреса:
```json
{
@@ -229,19 +229,19 @@ openclaw gateway
}
```
-### Додаткові параметри маніфесту
+### Додаткові налаштування маніфесту
-Показують різні можливості, які розширюють наведені вище параметри за замовчуванням.
+Описано різні можливості, які розширюють наведені вище значення за замовчуванням.
-
+
- Замість однієї налаштованої команди з нюансами можна використовувати кілька [нативних slash-команд](#commands-and-slash-behavior):
+ Можна використовувати кілька [вбудованих слеш-команд](#commands-and-slash-behavior) замість однієї налаштованої команди, з такими нюансами:
- Використовуйте `/agentstatus` замість `/status`, оскільки команда `/status` зарезервована.
- - Одночасно можна зробити доступними не більше 25 slash-команд.
+ - Одночасно можна зробити доступними не більше 25 слеш-команд.
- Замініть наявний розділ `features.slash_commands` підмножиною [доступних команд](/uk/tools/slash-commands#command-list):
+ Замініть наявний розділ `features.slash_commands` на підмножину [доступних команд](/uk/tools/slash-commands#command-list):
@@ -385,9 +385,9 @@ openclaw gateway
- Додайте bot scope `chat:write.customize`, якщо хочете, щоб у вихідних повідомленнях використовувалася identity активного агента (власне ім’я користувача та піктограма) замість identity застосунку Slack за замовчуванням.
+ Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували активну ідентичність агента (власні ім’я користувача та іконку) замість типової ідентичності застосунку Slack.
- Якщо ви використовуєте піктограму emoji, Slack очікує синтаксис `:emoji_name:`.
+ Якщо ви використовуєте іконку emoji, Slack очікує синтаксис `:emoji_name:`.
Якщо ви налаштовуєте `channels.slack.userToken`, типовими scope читання є:
@@ -405,27 +405,27 @@ openclaw gateway
## Модель токенів
-- `botToken` + `appToken` обов’язкові для Socket Mode.
-- Для HTTP-режиму потрібні `botToken` + `signingSecret`.
-- `botToken`, `appToken`, `signingSecret` і `userToken` приймають відкриті
+- Для Socket Mode потрібні `botToken` + `appToken`.
+- Для HTTP mode потрібні `botToken` + `signingSecret`.
+- `botToken`, `appToken`, `signingSecret` і `userToken` приймають звичайні текстові
рядки або об’єкти SecretRef.
- Токени в конфігурації мають пріоритет над резервними значеннями зі змінних середовища.
-- Резервні значення через змінні середовища `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовуються лише до облікового запису за замовчуванням.
-- `userToken` (`xoxp-...`) доступний лише в конфігурації (без резервного значення через змінні середовища) і за замовчуванням працює лише в режимі читання (`userTokenReadOnly: true`).
+- Резервне значення зі змінних середовища `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовується лише до облікового запису за замовчуванням.
+- `userToken` (`xoxp-...`) доступний лише в конфігурації (без резервного значення через змінні середовища) і за замовчуванням працює лише для читання (`userTokenReadOnly: true`).
Поведінка знімка стану:
-- Перевірка облікового запису Slack відстежує поля `*Source` і `*Status`
- для кожного облікового запису (`botToken`, `appToken`, `signingSecret`, `userToken`).
+- Перевірка облікового запису Slack відстежує для кожних облікових даних поля
+ `*Source` і `*Status` (`botToken`, `appToken`, `signingSecret`, `userToken`).
- Статус може бути `available`, `configured_unavailable` або `missing`.
- `configured_unavailable` означає, що обліковий запис налаштовано через SecretRef
- або інше неінлайнове джерело секретів, але поточний шлях команди/виконання
+ або інше не вбудоване джерело секретів, але поточний шлях команди/виконання
не зміг визначити фактичне значення.
-- У HTTP-режимі включається `signingSecretStatus`; у Socket Mode
- обов’язковою парою є `botTokenStatus` + `appTokenStatus`.
+- У HTTP mode включається `signingSecretStatus`; у Socket Mode
+ потрібна пара — `botTokenStatus` + `appTokenStatus`.
-Для дій/читання каталогу токен користувача може мати пріоритет, якщо його налаштовано. Для запису пріоритетним лишається токен бота; запис через токен користувача дозволяється лише коли `userTokenReadOnly: false`, а токен бота недоступний.
+Для дій/читання каталогів може надаватися перевага токену користувача, якщо його налаштовано. Для запису перевага все одно надається bot token; запис через user token дозволений лише коли `userTokenReadOnly: false`, а bot token недоступний.
## Дії та обмеження
@@ -434,8 +434,8 @@ openclaw gateway
Доступні групи дій у поточному інструментарії Slack:
-| Група | За замовчуванням |
-| ---------- | ---------------- |
+| Група | Типово |
+| ---------- | ------- |
| messages | enabled |
| reactions | enabled |
| pins | enabled |
@@ -447,29 +447,29 @@ openclaw gateway
## Керування доступом і маршрутизація
-
- `channels.slack.dmPolicy` керує доступом до приватних повідомлень (застаріле: `channels.slack.dm.policy`):
+
+ `channels.slack.dmPolicy` керує доступом до DM (застаріле: `channels.slack.dm.policy`):
- - `pairing` (за замовчуванням)
+ - `pairing` (типово)
- `allowlist`
- `open` (потребує, щоб `channels.slack.allowFrom` містив `"*"`; застаріле: `channels.slack.dm.allowFrom`)
- `disabled`
- Прапорці приватних повідомлень:
+ Прапорці DM:
- - `dm.enabled` (за замовчуванням true)
+ - `dm.enabled` (типово true)
- `channels.slack.allowFrom` (рекомендовано)
- `dm.allowFrom` (застаріле)
- - `dm.groupEnabled` (для групових приватних повідомлень за замовчуванням false)
- - `dm.groupChannels` (необов’язковий allowlist для MPIM)
+ - `dm.groupEnabled` (для групових DM типово false)
+ - `dm.groupChannels` (необов’язковий allowlist MPIM)
- Пріоритет для багатьох облікових записів:
+ Пріоритет для кількох облікових записів:
- `channels.slack.accounts.default.allowFrom` застосовується лише до облікового запису `default`.
- Іменовані облікові записи успадковують `channels.slack.allowFrom`, якщо їхній власний `allowFrom` не задано.
- Іменовані облікові записи не успадковують `channels.slack.accounts.default.allowFrom`.
- Pairing у приватних повідомленнях використовує `openclaw pairing approve slack `.
+ Прив’язка в DM використовує `openclaw pairing approve slack `.
@@ -480,28 +480,28 @@ openclaw gateway
- `allowlist`
- `disabled`
- Allowlist каналів розміщується в `channels.slack.channels` і має використовувати стабільні ID каналів.
+ Allowlist каналів знаходиться в `channels.slack.channels` і має використовувати стабільні ID каналів.
- Примітка щодо виконання: якщо `channels.slack` повністю відсутній (налаштування лише через змінні середовища), під час виконання використовується резервне значення `groupPolicy="allowlist"` і записується попередження в журнал (навіть якщо встановлено `channels.defaults.groupPolicy`).
+ Примітка щодо runtime: якщо `channels.slack` повністю відсутній (налаштування лише через env), runtime використовує резервне значення `groupPolicy="allowlist"` і записує попередження в журнал (навіть якщо задано `channels.defaults.groupPolicy`).
- Визначення імені/ID:
+ Визначення імен/ID:
- - записи allowlist каналів і записи allowlist приватних повідомлень визначаються під час запуску, якщо доступ токена це дозволяє
- - записи імен каналів, які не вдалося визначити, зберігаються як налаштовані, але за замовчуванням ігноруються для маршрутизації
- - авторизація вхідних повідомлень і маршрутизація каналів за замовчуванням орієнтуються спочатку на ID; пряме зіставлення імені користувача/slug потребує `channels.slack.dangerouslyAllowNameMatching: true`
+ - записи allowlist каналів і DM allowlist визначаються під час запуску, якщо доступ токена це дозволяє
+ - нерозпізнані записи назв каналів зберігаються як налаштовано, але типово ігноруються під час маршрутизації
+ - авторизація вхідних повідомлень і маршрутизація каналів типово працюють за принципом ID-first; пряме зіставлення імен користувачів/slug потребує `channels.slack.dangerouslyAllowNameMatching: true`
- Повідомлення в каналах за замовчуванням обробляються лише за наявності згадки.
+ Повідомлення в каналах типово проходять через обмеження за згадками.
Джерела згадок:
- явна згадка застосунку (`<@botId>`)
- - шаблони regex для згадок (`agents.list[].groupChat.mentionPatterns`, резервне значення — `messages.groupChat.mentionPatterns`)
- - неявна поведінка відповіді в треді боту (вимикається, коли `thread.requireExplicitMention` має значення `true`)
+ - шаблони regex для згадок (`agents.list[].groupChat.mentionPatterns`, резервне значення `messages.groupChat.mentionPatterns`)
+ - неявна поведінка reply-to-bot у тредах (вимикається, коли `thread.requireExplicitMention` має значення `true`)
- Керування на рівні каналу (`channels.slack.channels.`; імена — лише через визначення під час запуску або `dangerouslyAllowNameMatching`):
+ Керування для кожного каналу (`channels.slack.channels.`; імена лише через визначення під час запуску або `dangerouslyAllowNameMatching`):
- `requireMention`
- `users` (allowlist)
@@ -509,45 +509,45 @@ openclaw gateway
- `skills`
- `systemPrompt`
- `tools`, `toolsBySender`
- - формат ключа `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або шаблон `"*"`
+ - формат ключа `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або wildcard `"*"`
(застарілі ключі без префікса, як і раніше, зіставляються лише з `id:`)
-## Треди, сесії та теги відповідей
+## Треди, сесії та теги відповіді
-- Приватні повідомлення маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`.
-- Із типовим `session.dmScope=main` приватні повідомлення Slack згортаються в основну сесію агента.
+- DM маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`.
+- Із типовим `session.dmScope=main` DM у Slack згортаються в основну сесію агента.
- Сесії каналів: `agent::slack:channel:`.
-- Відповіді в треді можуть створювати суфікси сесій треду (`:thread:`), коли це застосовно.
+- Відповіді в тредах можуть створювати суфікси сесій тредів (`:thread:`), коли це застосовно.
- Типове значення `channels.slack.thread.historyScope` — `thread`; типове значення `thread.inheritParent` — `false`.
-- `channels.slack.thread.initialHistoryLimit` керує кількістю наявних повідомлень треду, які отримуються під час запуску нової сесії треду (за замовчуванням `20`; встановіть `0`, щоб вимкнути).
-- `channels.slack.thread.requireExplicitMention` (за замовчуванням `false`): якщо `true`, пригнічує неявні згадки в треді, тож бот відповідає лише на явні згадки `@bot` усередині тредів, навіть якщо бот уже брав участь у треді. Без цього відповіді в треді, де бот уже брав участь, обходять обмеження `requireMention`.
+- `channels.slack.thread.initialHistoryLimit` визначає, скільки наявних повідомлень треду буде отримано, коли починається нова сесія треду (типово `20`; встановіть `0`, щоб вимкнути).
+- `channels.slack.thread.requireExplicitMention` (типово `false`): коли має значення `true`, неявні згадки в тредах пригнічуються, і бот відповідає лише на явні згадки `@bot` усередині тредів, навіть якщо бот уже брав участь у треді. Без цього відповіді в треді за участю бота обходять обмеження `requireMention`.
-Елементи керування тредами відповідей:
+Керування тредами відповідей:
-- `channels.slack.replyToMode`: `off|first|all|batched` (за замовчуванням `off`)
-- `channels.slack.replyToModeByChatType`: для кожного `direct|group|channel`
+- `channels.slack.replyToMode`: `off|first|all|batched` (типово `off`)
+- `channels.slack.replyToModeByChatType`: для `direct|group|channel`
- застаріле резервне значення для прямих чатів: `channels.slack.dm.replyToMode`
-Підтримуються ручні теги відповідей:
+Підтримуються ручні теги відповіді:
- `[[reply_to_current]]`
- `[[reply_to:]]`
-Примітка: `replyToMode="off"` вимикає **усі** треди відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все ще враховуються в режимі `"off"` — у Slack треди приховують повідомлення з каналу, тоді як відповіді в Telegram залишаються видимими вбудовано.
+Примітка: `replyToMode="off"` вимикає **усі** треди відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все ще враховуються в режимі `"off"` — треди Slack приховують повідомлення з каналу, тоді як відповіді Telegram залишаються видимими вбудовано.
-## Реакції підтвердження
+## Реакції-підтвердження
-`ackReaction` надсилає emoji підтвердження, поки OpenClaw обробляє вхідне повідомлення.
+`ackReaction` надсилає emoji-підтвердження, поки OpenClaw обробляє вхідне повідомлення.
Порядок визначення:
- `channels.slack.accounts..ackReaction`
- `channels.slack.ackReaction`
- `messages.ackReaction`
-- резервне значення emoji identity агента (`agents.list[].identity.emoji`, інакше "👀")
+- резервне значення emoji ідентичності агента (`agents.list[].identity.emoji`, інакше "👀")
Примітки:
@@ -556,22 +556,22 @@ openclaw gateway
## Потокова передача тексту
-`channels.slack.streaming` керує поведінкою попереднього перегляду в реальному часі:
+`channels.slack.streaming` керує поведінкою live preview:
-- `off`: вимкнути потоковий попередній перегляд у реальному часі.
-- `partial` (за замовчуванням): замінювати текст попереднього перегляду найновішим частковим виводом.
-- `block`: додавати фрагментовані оновлення попереднього перегляду.
-- `progress`: показувати текст стану поступу під час генерування, а потім надсилати остаточний текст.
-- `streaming.preview.toolProgress`: коли активний чернетковий попередній перегляд, спрямовувати оновлення інструментів/поступу в те саме редаговане повідомлення попереднього перегляду (за замовчуванням: `true`). Встановіть `false`, щоб зберегти окремі повідомлення для інструментів/поступу.
+- `off`: вимкнути потокову live preview.
+- `partial` (типово): замінювати текст попереднього перегляду останнім частковим виводом.
+- `block`: додавати оновлення попереднього перегляду частинами.
+- `progress`: показувати текст стану прогресу під час генерації, а потім надсилати фінальний текст.
+- `streaming.preview.toolProgress`: коли чернетковий попередній перегляд активний, спрямовувати оновлення інструментів/прогресу в те саме редаговане повідомлення попереднього перегляду (типово: `true`). Встановіть `false`, щоб залишити окремі повідомлення інструментів/прогресу.
-`channels.slack.streaming.nativeTransport` керує нативною потоковою передачею тексту Slack, коли `channels.slack.streaming.mode` має значення `partial` (за замовчуванням: `true`).
+`channels.slack.streaming.nativeTransport` керує нативною потоковою передачею тексту Slack, коли `channels.slack.streaming.mode` має значення `partial` (типово: `true`).
-- Для нативної потокової передачі тексту та відображення стану треду асистента Slack має бути доступний тред відповіді. Вибір треду, як і раніше, визначається `replyToMode`.
-- Кореневі повідомлення в каналах і групових чатах усе ще можуть використовувати звичайний чернетковий попередній перегляд, коли нативна потокова передача недоступна.
-- Приватні повідомлення Slack верхнього рівня за замовчуванням лишаються поза тредами, тому не показують попередній перегляд у стилі треду; використовуйте відповіді в треді або `typingReaction`, якщо хочете бачити поступ там.
-- Для медіа й нетекстових payload використовується звичайна доставка.
-- Остаточні медіа/помилкові відповіді скасовують очікувані редагування попереднього перегляду; придатні остаточні текстові/block-відповіді скидаються лише тоді, коли можуть редагувати попередній перегляд на місці.
-- Якщо потокова передача зламається посеред відповіді, OpenClaw повертається до звичайної доставки для решти payload.
+- Для нативної потокової передачі тексту та появи статусу треду Slack assistant має бути доступний тред відповіді. Вибір треду, як і раніше, підпорядковується `replyToMode`.
+- Корені каналів і групових чатів усе ще можуть використовувати звичайний чернетковий попередній перегляд, коли нативна потокова передача недоступна.
+- DM верхнього рівня в Slack типово залишаються поза тредами, тому не показують попередній перегляд у стилі треду; використовуйте відповіді в тредах або `typingReaction`, якщо там потрібен видимий прогрес.
+- Для медіа та нетекстових payload використовується звичайне доставлення.
+- Фінальні повідомлення media/error скасовують відкладені редагування попереднього перегляду; придатні фінальні повідомлення text/block скидаються лише тоді, коли можуть відредагувати попередній перегляд на місці.
+- Якщо потокова передача зламається посеред відповіді, OpenClaw переходить на звичайне доставлення для решти payload.
Використовуйте чернетковий попередній перегляд замість нативної потокової передачі тексту Slack:
@@ -590,13 +590,13 @@ openclaw gateway
Застарілі ключі:
-- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрується до `channels.slack.streaming.mode`.
-- булеве `channels.slack.streaming` автоматично мігрується до `channels.slack.streaming.mode` і `channels.slack.streaming.nativeTransport`.
-- застаріле `channels.slack.nativeStreaming` автоматично мігрується до `channels.slack.streaming.nativeTransport`.
+- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрує до `channels.slack.streaming.mode`.
+- булеве значення `channels.slack.streaming` автоматично мігрує до `channels.slack.streaming.mode` і `channels.slack.streaming.nativeTransport`.
+- застаріле `channels.slack.nativeStreaming` автоматично мігрує до `channels.slack.streaming.nativeTransport`.
-## Резервна реакція введення
+## Резервна реакція набору тексту
-`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її після завершення виконання. Це найбільш корисно поза відповідями в треді, де використовується типовий індикатор стану "is typing...".
+`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її після завершення виконання. Це найкорисніше поза відповідями в тредах, де використовується типовий індикатор стану "is typing...".
Порядок визначення:
@@ -606,39 +606,39 @@ openclaw gateway
Примітки:
- Slack очікує shortcodes (наприклад, `"hourglass_flowing_sand"`).
-- Реакція є best-effort, і після завершення відповіді або шляху помилки автоматично робиться спроба очищення.
+- Реакція виконується за принципом best-effort, а очищення автоматично намагається виконатися після завершення відповіді або шляху помилки.
-## Медіа, розбиття на частини та доставка
+## Медіа, розбиття на частини та доставлення
- Вкладення файлів Slack завантажуються з приватних URL-адрес, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, якщо отримання успішне та дозволяють обмеження розміру.
+ Файлові вкладення Slack завантажуються з приватних URL-адрес, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, якщо отримання успішне та дозволяють обмеження розміру.
- Типове обмеження розміру вхідних даних під час виконання — `20MB`, якщо його не перевизначено через `channels.slack.mediaMaxMb`.
+ Типове обмеження розміру вхідних даних у runtime — `20MB`, якщо не перевизначено через `channels.slack.mediaMaxMb`.
- - текстові частини використовують `channels.slack.textChunkLimit` (за замовчуванням 4000)
+ - текстові частини використовують `channels.slack.textChunkLimit` (типово 4000)
- `channels.slack.chunkMode="newline"` вмикає розбиття спочатку за абзацами
- - надсилання файлів використовує API завантаження Slack і може включати відповіді в треді (`thread_ts`)
- - обмеження вихідних медіа використовує `channels.slack.mediaMaxMb`, якщо налаштовано; інакше надсилання в канали використовує типові значення MIME-kind із конвеєра медіа
+ - надсилання файлів використовує API завантаження Slack і може включати відповіді в тредах (`thread_ts`)
+ - обмеження вихідних медіа дотримується `channels.slack.mediaMaxMb`, якщо його налаштовано; інакше надсилання в канал використовують типові значення MIME-kind із медіапайплайна
-
+
Бажані явні цілі:
- - `user:` для приватних повідомлень
+ - `user:` для DM
- `channel:` для каналів
- Приватні повідомлення Slack відкриваються через API розмов Slack під час надсилання до цілей користувача.
+ DM у Slack відкриваються через API розмов Slack під час надсилання до цілей користувача.
-## Команди та поведінка slash-команд
+## Команди та поведінка слеш-команд
-Slash-команди відображаються в Slack або як одна налаштована команда, або як кілька нативних команд. Налаштуйте `channels.slack.slashCommand`, щоб змінити типові параметри команди:
+Слеш-команди відображаються в Slack або як одна налаштована команда, або як кілька вбудованих команд. Налаштуйте `channels.slack.slashCommand`, щоб змінити типові параметри команди:
- `enabled: false`
- `name: "openclaw"`
@@ -649,32 +649,32 @@ Slash-команди відображаються в Slack або як одна
/openclaw /help
```
-Нативні команди потребують [додаткових параметрів маніфесту](#additional-manifest-settings) у вашому застосунку Slack і вмикаються через `channels.slack.commands.native: true` або натомість через `commands.native: true` у глобальних конфігураціях.
+Вбудовані команди потребують [додаткових налаштувань маніфесту](#additional-manifest-settings) у вашому застосунку Slack і вмикаються через `channels.slack.commands.native: true` або `commands.native: true` у глобальних конфігураціях.
-- Автоматичний режим нативних команд для Slack **вимкнений**, тому `commands.native: "auto"` не вмикає нативні команди Slack.
+- Режим auto для вбудованих команд у Slack **вимкнений**, тому `commands.native: "auto"` не вмикає вбудовані команди Slack.
```txt
/help
```
-Нативні меню аргументів використовують адаптивну стратегію рендерингу, яка показує модальне вікно підтвердження перед відправленням вибраного значення параметра:
+Меню аргументів вбудованих команд використовують адаптивну стратегію рендерингу, яка показує модальне вікно підтвердження перед відправленням значення вибраного параметра:
-- до 5 параметрів: блоки кнопок
-- 6–100 параметрів: статичне меню вибору
-- понад 100 параметрів: зовнішній вибір з асинхронною фільтрацією параметрів, якщо доступні обробники параметрів інтерактивності
-- перевищено ліміти Slack: закодовані значення параметрів повертаються до кнопок
+- до 5 параметрів: button blocks
+- 6-100 параметрів: static select menu
+- понад 100 параметрів: external select з асинхронною фільтрацією параметрів, якщо доступні обробники параметрів interactivity
+- перевищено ліміти Slack: закодовані значення параметрів повертаються до buttons
```txt
/think
```
-Сесії slash-команд використовують ізольовані ключі на кшталт `agent::slack:slash:` і все одно маршрутизують виконання команд до цільової сесії розмови через `CommandTargetSessionKey`.
+Сесії слеш-команд використовують ізольовані ключі на кшталт `agent::slack:slash:` і все одно маршрутизують виконання команд до цільової сесії розмови через `CommandTargetSessionKey`.
## Інтерактивні відповіді
-Slack може відображати інтерактивні елементи керування у відповідях, створених агентом, але цю можливість за замовчуванням вимкнено.
+Slack може рендерити інтерактивні елементи відповіді, створені агентом, але ця можливість типово вимкнена.
-Увімкнути глобально:
+Увімкніть її глобально:
```json5
{
@@ -688,7 +688,7 @@ Slack може відображати інтерактивні елементи
}
```
-Або увімкнути лише для одного облікового запису Slack:
+Або увімкніть її лише для одного облікового запису Slack:
```json5
{
@@ -706,44 +706,43 @@ Slack може відображати інтерактивні елементи
}
```
-Коли увімкнено, агенти можуть генерувати директиви відповідей лише для Slack:
+Коли її ввімкнено, агенти можуть надсилати директиви відповіді лише для Slack:
- `[[slack_buttons: Approve:approve, Reject:reject]]`
- `[[slack_select: Choose a target | Canary:canary, Production:production]]`
-Ці директиви компілюються в Slack Block Kit і спрямовують натискання або вибір назад через наявний шлях подій взаємодії Slack.
+Ці директиви компілюються в Slack Block Kit і маршрутизують натискання або вибір назад через наявний шлях подій взаємодії Slack.
Примітки:
-- Це інтерфейс, специфічний для Slack. Інші канали не перекладають директиви Slack Block Kit у власні системи кнопок.
-- Значення інтерактивних зворотних викликів — це непрозорі токени, згенеровані OpenClaw, а не необроблені значення, створені агентом.
-- Якщо згенеровані інтерактивні блоки перевищують обмеження Slack Block Kit, OpenClaw повертається до початкової текстової відповіді замість надсилання невалідного payload blocks.
+- Це UI, специфічний для Slack. Інші канали не перекладають директиви Slack Block Kit у власні системи кнопок.
+- Значення інтерактивних callback — це непрозорі токени, згенеровані OpenClaw, а не сирі значення, створені агентом.
+- Якщо згенеровані інтерактивні блоки перевищують ліміти Slack Block Kit, OpenClaw повертається до початкової текстової відповіді замість надсилання невалідного payload blocks.
-## Підтвердження exec у Slack
+## Погодження exec у Slack
-Slack може виступати як нативний клієнт підтвердження з інтерактивними кнопками та взаємодіями, замість повернення до Web UI або термінала.
+Slack може працювати як нативний клієнт погодження з інтерактивними кнопками та взаємодіями замість переходу до Web UI або термінала.
-- Підтвердження exec використовують `channels.slack.execApprovals.*` для нативної маршрутизації в приватних повідомленнях/каналах.
-- Підтвердження Plugin також можуть визначатися через ту саму нативну поверхню кнопок Slack, коли запит уже потрапляє в Slack і тип ID підтвердження — `plugin:`.
-- Авторизація того, хто підтверджує, усе одно застосовується: лише користувачі, ідентифіковані як ті, хто може підтверджувати, можуть схвалювати або відхиляти запити через Slack.
+- Погодження exec використовують `channels.slack.execApprovals.*` для нативної маршрутизації DM/каналів.
+- Погодження Plugin, як і раніше, можуть визначатися через ту саму Slack-native поверхню кнопок, коли запит уже надходить у Slack, а тип id погодження — `plugin:`.
+- Авторизація того, хто погоджує, як і раніше, примусово перевіряється: лише користувачі, ідентифіковані як ті, хто погоджує, можуть погоджувати або відхиляти запити через Slack.
-Це використовує ту саму спільну поверхню кнопок підтвердження, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити на підтвердження відображаються як кнопки Block Kit безпосередньо в розмові.
-Коли ці кнопки присутні, вони є основним UX підтвердження; OpenClaw
-має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що
-підтвердження в чаті недоступні або ручне підтвердження є єдиним шляхом.
+Це використовує ту саму спільну поверхню кнопок погодження, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити на погодження відображаються як кнопки Block Kit безпосередньо в розмові.
+Коли ці кнопки присутні, вони є основним UX погодження; OpenClaw
+має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що погодження в чаті недоступні або ручне погодження — єдиний шлях.
Шлях конфігурації:
- `channels.slack.execApprovals.enabled`
-- `channels.slack.execApprovals.approvers` (необов’язково; за можливості використовує резервне значення з `commands.ownerAllowFrom`)
-- `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, за замовчуванням: `dm`)
+- `channels.slack.execApprovals.approvers` (необов’язково; за можливості використовує резервне значення `commands.ownerAllowFrom`)
+- `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, типово: `dm`)
- `agentFilter`, `sessionFilter`
-Slack автоматично вмикає нативні підтвердження exec, коли `enabled` не задано або має значення `"auto"` і визначається принаймні один
-користувач, який може підтверджувати. Встановіть `enabled: false`, щоб явно вимкнути Slack як нативний клієнт підтвердження.
-Встановіть `enabled: true`, щоб примусово ввімкнути нативні підтвердження, коли визначаються користувачі, які можуть підтверджувати.
+Slack автоматично вмикає нативні погодження exec, коли `enabled` не задано або має значення `"auto"` і визначається принаймні один користувач, що погоджує.
+Установіть `enabled: false`, щоб явно вимкнути Slack як нативний клієнт погодження.
+Установіть `enabled: true`, щоб примусово ввімкнути нативні погодження, коли визначаються користувачі, що погоджують.
-Типова поведінка без явної конфігурації підтверджень exec для Slack:
+Типова поведінка без явної конфігурації погодження exec для Slack:
```json5
{
@@ -753,8 +752,8 @@ Slack автоматично вмикає нативні підтверджен
}
```
-Явна нативна конфігурація Slack потрібна лише тоді, коли ви хочете перевизначити тих, хто може підтверджувати, додати фільтри або
-використовувати доставку в початковий чат:
+Явна Slack-native конфігурація потрібна лише тоді, коли ви хочете перевизначити користувачів, що погоджують, додати фільтри або
+використовувати доставлення до чату-джерела:
```json5
{
@@ -770,37 +769,38 @@ Slack автоматично вмикає нативні підтверджен
}
```
-Спільне переспрямування `approvals.exec` налаштовується окремо. Використовуйте його лише тоді, коли запити на підтвердження exec також мають
-маршрутизуватися до інших чатів або явно вказаних позасмугових цілей. Спільне переспрямування `approvals.plugin` також
-налаштовується окремо; нативні кнопки Slack все одно можуть визначати підтвердження Plugin, коли ці запити вже надходять
+Спільне переспрямування `approvals.exec` налаштовується окремо. Використовуйте його лише тоді, коли запити на погодження exec також мають
+маршрутизуватися до інших чатів або явно заданих зовнішніх цілей. Спільне переспрямування `approvals.plugin` також
+налаштовується окремо; Slack-native кнопки все одно можуть обробляти погодження Plugin, коли ці запити вже надходять
у Slack.
-`/approve` у тому самому чаті також працює в каналах Slack і приватних повідомленнях, які вже підтримують команди. Див. [Підтвердження exec](/uk/tools/exec-approvals), щоб ознайомитися з повною моделлю переспрямування підтверджень.
+`/approve` у тому самому чаті також працює в каналах і DM Slack, які вже підтримують команди. Повну модель переспрямування погоджень див. у [Погодження exec](/uk/tools/exec-approvals).
## Події та операційна поведінка
-- Редагування/видалення повідомлень і трансляції тредів зіставляються із системними подіями.
+- Редагування/видалення повідомлень зіставляються із системними подіями.
+- Thread broadcasts (відповіді в тредах з опцією "Also send to channel") обробляються як звичайні повідомлення користувачів.
- Події додавання/видалення реакцій зіставляються із системними подіями.
- Події входу/виходу учасників, створення/перейменування каналів і додавання/видалення закріплень зіставляються із системними подіями.
-- `channel_id_changed` може мігрувати ключі конфігурації каналу, коли ввімкнено `configWrites`.
-- Метадані теми/призначення каналу вважаються недовіреним контекстом і можуть додаватися до контексту маршрутизації.
-- Ініціатор треду та початкове заповнення контексту історії треду фільтруються відповідно до налаштованих allowlist відправників, коли це застосовно.
-- Дії блоків і взаємодії з модальними вікнами генерують структуровані системні події `Slack interaction: ...` з розширеними полями payload:
+- `channel_id_changed` може мігрувати ключі конфігурації каналів, коли ввімкнено `configWrites`.
+- Метадані теми/призначення каналу вважаються недовіреним контекстом і можуть впроваджуватися в контекст маршрутизації.
+- Ініціатор треду та початкове наповнення контексту історією треду фільтруються за налаштованими allowlist відправників, де це застосовно.
+- Дії блоків і взаємодії з модальними вікнами створюють структуровані системні події `Slack interaction: ...` з насиченими полями payload:
- дії блоків: вибрані значення, мітки, значення picker і метадані `workflow_*`
- - події модальних вікон `view_submission` і `view_closed` з маршрутизованими метаданими каналу та даними форм
+ - події модальних вікон `view_submission` і `view_closed` з метаданими маршрутизованого каналу та полями форм
-## Довідник з конфігурації
+## Довідник конфігурації
-Основний довідник: [Довідник з конфігурації - Slack](/uk/gateway/config-channels#slack).
+Основний довідник: [Довідник конфігурації - Slack](/uk/gateway/config-channels#slack).
-
+
-- режим/автентифікація: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
-- доступ до приватних повідомлень: `dm.enabled`, `dmPolicy`, `allowFrom` (застарілі: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
-- перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний варіант; не вмикайте без потреби)
+- mode/auth: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
+- доступ до DM: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
+- перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний режим; залишайте вимкненим, якщо немає потреби)
- доступ до каналів: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
- треди/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
-- доставка: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `streaming.nativeTransport`, `streaming.preview.toolProgress`
+- доставлення: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `streaming.nativeTransport`, `streaming.preview.toolProgress`
- операції/можливості: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly`
@@ -809,12 +809,12 @@ Slack автоматично вмикає нативні підтверджен
- Перевірте по порядку:
+ Перевірте по черзі:
- `groupPolicy`
- allowlist каналів (`channels.slack.channels`)
- `requireMention`
- - allowlist `users` для конкретного каналу
+ - allowlist `users` для кожного каналу
Корисні команди:
@@ -826,14 +826,14 @@ openclaw doctor
-
+
Перевірте:
- `channels.slack.dm.enabled`
- `channels.slack.dmPolicy` (або застаріле `channels.slack.dm.policy`)
- - підтвердження pairing / записи allowlist
- - події приватних повідомлень Slack Assistant: докладні журнали з `drop message_changed`
- зазвичай означають, що Slack надіслав відредаговану подію треду Assistant без
+ - погодження прив’язки / записи allowlist
+ - події Slack Assistant DM: докладні журнали з фразою `drop message_changed`
+ зазвичай означають, що Slack надіслав подію редагування треду Assistant без
придатного для відновлення відправника-людини в метаданих повідомлення
```bash
@@ -842,35 +842,35 @@ openclaw pairing list slack
-
- Перевірте токени бота й застосунку та ввімкнення Socket Mode в налаштуваннях застосунку Slack.
+
+ Перевірте bot token + app token і те, що Socket Mode увімкнено в налаштуваннях застосунку Slack.
Якщо `openclaw channels status --probe --json` показує `botTokenStatus` або
`appTokenStatus: "configured_unavailable"`, обліковий запис Slack
- налаштований, але поточне середовище виконання не змогло визначити значення,
- яке використовує SecretRef.
+ налаштовано, але поточний runtime не зміг визначити значення,
+ що надходить через SecretRef.
-
+
Перевірте:
- signing secret
- шлях webhook
- - URL-адреси запитів Slack (Events + Interactivity + Slash Commands)
+ - Slack Request URLs (Events + Interactivity + Slash Commands)
- унікальний `webhookPath` для кожного HTTP-облікового запису
- Якщо у знімках облікових записів з’являється `signingSecretStatus: "configured_unavailable"`,
- HTTP-обліковий запис налаштований, але поточне середовище виконання не змогло
- визначити signing secret, який використовує SecretRef.
+ Якщо в знімках облікового запису з’являється `signingSecretStatus: "configured_unavailable"`,
+ HTTP-обліковий запис налаштовано, але поточний runtime не зміг
+ визначити signing secret, що надходить через SecretRef.
-
- Перевірте, що саме ви планували використовувати:
+
+ Перевірте, що саме ви хотіли використати:
- - режим нативних команд (`channels.slack.commands.native: true`) з відповідними slash-командами, зареєстрованими в Slack
- - або режим однієї slash-команди (`channels.slack.slashCommand.enabled: true`)
+ - режим вбудованих команд (`channels.slack.commands.native: true`) з відповідними слеш-командами, зареєстрованими в Slack
+ - або режим однієї слеш-команди (`channels.slack.slashCommand.enabled: true`)
Також перевірте `commands.useAccessGroups` і allowlist каналів/користувачів.
@@ -880,11 +880,11 @@ openclaw pairing list slack
## Пов’язане
-
- Зіставити користувача Slack із Gateway.
+
+ Прив’яжіть користувача Slack до Gateway.
- Поведінка каналів і групових приватних повідомлень.
+ Поведінка каналів і групових DM.
Маршрутизація вхідних повідомлень до агентів.
@@ -895,7 +895,7 @@ openclaw pairing list slack
Структура конфігурації та пріоритетність.
-
+
Каталог команд і поведінка.
diff --git a/docs/uk/cli/browser.md b/docs/uk/cli/browser.md
index 4874225f2..801135596 100644
--- a/docs/uk/cli/browser.md
+++ b/docs/uk/cli/browser.md
@@ -1,15 +1,15 @@
---
read_when:
- - Ви використовуєте `openclaw browser` і хочете приклади для типових завдань
+ - Ви використовуєте `openclaw browser` і хочете приклади для поширених завдань
- Ви хочете керувати браузером, що працює на іншій машині, через вузол-хост
- - Ви хочете підключитися до локального Chrome, у якому вже виконано вхід, через Chrome MCP
-summary: Довідка CLI для `openclaw browser` (життєвий цикл, профілі, вкладки, дії, стан і налагодження)
+ - Ви хочете під’єднатися до свого локального Chrome із виконаним входом через Chrome MCP
+summary: Довідник CLI для `openclaw browser` (життєвий цикл, профілі, вкладки, дії, стан і налагодження)
title: Браузер
x-i18n:
- generated_at: "2026-04-24T04:11:43Z"
+ generated_at: "2026-04-24T23:30:41Z"
model: gpt-5.4
provider: openai
- source_hash: 1b93ea053b7fc047fad79397e0298cc530673a64d5873d98be9f910df1ea2fde
+ source_hash: 07d8aad1aa28f9504d201d156178e9d7d6aa59a684aa26cde84d7946480364f6
source_path: cli/browser.md
workflow: 15
---
@@ -20,16 +20,16 @@ x-i18n:
Пов’язане:
-- Інструмент Browser + API: [Інструмент Browser](/uk/tools/browser)
+- Інструмент браузера + API: [Browser tool](/uk/tools/browser)
## Поширені прапорці
- `--url `: URL WebSocket Gateway (типово з конфігурації).
- `--token `: токен Gateway (якщо потрібен).
- `--timeout `: тайм-аут запиту (мс).
-- `--expect-final`: очікувати фінальну відповідь Gateway.
-- `--browser-profile `: вибрати профіль браузера (типовий береться з конфігурації).
-- `--json`: машиночитаний вивід (де підтримується).
+- `--expect-final`: чекати на фінальну відповідь Gateway.
+- `--browser-profile `: вибрати профіль браузера (типовий із конфігурації).
+- `--json`: вивід у машиночитному форматі (де підтримується).
## Швидкий старт (локально)
@@ -42,7 +42,7 @@ openclaw browser --browser-profile openclaw snapshot
## Швидке усунення несправностей
-Якщо `start` завершується помилкою `not reachable after start`, спочатку перевірте готовність CDP. Якщо `start` і `tabs` виконуються успішно, але `open` або `navigate` не працюють, площина керування браузером справна, і збій зазвичай спричинений політикою SSRF для навігації.
+Якщо `start` завершується помилкою `not reachable after start`, спочатку перевірте готовність CDP. Якщо `start` і `tabs` виконуються успішно, але `open` або `navigate` завершуються помилкою, площина керування браузером працює справно, а причина зазвичай у політиці SSRF для навігації.
Мінімальна послідовність:
@@ -52,7 +52,7 @@ openclaw browser --browser-profile openclaw tabs
openclaw browser --browser-profile openclaw open https://example.com
```
-Докладні вказівки: [Усунення несправностей Browser](/uk/tools/browser#cdp-startup-failure-vs-navigation-ssrf-block)
+Докладні вказівки: [Усунення несправностей браузера](/uk/tools/browser#cdp-startup-failure-vs-navigation-ssrf-block)
## Життєвий цикл
@@ -65,19 +65,15 @@ openclaw browser --browser-profile openclaw reset-profile
Примітки:
-- Для профілів `attachOnly` і віддалених CDP `openclaw browser stop` закриває
- активну сесію керування та очищає тимчасові перевизначення емуляції, навіть
- якщо OpenClaw сам не запускав процес браузера.
-- Для локальних керованих профілів `openclaw browser stop` зупиняє запущений
- процес браузера.
+- Для профілів `attachOnly` і віддалених профілів CDP команда `openclaw browser stop` закриває активну сесію керування та очищає тимчасові перевизначення емуляції, навіть якщо OpenClaw не запускав процес браузера самостійно.
+- Для локальних керованих профілів `openclaw browser stop` зупиняє запущений процес браузера.
## Якщо команда відсутня
-Якщо `openclaw browser` — невідома команда, перевірте `plugins.allow` у
+Якщо `openclaw browser` є невідомою командою, перевірте `plugins.allow` у
`~/.openclaw/openclaw.json`.
-Коли `plugins.allow` присутній, вбудований Plugin браузера має бути вказаний
-явно:
+Коли `plugins.allow` присутній, вбудований Plugin браузера має бути явно вказаний у списку:
```json5
{
@@ -87,18 +83,17 @@ openclaw browser --browser-profile openclaw reset-profile
}
```
-`browser.enabled=true` не відновлює підкоманду CLI, якщо список дозволених Plugin
-виключає `browser`.
+`browser.enabled=true` не відновлює підкоманду CLI, якщо список дозволених Plugin-ів виключає `browser`.
-Пов’язане: [Інструмент Browser](/uk/tools/browser#missing-browser-command-or-tool)
+Пов’язане: [Browser tool](/uk/tools/browser#missing-browser-command-or-tool)
## Профілі
Профілі — це іменовані конфігурації маршрутизації браузера. На практиці:
-- `openclaw`: запускає або підключається до окремого екземпляра Chrome, керованого OpenClaw (ізольований каталог користувацьких даних).
-- `user`: керує вашою наявною сесією Chrome, у якій уже виконано вхід, через Chrome DevTools MCP.
-- власні профілі CDP: вказують на локальну або віддалену кінцеву точку CDP.
+- `openclaw`: запускає або під’єднується до окремого екземпляра Chrome, керованого OpenClaw (ізольований каталог користувацьких даних).
+- `user`: керує вашою наявною сесією Chrome з виконаним входом через Chrome DevTools MCP.
+- користувацькі профілі CDP: вказують на локальну або віддалену кінцеву точку CDP.
```bash
openclaw browser profiles
@@ -118,14 +113,18 @@ openclaw browser --browser-profile work tabs
```bash
openclaw browser tabs
-openclaw browser tab new
+openclaw browser tab new --label docs
+openclaw browser tab label t1 docs
openclaw browser tab select 2
openclaw browser tab close 2
-openclaw browser open https://docs.openclaw.ai
-openclaw browser focus
-openclaw browser close
+openclaw browser open https://docs.openclaw.ai --label docs
+openclaw browser focus docs
+openclaw browser close t1
```
+`tabs` повертає сирий `targetId` і стабільний `tabId`, наприклад `t1`. Ви також можете призначити мітку за допомогою `open --label`, `tab new --label` або `tab label`.
+`focus`, `close`, знімки та дії приймають сирий `targetId`, `tabId`, мітку або унікальний префікс target-id.
+
## Знімок / знімок екрана / дії
Знімок:
@@ -144,12 +143,10 @@ openclaw browser screenshot --ref e12
Примітки:
-- `--full-page` призначений лише для знімків сторінки; його не можна поєднувати з `--ref`
- або `--element`.
-- Профілі `existing-session` / `user` підтримують знімки екрана сторінки та знімки
- екрана `--ref` із виводу snapshot, але не підтримують знімки екрана CSS `--element`.
+- `--full-page` призначений лише для захоплення сторінки; його не можна поєднувати з `--ref` або `--element`.
+- Профілі `existing-session` / `user` підтримують знімки екрана сторінки та знімки екрана з `--ref` на основі виводу `snapshot`, але не підтримують знімки екрана CSS `--element`.
-Навігація/клік/введення (автоматизація інтерфейсу на основі ref):
+Navigate/click/type (автоматизація UI на основі ref):
```bash
openclaw browser navigate https://example.com
@@ -176,7 +173,7 @@ openclaw browser dialog --accept
## Стан і сховище
-Область перегляду + емуляція:
+Viewport + емуляція:
```bash
openclaw browser resize 1280 720
@@ -191,7 +188,7 @@ openclaw browser set headers '{"x-test":"1"}'
openclaw browser set credentials myuser mypass
```
-Файли cookie + сховище:
+Cookies + сховище:
```bash
openclaw browser cookies
@@ -226,34 +223,31 @@ openclaw browser create-profile --name brave-live --driver existing-session --us
openclaw browser --browser-profile chrome-live tabs
```
-Цей шлях працює лише на хості. Для Docker, безголових серверів, Browserless або інших віддалених налаштувань замість цього використовуйте профіль CDP.
+Цей шлях доступний лише на хості. Для Docker, headless-серверів, Browserless або інших віддалених конфігурацій замість цього використовуйте профіль CDP.
Поточні обмеження existing-session:
-- дії на основі snapshot використовують ref, а не CSS-селектори
-- `click` підтримує лише ліву кнопку миші
+- дії на основі `snapshot` використовують ref, а не CSS-селектори
+- `click` підтримує лише лівий клік
- `type` не підтримує `slowly=true`
- `press` не підтримує `delayMs`
-- `hover`, `scrollintoview`, `drag`, `select`, `fill` і `evaluate` відхиляють
- перевизначення тайм-ауту для окремого виклику
+- `hover`, `scrollintoview`, `drag`, `select`, `fill` і `evaluate` відхиляють перевизначення тайм-ауту для окремого виклику
- `select` підтримує лише одне значення
- `wait --load networkidle` не підтримується
-- завантаження файлів вимагає `--ref` / `--input-ref`, не підтримує CSS
- `--element`, і наразі підтримує лише один файл за раз
-- обробники діалогів не підтримують `--timeout`
-- знімки екрана підтримують знімки сторінки та `--ref`, але не CSS `--element`
-- `responsebody`, перехоплення завантажень, експорт PDF і пакетні дії досі
- вимагають керований браузер або сирий профіль CDP
+- завантаження файлів вимагає `--ref` / `--input-ref`, не підтримує CSS `--element` і наразі підтримує по одному файлу за раз
+- хуки діалогів не підтримують `--timeout`
+- знімки екрана підтримують захоплення сторінки та `--ref`, але не CSS `--element`
+- `responsebody`, перехоплення завантажень, експорт PDF і пакетні дії, як і раніше, вимагають керованого браузера або сирого профілю CDP
## Віддалене керування браузером (проксі вузла-хоста)
Якщо Gateway працює на іншій машині, ніж браузер, запустіть **вузол-хост** на машині, де є Chrome/Brave/Edge/Chromium. Gateway проксіюватиме дії браузера до цього вузла (окремий сервер керування браузером не потрібен).
-Використовуйте `gateway.nodes.browser.mode`, щоб керувати автоматичною маршрутизацією, і `gateway.nodes.browser.node`, щоб закріпити конкретний вузол, якщо підключено кілька вузлів.
+Використовуйте `gateway.nodes.browser.mode` для керування автоматичною маршрутизацією та `gateway.nodes.browser.node` для прив’язки до конкретного вузла, якщо під’єднано кілька вузлів.
-Безпека + віддалене налаштування: [Інструмент Browser](/uk/tools/browser), [Віддалений доступ](/uk/gateway/remote), [Tailscale](/uk/gateway/tailscale), [Безпека](/uk/gateway/security)
+Безпека + віддалене налаштування: [Browser tool](/uk/tools/browser), [Віддалений доступ](/uk/gateway/remote), [Tailscale](/uk/gateway/tailscale), [Безпека](/uk/gateway/security)
## Пов’язане
-- [Довідка CLI](/uk/cli)
+- [Довідник CLI](/uk/cli)
- [Browser](/uk/tools/browser)
diff --git a/docs/uk/concepts/system-prompt.md b/docs/uk/concepts/system-prompt.md
index 696a6496b..ab39124a5 100644
--- a/docs/uk/concepts/system-prompt.md
+++ b/docs/uk/concepts/system-prompt.md
@@ -1,109 +1,102 @@
---
read_when:
- - Редагування тексту системного prompt, списку інструментів або розділів часу/Heartbeat
- - Зміна поведінки початкового налаштування workspace або ін’єкції Skills
-summary: Що містить системний prompt OpenClaw і як він збирається
-title: Системний prompt
+ - Редагування тексту системного промпту, списку інструментів або розділів часу/Heartbeat
+ - Зміна bootstrap робочого простору або поведінки інʼєкції Skills
+summary: Що містить системний промпт OpenClaw і як він збирається
+title: Системний промпт
x-i18n:
- generated_at: "2026-04-23T22:59:25Z"
+ generated_at: "2026-04-24T23:30:39Z"
model: gpt-5.4
provider: openai
- source_hash: ff0498b99974f1a75fc9b93ca46cc0bf008ebf234b429c05ee689a4a150d29f1
+ source_hash: 83d9cc69fff164ba52d1fc1a9b04ea799f48dbd8b449bde63473c6dec4cb026a
source_path: concepts/system-prompt.md
workflow: 15
---
-OpenClaw збирає власний системний prompt для кожного запуску агента. Prompt **належить OpenClaw** і не використовує типовий prompt pi-coding-agent.
+OpenClaw створює власний системний промпт для кожного запуску агента. Промпт **належить OpenClaw** і не використовує стандартний промпт pi-coding-agent.
-Prompt збирається OpenClaw і ін’єктується в кожен запуск агента.
+Промпт збирається OpenClaw і впроваджується в кожен запуск агента.
-Provider plugins можуть додавати cache-aware вказівки для prompt без заміни
-повного prompt, що належить OpenClaw. Runtime provider може:
+Плагіни провайдерів можуть додавати вказівки для промпту з урахуванням кешу, не замінюючи при цьому весь промпт, що належить OpenClaw. Середовище виконання провайдера може:
-- замінювати невеликий набір іменованих базових розділів (`interaction_style`,
+- замінювати невеликий набір іменованих основних розділів (`interaction_style`,
`tool_call_style`, `execution_bias`)
-- ін’єктувати **стабільний префікс** над межею кешу prompt
-- ін’єктувати **динамічний суфікс** під межею кешу prompt
+- впроваджувати **стабільний префікс** над межею кешу промпту
+- впроваджувати **динамічний суфікс** під межею кешу промпту
-Використовуйте внески, що належать provider, для налаштування під конкретні сімейства моделей. Залишайте застарілу
-мутацію prompt через `before_prompt_build` для сумісності або справді глобальних змін prompt, а не для звичайної поведінки provider.
+Використовуйте внески, що належать провайдеру, для налаштування під конкретні сімейства моделей. Зберігайте застарілу мутацію промпту `before_prompt_build` для сумісності або справді глобальних змін промпту, а не для звичайної поведінки провайдера.
-Накладка для сімейства OpenAI GPT-5 зберігає базове правило виконання невеликим і додає
-специфічні для моделі вказівки щодо фіксації persona, лаконічного виводу, дисципліни інструментів,
-паралельного пошуку, охоплення deliverable, перевірки, відсутнього контексту та
-гігієни terminal-tool.
+Оверлей для сімейства OpenAI GPT-5 зберігає основне правило виконання компактним і додає вказівки, специфічні для моделі: фіксація персони, лаконічний вивід, дисципліна використання інструментів, паралельний пошук, охоплення результатів, перевірка, відсутній контекст і гігієна інструментів термінала.
## Структура
-Prompt навмисно компактний і використовує фіксовані розділи:
+Промпт навмисно компактний і використовує фіксовані розділи:
-- **Tooling**: нагадування про джерело істини для structured-tool плюс вказівки щодо використання runtime-інструментів.
-- **Execution Bias**: компактні вказівки щодо доведення до кінця: діяти в поточному ході на
- запити, які можна виконати, продовжувати до завершення або блокування, відновлюватися після слабких результатів інструментів,
- перевіряти змінний стан наживо та верифікувати перед фіналізацією.
-- **Safety**: коротке нагадування про запобіжники, щоб уникати поведінки, спрямованої на здобуття влади, або обходу нагляду.
-- **Skills** (коли доступні): пояснює моделі, як завантажувати інструкції Skills на вимогу.
-- **OpenClaw Self-Update**: як безпечно інспектувати конфігурацію за допомогою
- `config.schema.lookup`, змінювати конфігурацію через `config.patch`, замінювати всю
- конфігурацію через `config.apply` і запускати `update.run` лише на явний запит користувача. Інструмент `gateway`, доступний лише власнику, також відмовляється переписувати
+- **Інструменти**: нагадування про структуровані інструменти як джерело істини плюс вказівки щодо використання інструментів під час виконання.
+- **Ухил виконання**: компактні вказівки щодо доведення справ до кінця: діяти в межах поточного ходу для запитів, які можна виконати, продовжувати до завершення або блокування, відновлюватися після слабких результатів інструментів, перевіряти змінний стан наживо та верифікувати перед завершенням.
+- **Безпека**: коротке нагадування про запобіжники, щоб уникати поведінки, спрямованої на здобуття влади, або обходу нагляду.
+- **Skills** (коли доступні): повідомляє моделі, як завантажувати інструкції Skills за потреби.
+- **Самооновлення OpenClaw**: як безпечно перевіряти конфігурацію за допомогою
+ `config.schema.lookup`, змінювати конфігурацію за допомогою `config.patch`, замінювати всю
+ конфігурацію за допомогою `config.apply` і запускати `update.run` лише за явним
+ запитом користувача. Інструмент `gateway`, доступний лише власнику, також відмовляється переписувати
`tools.exec.ask` / `tools.exec.security`, включно із застарілими
- псевдонімами `tools.bash.*`, які нормалізуються до цих захищених exec-шляхів.
-- **Workspace**: робочий каталог (`agents.defaults.workspace`).
-- **Documentation**: локальний шлях до документації OpenClaw (репозиторій або npm package) і коли її читати.
-- **Workspace Files (injected)**: вказує, що bootstrap-файли включено нижче.
-- **Sandbox** (коли ввімкнено): вказує sandboxed runtime, шляхи sandbox і те, чи доступний підвищений exec.
-- **Current Date & Time**: локальний час користувача, часовий пояс і формат часу.
-- **Reply Tags**: необов’язковий синтаксис тегів відповіді для підтримуваних provider.
-- **Heartbeats**: Heartbeat-prompt і поведінка підтвердження, коли Heartbeat увімкнено для типового агента.
-- **Runtime**: хост, ОС, node, модель, корінь репозиторію (коли виявлено), рівень мислення (один рядок).
-- **Reasoning**: поточний рівень видимості + підказка перемикання `/reasoning`.
+ псевдонімами `tools.bash.*`, які нормалізуються до цих захищених шляхів exec.
+- **Робочий простір**: робочий каталог (`agents.defaults.workspace`).
+- **Документація**: локальний шлях до документації OpenClaw (репозиторій або npm package) і коли її читати.
+- **Файли робочого простору (впроваджені)**: вказує, що bootstrap-файли включено нижче.
+- **Пісочниця** (коли ввімкнено): вказує на ізольоване середовище виконання, шляхи пісочниці та чи доступне підвищене виконання.
+- **Поточна дата й час**: локальний час користувача, часовий пояс і формат часу.
+- **Теги відповіді**: необов’язковий синтаксис тегів відповіді для підтримуваних провайдерів.
+- **Heartbeat**: промпт Heartbeat і поведінка підтвердження, коли Heartbeat увімкнено для стандартного агента.
+- **Середовище виконання**: хост, ОС, node, модель, корінь репозиторію (коли визначено), рівень мислення (одним рядком).
+- **Міркування**: поточний рівень видимості + підказка перемикання /reasoning.
-Розділ Tooling також містить runtime-вказівки для довготривалої роботи:
+Розділ «Інструменти» також містить вказівки під час виконання для довготривалої роботи:
-- використовуйте Cron для відкладеного follow-up (`check back later`, нагадування, періодична робота)
- замість циклів сну через `exec`, прийомів затримки `yieldMs` або повторного
+- використовуйте cron для подальших дій у майбутньому (`check back later`, нагадування, повторювана робота)
+ замість циклів сну через `exec`, трюків із затримкою `yieldMs` або повторного
опитування `process`
- використовуйте `exec` / `process` лише для команд, які запускаються зараз і продовжують виконуватися
у фоновому режимі
-- коли ввімкнено автоматичне пробудження після завершення, запустіть команду один раз і покладайтеся на
- push-based шлях пробудження, коли вона виведе результат або завершиться помилкою
-- використовуйте `process` для журналів, статусу, введення або втручання, коли вам потрібно
- інспектувати запущену команду
-- якщо завдання більше, надавайте перевагу `sessions_spawn`; завершення субагента працює через
- push-based механізм і автоматично анонсується назад запитувачу
+- коли ввімкнено автоматичне пробудження після завершення, запускайте команду один раз і покладайтеся на
+ push-орієнтований механізм пробудження, коли вона виведе результат або завершиться з помилкою
+- використовуйте `process` для логів, статусу, введення або втручання, коли вам потрібно
+ перевірити виконувану команду
+- якщо завдання більше, віддавайте перевагу `sessions_spawn`; завершення субагента працює на основі
+ push і автоматично оголошується назад запитувачу
- не опитуйте `subagents list` / `sessions_list` у циклі лише для очікування
завершення
-Коли ввімкнено експериментальний інструмент `update_plan`, Tooling також вказує
-моделі використовувати його лише для нетривіальної багатокрокової роботи, підтримувати рівно один
+Коли ввімкнено експериментальний інструмент `update_plan`, розділ «Інструменти» також повідомляє
+моделі використовувати його лише для нетривіальної багатокрокової роботи, тримати рівно один
крок `in_progress` і не повторювати весь план після кожного оновлення.
-Запобіжники Safety у системному prompt мають рекомендаційний характер. Вони спрямовують поведінку моделі, але не забезпечують виконання політики. Для жорсткого контролю використовуйте політику інструментів, погодження exec, sandboxing і allowlist каналів; оператори можуть вимкнути це за задумом.
+Запобіжники безпеки в системному промпті мають рекомендаційний характер. Вони спрямовують поведінку моделі, але не забезпечують примусове застосування політики. Для жорсткого забезпечення використовуйте політику інструментів, погодження exec, пісочницю та allowlist каналів; оператори можуть вимкнути їх за задумом.
-У каналах із нативними картками/кнопками погодження runtime-prompt тепер вказує
-агенту спершу покладатися на цей нативний UI погодження. Він має включати ручну
-команду `/approve` лише тоді, коли результат інструмента каже, що погодження в чаті недоступне або
-ручне погодження є єдиним шляхом.
+У каналах із нативними картками/кнопками погодження промпт середовища виконання тепер повідомляє
+агенту спочатку покладатися на цей нативний UI погодження. Він має включати ручну
+команду `/approve` лише тоді, коли результат інструмента каже, що погодження в чаті недоступні або
+ручне погодження — єдиний шлях.
-## Режими prompt
+## Режими промпту
-OpenClaw може рендерити менші системні prompt для субагентів. Runtime встановлює
-`promptMode` для кожного запуску (це не користувацька конфігурація):
+OpenClaw може рендерити менші системні промпти для субагентів. Середовище виконання встановлює
+`promptMode` для кожного запуску (це не користувацький параметр конфігурації):
-- `full` (типово): включає всі розділи вище.
-- `minimal`: використовується для субагентів; пропускає **Skills**, **Memory Recall**, **OpenClaw
- Self-Update**, **Model Aliases**, **User Identity**, **Reply Tags**,
- **Messaging**, **Silent Replies** і **Heartbeats**. Tooling, **Safety**,
- Workspace, Sandbox, Current Date & Time (коли відомо), Runtime та ін’єктований
+- `full` (типово): включає всі наведені вище розділи.
+- `minimal`: використовується для субагентів; пропускає **Skills**, **Виклик пам’яті**, **Самооновлення OpenClaw**, **Псевдоніми моделей**, **Ідентичність користувача**, **Теги відповіді**,
+ **Повідомлення**, **Тихі відповіді** та **Heartbeat**. **Інструменти**,
+ **Безпека**, Робочий простір, Пісочниця, Поточна дата й час (коли відомо), Середовище виконання та впроваджений
контекст залишаються доступними.
- `none`: повертає лише базовий рядок ідентичності.
-Коли `promptMode=minimal`, додаткові ін’єктовані prompt позначаються як **Subagent
-Context**, а не **Group Chat Context**.
+Коли `promptMode=minimal`, додаткові впроваджені промпти позначаються як **Контекст субагента**
+замість **Контекст групового чату**.
-## Ін’єкція bootstrap workspace
+## Впровадження bootstrap робочого простору
-Bootstrap-файли обрізаються та додаються в розділ **Project Context**, щоб модель бачила ідентичність і контекст профілю без потреби в явному читанні:
+Bootstrap-файли обрізаються та додаються в розділ **Контекст проєкту**, щоб модель бачила контекст ідентичності та профілю без явного читання:
- `AGENTS.md`
- `SOUL.md`
@@ -111,71 +104,74 @@ Bootstrap-файли обрізаються та додаються в розд
- `IDENTITY.md`
- `USER.md`
- `HEARTBEAT.md`
-- `BOOTSTRAP.md` (лише в абсолютно нових workspace)
-- `MEMORY.md`, коли присутній
+- `BOOTSTRAP.md` (лише в абсолютно нових робочих просторах)
+- `MEMORY.md` за наявності
-Усі ці файли **ін’єктуються у вікно контексту** на кожному ході, якщо не застосовується
-окремий файловий запобіжник. `HEARTBEAT.md` пропускається у звичайних запусках, коли
-Heartbeat вимкнено для типового агента або
-`agents.defaults.heartbeat.includeSystemPromptSection` має значення false. Тримайте ін’єктовані
-файли стислими — особливо `MEMORY.md`, який з часом може зростати й призводити до
-неочікувано великого використання контексту та частішого Compaction.
+Усі ці файли **впроваджуються у вікно контексту** на кожному ході, якщо не застосовується окремий бар’єр для файла. `HEARTBEAT.md` пропускається під час звичайних запусків, коли
+Heartbeat вимкнено для стандартного агента або
+`agents.defaults.heartbeat.includeSystemPromptSection` має значення false. Зберігайте впроваджені
+файли лаконічними — особливо `MEMORY.md`, який з часом може розростатися та призводити до
+неочікувано високого використання контексту й частішої Compaction.
-> **Примітка:** щоденні файли `memory/*.md` **не** є частиною звичайного bootstrap
-> Project Context. У звичайних ходах доступ до них відбувається на вимогу через
+> **Примітка:** щоденні файли `memory/*.md` **не** входять до звичайного bootstrap
+> Контексту проєкту. У звичайних ходах доступ до них відбувається за потреби через
> інструменти `memory_search` і `memory_get`, тому вони не враховуються у
-> вікні контексту, якщо модель явно їх не читає. Виняток — прості ходи `/new` і
-> `/reset`: runtime може додавати нещодавню щоденну пам’ять як одноразовий блок
-> стартового контексту для цього першого ходу.
+> вікні контексту, якщо модель явно їх не читає. Виняток — порожні ходи `/new` і
+> `/reset`: середовище виконання може додати нещодавню щоденну пам’ять як одноразовий
+> блок стартового контексту для цього першого ходу.
-Великі файли обрізаються з маркером. Максимальний розмір одного файла контролюється через
-`agents.defaults.bootstrapMaxChars` (типово: 12000). Загальний обсяг ін’єктованого bootstrap-вмісту
-між файлами обмежується через `agents.defaults.bootstrapTotalMaxChars`
-(типово: 60000). Відсутні файли ін’єктують короткий маркер відсутності файла. Коли відбувається обрізання,
-OpenClaw може ін’єктувати блок попередження в Project Context; це контролюється через
+Великі файли обрізаються з маркером. Максимальний розмір на файл керується через
+`agents.defaults.bootstrapMaxChars` (типово: 12000). Загальний обсяг впровадженого bootstrap-вмісту
+в усіх файлах обмежено `agents.defaults.bootstrapTotalMaxChars`
+(типово: 60000). Для відсутніх файлів впроваджується короткий маркер відсутнього файла. Коли відбувається обрізання,
+OpenClaw може впроваджувати блок попередження в Контекст проєкту; це керується через
`agents.defaults.bootstrapPromptTruncationWarning` (`off`, `once`, `always`;
типово: `once`).
-Сесії субагентів ін’єктують лише `AGENTS.md` і `TOOLS.md` (інші bootstrap-файли
+Сесії субагентів впроваджують лише `AGENTS.md` і `TOOLS.md` (інші bootstrap-файли
відфільтровуються, щоб контекст субагента залишався малим).
-Внутрішні hooks можуть перехоплювати цей крок через `agent:bootstrap`, щоб змінювати або замінювати
-ін’єктовані bootstrap-файли (наприклад, підміняти `SOUL.md` альтернативною persona).
+Внутрішні хуки можуть перехоплювати цей крок через `agent:bootstrap`, щоб змінювати або замінювати
+впроваджені bootstrap-файли (наприклад, замінювати `SOUL.md` альтернативною персоною).
Якщо ви хочете, щоб агент звучав менш шаблонно, почніть із
-[Посібника з особистості SOUL.md](/uk/concepts/soul).
+[Посібника з індивідуальності SOUL.md](/uk/concepts/soul).
-Щоб перевірити, який внесок робить кожен ін’єктований файл (сирий vs ін’єктований, обрізання, а також накладні витрати schema інструментів), використовуйте `/context list` або `/context detail`. Див. [Контекст](/uk/concepts/context).
+Щоб перевірити, який внесок дає кожен впроваджений файл (сирий чи впроваджений, обрізання, а також накладні витрати на схему інструмента), використовуйте `/context list` або `/context detail`. Див. [Контекст](/uk/concepts/context).
-## Робота з часом
+## Обробка часу
-Системний prompt включає окремий розділ **Current Date & Time**, коли відомий
-часовий пояс користувача. Щоб зберегти стабільність кешу prompt, тепер він містить лише
+Системний промпт містить окремий розділ **Поточна дата й час**, коли
+відомий часовий пояс користувача. Щоб зберігати стабільність кешу промпту, тепер він містить лише
**часовий пояс** (без динамічного годинника чи формату часу).
Використовуйте `session_status`, коли агенту потрібен поточний час; картка статусу
-містить рядок із позначкою часу. Той самий інструмент також може за бажанням встановити
-перевизначення моделі для сесії (`model=default` очищає його).
+містить рядок позначки часу. Той самий інструмент також може за бажанням встановити перевизначення моделі
+для сесії (`model=default` очищає його).
Налаштовується через:
- `agents.defaults.userTimezone`
- `agents.defaults.timeFormat` (`auto` | `12` | `24`)
-Див. [Дата й час](/uk/date-time) для повних подробиць поведінки.
+Повну інформацію про поведінку див. у [Дата й час](/uk/date-time).
## Skills
-Коли існують відповідні Skills, OpenClaw ін’єктує компактний **список доступних Skills**
-(`formatSkillsForPrompt`), який включає **шлях до файла** для кожної Skill. Prompt
-вказує моделі використовувати `read`, щоб завантажити `SKILL.md` за вказаним
-розташуванням (workspace, керованим або вбудованим). Якщо жодна Skill не підходить,
-розділ Skills пропускається.
+Коли існують придатні Skills, OpenClaw впроваджує компактний **список доступних Skills**
+(`formatSkillsForPrompt`), який містить **шлях до файла** для кожного skill. Промпт
+інструктує модель використовувати `read`, щоб завантажити SKILL.md у зазначеному
+розташуванні (робочий простір, кероване або вбудоване). Якщо жоден skill не є придатним, розділ
+Skills пропускається.
-Відповідність включає запобіжники метаданих Skill, перевірки runtime-середовища/конфігурації
+Придатність включає бар’єри метаданих skill, перевірки середовища виконання/конфігурації
та ефективний allowlist Skills агента, коли налаштовано `agents.defaults.skills` або
`agents.list[].skills`.
+Skills, вбудовані в плагін, є придатними лише тоді, коли плагін-власник увімкнено.
+Це дозволяє плагінам інструментів надавати глибші робочі інструкції, не вбудовуючи всі
+ці вказівки безпосередньо в опис кожного інструмента.
+
```
@@ -186,32 +182,32 @@ OpenClaw може ін’єктувати блок попередження в P
```
-Це зберігає базовий prompt малим, водночас дозволяючи цільове використання Skills.
+Це зберігає базовий промпт малим, але водночас дає змогу цільового використання Skills.
Бюджет списку Skills належить підсистемі Skills:
- Глобальне типове значення: `skills.limits.maxSkillsPromptChars`
- Перевизначення для агента: `agents.list[].skillsLimits.maxSkillsPromptChars`
-Узагальнені обмежені runtime-витяги використовують іншу поверхню:
+Загальні обмежені уривки середовища виконання використовують іншу поверхню:
- `agents.defaults.contextLimits.*`
- `agents.list[].contextLimits.*`
-Це розділення відокремлює розмір Skills від розміру runtime-читання/ін’єкції, такого як
-`memory_get`, результати live-інструментів і оновлення `AGENTS.md` після Compaction.
+Такий поділ зберігає розмір Skills окремо від розміру читання/впровадження під час виконання, такого
+як `memory_get`, живі результати інструментів і оновлення AGENTS.md після Compaction.
-## Documentation
+## Документація
-Коли доступно, системний prompt включає розділ **Documentation**, який вказує на
-локальний каталог документації OpenClaw (або `docs/` у workspace репозиторію, або документацію з вбудованого npm
-package) і також згадує публічне дзеркало, вихідний репозиторій, Discord спільноти та
-ClawHub ([https://clawhub.ai](https://clawhub.ai)) для виявлення Skills. Prompt вказує моделі спершу звертатися до локальної документації
-щодо поведінки, команд, конфігурації або архітектури OpenClaw і самостійно запускати
-`openclaw status`, коли це можливо (питаючи користувача лише тоді, коли доступу немає).
+Коли доступно, системний промпт містить розділ **Документація**, який вказує на
+локальний каталог документації OpenClaw (або `docs/` у робочому просторі репозиторію, або документацію вбудованого
+npm package) і також згадує публічне дзеркало, вихідний репозиторій, спільноту Discord і
+ClawHub ([https://clawhub.ai](https://clawhub.ai)) для пошуку Skills. Промпт інструктує модель спочатку звертатися до локальної документації
+щодо поведінки OpenClaw, команд, конфігурації чи архітектури та
+самостійно запускати `openclaw status`, коли це можливо (звертаючись до користувача лише тоді, коли доступу немає).
## Пов’язане
-- [Runtime агента](/uk/concepts/agent)
-- [Workspace агента](/uk/concepts/agent-workspace)
+- [Середовище виконання агента](/uk/concepts/agent)
+- [Робочий простір агента](/uk/concepts/agent-workspace)
- [Рушій контексту](/uk/concepts/context-engine)
diff --git a/docs/uk/tools/browser.md b/docs/uk/tools/browser.md
index bd1425850..7a22c1a98 100644
--- a/docs/uk/tools/browser.md
+++ b/docs/uk/tools/browser.md
@@ -1,41 +1,43 @@
---
read_when:
- Додавання автоматизації браузера, керованої агентом
- - Налагодження, чому openclaw заважає вашому власному Chrome
+ - Налагодження того, чому openclaw втручається у роботу вашого власного Chrome
- Реалізація налаштувань браузера + життєвого циклу в застосунку macOS
-summary: Інтегрована служба керування браузером + команди дій
+summary: Інтегрований сервіс керування браузером + команди дій
title: Браузер (керований OpenClaw)
x-i18n:
- generated_at: "2026-04-24T07:42:12Z"
+ generated_at: "2026-04-24T23:30:44Z"
model: gpt-5.4
provider: openai
- source_hash: 80805676213ef5195093163874a848955b3c25364b20045a8d759d03ac088e14
+ source_hash: 58806d9728345ca32f0341a060bd53f8447f7614a1a5fdcad822d94f9bd48d40
source_path: tools/browser.md
workflow: 15
---
-OpenClaw може запускати **виділений профіль Chrome/Brave/Edge/Chromium**, яким керує агент.
+OpenClaw може запускати **окремий профіль Chrome/Brave/Edge/Chromium**, яким керує агент.
Він ізольований від вашого особистого браузера та керується через невеликий локальний
сервіс керування всередині Gateway (лише loopback).
-Погляд для початківців:
+Пояснення для початківців:
- Думайте про це як про **окремий браузер лише для агента**.
-- Профіль `openclaw` **не** торкається профілю вашого особистого браузера.
-- Агент може **відкривати вкладки, читати сторінки, натискати й вводити текст** у безпечному середовищі.
-- Вбудований профіль `user` підключається до вашої реальної сесії Chrome з входом через Chrome MCP.
+- Профіль `openclaw` **не** зачіпає ваш особистий профіль браузера.
+- Агент може **відкривати вкладки, читати сторінки, натискати та вводити текст** у безпечному середовищі.
+- Вбудований профіль `user` підключається до вашої справжньої авторизованої сесії Chrome через Chrome MCP.
## Що ви отримуєте
- Окремий профіль браузера з назвою **openclaw** (типово з помаранчевим акцентом).
-- Детерміноване керування вкладками (перелік/відкриття/фокус/закриття).
-- Дії агента (клік/введення/перетягування/вибір), знімки стану, скриншоти, PDF.
-- Необов’язкову підтримку кількох профілів (`openclaw`, `work`, `remote`, ...).
+- Детерміноване керування вкладками (перелік/відкриття/фокусування/закриття).
+- Дії агента (натискання/введення/перетягування/вибір), знімки стану, скриншоти, PDF.
+- Вбудований Skill `browser-automation`, який навчає агентів циклу відновлення snapshot,
+ stable-tab, stale-ref і manual-blocker, коли ввімкнено Plugin браузера.
+- Необов’язкова підтримка кількох профілів (`openclaw`, `work`, `remote`, ...).
-Цей браузер **не** є вашим основним щоденним браузером. Це безпечна, ізольована поверхня для
-автоматизації та перевірки з боку агента.
+Цей браузер **не** призначений для щоденного використання. Це безпечне, ізольоване середовище для
+автоматизації та перевірки агентом.
-## Швидкий старт
+## Швидкий початок
```bash
openclaw browser --browser-profile openclaw status
@@ -44,15 +46,15 @@ openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
```
-Якщо ви бачите “Browser disabled”, увімкніть це в конфігурації (див. нижче) і перезапустіть
+Якщо ви бачите “Браузер вимкнено”, увімкніть його в конфігурації (див. нижче) і перезапустіть
Gateway.
-Якщо `openclaw browser` взагалі відсутній або агент каже, що інструмент браузера
-недоступний, перейдіть до [Відсутня команда браузера або інструмент](/uk/tools/browser#missing-browser-command-or-tool).
+Якщо `openclaw browser` взагалі відсутня або агент каже, що інструмент браузера
+недоступний, перейдіть до [Відсутня команда або інструмент браузера](/uk/tools/browser#missing-browser-command-or-tool).
## Керування Plugin
-Типовий інструмент `browser` — це вбудований Plugin. Вимкніть його, щоб замінити іншим Plugin, який реєструє ту саму назву інструмента `browser`:
+Типовий інструмент `browser` — це вбудований Plugin. Вимкніть його, щоб замінити іншим Plugin, який реєструє той самий інструмент із назвою `browser`:
```json5
{
@@ -66,13 +68,29 @@ Gateway.
}
```
-Для типових значень потрібні і `plugins.entries.browser.enabled`, і `browser.enabled=true`. Вимкнення лише Plugin прибирає CLI `openclaw browser`, метод Gateway `browser.request`, інструмент агента та сервіс керування як єдине ціле; ваш конфіг `browser.*` залишається недоторканим для заміни.
+Для типових налаштувань потрібні і `plugins.entries.browser.enabled`, і `browser.enabled=true`. Вимкнення лише Plugin прибирає CLI `openclaw browser`, метод Gateway `browser.request`, інструмент агента та сервіс керування як єдине ціле; ваша конфігурація `browser.*` залишається недоторканою для заміни.
Зміни конфігурації браузера потребують перезапуску Gateway, щоб Plugin міг повторно зареєструвати свій сервіс.
-## Відсутня команда браузера або інструмент
+## Вказівки для агента
-Якщо `openclaw browser` невідомий після оновлення, `browser.request` відсутній або агент повідомляє, що інструмент браузера недоступний, зазвичай причина — список `plugins.allow`, у якому немає `browser`. Додайте його:
+Plugin браузера постачається з двома рівнями вказівок для агента:
+
+- Опис інструмента `browser` містить компактний контракт, який завжди активний: вибирайте
+ правильний профіль, тримайте refs у межах тієї самої вкладки, використовуйте `tabId`/мітки для націлювання на вкладки
+ і завантажуйте Skill браузера для багатокрокової роботи.
+- Вбудований Skill `browser-automation` містить довший робочий цикл:
+ спочатку перевірити статус/вкладки, позначити вкладки завдання, зробити snapshot перед дією, повторно зняти snapshot
+ після змін інтерфейсу, один раз відновити stale refs і повідомляти про login/2FA/captcha або
+ блокування camera/microphone як про ручну дію, а не вгадувати.
+
+Skills, вбудовані в Plugin, перелічуються в доступних Skills агента, коли
+Plugin увімкнено. Повні інструкції Skill завантажуються на вимогу, тому звичайні
+сеанси не оплачують повну вартість токенів.
+
+## Відсутня команда або інструмент браузера
+
+Якщо після оновлення `openclaw browser` невідома, `browser.request` відсутній або агент повідомляє, що інструмент браузера недоступний, зазвичай причина в списку `plugins.allow`, у якому немає `browser`. Додайте його:
```json5
{
@@ -82,40 +100,39 @@ Gateway.
}
```
-`browser.enabled=true`, `plugins.entries.browser.enabled=true` і `tools.alsoAllow: ["browser"]` не замінюють членство в allowlist — allowlist керує завантаженням Plugin, а політика інструментів застосовується лише після завантаження. Видалення `plugins.allow` повністю також відновлює типову поведінку.
+`browser.enabled=true`, `plugins.entries.browser.enabled=true` і `tools.alsoAllow: ["browser"]` не замінюють членство в allowlist — allowlist керує завантаженням Plugin, а політика інструментів виконується лише після завантаження. Видалення `plugins.allow` повністю також відновлює типову поведінку.
-## Профілі: `openclaw` vs `user`
+## Профілі: `openclaw` і `user`
- `openclaw`: керований, ізольований браузер (розширення не потрібне).
-- `user`: вбудований профіль підключення Chrome MCP до вашої **реальної сесії Chrome**
- з входом.
+- `user`: вбудований профіль підключення Chrome MCP до вашої **справжньої авторизованої сесії Chrome**.
Для викликів інструмента браузера агентом:
-- Типово: використовувати ізольований браузер `openclaw`.
-- Віддавайте перевагу `profile="user"`, коли важливі наявні сесії з входом і користувач
- знаходиться за комп’ютером, щоб натиснути/підтвердити будь-який запит на підключення.
+- Типово: використовуйте ізольований браузер `openclaw`.
+- Віддавайте перевагу `profile="user"`, коли важливі наявні авторизовані сесії і користувач
+ перебуває за комп’ютером, щоб натиснути/підтвердити будь-який запит на підключення.
- `profile` — це явне перевизначення, коли вам потрібен конкретний режим браузера.
Установіть `browser.defaultProfile: "openclaw"`, якщо хочете, щоб керований режим був типовим.
## Конфігурація
-Налаштування браузера містяться в `~/.openclaw/openclaw.json`.
+Налаштування браузера зберігаються в `~/.openclaw/openclaw.json`.
```json5
{
browser: {
- enabled: true, // default: true
+ enabled: true, // типово: true
ssrfPolicy: {
- // dangerouslyAllowPrivateNetwork: true, // opt in only for trusted private-network access
- // allowPrivateNetwork: true, // legacy alias
+ // dangerouslyAllowPrivateNetwork: true, // вмикайте лише для довіреного доступу до приватної мережі
+ // allowPrivateNetwork: true, // застарілий псевдонім
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
- // cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override
- remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms)
- remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms)
+ // cdpUrl: "http://127.0.0.1:18792", // застаріле перевизначення одного профілю
+ remoteCdpTimeoutMs: 1500, // тайм-аут HTTP для віддаленого CDP (мс)
+ remoteCdpHandshakeTimeoutMs: 3000, // тайм-аут WebSocket handshake для віддаленого CDP (мс)
defaultProfile: "openclaw",
color: "#FF4500",
headless: false,
@@ -144,41 +161,41 @@ Gateway.
-
+
-- Сервіс керування прив’язується до loopback на порту, похідному від `gateway.port` (типово `18791` = gateway + 2). Перевизначення `gateway.port` або `OPENCLAW_GATEWAY_PORT` зсуває похідні порти в тій самій групі.
-- Локальні профілі `openclaw` автоматично призначають `cdpPort`/`cdpUrl`; задавайте їх лише для віддаленого CDP. Якщо `cdpUrl` не задано, типово використовується керований локальний CDP-порт.
-- `remoteCdpTimeoutMs` застосовується до перевірок доступності HTTP для віддаленого (не-loopback) CDP; `remoteCdpHandshakeTimeoutMs` застосовується до WebSocket handshake віддаленого CDP.
+- Сервіс керування прив’язується до local loopback на порті, похідному від `gateway.port` (типово `18791` = gateway + 2). Перевизначення `gateway.port` або `OPENCLAW_GATEWAY_PORT` зсуває похідні порти в тій самій групі.
+- Локальні профілі `openclaw` автоматично призначають `cdpPort`/`cdpUrl`; задавайте їх лише для віддаленого CDP. Якщо `cdpUrl` не задано, типово використовується локальний керований порт CDP.
+- `remoteCdpTimeoutMs` застосовується до перевірок доступності HTTP віддаленого CDP (не-loopback); `remoteCdpHandshakeTimeoutMs` застосовується до WebSocket handshakes віддаленого CDP.
-- Навігація браузера та відкриття вкладок захищені від SSRF перед навігацією та, наскільки можливо, повторно перевіряються на фінальному URL `http(s)` після неї.
-- У строгому режимі SSRF також перевіряються виявлення віддалених CDP-ендпойнтів і запити `/json/version` (`cdpUrl`).
-- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` типово вимкнено; вмикайте лише тоді, коли доступ браузера до приватної мережі свідомо вважається довіреним.
-- `browser.ssrfPolicy.allowPrivateNetwork` залишається підтримуваним як застарілий синонім.
+- Навігація браузера та open-tab захищені від SSRF перед навігацією і повторно перевіряються в міру можливості за фінальним URL `http(s)` після неї.
+- У строгому режимі SSRF discovery віддаленої кінцевої точки CDP і перевірки `/json/version` (`cdpUrl`) також перевіряються.
+- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` типово вимкнено; вмикайте лише тоді, коли доступ браузера до приватної мережі є навмисно довіреним.
+- `browser.ssrfPolicy.allowPrivateNetwork` залишається підтримуваним як застарілий псевдонім.
-
+
-- `attachOnly: true` означає ніколи не запускати локальний браузер; лише підключатися, якщо він уже працює.
+- `attachOnly: true` означає ніколи не запускати локальний браузер; підключатися лише якщо він уже працює.
- `color` (на верхньому рівні та для кожного профілю) тонує інтерфейс браузера, щоб ви могли бачити, який профіль активний.
-- Типовий профіль — `openclaw` (керований автономний). Використовуйте `defaultProfile: "user"`, щоб вибрати браузер користувача з входом.
-- Порядок автовиявлення: системний браузер за замовчуванням, якщо він на базі Chromium; інакше Chrome → Brave → Edge → Chromium → Chrome Canary.
-- `driver: "existing-session"` використовує Chrome DevTools MCP замість сирого CDP. Не задавайте `cdpUrl` для цього драйвера.
+- Типовий профіль — `openclaw` (керований автономний). Використовуйте `defaultProfile: "user"`, щоб перейти до авторизованого браузера користувача.
+- Порядок автовизначення: системний браузер за замовчуванням, якщо він Chromium-based; інакше Chrome → Brave → Edge → Chromium → Chrome Canary.
+- `driver: "existing-session"` використовує Chrome DevTools MCP замість сирого CDP. Не задавайте `cdpUrl` для цього driver.
- Установіть `browser.profiles..userDataDir`, коли профіль existing-session має підключатися до нестандартного профілю користувача Chromium (Brave, Edge тощо).
-## Використання Brave (або іншого браузера на базі Chromium)
+## Використання Brave (або іншого Chromium-based браузера)
-Якщо вашим **системним браузером за замовчуванням** є браузер на базі Chromium (Chrome/Brave/Edge тощо),
-OpenClaw автоматично використовує його. Установіть `browser.executablePath`, щоб перевизначити
-автовиявлення:
+Якщо вашим **системним браузером за замовчуванням** є Chromium-based браузер (Chrome/Brave/Edge тощо),
+OpenClaw використовує його автоматично. Установіть `browser.executablePath`, щоб перевизначити
+автовизначення:
```bash
openclaw config set browser.executablePath "/usr/bin/google-chrome"
@@ -219,17 +236,17 @@ openclaw config set browser.executablePath "/usr/bin/google-chrome"
## Локальне та віддалене керування
- **Локальне керування (типово):** Gateway запускає loopback-сервіс керування і може запускати локальний браузер.
-- **Віддалене керування (хост вузла):** запустіть хост вузла на машині, де є браузер; Gateway проксіює до нього дії браузера.
+- **Віддалене керування (host Node):** запустіть host Node на машині, де є браузер; Gateway проксуватиме до нього дії браузера.
- **Віддалений CDP:** установіть `browser.profiles..cdpUrl` (або `browser.cdpUrl`), щоб
- підключитися до віддаленого браузера на базі Chromium. У такому разі OpenClaw не запускатиме локальний браузер.
+ підключитися до віддаленого Chromium-based браузера. У цьому випадку OpenClaw не запускатиме локальний браузер.
-Поведінка зупинки відрізняється залежно від режиму профілю:
+Поведінка під час зупинки відрізняється залежно від режиму профілю:
- локальні керовані профілі: `openclaw browser stop` зупиняє процес браузера, який
запустив OpenClaw
- профілі лише для підключення та профілі віддаленого CDP: `openclaw browser stop` закриває активну
- сесію керування і скидає перевизначення емуляції Playwright/CDP (viewport,
- колірну схему, локаль, часовий пояс, офлайн-режим та подібний стан), навіть
+ сесію керування та скидає перевизначення емуляції Playwright/CDP (viewport,
+ color scheme, locale, timezone, offline mode та подібний стан), навіть
якщо OpenClaw не запускав жодного процесу браузера
URL віддаленого CDP можуть містити автентифікацію:
@@ -237,22 +254,22 @@ URL віддаленого CDP можуть містити автентифік
- Токени запиту (наприклад, `https://provider.example?token=`)
- HTTP Basic auth (наприклад, `https://user:pass@provider.example`)
-OpenClaw зберігає автентифікацію під час виклику ендпойнтів `/json/*` і під час підключення
-до CDP WebSocket. Для токенів віддавайте перевагу змінним середовища або менеджерам секретів
-замість коміту їх у конфігураційні файли.
+OpenClaw зберігає автентифікацію під час виклику кінцевих точок `/json/*` і під час підключення
+до WebSocket CDP. Для токенів віддавайте перевагу змінним середовища або менеджерам секретів
+замість коміту їх у файли конфігурації.
-## Node browser proxy (типово без додаткової конфігурації)
+## Node browser proxy (типовий шлях без додаткової конфігурації)
-Якщо ви запускаєте **хост вузла** на машині, де є ваш браузер, OpenClaw може
+Якщо ви запускаєте **host Node** на машині, де є ваш браузер, OpenClaw може
автоматично маршрутизувати виклики інструмента браузера до цього вузла без жодної додаткової конфігурації браузера.
Це типовий шлях для віддалених gateway.
-Нотатки:
+Примітки:
-- Хост вузла надає доступ до свого локального сервера керування браузером через **proxy command**.
+- Host Node відкриває свій локальний сервер керування браузером через **proxy command**.
- Профілі беруться з власної конфігурації `browser.profiles` вузла (так само, як локально).
-- `nodeHost.browserProxy.allowProfiles` — необов’язковий параметр. Залиште його порожнім для застарілої/типової поведінки: усі налаштовані профілі залишаються доступними через proxy, включно з маршрутами створення/видалення профілів.
-- Якщо ви задаєте `nodeHost.browserProxy.allowProfiles`, OpenClaw розглядає це як межу мінімальних привілеїв: можна адресувати лише профілі з allowlist, а маршрути створення/видалення постійних профілів блокуються на поверхні proxy.
+- `nodeHost.browserProxy.allowProfiles` є необов’язковим. Залиште його порожнім для застарілої/типової поведінки: усі налаштовані профілі залишаються доступними через proxy, включно з маршрутами створення/видалення профілів.
+- Якщо ви задаєте `nodeHost.browserProxy.allowProfiles`, OpenClaw розглядає це як межу мінімальних привілеїв: лише профілі з allowlist можуть бути ціллю, а маршрути створення/видалення постійних профілів блокуються на поверхні proxy.
- Вимкніть це, якщо воно вам не потрібне:
- На вузлі: `nodeHost.browserProxy.enabled=false`
- На gateway: `gateway.nodes.browser.mode="off"`
@@ -260,9 +277,9 @@ OpenClaw зберігає автентифікацію під час викли
## Browserless (хостинговий віддалений CDP)
[Browserless](https://browserless.io) — це хостинговий сервіс Chromium, який надає
-URL підключення CDP через HTTPS і WebSocket. OpenClaw може використовувати будь-яку форму, але
+URL підключення CDP через HTTPS і WebSocket. OpenClaw може використовувати обидва формати, але
для профілю віддаленого браузера найпростішим варіантом є прямий URL WebSocket
-з документації Browserless щодо підключення.
+з документації з підключення Browserless.
Приклад:
@@ -283,41 +300,41 @@ URL підключення CDP через HTTPS і WebSocket. OpenClaw може
}
```
-Нотатки:
+Примітки:
-- Замініть `` на ваш реальний токен Browserless.
-- Виберіть регіональний ендпойнт, який відповідає вашому обліковому запису Browserless (див. їхню документацію).
+- Замініть `` на ваш справжній токен Browserless.
+- Виберіть кінцеву точку регіону, яка відповідає вашому обліковому запису Browserless (див. їхню документацію).
- Якщо Browserless надає вам базовий URL HTTPS, ви можете або перетворити його на
`wss://` для прямого підключення CDP, або залишити URL HTTPS і дозволити OpenClaw
виявити `/json/version`.
## Провайдери прямого WebSocket CDP
-Деякі хостингові браузерні сервіси надають **прямий ендпойнт WebSocket** замість
-стандартного виявлення CDP на основі HTTP (`/json/version`). OpenClaw приймає три
+Деякі хостингові сервіси браузера надають **пряму кінцеву точку WebSocket** замість
+стандартного HTTP-based discovery для CDP (`/json/version`). OpenClaw приймає три
форми URL CDP і автоматично вибирає правильну стратегію підключення:
-- **Виявлення HTTP(S)** — `http://host[:port]` або `https://host[:port]`.
+- **HTTP(S) discovery** — `http://host[:port]` або `https://host[:port]`.
OpenClaw викликає `/json/version`, щоб виявити URL WebSocket debugger, а потім
- підключається. Резервного переходу на WebSocket немає.
-- **Прямі ендпойнти WebSocket** — `ws://host[:port]/devtools//` або
+ підключається. Fallback до WebSocket немає.
+- **Прямі кінцеві точки WebSocket** — `ws://host[:port]/devtools//` або
`wss://...` зі шляхом `/devtools/browser|page|worker|shared_worker|service_worker/`.
- OpenClaw підключається безпосередньо через WebSocket handshake і повністю пропускає
+ OpenClaw підключається напряму через WebSocket handshake і повністю пропускає
`/json/version`.
-- **Кореневі URL WebSocket без шляху** — `ws://host[:port]` або `wss://host[:port]` без
+- **Кореневі bare WebSocket** — `ws://host[:port]` або `wss://host[:port]` без
шляху `/devtools/...` (наприклад, [Browserless](https://browserless.io),
[Browserbase](https://www.browserbase.com)). OpenClaw спочатку пробує HTTP
- виявлення через `/json/version` (нормалізуючи схему до `http`/`https`);
- якщо виявлення повертає `webSocketDebuggerUrl`, він використовується, інакше OpenClaw
- переходить до прямого WebSocket handshake на корені без шляху. Це дозволяє
- підключатися навіть bare `ws://`, спрямованому на локальний Chrome, оскільки Chrome приймає
- WebSocket upgrade лише на конкретному шляху для цілі з
+ discovery через `/json/version` (нормалізуючи схему до `http`/`https`);
+ якщо discovery повертає `webSocketDebuggerUrl`, він використовується, інакше OpenClaw
+ переходить до прямого WebSocket handshake на bare root. Це дозволяє
+ bare `ws://`, спрямованому на локальний Chrome, усе ж підключатися, оскільки Chrome
+ приймає WebSocket upgrades лише на конкретному шляху для цілі з
`/json/version`.
### Browserbase
[Browserbase](https://www.browserbase.com) — це хмарна платформа для запуску
-headless-браузерів із вбудованим розв’язанням CAPTCHA, stealth mode та residential
+headless браузерів із вбудованим розв’язанням CAPTCHA, stealth mode та residential
proxy.
```json5
@@ -337,64 +354,65 @@ proxy.
}
```
-Нотатки:
+Примітки:
- [Зареєструйтеся](https://www.browserbase.com/sign-up) і скопіюйте свій **API Key**
- з [панелі Overview](https://www.browserbase.com/overview).
-- Замініть `` на ваш реальний API key Browserbase.
-- Browserbase автоматично створює сесію браузера під час підключення WebSocket, тому
+ з [Overview dashboard](https://www.browserbase.com/overview).
+- Замініть `` на ваш справжній API key Browserbase.
+- Browserbase автоматично створює сесію браузера під час підключення WebSocket, тож
крок ручного створення сесії не потрібен.
- Безкоштовний тариф дозволяє одну одночасну сесію та одну годину браузера на місяць.
- Ліміти платних планів дивіться в [pricing](https://www.browserbase.com/pricing).
-- Повний довідник API, посібники з SDK та приклади інтеграції дивіться в [документації Browserbase](https://docs.browserbase.com).
+ Обмеження платних тарифів дивіться в [pricing](https://www.browserbase.com/pricing).
+- Повний довідник API,
+ посібники з SDK та приклади інтеграції дивіться в [документації Browserbase](https://docs.browserbase.com).
## Безпека
Ключові ідеї:
-- Керування браузером доступне лише через loopback; доступ проходить через автентифікацію Gateway або pairing з вузлом.
-- Автономний loopback HTTP API браузера використовує **лише автентифікацію зі спільним секретом**:
- bearer auth через токен gateway, `x-openclaw-password` або HTTP Basic auth із
+- Керування браузером доступне лише через loopback; доступ проходить через auth Gateway або pairing вузла.
+- Окремий loopback HTTP API браузера використовує **лише auth на основі shared secret**:
+ bearer auth токена gateway, `x-openclaw-password` або HTTP Basic auth із
налаштованим паролем gateway.
- Заголовки ідентичності Tailscale Serve та `gateway.auth.mode: "trusted-proxy"`
- **не** автентифікують цей автономний loopback API браузера.
-- Якщо керування браузером увімкнене й не налаштовано автентифікацію зі спільним секретом, OpenClaw
+ **не** автентифікують цей окремий loopback API браузера.
+- Якщо керування браузером увімкнено й не налаштовано жодної auth на основі shared secret, OpenClaw
автоматично генерує `gateway.auth.token` під час запуску та зберігає його в конфігурації.
-- OpenClaw **не** генерує цей токен автоматично, коли `gateway.auth.mode` уже має значення
+- OpenClaw **не** генерує цей токен автоматично, якщо `gateway.auth.mode` уже має значення
`password`, `none` або `trusted-proxy`.
-- Тримайте Gateway та всі хости вузлів у приватній мережі (Tailscale); уникайте публічного доступу.
-- Ставтеся до URL/токенів віддаленого CDP як до секретів; віддавайте перевагу env vars або менеджеру секретів.
+- Тримайте Gateway і будь-які node host у приватній мережі (Tailscale); уникайте публічного доступу.
+- Розглядайте URL/токени віддаленого CDP як секрети; віддавайте перевагу змінним середовища або менеджеру секретів.
Поради щодо віддаленого CDP:
-- За можливості віддавайте перевагу зашифрованим ендпойнтам (HTTPS або WSS) і короткоживучим токенам.
-- Уникайте вбудовування довгоживучих токенів безпосередньо в конфігураційні файли.
+- За можливості віддавайте перевагу зашифрованим кінцевим точкам (HTTPS або WSS) і короткоживучим токенам.
+- Уникайте вбудовування довгоживучих токенів безпосередньо у файли конфігурації.
## Профілі (кілька браузерів)
-OpenClaw підтримує кілька іменованих профілів (конфігурації маршрутизації). Профілі можуть бути:
+OpenClaw підтримує кілька іменованих профілів (конфігурацій маршрутизації). Профілі можуть бути:
-- **керовані OpenClaw**: виділений екземпляр браузера на базі Chromium із власним каталогом даних користувача + портом CDP
-- **віддалені**: явний URL CDP (браузер на базі Chromium, що працює деінде)
-- **наявна сесія**: ваш наявний профіль Chrome через автопідключення Chrome DevTools MCP
+- **керованими OpenClaw**: окремий екземпляр Chromium-based браузера з власним каталогом user data + портом CDP
+- **віддаленими**: явний URL CDP (Chromium-based браузер, що працює в іншому місці)
+- **наявною сесією**: ваш наявний профіль Chrome через автоматичне підключення Chrome DevTools MCP
Типові значення:
- Профіль `openclaw` створюється автоматично, якщо його немає.
-- Профіль `user` вбудований для підключення existing-session через Chrome MCP.
-- Профілі existing-session, окрім `user`, вмикаються явно; створюйте їх через `--driver existing-session`.
+- Профіль `user` є вбудованим для existing-session attach через Chrome MCP.
+- Профілі existing-session, крім `user`, є опціональними; створюйте їх за допомогою `--driver existing-session`.
- Локальні порти CDP типово виділяються з діапазону **18800–18899**.
- Видалення профілю переміщує його локальний каталог даних до Trash.
-Усі ендпойнти керування приймають `?profile=`; CLI використовує `--browser-profile`.
+Усі кінцеві точки керування приймають `?profile=`; CLI використовує `--browser-profile`.
## Existing-session через Chrome DevTools MCP
-OpenClaw також може підключатися до запущеного профілю браузера на базі Chromium через
+OpenClaw також може підключатися до запущеного профілю Chromium-based браузера через
офіційний сервер Chrome DevTools MCP. Це повторно використовує вкладки та стан входу,
які вже відкриті в цьому профілі браузера.
-Офіційні довідкові матеріали та налаштування:
+Офіційні довідкові матеріали та посилання для налаштування:
- [Chrome for Developers: Використання Chrome DevTools MCP із вашою сесією браузера](https://developer.chrome.com/blog/chrome-devtools-mcp-debug-your-browser-session)
- [README Chrome DevTools MCP](https://github.com/ChromeDevTools/chrome-devtools-mcp)
@@ -403,15 +421,15 @@ OpenClaw також може підключатися до запущеного
- `user`
-Необов’язково: створіть власний користувацький профіль existing-session, якщо вам потрібні
+Необов’язково: створіть власний custom existing-session profile, якщо вам потрібні
інша назва, колір або каталог даних браузера.
Типова поведінка:
-- Вбудований профіль `user` використовує автопідключення Chrome MCP, яке націлюється на
- типовий локальний профіль Google Chrome.
+- Вбудований профіль `user` використовує авто-підключення Chrome MCP, яке націлюється на
+ локальний профіль Google Chrome за замовчуванням.
-Використовуйте `userDataDir` для Brave, Edge, Chromium або нетипового профілю Chrome:
+Використовуйте `userDataDir` для Brave, Edge, Chromium або нестандартного профілю Chrome:
```json5
{
@@ -431,8 +449,8 @@ OpenClaw також може підключатися до запущеного
Потім у відповідному браузері:
1. Відкрийте сторінку inspect цього браузера для віддаленого налагодження.
-2. Увімкніть віддалене налагодження.
-3. Залиште браузер запущеним і підтвердьте запит на підключення, коли OpenClaw під’єднається.
+2. Увімкніть remote debugging.
+3. Не закривайте браузер і підтвердьте запит на підключення, коли OpenClaw приєднається.
Поширені сторінки inspect:
@@ -440,7 +458,7 @@ OpenClaw також може підключатися до запущеного
- Brave: `brave://inspect/#remote-debugging`
- Edge: `edge://inspect/#remote-debugging`
-Live attach smoke test:
+Smoke test для live attach:
```bash
openclaw browser --browser-profile user start
@@ -449,58 +467,59 @@ openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot --format ai
```
-Як виглядає успіх:
+Ознаки успіху:
- `status` показує `driver: existing-session`
- `status` показує `transport: chrome-mcp`
- `status` показує `running: true`
-- `tabs` перелічує вже відкриті вкладки браузера
-- `snapshot` повертає ref з вибраної live-вкладки
+- `tabs` показує список уже відкритих вкладок браузера
+- `snapshot` повертає refs з вибраної активної вкладки
Що перевірити, якщо підключення не працює:
-- цільовий браузер на базі Chromium має версію `144+`
-- віддалене налагодження увімкнене на сторінці inspect цього браузера
-- браузер показав запит на підключення, і ви його підтвердили
-- `openclaw doctor` переносить стару конфігурацію браузера на основі розширення та перевіряє, що
- Chrome встановлено локально для типових профілів автопідключення, але він не може
- увімкнути віддалене налагодження в браузері за вас
+- цільовий Chromium-based браузер має версію `144+`
+- у сторінці inspect цього браузера ввімкнено remote debugging
+- браузер показав запит на підключення і ви його підтвердили
+- `openclaw doctor` мігрує стару конфігурацію браузера на основі розширення і перевіряє, що
+ Chrome локально встановлено для типових профілів авто-підключення, але він не може
+ увімкнути для вас remote debugging на боці браузера
Використання агентом:
-- Використовуйте `profile="user"`, коли вам потрібен стан браузера користувача з виконаним входом.
-- Якщо ви використовуєте власний профіль existing-session, передайте його явну назву профілю.
+- Використовуйте `profile="user"`, коли вам потрібен стан авторизованого браузера користувача.
+- Якщо ви використовуєте custom existing-session profile, передайте явну назву цього профілю.
- Обирайте цей режим лише тоді, коли користувач перебуває за комп’ютером, щоб підтвердити
запит на підключення.
-- Gateway або хост вузла може запускати `npx chrome-devtools-mcp@latest --autoConnect`
+- Gateway або node host може запускати `npx chrome-devtools-mcp@latest --autoConnect`
-Нотатки:
+Примітки:
-- Цей шлях є ризикованішим, ніж ізольований профіль `openclaw`, оскільки він може
- виконувати дії у вашій сесії браузера з виконаним входом.
-- OpenClaw не запускає браузер для цього драйвера; він лише підключається.
+- Цей шлях має вищий ризик, ніж ізольований профіль `openclaw`, оскільки він може
+ виконувати дії у вашій авторизованій сесії браузера.
+- OpenClaw не запускає браузер для цього driver; він лише підключається.
- Тут OpenClaw використовує офіційний потік Chrome DevTools MCP `--autoConnect`. Якщо
- встановлено `userDataDir`, його буде передано далі для націлювання на цей каталог даних користувача.
-- Existing-session може підключатися на вибраному хості або через підключений
- browser node. Якщо Chrome розташований деінде й browser node не підключений, використовуйте
- натомість віддалений CDP або хост вузла.
+ задано `userDataDir`, він передається далі для націлювання на цей каталог даних користувача.
+- Existing-session може підключатися на вибраному host або через підключений
+ browser node. Якщо Chrome працює деінде і browser node не підключено, використовуйте
+ віддалений CDP або node host.
Порівняно з керованим профілем `openclaw`, драйвери existing-session мають більше обмежень:
- **Скриншоти** — працюють знімки сторінки та знімки елементів через `--ref`; CSS-селектори `--element` не підтримуються. `--full-page` не можна поєднувати з `--ref` або `--element`. Для скриншотів сторінки або елементів на основі ref Playwright не потрібен.
-- **Дії** — `click`, `type`, `hover`, `scrollIntoView`, `drag` і `select` потребують ref зі snapshot (без CSS-селекторів). `click` підтримує лише ліву кнопку. `type` не підтримує `slowly=true`; використовуйте `fill` або `press`. `press` не підтримує `delayMs`. `type`, `hover`, `scrollIntoView`, `drag`, `select`, `fill` та `evaluate` не підтримують тайм-аути для окремих викликів. `select` приймає одне значення.
-- **Очікування / upload / dialog** — `wait --url` підтримує точні, часткові та glob-шаблони; `wait --load networkidle` не підтримується. Хуки upload потребують `ref` або `inputRef`, по одному файлу за раз, без CSS `element`. Хуки dialog не підтримують перевизначення тайм-аутів.
-- **Функції лише для керованого режиму** — пакетні дії, експорт PDF, перехоплення завантажень і `responsebody` як і раніше потребують шляху керованого браузера.
+- **Дії** — `click`, `type`, `hover`, `scrollIntoView`, `drag` і `select` потребують snapshot refs (без CSS-селекторів). `click` підтримує лише ліву кнопку миші. `type` не підтримує `slowly=true`; використовуйте `fill` або `press`. `press` не підтримує `delayMs`. `type`, `hover`, `scrollIntoView`, `drag`, `select`, `fill` і `evaluate` не підтримують тайм-аути для окремого виклику. `select` приймає одне значення.
+- **Очікування / завантаження / діалоги** — `wait --url` підтримує точні, часткові та glob-шаблони; `wait --load networkidle` не підтримується. Hooks завантаження потребують `ref` або `inputRef`, по одному файлу за раз, без CSS `element`. Hooks діалогів не підтримують перевизначення тайм-аутів.
+- **Функції лише для керованого режиму** — пакетні дії, експорт PDF, перехоплення завантажень і `responsebody` досі потребують шляху керованого браузера.
## Гарантії ізоляції
-- **Виділений каталог даних користувача**: ніколи не торкається профілю вашого особистого браузера.
-- **Виділені порти**: уникає `9222`, щоб запобігти конфліктам із dev-процесами.
-- **Детерміноване керування вкладками**: націлювання на вкладки через `targetId`, а не через “last tab”.
+- **Окремий каталог user data**: ніколи не зачіпає ваш особистий профіль браузера.
+- **Окремі порти**: уникає `9222`, щоб не конфліктувати з робочими процесами розробки.
+- **Детерміноване керування вкладками**: націлюйте вкладки за сирим `targetId`, стабільними
+ дескрипторами `tabId`, такими як `t1`, або мітками, які ви призначаєте через `open --label` / `tab label`.
## Вибір браузера
@@ -516,41 +535,41 @@ openclaw browser --browser-profile user snapshot --format ai
Платформи:
-- macOS: перевіряє `/Applications` і `~/Applications`.
-- Linux: шукає `google-chrome`, `brave`, `microsoft-edge`, `chromium` тощо.
-- Windows: перевіряє типові місця встановлення.
+- macOS: перевіряються `/Applications` і `~/Applications`.
+- Linux: шукаються `google-chrome`, `brave`, `microsoft-edge`, `chromium` тощо.
+- Windows: перевіряються поширені місця встановлення.
-## Control API (необов’язково)
+## API керування (необов’язково)
-Для сценаріїв і налагодження Gateway надає невеликий **HTTP Control API лише для loopback**
-разом із відповідним CLI `openclaw browser` (знімки стану, ref, розширені можливості wait,
-вивід JSON, сценарії налагодження). Повний довідник див. у
-[Browser control API](/uk/tools/browser-control).
+Для створення скриптів і налагодження Gateway надає невеликий **HTTP API керування
+лише для loopback** плюс відповідний CLI `openclaw browser` (snapshots, refs, wait
+power-ups, вивід JSON, робочі процеси налагодження). Повний довідник дивіться в
+[API керування браузером](/uk/tools/browser-control).
## Усунення несправностей
-Для проблем, специфічних для Linux (особливо snap Chromium), див.
+Щодо проблем, специфічних для Linux (особливо snap Chromium), дивіться
[Усунення несправностей браузера](/uk/tools/browser-linux-troubleshooting).
-Для конфігурацій із розділеними хостами WSL2 Gateway + Windows Chrome див.
-[WSL2 + Windows + усунення несправностей віддаленого Chrome CDP](/uk/tools/browser-wsl2-windows-remote-cdp-troubleshooting).
+Для конфігурацій із розділеними host WSL2 Gateway + Windows Chrome дивіться
+[Усунення несправностей WSL2 + Windows + віддалений Chrome CDP](/uk/tools/browser-wsl2-windows-remote-cdp-troubleshooting).
-### Помилка запуску CDP vs блокування SSRF під час навігації
+### Збій запуску CDP проти блокування SSRF під час навігації
-Це різні класи помилок, і вони вказують на різні шляхи виконання коду.
+Це різні класи збоїв, і вони вказують на різні шляхи в коді.
-- **Помилка запуску або готовності CDP** означає, що OpenClaw не може підтвердити, що площина керування браузером працює справно.
-- **Блокування SSRF під час навігації** означає, що площина керування браузером працює справно, але ціль переходу сторінки відхилена політикою.
+- **Збій запуску або готовності CDP** означає, що OpenClaw не може підтвердити, що площина керування браузером працює справно.
+- **Блокування SSRF під час навігації** означає, що площина керування браузером працює справно, але ціль навігації сторінки відхиляється політикою.
Поширені приклади:
-- Помилка запуску або готовності CDP:
+- Збій запуску або готовності CDP:
- `Chrome CDP websocket for profile "openclaw" is not reachable after start`
- `Remote CDP for profile "" is not reachable at `
- Блокування SSRF під час навігації:
- потоки `open`, `navigate`, snapshot або відкриття вкладок завершуються помилкою політики браузера/мережі, тоді як `start` і `tabs` усе ще працюють
-Використовуйте цю мінімальну послідовність, щоб розрізнити ці випадки:
+Використайте цю мінімальну послідовність, щоб розрізнити ці два випадки:
```bash
openclaw browser --browser-profile openclaw start
@@ -560,21 +579,21 @@ openclaw browser --browser-profile openclaw open https://example.com
Як читати результати:
-- Якщо `start` завершується помилкою `not reachable after start`, спочатку усувайте проблеми готовності CDP.
-- Якщо `start` успішний, але `tabs` завершується помилкою, площина керування все ще несправна. Розглядайте це як проблему доступності CDP, а не проблему навігації сторінки.
-- Якщо `start` і `tabs` успішні, але `open` або `navigate` завершуються помилкою, площина керування браузером працює, а проблема в політиці навігації або цільовій сторінці.
+- Якщо `start` завершується помилкою `not reachable after start`, спочатку усувайте проблему готовності CDP.
+- Якщо `start` успішний, але `tabs` завершується помилкою, площина керування все ще несправна. Розглядайте це як проблему досяжності CDP, а не проблему навігації сторінкою.
+- Якщо `start` і `tabs` успішні, але `open` або `navigate` завершується помилкою, площина керування браузером працює, а проблема в політиці навігації або в цільовій сторінці.
- Якщо `start`, `tabs` і `open` усі успішні, базовий шлях керування керованим браузером працює справно.
Важливі деталі поведінки:
-- Конфігурація браузера типово використовує fail-closed об’єкт політики SSRF, навіть якщо ви не налаштовуєте `browser.ssrfPolicy`.
-- Для локального керованого профілю `openclaw` на loopback перевірки справності CDP навмисно пропускають перевірку доступності SSRF браузера для власної локальної площини керування OpenClaw.
-- Захист навігації є окремим. Успішний результат `start` або `tabs` не означає, що подальша ціль `open` або `navigate` буде дозволена.
+- Конфігурація браузера типово використовує об’єкт політики SSRF із fail-closed, навіть якщо ви не налаштовуєте `browser.ssrfPolicy`.
+- Для локального керованого профілю `openclaw` на loopback перевірки справності CDP навмисно пропускають застосування SSRF reachability браузера до власної локальної площини керування OpenClaw.
+- Захист навігації є окремим. Успішний результат `start` або `tabs` не означає, що пізніша ціль `open` або `navigate` дозволена.
Рекомендації з безпеки:
-- **Не** послаблюйте політику SSRF браузера типово.
-- Віддавайте перевагу вузьким виняткам для хостів, таким як `hostnameAllowlist` або `allowedHostnames`, замість широкого доступу до приватної мережі.
+- Типово **не** послаблюйте політику SSRF браузера.
+- Віддавайте перевагу вузьким виняткам для host, таким як `hostnameAllowlist` або `allowedHostnames`, замість широкого доступу до приватної мережі.
- Використовуйте `dangerouslyAllowPrivateNetwork: true` лише в навмисно довірених середовищах, де доступ браузера до приватної мережі потрібен і перевірений.
## Інструменти агента + як працює керування
@@ -585,20 +604,20 @@ openclaw browser --browser-profile openclaw open https://example.com
Як це відображається:
-- `browser snapshot` повертає стабільне дерево інтерфейсу (AI або ARIA).
+- `browser snapshot` повертає стабільне дерево UI (AI або ARIA).
- `browser act` використовує ID `ref` зі snapshot для click/type/drag/select.
- `browser screenshot` захоплює пікселі (усю сторінку або елемент).
- `browser` приймає:
- `profile` для вибору іменованого профілю браузера (openclaw, chrome або віддалений CDP).
- - `target` (`sandbox` | `host` | `node`) для вибору місця розташування браузера.
- - У sandbox-сесіях `target: "host"` потребує `agents.defaults.sandbox.browser.allowHostControl=true`.
- - Якщо `target` не вказано: sandbox-сесії типово використовують `sandbox`, сесії без sandbox типово використовують `host`.
- - Якщо підключено вузол із підтримкою браузера, інструмент може автоматично маршрутизуватися до нього, якщо ви явно не зафіксуєте `target="host"` або `target="node"`.
+ - `target` (`sandbox` | `host` | `node`) для вибору, де працює браузер.
+ - У sandboxed sessions `target: "host"` вимагає `agents.defaults.sandbox.browser.allowHostControl=true`.
+ - Якщо `target` пропущено: sandboxed sessions типово використовують `sandbox`, а non-sandbox sessions — `host`.
+ - Якщо підключено node з підтримкою браузера, інструмент може автоматично маршрутизуватися до нього, якщо ви явно не зафіксуєте `target="host"` або `target="node"`.
Це зберігає детермінованість агента й допомагає уникати крихких селекторів.
## Пов’язане
- [Огляд інструментів](/uk/tools) — усі доступні інструменти агента
-- [Пісочниця](/uk/gateway/sandboxing) — керування браузером у sandbox-середовищах
+- [Пісочниця](/uk/gateway/sandboxing) — керування браузером у sandboxed environments
- [Безпека](/uk/gateway/security) — ризики керування браузером і посилення захисту
diff --git a/docs/uk/tools/skills.md b/docs/uk/tools/skills.md
index 7eed9e4e3..06059d44d 100644
--- a/docs/uk/tools/skills.md
+++ b/docs/uk/tools/skills.md
@@ -1,62 +1,55 @@
---
read_when:
- - Додавання або зміна Skills
- - Зміна правил фільтрації або завантаження Skills
-summary: 'Skills: керовані чи робочого простору, правила фільтрації та прив’язка конфігурації/env'
+ - Додавання або змінення Skills
+ - Зміна правил gatekeeping або завантаження Skills
+summary: 'Skills: керовані vs робочий простір, правила gatekeeping і wiring конфігурації/env'
title: Skills
x-i18n:
- generated_at: "2026-04-23T23:08:41Z"
+ generated_at: "2026-04-24T23:30:41Z"
model: gpt-5.4
provider: openai
- source_hash: 3c7db23e1eb818d62283376cb33353882a9cb30e4476c5775218137da2ba82d9
+ source_hash: 346058f4d85cd66f7b05f6ddd7ee3b8959f05da8645c62ce5531a955eedf7a83
source_path: tools/skills.md
workflow: 15
---
-OpenClaw використовує папки Skills, сумісні з **[AgentSkills](https://agentskills.io)**, щоб навчати агента користуватися інструментами. Кожен 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-пакет або OpenClaw.app)
-3. **Керовані/локальні Skills**: `~/.openclaw/skills`
-4. **Персональні Skills агента**: `~/.agents/skills`
-5. **Skills агента проєкту**: `/.agents/skills`
-6. **Skills робочого простору**: `/skills`
+1. **Додаткові папки навичок**: налаштовуються через `skills.load.extraDirs`
+2. **Вбудовані навички**: постачаються разом з інсталяцією (npm package або OpenClaw.app)
+3. **Керовані/локальні навички**: `~/.openclaw/skills`
+4. **Персональні навички агента**: `~/.agents/skills`
+5. **Навички агента проєкту**: `/.agents/skills`
+6. **Навички робочого простору**: `/skills`
-Якщо назви Skills конфліктують, пріоритет такий:
+Якщо назва навички конфліктує, пріоритет такий:
-`/skills` (найвищий) → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → комплектні Skills → `skills.load.extraDirs` (найнижчий)
+`/skills` (найвищий) → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → вбудовані навички → `skills.load.extraDirs` (найнижчий)
-## Skills для окремого агента vs спільні Skills
+## Навички для окремого агента vs спільні навички
-У конфігураціях **multi-agent** кожен агент має власний робочий простір. Це означає:
+У конфігураціях **з кількома агентами** кожен агент має власний робочий простір. Це означає:
-- **Skills для окремого агента** розміщуються в `/skills` лише для цього агента.
-- **Skills агента проєкту** розміщуються в `/.agents/skills` і застосовуються до
- цього робочого простору перед звичайною папкою `skills/` робочого простору.
-- **Персональні Skills агента** розміщуються в `~/.agents/skills` і застосовуються до всіх
- робочих просторів на цій машині.
-- **Спільні Skills** розміщуються в `~/.openclaw/skills` (керовані/локальні) і видимі
- **всім агентам** на цій самій машині.
-- **Спільні папки** також можна додати через `skills.load.extraDirs` (найнижчий
- пріоритет), якщо ви хочете мати спільний набір Skills для кількох агентів.
+- **Навички для окремого агента** знаходяться в `/skills` лише для цього агента.
+- **Навички агента проєкту** знаходяться в `/.agents/skills` і застосовуються до цього робочого простору перед звичайною папкою `skills/` робочого простору.
+- **Персональні навички агента** знаходяться в `~/.agents/skills` і застосовуються в усіх робочих просторах на цій машині.
+- **Спільні навички** знаходяться в `~/.openclaw/skills` (керовані/локальні) і видимі **всім агентам** на цій самій машині.
+- **Спільні папки** також можна додати через `skills.load.extraDirs` (найнижчий пріоритет), якщо ви хочете мати спільний набір навичок, який використовують кілька агентів.
-Якщо один і той самий Skill із тією самою назвою існує в кількох місцях, діє звичайний пріоритет:
-перемагає робочий простір, потім Skills агента проєкту, потім персональні Skills агента,
-потім керовані/локальні, потім комплектні, потім extra dirs.
+Якщо та сама назва навички існує в кількох місцях, застосовується звичайний пріоритет: робочий простір має перевагу, далі йдуть навички агента проєкту, потім персональні навички агента, потім керовані/локальні, потім вбудовані, а потім додаткові каталоги.
-## Allowlist Skills для агента
+## Списки дозволених навичок агента
-**Розташування** Skill і **видимість** Skill — це окремі механізми керування.
+**Розташування** навички та її **видимість** — це окремі механізми керування.
-- Розташування/пріоритет визначає, яка копія Skill з однаковою назвою перемагає.
-- Allowlist агента визначає, які з видимих Skills агент реально може використовувати.
+- Розташування/пріоритет визначає, яка копія однойменної навички перемагає.
+- Списки дозволених навичок агента визначають, які з видимих навичок агент фактично може використовувати.
-Використовуйте `agents.defaults.skills` для спільної бази, а потім перевизначайте для окремих агентів через
-`agents.list[].skills`:
+Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте для окремих агентів через `agents.list[].skills`:
```json5
{
@@ -67,7 +60,7 @@ OpenClaw завантажує Skills з таких джерел:
list: [
{ id: "writer" }, // успадковує github, weather
{ id: "docs", skills: ["docs-search"] }, // замінює значення за замовчуванням
- { id: "locked-down", skills: [] }, // без Skills
+ { id: "locked-down", skills: [] }, // без навичок
],
},
}
@@ -75,77 +68,75 @@ 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-команд Skills, синхронізації sandbox і snapshot Skills.
+OpenClaw застосовує ефективний набір навичок агента під час побудови prompt, виявлення slash-команд навичок, синхронізації sandbox та знімків навичок.
## Plugins + Skills
-Plugins можуть постачати власні Skills, указуючи каталоги `skills` у
-`openclaw.plugin.json` (шляхи відносно кореня plugin). Skills plugin завантажуються,
-коли plugin увімкнено. Сьогодні ці каталоги зливаються в той самий
-шлях із низьким пріоритетом, що й `skills.load.extraDirs`, тож Skill із такою самою назвою з комплектного,
-керованого, агентського або робочого простору перевизначає їх.
-Ви можете фільтрувати їх через `metadata.openclaw.requires.config` у записі
-конфігурації plugin. Див. [Plugins](/uk/tools/plugin) для виявлення/конфігурації і [Tools](/uk/tools) для
-поверхні інструментів, якої навчають ці Skills.
+Plugins можуть постачати власні навички, вказуючи каталоги `skills` у
+`openclaw.plugin.json` (шляхи відносно кореня plugin). Навички plugin
+завантажуються, коли plugin увімкнено. Це правильне місце для інструкцій з
+використання інструментів, які надто довгі для опису інструмента, але мають бути
+доступні щоразу, коли plugin встановлено; наприклад, browser plugin постачає
+навичку `browser-automation` для багатокрокового керування браузером. Наразі ці
+каталоги об’єднуються в той самий шлях з низьким пріоритетом, що й
+`skills.load.extraDirs`, тому однойменна вбудована, керована, агентська навичка
+або навичка робочого простору перевизначає їх.
+Ви можете застосувати до них gatekeeping через `metadata.openclaw.requires.config` у записі конфігурації plugin.
+Див. [Plugins](/uk/tools/plugin) щодо виявлення/конфігурації та [Tools](/uk/tools) щодо
+поверхні інструментів, якої навчають ці навички.
## Skill Workshop
-Необов’язковий, експериментальний plugin Skill Workshop може створювати або оновлювати Skills робочого простору
-з повторно використовуваних процедур, помічених під час роботи агента. Його вимкнено за замовчуванням, і його потрібно явно ввімкнути через
+Необов’язковий експериментальний plugin Skill Workshop може створювати або оновлювати навички робочого простору з повторно використовуваних процедур, помічених під час роботи агента. Він вимкнений за замовчуванням і має бути явно увімкнений через
`plugins.entries.skill-workshop`.
Skill Workshop записує лише в `/skills`, сканує згенерований вміст,
-підтримує очікування підтвердження або автоматичні безпечні записи, ізолює небезпечні
-пропозиції та оновлює snapshot Skills після успішних записів, щоб нові
-Skills могли ставати доступними без перезапуску Gateway.
+підтримує очікування схвалення або автоматичні безпечні записи, поміщає небезпечні
+пропозиції в карантин і оновлює знімок навичок після успішного запису, щоб нові
+навички могли стати доступними без перезапуску Gateway.
-Використовуйте його, коли хочете, щоб виправлення на кшталт “наступного разу перевіряй attribution GIF” або
-важко здобуті workflow на кшталт чеклістів QA для медіа стали довговічними
-процедурними інструкціями. Починайте з очікування підтвердження; використовуйте автоматичні записи
-лише в довірених робочих просторах після перегляду його пропозицій. Повний посібник:
-[Plugin Skill Workshop](/uk/plugins/skill-workshop).
+Використовуйте його, коли ви хочете, щоб виправлення на кшталт «наступного разу перевіряй атрибуцію GIF» або складно здобуті робочі процеси на кшталт чеклістів медіа-QA стали стійкими процедурними інструкціями. Починайте з режиму очікування схвалення; автоматичні записи використовуйте лише в довірених робочих просторах після перегляду його пропозицій. Повний посібник:
+[Skill Workshop Plugin](/uk/plugins/skill-workshop).
-## ClawHub (установлення + синхронізація)
+## ClawHub (інсталяція + синхронізація)
-ClawHub — це публічний реєстр Skills для OpenClaw. Переглянути можна на
-[https://clawhub.ai](https://clawhub.ai). Використовуйте вбудовані команди `openclaw skills`,
-щоб виявляти/установлювати/оновлювати Skills, або окремий CLI `clawhub`, коли
-вам потрібні workflow публікації/синхронізації.
+ClawHub — це публічний реєстр навичок для OpenClaw. Переглянути можна на
+[https://clawhub.ai](https://clawhub.ai). Використовуйте нативні команди `openclaw skills`
+для пошуку/встановлення/оновлення навичок або окремий CLI `clawhub`, коли
+потрібні робочі процеси публікації/синхронізації.
Повний посібник: [ClawHub](/uk/tools/clawhub).
-Поширені потоки:
+Поширені сценарії:
-- Установити Skill у ваш робочий простір:
+- Встановити навичку у свій робочий простір:
- `openclaw skills install `
-- Оновити всі встановлені Skills:
+- Оновити всі встановлені навички:
- `openclaw skills update --all`
-- Синхронізувати (сканування + публікація оновлень):
+- Синхронізація (сканування + публікація оновлень):
- `clawhub sync --all`
-Вбудована команда `openclaw skills install` встановлює в активний каталог `skills/`
-робочого простору. Окремий CLI `clawhub` також встановлює в `./skills` у
-поточному робочому каталозі (або повертається до налаштованого робочого простору OpenClaw).
-OpenClaw підхоплює це як `/skills` у наступній сесії.
+Нативна команда `openclaw skills install` встановлює в активний каталог `skills/`
+робочого простору. Окремий CLI `clawhub` також встановлює в `./skills` у вашому
+поточному робочому каталозі (або використовує налаштований робочий простір OpenClaw як запасний варіант).
+OpenClaw підхопить це як `/skills` у наступній сесії.
## Примітки щодо безпеки
-- Ставтеся до сторонніх Skills як до **недовіреного коду**. Читайте їх перед увімкненням.
-- Для недовірених вхідних даних і ризикованих інструментів віддавайте перевагу sandboxed-запускам. Див. [Sandboxing](/uk/gateway/sandboxing).
-- Виявлення Skills у робочому просторі та додаткових каталогах приймає лише корені Skills і файли `SKILL.md`, чий розв’язаний realpath залишається в межах налаштованого кореня.
-- Установлення залежностей Skill через Gateway (`skills.install`, initial setup і UI налаштувань Skills) запускають вбудований сканер небезпечного коду перед виконанням метаданих інсталятора. Результати рівня `critical` блокують за замовчуванням, якщо викликач явно не задасть небезпечне перевизначення; підозрілі результати все одно лише попереджають.
-- `openclaw skills install ` працює інакше: він завантажує папку Skill із ClawHub у робочий простір і не використовує вищезгаданий шлях метаданих інсталятора.
-- `skills.entries.*.env` і `skills.entries.*.apiKey` вводять секрети в процес **хоста**
- для цього ходу агента (а не в sandbox). Не допускайте секретів у prompt і журналах.
-- Для ширшої моделі загроз і чеклістів див. [Безпека](/uk/gateway/security).
+- Ставтеся до сторонніх навичок як до **ненадійного коду**. Читайте їх перед увімкненням.
+- Для ненадійних вхідних даних і ризикованих інструментів віддавайте перевагу sandbox-запускам. Див. [Sandboxing](/uk/gateway/sandboxing).
+- Виявлення навичок у робочому просторі та додаткових каталогах приймає лише корені навичок і файли `SKILL.md`, чий обчислений realpath залишається всередині налаштованого кореня.
+- Встановлення залежностей навичок через Gateway (`skills.install`, onboarding та UI налаштувань Skills) запускає вбудований сканер небезпечного коду перед виконанням метаданих інсталятора. Знахідки рівня `critical` блокуються за замовчуванням, якщо викликач явно не встановить небезпечне перевизначення; підозрілі знахідки, як і раніше, лише попереджають.
+- `openclaw skills install ` відрізняється: ця команда завантажує папку навички ClawHub у робочий простір і не використовує описаний вище шлях метаданих інсталятора.
+- `skills.entries.*.env` і `skills.entries.*.apiKey` інʼєктують секрети в **host**-процес
+ для цього ходу агента (не в sandbox). Не допускайте потрапляння секретів у prompt і логи.
+- Для ширшої моделі загроз і чеклістів див. [Security](/uk/gateway/security).
-## Формат (AgentSkills + сумісний з Pi)
+## Формат (сумісний з AgentSkills + Pi)
`SKILL.md` має містити принаймні:
@@ -159,23 +150,23 @@ description: Generate or edit images via a provider-backed image workflow
Примітки:
- Ми дотримуємося специфікації AgentSkills щодо структури/призначення.
-- Парсер, який використовується вбудованим агентом, підтримує лише **однорядкові** ключі frontmatter.
+- Парсер, який використовує вбудований агент, підтримує лише **однорядкові** ключі frontmatter.
- `metadata` має бути **однорядковим JSON-об’єктом**.
-- Використовуйте `{baseDir}` в інструкціях, щоб посилатися на шлях до папки Skill.
+- Використовуйте `{baseDir}` в інструкціях, щоб посилатися на шлях до папки навички.
- Необов’язкові ключі 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` (типово). Для диспетчеризації до інструмента пересилає рядок сирих аргументів до інструмента (без розбору на рівні core).
+ - `homepage` — URL, що відображається як «Website» у macOS UI для Skills (також підтримується через `metadata.openclaw.homepage`).
+ - `user-invocable` — `true|false` (типове значення: `true`). Якщо `true`, навичка доступна як slash-команда користувача.
+ - `disable-model-invocation` — `true|false` (типове значення: `false`). Якщо `true`, навичка виключається з model prompt (але все ще доступна через виклик користувачем).
+ - `command-dispatch` — `tool` (необов’язково). Якщо встановлено `tool`, slash-команда обходить model і напряму диспетчеризується до інструмента.
+ - `command-tool` — назва інструмента, який треба викликати, коли встановлено `command-dispatch: tool`.
+ - `command-arg-mode` — `raw` (типове значення). Для dispatch до інструмента передає сирий рядок args в інструмент (без парсингу core).
Інструмент викликається з параметрами:
`{ command: "", commandName: "", skillName: "" }`.
-## Фільтрація (фільтри під час завантаження)
+## Gatekeeping (фільтри під час завантаження)
-OpenClaw **фільтрує Skills під час завантаження** за допомогою `metadata` (однорядковий JSON):
+OpenClaw **фільтрує навички під час завантаження** за допомогою `metadata` (однорядковий JSON):
```markdown
---
@@ -194,26 +185,26 @@ metadata:
Поля в `metadata.openclaw`:
-- `always: true` — завжди включати Skill (пропускає інші фільтри).
-- `emoji` — необов’язковий emoji, який використовує UI Skills на macOS.
-- `homepage` — необов’язковий URL, що показується як “Website” в UI Skills на macOS.
-- `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` — список; env-змінна має існувати **або** бути наданою в конфігурації.
+- `requires.anyBins` — список; у `PATH` має існувати принаймні один елемент.
+- `requires.env` — список; змінна env має існувати **або** бути надана в конфігурації.
- `requires.config` — список шляхів `openclaw.json`, які мають бути truthy.
-- `primaryEnv` — назва env-змінної, пов’язаної з `skills.entries..apiKey`.
-- `install` — необов’язковий масив специфікацій інсталятора, який використовує UI Skills на macOS (brew/node/go/uv/download).
+- `primaryEnv` — назва змінної env, пов’язаної з `skills.entries..apiKey`.
+- `install` — необов’язковий масив специфікацій інсталятора, який використовує macOS UI для Skills (brew/node/go/uv/download).
-Примітка про sandboxing:
+Примітка щодо sandboxing:
-- `requires.bins` перевіряється на **хості** під час завантаження Skill.
+- `requires.bins` перевіряється на **host** під час завантаження навички.
- Якщо агент працює в sandbox, бінарний файл також має існувати **всередині контейнера**.
- Установіть його через `agents.defaults.sandbox.docker.setupCommand` (або через користувацький образ).
+ Встановіть його через `agents.defaults.sandbox.docker.setupCommand` (або через власний образ).
`setupCommand` виконується один раз після створення контейнера.
- Установлення пакетів також потребує мережевого виходу, записуваної кореневої FS і користувача root у sandbox.
- Приклад: Skill `summarize` (`skills/summarize/SKILL.md`) потребує CLI `summarize`
- усередині контейнера sandbox, щоб працювати там.
+ Для встановлення пакетів також потрібні вихід у мережу, коренева ФС з можливістю запису та користувач root у sandbox.
+ Приклад: навичці `summarize` (`skills/summarize/SKILL.md`) потрібен CLI `summarize`
+ у контейнері sandbox, щоб працювати там.
Приклад інсталятора:
@@ -244,27 +235,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**; runtime 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`.
+ налаштованому менеджеру node, а далі іншим запасним варіантам на кшталт `go` або `download`.
- Якщо кожна специфікація встановлення має тип `download`, OpenClaw показує всі варіанти завантаження
- замість зведення до одного бажаного інсталятора.
-- Установлення Go: якщо `go` відсутній, а `brew` доступний, gateway спочатку встановлює Go через Homebrew і за можливості встановлює `GOBIN` у `bin` Homebrew.
-- Установлення через download: `url` (обов’язково), `archive` (`tar.gz` | `tar.bz2` | `zip`), `extract` (типово: auto, якщо виявлено archive), `stripComponents`, `targetDir` (типово: `~/.openclaw/tools/`).
+ замість того, щоб зводити їх до одного бажаного інсталятора.
+- Встановлення Go: якщо `go` відсутній, а `brew` доступний, gateway спочатку встановлює Go через Homebrew і за можливості встановлює `GOBIN` у `bin` Homebrew.
+- Встановлення через download: `url` (обов’язково), `archive` (`tar.gz` | `tar.bz2` | `zip`), `extract` (типове значення: auto, якщо архів виявлено), `stripComponents`, `targetDir` (типове значення: `~/.openclaw/tools/`).
-Якщо `metadata.openclaw` відсутнє, Skill завжди підходить (якщо тільки
-його не вимкнено в конфігурації або не заблоковано через `skills.allowBundled` для комплектних Skills).
+Якщо `metadata.openclaw` відсутній, навичка завжди доступна (якщо вона не
+вимкнена в конфігурації або не заблокована `skills.allowBundled` для вбудованих навичок).
## Перевизначення конфігурації (`~/.openclaw/openclaw.json`)
-Комплектні/керовані Skills можна вмикати/вимикати та постачати їм значення env:
+Вбудовані/керовані навички можна вмикати або вимикати та передавати їм значення env:
```json5
{
@@ -272,7 +263,7 @@ metadata:
entries: {
"image-lab": {
enabled: true,
- apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // або plaintext-рядок
+ apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // або plaintext string
env: {
GEMINI_API_KEY: "GEMINI_KEY_HERE",
},
@@ -288,69 +279,69 @@ metadata:
}
```
-Примітка: якщо назва Skill містить дефіси, беріть ключ у лапки (JSON5 дозволяє ключі в лапках).
+Примітка: якщо назва навички містить дефіси, візьміть ключ у лапки (JSON5 дозволяє ключі в лапках).
-Якщо ви хочете стандартну генерацію/редагування зображень усередині самого OpenClaw, використовуйте основний
-інструмент `image_generate` з `agents.defaults.imageGenerationModel` замість
-комплектного Skill. Приклади Skills тут наведено для користувацьких або сторонніх workflow.
+Якщо вам потрібне стандартне генерування/редагування зображень усередині самого OpenClaw, використовуйте core-інструмент
+`image_generate` з `agents.defaults.imageGenerationModel` замість
+вбудованої навички. Наведені тут приклади навичок призначені для кастомних або сторонніх робочих процесів.
Для нативного аналізу зображень використовуйте інструмент `image` з `agents.defaults.imageModel`.
-Для нативної генерації/редагування зображень використовуйте `image_generate` з
-`agents.defaults.imageGenerationModel`. Якщо ви вибираєте `openai/*`, `google/*`,
-`fal/*` або іншу image-модель певного provider, додайте також auth/API-ключ
-цього provider.
+Для нативного генерування/редагування зображень використовуйте `image_generate` з
+`agents.defaults.imageGenerationModel`. Якщо ви виберете `openai/*`, `google/*`,
+`fal/*` або іншу специфічну для провайдера модель зображень, також додайте auth/API
+ключ цього провайдера.
-Ключі конфігурації за замовчуванням збігаються з **назвою Skill**. Якщо Skill визначає
+Ключі конфігурації за замовчуванням відповідають **назві навички**. Якщо навичка визначає
`metadata.openclaw.skillKey`, використовуйте цей ключ у `skills.entries`.
Правила:
-- `enabled: false` вимикає Skill, навіть якщо він комплектний/встановлений.
-- `env`: вводиться **лише якщо** змінна ще не задана в процесі.
-- `apiKey`: зручний варіант для Skills, які оголошують `metadata.openclaw.primaryEnv`.
- Підтримує plaintext-рядок або об’єкт SecretRef (`{ source, provider, id }`).
-- `config`: необов’язковий набір для користувацьких полів на рівні Skill; користувацькі ключі мають жити тут.
-- `allowBundled`: необов’язковий allowlist лише для **комплектних** Skills. Якщо задано,
- підходять лише комплектні Skills зі списку (керовані/робочого простору Skills не зачіпаються).
+- `enabled: false` вимикає навичку, навіть якщо вона вбудована/встановлена.
+- `env`: інʼєктується **лише якщо** змінна ще не встановлена в процесі.
+- `apiKey`: зручний механізм для навичок, які оголошують `metadata.openclaw.primaryEnv`.
+ Підтримує plaintext string або об’єкт SecretRef (`{ source, provider, id }`).
+- `config`: необов’язковий контейнер для кастомних полів для кожної навички; кастомні ключі мають бути саме тут.
+- `allowBundled`: необов’язковий allowlist **лише** для вбудованих навичок. Якщо задано, доступними є лише
+ вбудовані навички зі списку (керовані/робочого простору навички не зачіпаються).
-## Ін’єкція середовища (для кожного запуску агента)
+## Інʼєкція середовища (для кожного запуску агента)
Коли починається запуск агента, OpenClaw:
-1. Зчитує метадані Skill.
+1. Читає метадані навички.
2. Застосовує будь-які `skills.entries..env` або `skills.entries..apiKey` до
`process.env`.
-3. Будує system prompt з **придатними** Skills.
+3. Будує system prompt із **доступними** навичками.
4. Відновлює початкове середовище після завершення запуску.
-Це **обмежено запуском агента**, а не глобальним середовищем оболонки.
+Це **обмежено запуском агента**, а не глобальним shell-середовищем.
-Для комплектного backend `claude-cli` OpenClaw також матеріалізує той самий
-придатний snapshot як тимчасовий plugin Claude Code і передає його через
-`--plugin-dir`. Тоді Claude Code може використовувати власний нативний resolver Skills, тоді як
-OpenClaw і далі володіє пріоритетами, allowlist для окремих агентів, фільтрацією та
-ін’єкцією env/API-ключів `skills.entries.*`. Інші CLI-backend використовують
+Для вбудованого backend `claude-cli` OpenClaw також матеріалізує той самий
+доступний snapshot як тимчасовий plugin Claude Code і передає його через
+`--plugin-dir`. Після цього Claude Code може використовувати власний нативний resolver навичок, тоді як
+OpenClaw, як і раніше, керує пріоритетом, allowlist для кожного агента, gatekeeping та
+інʼєкцією env/API key через `skills.entries.*`. Інші CLI-backend використовують
лише каталог prompt.
## Snapshot сесії (продуктивність)
-OpenClaw створює snapshot придатних Skills **під час старту сесії** й повторно використовує цей список для наступних ходів у тій самій сесії. Зміни в Skills або конфігурації набувають чинності в наступній новій сесії.
+OpenClaw створює snapshot доступних навичок **коли починається сесія** і повторно використовує цей список для наступних ходів у тій самій сесії. Зміни в навичках або конфігурації набувають чинності в наступній новій сесії.
-Skills також можуть оновлюватися посеред сесії, коли ввімкнено спостерігач Skills або коли з’являється новий придатний віддалений node (див. нижче). Розглядайте це як **гаряче перезавантаження**: оновлений список буде підхоплено на наступному ході агента.
+Навички також можуть оновлюватися посеред сесії, коли увімкнено watcher навичок або коли з’являється новий доступний віддалений node (див. нижче). Думайте про це як про **hot reload**: оновлений список підхоплюється на наступному ході агента.
-Якщо для цієї сесії змінюється фактичний allowlist Skills агента, OpenClaw
-оновлює snapshot, щоб видимі Skills залишалися узгодженими з поточним
+Якщо для цієї сесії змінюється ефективний allowlist навичок агента, OpenClaw
+оновлює snapshot, щоб видимі навички залишалися узгодженими з поточним
агентом.
-## Віддалені macOS Node (Gateway на Linux)
+## Віддалені macOS nodes (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.run`. Якщо macOS node пізніше відключиться, навички залишатимуться видимими; виклики можуть не працювати, доки node не перепідключиться.
-## Спостерігач Skills (автооновлення)
+## Watcher навичок (автооновлення)
-За замовчуванням OpenClaw стежить за папками Skills і підвищує версію snapshot Skills, коли змінюються файли `SKILL.md`. Це налаштовується в `skills.load`:
+За замовчуванням OpenClaw стежить за папками навичок і збільшує snapshot навичок, коли змінюються файли `SKILL.md`. Налаштовується це в `skills.load`:
```json5
{
@@ -363,12 +354,12 @@ Skills також можуть оновлюватися посеред сесі
}
```
-## Вплив на токени (список Skills)
+## Вплив на токени (список навичок)
-Коли Skills придатні, OpenClaw вводить у system prompt компактний XML-список доступних Skills (через `formatSkillsForPrompt` у `pi-coding-agent`). Вартість є детермінованою:
+Коли навички доступні, OpenClaw інʼєктує компактний XML-список доступних навичок у system prompt (через `formatSkillsForPrompt` у `pi-coding-agent`). Вартість детермінована:
-- **Базовий overhead (лише коли є ≥1 Skill):** 195 символів.
-- **На кожен Skill:** 97 символів + довжина XML-escaped значень ``, `` і ``.
+- **Базові накладні витрати (лише коли ≥1 навички):** 195 символів.
+- **На одну навичку:** 97 символів + довжина XML-escaped значень ``, `` і ``.
Формула (символи):
@@ -378,29 +369,29 @@ total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(locati
Примітки:
-- XML-escaping розширює `& < > " '` до сутностей (`&`, `<` тощо), збільшуючи довжину.
-- Кількість токенів залежить від tokenizer моделі. Груба оцінка в стилі OpenAI — ~4 символи на токен, тож **97 символів ≈ 24 токени** на Skill плюс фактична довжина ваших полів.
+- XML escaping перетворює `& < > " '` на сутності (`&`, `<` тощо), збільшуючи довжину.
+- Кількість токенів залежить від tokenizer моделі. Груба оцінка в стилі OpenAI — ~4 символи на токен, тож **97 символів ≈ 24 токени** на одну навичку плюс фактична довжина ваших полів.
-## Життєвий цикл керованих Skills
+## Життєвий цикл керованих навичок
-OpenClaw постачає базовий набір Skills як **комплектні Skills** у складі
-встановлення (npm-пакет або OpenClaw.app). `~/.openclaw/skills` існує для локальних
-перевизначень (наприклад, закріплення/патчування Skill без зміни комплектної
-копії). Skills робочого простору належать користувачу й перевизначають обидва варіанти у разі конфлікту назв.
+OpenClaw постачається з базовим набором навичок як **вбудованими навичками** у складі
+інсталяції (npm package або OpenClaw.app). `~/.openclaw/skills` існує для локальних
+перевизначень (наприклад, pinning/patching навички без змінення вбудованої
+копії). Навички робочого простору належать користувачу та перевизначають обидва варіанти в разі конфлікту назв.
-## Довідка з конфігурації
+## Довідник конфігурації
-Див. [Конфігурація Skills](/uk/tools/skills-config), щоб переглянути повну схему конфігурації.
+Див. [Skills config](/uk/tools/skills-config), щоб переглянути повну схему конфігурації.
-## Шукаєте більше Skills?
+## Шукаєте більше навичок?
Перегляньте [https://clawhub.ai](https://clawhub.ai).
---
-## Пов’язано
+## Пов’язане
-- [Створення Skills](/uk/tools/creating-skills) — створення користувацьких Skills
-- [Конфігурація Skills](/uk/tools/skills-config) — довідка з конфігурації Skills
-- [Slash-команди](/uk/tools/slash-commands) — усі доступні slash-команди
+- [Creating Skills](/uk/tools/creating-skills) — створення кастомних навичок
+- [Skills Config](/uk/tools/skills-config) — довідник конфігурації навичок
+- [Slash Commands](/uk/tools/slash-commands) — усі доступні slash-команди
- [Plugins](/uk/tools/plugin) — огляд системи plugin