chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-01 22:20:27 +00:00
parent 6f552ebb21
commit 5bfdf3e3e0
2 changed files with 312 additions and 275 deletions

View File

@ -1,81 +1,84 @@
---
read_when:
- Зміна виводу або форматів логування
- Зміна виводу журналювання або форматів
- Налагодження виводу CLI або Gateway
summary: Інтерфейси журналювання, файлові журнали, стилі журналів WS і форматування консолі
summary: Поверхні логування, файлові логи, стилі WS-логів і форматування консолі
title: Журналювання Gateway
x-i18n:
generated_at: "2026-05-01T05:53:12Z"
generated_at: "2026-05-01T22:18:30Z"
model: gpt-5.5
provider: openai
source_hash: f843812a41c25f9ca1884543ad3a5663c8e0bc327027cbd2b58ea6557c466aa9
source_hash: eb5f5ccd77909e82bd2938a33514ce8361c69910eb945c731d9b2c8266174c13
source_path: gateway/logging.md
workflow: 16
---
# Журналювання
Огляд для користувачів (CLI + інтерфейс керування + конфігурація) див. у [/logging](/uk/logging).
Огляд для користувачів (CLI + Control UI + конфігурація) див. у [/logging](/uk/logging).
OpenClaw має дві “поверхні” журналів:
OpenClaw має дві «поверхні» журналювання:
- **Вивід у консоль** (те, що ви бачите в терміналі / інтерфейсі налагодження).
- **Файлові журнали** (рядки JSON), які записує логер Gateway.
- **Консольний вивід** (те, що ви бачите в терміналі / Debug UI).
- **Файлові журнали** (рядки JSON), які записує журналювач Gateway.
## Файловий логер
## Файловий журналювач
- Типовий ротаційний файл журналу розташований у `/tmp/openclaw/` (один файл на день): `openclaw-YYYY-MM-DD.log`
- Стандартний ротаційний файл журналу розташований у `/tmp/openclaw/` (один файл на день): `openclaw-YYYY-MM-DD.log`
- Дата використовує локальний часовий пояс хоста Gateway.
- Активні файли журналу ротуються при `logging.maxFileBytes` (типово: 100 МБ), зберігаючи
до п’яти нумерованих архівів і продовжуючи запис у новий активний файл.
- Шлях до файла журналу та рівень можна налаштувати через `~/.openclaw/openclaw.json`:
- Активні файли журналу ротуються при `logging.maxFileBytes` (стандартно: 100 MB), зберігаючи
до п’яти пронумерованих архівів і продовжуючи запис у новий активний файл.
- Шлях до файлу журналу та рівень можна налаштувати через `~/.openclaw/openclaw.json`:
- `logging.file`
- `logging.level`
Формат файла один об’єкт JSON на рядок.
Формат файлу: один об’єкт JSON на рядок.
Вкладка журналів інтерфейсу керування стежить за цим файлом через Gateway (`logs.tail`).
Вкладка журналів у Control UI відстежує цей файл через Gateway (`logs.tail`).
CLI може робити те саме:
```bash
openclaw logs --follow
```
**Докладність проти рівнів журналювання**
**Детальний режим і рівні журналювання**
- **Файлові журнали** керуються виключно `logging.level`.
- `--verbose` впливає лише на **докладність консолі** (і стиль журналів WS); він **не**
підвищує рівень файлового журналювання.
- Щоб записувати у файлові журнали деталі, доступні лише в докладному режимі, установіть `logging.level` у `debug` або
- `--verbose` впливає лише на **детальність консолі** (і стиль журналів WS); він **не**
підвищує рівень файлового журналу.
- Щоб записувати у файлові журнали деталі, доступні лише в детальному режимі, установіть `logging.level` на `debug` або
`trace`.
- Журналювання trace також включає діагностичні підсумки часу для вибраних гарячих шляхів,
наприклад підготовки фабрики інструментів Plugin. Див.
[/tools/plugin#slow-plugin-tool-setup](/uk/tools/plugin#slow-plugin-tool-setup).
## Перехоплення консолі
## Захоплення консолі
CLI перехоплює `console.log/info/warn/error/debug/trace` і записує їх у файлові журнали,
водночас продовжуючи друкувати у stdout/stderr.
CLI захоплює `console.log/info/warn/error/debug/trace` і записує їх у файлові журнали,
одночасно продовжуючи друкувати у stdout/stderr.
Докладність консолі можна налаштувати незалежно через:
Детальність консолі можна налаштовувати незалежно через:
- `logging.consoleLevel` (типово `info`)
- `logging.consoleLevel` (стандартно `info`)
- `logging.consoleStyle` (`pretty` | `compact` | `json`)
## Редагування секретів
## Редагування чутливих даних
OpenClaw може маскувати чутливі токени до того, як вивід журналу або транскрипта залишить
процес. Ця політика редагування журналів застосовується до консолі, файлового журналу, записів журналу OTLP
і текстових приймачів транскриптів сесій, тому відповідні секретні значення
OpenClaw може маскувати чутливі токени до того, як журнальний або транскриптний вивід залишить
процес. Ця політика редагування журналів застосовується до консолі, файлового журналу, OTLP
записів журналу та текстових приймачів транскриптів сесії, тому відповідні секретні значення
маскуються до запису рядків JSONL або повідомлень на диск.
- `logging.redactSensitive`: `off` | `tools` (типово: `tools`)
- `logging.redactPatterns`: масив рядків регулярних виразів (перевизначає типові значення)
- Використовуйте необроблені рядки регулярних виразів (автоматично `gi`) або `/pattern/flags`, якщо потрібні власні прапорці.
- `logging.redactSensitive`: `off` | `tools` (стандартно: `tools`)
- `logging.redactPatterns`: масив рядків regex (перевизначає стандартні значення)
- Використовуйте сирі рядки regex (авто `gi`) або `/pattern/flags`, якщо потрібні власні прапорці.
- Збіги маскуються зі збереженням перших 6 + останніх 4 символів (довжина >= 18), інакше `***`.
- Типові значення покривають поширені присвоєння ключів, прапорці CLI, поля JSON, bearer-заголовки, блоки PEM, популярні префікси токенів і назви полів платіжних облікових даних, як-от номер картки, CVC/CVV, спільний платіжний токен і платіжні облікові дані.
- Стандартні значення покривають поширені присвоєння ключів, CLI прапорці, поля JSON, bearer-заголовки, блоки PEM, популярні префікси токенів і назви полів платіжних облікових даних, як-от номер картки, CVC/CVV, спільний платіжний токен і платіжні облікові дані.
Деякі межі безпеки завжди редагують секрети незалежно від `logging.redactSensitive`.
Сюди входять події викликів інструментів інтерфейсу керування, вивід інструмента `sessions_history`,
експорти підтримки діагностики, спостереження помилок провайдерів, показ команди схвалення exec
і журнали протоколу Gateway WebSocket. Ці поверхні все ще можуть використовувати
Деякі межі безпеки завжди редагують чутливі дані незалежно від `logging.redactSensitive`.
Сюди входять події викликів інструментів Control UI, вивід інструмента `sessions_history`,
експорти діагностичної підтримки, спостереження помилок провайдерів, відображення команди
схвалення exec і журнали протоколу Gateway WebSocket. Ці поверхні все ще можуть використовувати
`logging.redactPatterns` як додаткові шаблони, але `redactSensitive: "off"`
не змушує їх виводити необроблені секрети.
@ -83,19 +86,19 @@ OpenClaw може маскувати чутливі токени до того,
Gateway друкує журнали протоколу WebSocket у двох режимах:
- **Звичайний режим (без `--verbose`)**: друкуються лише “цікаві” результати RPC:
- **Звичайний режим (без `--verbose`)**: друкуються лише «цікаві» результати RPC:
- помилки (`ok=false`)
- повільні виклики (типовий поріг: `>= 50ms`)
- повільні виклики (стандартний поріг: `>= 50ms`)
- помилки розбору
- **Докладний режим (`--verbose`)**: друкує весь трафік запитів/відповідей WS.
- **Детальний режим (`--verbose`)**: друкує весь трафік запитів/відповідей WS.
### Стиль журналів WS
`openclaw gateway` підтримує перемикач стилю для кожного Gateway:
`openclaw gateway` підтримує перемикач стилю для окремого Gateway:
- `--ws-log auto` (типово): звичайний режим оптимізований; докладний режим використовує компактний вивід
- `--ws-log compact`: компактний вивід (парні запит/відповідь) у докладному режимі
- `--ws-log full`: повний вивід для кожного фрейму в докладному режимі
- `--ws-log auto` (стандартно): звичайний режим оптимізований; детальний режим використовує компактний вивід
- `--ws-log compact`: компактний вивід (парні запит/відповідь) у детальному режимі
- `--ws-log full`: повний вивід для кожного кадру в детальному режимі
- `--compact`: псевдонім для `--ws-log compact`
Приклади:
@ -114,21 +117,21 @@ openclaw gateway --verbose --ws-log full
## Форматування консолі (журналювання підсистем)
Форматер консолі **враховує TTY** і друкує узгоджені рядки з префіксами.
Логери підсистем групують вивід і роблять його зручним для перегляду.
Журналювачі підсистем зберігають вивід згрупованим і зручним для перегляду.
Поведінка:
- **Префікси підсистем** у кожному рядку (наприклад, `[gateway]`, `[canvas]`, `[tailscale]`)
- **Кольори підсистем** (стабільні для кожної підсистеми) плюс забарвлення рівнів
- **Колір, коли вивід є TTY або середовище схоже на розширений термінал** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), з урахуванням `NO_COLOR`
- **Скорочені префікси підсистем**: відкидає початкові `gateway/` + `channels/`, залишає останні 2 сегменти (наприклад, `whatsapp/outbound`)
- **Підлогери за підсистемами** (автоматичний префікс + структуроване поле `{ subsystem }`)
- **`logRaw()`** для виводу QR/UX (без префікса, без форматування)
- **Колір, коли вивід є TTY або середовище схоже на насичений термінал** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), враховує `NO_COLOR`
- **Скорочені префікси підсистем**: прибирає початкові `gateway/` + `channels/`, залишає останні 2 сегменти (наприклад, `whatsapp/outbound`)
- **Піджурналювачі за підсистемою** (автопрефікс + структуроване поле `{ subsystem }`)
- **`logRaw()`** для QR/UX виводу (без префікса, без форматування)
- **Стилі консолі** (наприклад, `pretty | compact | json`)
- **Рівень журналювання консолі** окремий від рівня файлового журналювання (файл зберігає повну деталізацію, коли `logging.level` установлено в `debug`/`trace`)
- **Тіла повідомлень WhatsApp** журналюються на рівні `debug` (використовуйте `--verbose`, щоб їх побачити)
- **Рівень журналювання консолі** окремий від рівня файлового журналу (файл зберігає повну деталізацію, коли `logging.level` встановлено на `debug`/`trace`)
- **Тіла повідомлень WhatsApp** журналюються на рівні `debug` (використовуйте `--verbose`, щоб їх бачити)
Це зберігає стабільність наявних файлових журналів і водночас робить інтерактивний вивід зручним для перегляду.
Це зберігає наявні файлові журнали стабільними, водночас роблячи інтерактивний вивід зручним для перегляду.
## Пов’язане

View File

@ -4,22 +4,22 @@ read_when:
- Розуміння правил виявлення та завантаження Plugin
- Робота з пакетами Plugin, сумісними з Codex/Claude
sidebarTitle: Install and Configure
summary: Встановлення, налаштування та керування Plugin OpenClaw
summary: Встановлення, налаштування та керування плагінами OpenClaw
title: Plugins
x-i18n:
generated_at: "2026-05-01T21:40:38Z"
generated_at: "2026-05-01T22:18:46Z"
model: gpt-5.5
provider: openai
source_hash: 0dbb4d0102f3f2060fe13aa5e6ae1b24080a456f223e985ccfa390106e94f4d8
source_hash: 45d4804c55d70000cf471d9d258204ef0028c30d5a731750c37f5d40991b72a0
source_path: tools/plugin.md
workflow: 16
---
Plugin-и розширюють OpenClaw новими можливостями: каналами, провайдерами моделей,
обв’язками агентів, інструментами, Skills, мовленням, транскрипцією в реальному часі, голосом у реальному часі, розумінням медіа, генерацією зображень, генерацією відео, отриманням вебвмісту, вебпошуком
і не тільки. Деякі Plugin-и є **core** (постачаються з OpenClaw), інші
є **зовнішніми**. Більшість зовнішніх Plugin-ів публікуються й знаходяться через
[ClawHub](/uk/tools/clawhub). Npm і надалі підтримується для прямих встановлень і для
Plugin-и розширюють OpenClaw новими можливостями: каналами, постачальниками моделей,
обгортками агентів, інструментами, Skills, мовленням, транскрипцією в реальному часі, голосом у реальному часі, розумінням медіа, генерацією зображень, генерацією відео, web fetch, web
search тощо. Деякі Plugin-и є **основними** (постачаються з OpenClaw), інші
є **зовнішніми**. Більшість зовнішніх Plugin-ів публікуються й виявляються через
[ClawHub](/uk/tools/clawhub). Npm лишається підтримуваним для прямих встановлень і для
тимчасового набору пакетів Plugin-ів, що належать OpenClaw, доки ця міграція завершується.
## Швидкий старт
@ -31,7 +31,7 @@ Plugin-и розширюють OpenClaw новими можливостями:
```
</Step>
<Step title="Установіть Plugin">
<Step title="Встановіть Plugin">
```bash
# From npm
openclaw plugins install npm:@acme/openclaw-plugin
@ -51,7 +51,7 @@ Plugin-и розширюють OpenClaw новими можливостями:
openclaw gateway restart
```
Потім налаштуйте в `plugins.entries.\<id\>.config` у вашому файлі конфігурації.
Потім налаштуйте в `plugins.entries.\<id\>.config` у вашому конфігураційному файлі.
</Step>
@ -63,14 +63,14 @@ Plugin-и розширюють OpenClaw новими можливостями:
openclaw <plugin-command> --help
```
Використовуйте `--runtime`, коли потрібно підтвердити зареєстровані інструменти, сервіси, gateway
методи, хуки або CLI-команди, що належать Plugin-у. Звичайний `inspect` — це холодна
перевірка маніфесту/реєстру, яка навмисно уникає імпортування runtime Plugin-а.
Використовуйте `--runtime`, коли потрібно підтвердити зареєстровані інструменти, служби, методи Gateway,
хуки або CLI-команди, що належать Plugin-у. Звичайний `inspect` є холодною
перевіркою маніфесту/реєстру й навмисно уникає імпорту runtime Plugin-а.
</Step>
</Steps>
Якщо ви віддаєте перевагу керуванню безпосередньо з чату, увімкніть `commands.plugins: true` і використовуйте:
Якщо ви віддаєте перевагу керуванню, природному для чату, увімкніть `commands.plugins: true` і використовуйте:
```text
/plugin install clawhub:<package>
@ -78,33 +78,35 @@ Plugin-и розширюють OpenClaw новими можливостями:
/plugin enable <plugin-id>
```
Шлях встановлення використовує той самий резолвер, що й CLI: локальний шлях/архів, явний
`clawhub:<pkg>`, явний `npm:<pkg>`, явний `git:<repo>` або просту специфікацію пакета
(спочатку ClawHub, потім резервно npm).
Шлях встановлення використовує той самий resolver, що й CLI: локальний шлях/архів, явний
`clawhub:<pkg>`, явний `npm:<pkg>`, явний `git:<repo>` або специфікація пакета
без префікса (спочатку ClawHub, потім fallback до npm).
Якщо конфігурація недійсна, встановлення зазвичай завершується без змін і спрямовує вас до
`openclaw doctor --fix`. Єдиний виняток відновлення — вузький шлях перевстановлення вбудованого Plugin-а для Plugin-ів, які увімкнули
Якщо конфігурація недійсна, встановлення зазвичай завершується закритою відмовою та спрямовує вас до
`openclaw doctor --fix`. Єдиний виняток для відновлення — вузький шлях
повторного встановлення bundled-plugin для Plugin-ів, які ввімкнули
`openclaw.install.allowInvalidConfigRecovery`.
Під час запуску Gateway недійсна конфігурація одного Plugin-а ізолюється до цього Plugin-а:
запуск журналює проблему `plugins.entries.<id>.config`, пропускає цей Plugin під час
завантаження та залишає інші Plugin-и й канали онлайн. Запустіть `openclaw doctor --fix`,
щоб помістити проблемну конфігурацію Plugin-а в карантин, вимкнувши цей запис Plugin-а й вилучивши
запуск записує проблему `plugins.entries.<id>.config` у журнали, пропускає цей Plugin під час
завантаження й залишає інші Plugin-и та канали онлайн. Запустіть `openclaw doctor --fix`,
щоб помістити погану конфігурацію Plugin-а в карантин, вимкнувши цей запис Plugin-а та видаливши
його недійсний конфігураційний payload; звичайна резервна копія конфігурації зберігає попередні значення.
Коли конфігурація каналу посилається на Plugin, який більше не виявляється, але той самий застарілий id Plugin-а залишається в конфігурації Plugin-ів або записах встановлення, запуск Gateway
журналює попередження й пропускає цей канал замість блокування всіх інших каналів.
Запустіть `openclaw doctor --fix`, щоб вилучити застарілі записи каналу/Plugin-а; невідомі
ключі каналів без ознак застарілого Plugin-а й надалі не проходять валідацію, щоб друкарські помилки залишалися
помітними.
Якщо встановлено `plugins.enabled: false`, застарілі посилання на Plugin-и вважаються інертними:
запуск Gateway пропускає виявлення/завантаження Plugin-ів, а `openclaw doctor` зберігає
вимкнену конфігурацію Plugin-ів замість автоматичного вилучення. Знову ввімкніть Plugin-и перед
запуском очищення doctor, якщо хочете вилучити застарілі id Plugin-ів.
Коли конфігурація каналу посилається на Plugin, який більше не виявляється, але той самий
застарілий id Plugin-а лишається в конфігурації Plugin-а або записах встановлення, запуск Gateway
записує попередження й пропускає цей канал замість блокування всіх інших каналів.
Запустіть `openclaw doctor --fix`, щоб видалити застарілі записи каналу/Plugin-а; невідомі
ключі каналів без доказів застарілого Plugin-а все одно не проходять валідацію, щоб друкарські помилки лишалися
видимими.
Якщо задано `plugins.enabled: false`, застарілі посилання на Plugin-и трактуються як інертні:
запуск Gateway пропускає роботу з виявлення/завантаження Plugin-ів, а `openclaw doctor` зберігає
вимкнену конфігурацію Plugin-а замість автоматичного видалення. Повторно увімкніть Plugin-и перед
запуском очищення doctor, якщо хочете видалити застарілі id Plugin-ів.
Встановлення залежностей Plugin-а відбувається лише під час явних потоків install/update або
doctor repair. Запуск Gateway, перезавантаження конфігурації та runtime-інспекція не
запускають менеджери пакетів і не ремонтують дерева залежностей. Локальні Plugin-и вже повинні
мати встановлені залежності, тоді як npm, git і ClawHub Plugin-и
встановлюються в керовані корені Plugin-ів OpenClaw із локальними для пакета
Встановлення залежностей Plugin-а відбувається лише під час явного встановлення/оновлення або
потоків ремонту doctor. Запуск Gateway, перезавантаження конфігурації та runtime-інспекція не
запускають пакетні менеджери й не ремонтують дерева залежностей. Локальні Plugin-и вже мають
мати встановлені залежності, тоді як npm-, git- і ClawHub-Plugin-и
встановлюються в керованих OpenClaw коренях Plugin-ів із локальними для пакета
залежностями. Зовнішні Plugin-и та власні шляхи завантаження все одно потрібно встановлювати
через `openclaw plugins install`.
Див. [Розв’язання залежностей Plugin-а](/uk/plugins/dependency-resolution) щодо
@ -116,27 +118,27 @@ OpenClaw розпізнає два формати Plugin-ів:
| Формат | Як це працює | Приклади |
| ---------- | ------------------------------------------------------------------ | ------------------------------------------------------ |
| **Native** | `openclaw.plugin.json` + runtime-модуль; виконується в процесі | Офіційні Plugin-и, community npm-пакети |
| **Bundle** | Макет, сумісний із Codex/Claude/Cursor; зіставляється з можливостями OpenClaw | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
| **Native** | `openclaw.plugin.json` + runtime-модуль; виконується в процесі | Офіційні Plugin-и, npm-пакети спільноти |
| **Bundle** | Сумісна з Codex/Claude/Cursor структура; відображається на функції OpenClaw | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
Обидва відображаються в `openclaw plugins list`. Див. [Plugin Bundles](/uk/plugins/bundles) щодо деталей bundle.
Обидва відображаються в `openclaw plugins list`. Див. [Комплекти Plugin-ів](/uk/plugins/bundles) для подробиць про bundle.
Якщо ви пишете native Plugin, почніть із [Створення Plugin-ів](/uk/plugins/building-plugins)
Якщо ви пишете native Plugin, почніть зі [Створення Plugin-ів](/uk/plugins/building-plugins)
і [Огляду Plugin SDK](/uk/plugins/sdk-overview).
## Точки входу пакетів
## Точки входу пакета
Npm-пакети native Plugin-ів мають оголошувати `openclaw.extensions` у `package.json`.
Кожен запис має залишатися всередині директорії пакета й резолвитися в читабельний
runtime-файл або у TypeScript-файл вихідного коду з виведеним побудованим JavaScript
відповідником, як-от `src/index.ts` до `dist/index.js`.
Кожен запис має лишатися всередині каталогу пакета й розв’язуватися в читабельний
runtime-файл або у вихідний TypeScript-файл з інферованим зібраним JavaScript
peer, наприклад `src/index.ts` до `dist/index.js`.
Використовуйте `openclaw.runtimeExtensions`, коли опубліковані runtime-файли не розташовані за
тими самими шляхами, що й вихідні записи. За наявності `runtimeExtensions` має містити
рівно один запис для кожного запису `extensions`. Невідповідні списки призводять до помилки встановлення та
виявлення Plugin-а замість тихого відкату до шляхів вихідного коду. Якщо ви також
публікуєте `openclaw.setupEntry`, використовуйте `openclaw.runtimeSetupEntry` для його побудованого
JavaScript-відповідника; цей файл є обов’язковим, якщо оголошений.
тими самими шляхами, що й вихідні записи. Якщо присутній, `runtimeExtensions` має містити
рівно один запис для кожного запису `extensions`. Невідповідні списки спричиняють помилку встановлення та
виявлення Plugin-а замість мовчазного fallback до шляхів джерел. Якщо ви також
публікуєте `openclaw.setupEntry`, використовуйте `openclaw.runtimeSetupEntry` для його зібраного
JavaScript peer; цей файл є обов’язковим, коли оголошений.
```json
{
@ -153,14 +155,14 @@ JavaScript-відповідника; цей файл є обов’язкови
### Npm-пакети, що належать OpenClaw, під час міграції
ClawHub є основним шляхом розповсюдження для більшості Plugin-ів. Поточні пакетовані
релізи OpenClaw вже містять багато офіційних Plugin-ів, тож вони не потребують
релізи OpenClaw уже містять багато офіційних Plugin-ів, тож вони не потребують
окремих npm-встановлень у звичайних налаштуваннях. Доки кожен Plugin, що належить OpenClaw, не
мігрував до ClawHub, OpenClaw і надалі постачає деякі пакети Plugin-ів `@openclaw/*` в
мігрував до ClawHub, OpenClaw все ще постачає деякі пакети Plugin-ів `@openclaw/*` на
npm для старіших/власних встановлень і прямих npm-процесів.
Якщо npm повідомляє, що пакет Plugin-а `@openclaw/*` застарілий, ця версія пакета
походить зі старішої зовнішньої лінійки пакетів. Використовуйте вбудований Plugin із
поточного OpenClaw або локальний checkout, доки новіший npm-пакет не буде опубліковано.
Якщо npm повідомляє, що пакет Plugin-а `@openclaw/*` є deprecated, ця версія пакета
походить зі старішої зовнішньої лінійки пакетів. Використовуйте bundled Plugin з
поточного OpenClaw або локальний checkout, доки не буде опубліковано новіший npm-пакет.
| Plugin | Пакет | Документація |
| --------------- | -------------------------- | ------------------------------------------ |
@ -178,10 +180,10 @@ npm для старіших/власних встановлень і прями
| Zalo | `@openclaw/zalo` | [Zalo](/uk/channels/zalo) |
| Zalo Personal | `@openclaw/zalouser` | [Zalo Personal](/uk/plugins/zalouser) |
### Core (постачається з OpenClaw)
### Основні (постачаються з OpenClaw)
<AccordionGroup>
<Accordion title=ровайдери моделей (увімкнено за замовчуванням)">
<Accordion title=остачальники моделей (увімкнені за замовчуванням)">
`anthropic`, `byteplus`, `cloudflare-ai-gateway`, `github-copilot`, `google`,
`huggingface`, `kilocode`, `kimi-coding`, `minimax`, `mistral`, `qwen`,
`moonshot`, `nvidia`, `openai`, `opencode`, `opencode-go`, `openrouter`,
@ -189,27 +191,27 @@ npm для старіших/власних встановлень і прями
`vercel-ai-gateway`, `volcengine`, `xiaomi`, `zai`
</Accordion>
<Accordion title="Memory Plugin-и">
- `memory-core`вбудований пошук memory (за замовчуванням через `plugins.slots.memory`)
- `memory-lancedb` — довготривала memory на базі LanceDB з auto-recall/capture (встановіть `plugins.slots.memory = "memory-lancedb"`)
<Accordion title="Plugin-и пам’яті">
- `memory-core`bundled пошук пам’яті (за замовчуванням через `plugins.slots.memory`)
- `memory-lancedb` — довгострокова пам’ять на базі LanceDB з автоматичним recall/capture (задайте `plugins.slots.memory = "memory-lancedb"`)
Див. [Memory LanceDB](/uk/plugins/memory-lancedb) щодо OpenAI-сумісного
налаштування embeddings, прикладів Ollama, лімітів recall і усунення несправностей.
налаштування embedding, прикладів Ollama, лімітів recall і усунення несправностей.
</Accordion>
<Accordion title=ровайдери мовлення (увімкнено за замовчуванням)">
<Accordion title=остачальники мовлення (увімкнені за замовчуванням)">
`elevenlabs`, `microsoft`
</Accordion>
<Accordion title="Інше">
- `browser`вбудований browser Plugin для browser tool, CLI `openclaw browser`, gateway-методу `browser.request`, browser runtime і стандартного сервісу керування браузером (увімкнено за замовчуванням; вимкніть перед заміною)
- `browser`bundled Plugin браузера для інструмента браузера, CLI `openclaw browser`, методу Gateway `browser.request`, browser runtime і стандартної служби керування браузером (увімкнено за замовчуванням; вимкніть перед заміною)
- `copilot-proxy` — міст VS Code Copilot Proxy (вимкнено за замовчуванням)
</Accordion>
</AccordionGroup>
Шукаєте сторонні Plugin-и? Див. [Community Plugins](/uk/plugins/community).
Шукаєте сторонні Plugin-и? Див. [Plugin-и спільноти](/uk/plugins/community).
## Конфігурація
@ -232,50 +234,50 @@ npm для старіших/власних встановлень і прями
| `enabled` | Головний перемикач (за замовчуванням: `true`) |
| `allow` | Allowlist Plugin-ів (необов’язково) |
| `deny` | Denylist Plugin-ів (необов’язково; deny має пріоритет) |
| `load.paths` | Додаткові файли/директорії Plugin-ів |
| `load.paths` | Додаткові файли/каталоги Plugin-ів |
| `slots` | Ексклюзивні селектори слотів (наприклад, `memory`, `contextEngine`) |
| `entries.\<id\>` | Перемикачі + конфігурація для окремого Plugin-а |
`plugins.allow` є ексклюзивним. Коли він непорожній, завантажуватися або
надавати інструменти можуть лише перелічені Plugin-и, навіть якщо `tools.allow` містить `"*"` або конкретну назву
інструмента, що належить Plugin-у. Якщо allowlist інструментів посилається на інструменти Plugin-ів, додайте id Plugin-ів-власників
до `plugins.allow` або вилучіть `plugins.allow`; `openclaw doctor` попереджає про таку
експонувати інструменти можуть лише перелічені Plugin-и, навіть якщо `tools.allow` містить `"*"` або конкретну назву
інструмента, що належить Plugin-у. Якщо allowlist інструментів посилається на інструменти Plugin-а, додайте id Plugin-ів-власників
до `plugins.allow` або видаліть `plugins.allow`; `openclaw doctor` попереджає про таку
форму.
Зміни конфігурації **потребують перезапуску gateway**. Якщо Gateway працює з увімкненими config
watch + in-process restart (стандартний шлях `openclaw gateway`), такий
перезапуск зазвичай виконується автоматично за мить після запису конфігурації.
Немає підтримуваного шляху hot-reload для runtime-коду native Plugin-а або lifecycle
hooks; перезапустіть процес Gateway, який обслуговує активний канал, перш ніж
очікувати запуску оновленого коду `register(api)`, хуків `api.on(...)`, інструментів, сервісів або
provider/runtime hooks.
Зміни конфігурації **потребують перезапуску Gateway**. Якщо Gateway запущено з config
watch + in-process restart увімкненими (стандартний шлях `openclaw gateway`), цей
перезапуск зазвичай виконується автоматично через мить після запису конфігурації.
Підтримуваного шляху hot-reload для runtime-коду native Plugin-а або lifecycle
хуків немає; перезапустіть процес Gateway, який обслуговує живий канал, перш ніж
очікувати виконання оновленого коду `register(api)`, хуків `api.on(...)`, інструментів, служб або
provider/runtime хуків.
`openclaw plugins list` — це локальний snapshot реєстру/конфігурації Plugin-ів. Plugin зі станом
`openclaw plugins list` — це локальний знімок реєстру/конфігурації Plugin-ів. Plugin зі статусом
`enabled` там означає, що збережений реєстр і поточна конфігурація дозволяють
Plugin-у брати участь. Це не доводить, що вже запущений віддалений дочірній процес Gateway
перезапустився з тим самим кодом Plugin-а. У налаштуваннях VPS/контейнерів із
процесами-обгортками надсилайте перезапуски фактичному процесу `openclaw gateway run`
або використовуйте `openclaw gateway restart` для запущеного Gateway.
перезапустився з тим самим кодом Plugin-а. У налаштуваннях VPS/контейнерів з
wrapper-процесами надсилайте перезапуски фактичному процесу `openclaw gateway run`,
або використовуйте `openclaw gateway restart` проти запущеного Gateway.
<Accordion title="Стани Plugin-а: вимкнений, відсутній або недійсний">
<Accordion title="Стани Plugin-а: вимкнений, відсутній, недійсний">
- **Вимкнений**: Plugin існує, але правила ввімкнення вимкнули його. Конфігурація зберігається.
- **Відсутній**: конфігурація посилається на id Plugin-а, який discovery не знайшов.
- **Недійсний**: Plugin існує, але його конфігурація не відповідає оголошеній схемі. Запуск Gateway пропускає лише цей Plugin; `openclaw doctor --fix` може помістити недійсний запис у карантин, вимкнувши його й вилучивши його конфігураційний payload.
- **Відсутній**: конфігурація посилається на id Plugin-а, який виявлення не знайшло.
- **Недійсний**: Plugin існує, але його конфігурація не відповідає оголошеній схемі. Запуск Gateway пропускає лише цей Plugin; `openclaw doctor --fix` може помістити недійсний запис у карантин, вимкнувши його та видаливши його конфігураційний payload.
</Accordion>
## Виявлення та пріоритетність
## Виявлення та пріоритет
OpenClaw сканує plugins у такому порядку (перше співпадіння перемагає):
OpenClaw сканує plugins у такому порядку (перша відповідність перемагає):
<Steps>
<Step title="Шляхи конфігурації">
`plugins.load.paths` — явні шляхи до файлів або директорій. Шляхи, що вказують
назад на власні упаковані директорії bundled plugin OpenClaw, ігноруються;
`plugins.load.paths` — явні шляхи до файлів або каталогів. Шляхи, що вказують
назад на власні упаковані каталоги bundled plugin OpenClaw, ігноруються;
запустіть `openclaw doctor --fix`, щоб видалити ці застарілі псевдоніми.
</Step>
<Step title="Workspace plugins">
<Step title="Plugins робочого простору">
`\<workspace\>/.openclaw/<plugin-root>/*.ts` і `\<workspace\>/.openclaw/<plugin-root>/*/index.ts`.
</Step>
@ -284,59 +286,91 @@ OpenClaw сканує plugins у такому порядку (перше спі
</Step>
<Step title="Bundled plugins">
Постачаються з OpenClaw. Багато з них увімкнені за замовчуванням (провайдери моделей, мовлення).
Постачаються з OpenClaw. Багато з них увімкнено за замовчуванням (провайдери моделей, мовлення).
Інші потребують явного ввімкнення.
</Step>
</Steps>
Упаковані встановлення та Docker-образи зазвичай розв’язують bundled plugins з
скомпільованого дерева `dist/extensions`. Якщо директорію джерел bundled plugin
змонтовано bind mount поверх відповідного упакованого шляху джерел, наприклад
`/app/extensions/synology-chat`, OpenClaw розглядає цю змонтовану директорію
джерел як bundled source overlay і виявляє її перед упакованим бандлом
Упаковані встановлення та Docker-образи зазвичай розв’язують bundled plugins із
скомпільованого дерева `dist/extensions`. Якщо каталог вихідного коду bundled plugin
підмонтовано поверх відповідного упакованого шляху до вихідного коду, наприклад
`/app/extensions/synology-chat`, OpenClaw розглядає цей змонтований каталог вихідного коду
як накладення bundled source і виявляє його перед упакованим bundle
`/app/dist/extensions/synology-chat`. Це зберігає працездатність контейнерних
циклів супровідників без перемикання кожного bundled plugin назад на джерела TypeScript.
Установіть `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1`, щоб примусово
використовувати упаковані dist-бандли, навіть коли наявні source overlay mounts.
циклів мейнтейнерів без перемикання кожного bundled plugin назад на вихідний код TypeScript.
Установіть `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1`, щоб примусово використовувати упаковані dist bundles
навіть за наявності змонтованих накладень вихідного коду.
### Правила ввімкнення
- `plugins.enabled: false` вимикає всі plugins і пропускає роботу виявлення/завантаження Plugin
- `plugins.enabled: false` вимикає всі plugins і пропускає роботу з виявлення/завантаження plugins
- `plugins.deny` завжди має пріоритет над allow
- `plugins.entries.\<id\>.enabled: false` вимикає цей Plugin
- Plugins з походженням workspace **вимкнені за замовчуванням** (їх потрібно явно ввімкнути)
- Bundled plugins дотримуються вбудованого набору default-on, якщо його не перевизначено
- Ексклюзивні слоти можуть примусово ввімкнути вибраний Plugin для цього слота
- `plugins.entries.\<id\>.enabled: false` вимикає цей plugin
- Plugins із робочого простору **вимкнені за замовчуванням** (їх потрібно явно ввімкнути)
- Bundled plugins дотримуються вбудованого набору ввімкнених за замовчуванням, якщо це не перевизначено
- Ексклюзивні слоти можуть примусово ввімкнути вибраний plugin для цього слота
- Деякі bundled opt-in plugins вмикаються автоматично, коли конфігурація називає
surface, що належить Plugin, як-от посилання на модель провайдера, конфігурацію каналу або runtime harness
- Застаріла конфігурація Plugin зберігається, доки активний `plugins.enabled: false`;
повторно ввімкніть plugins перед запуском очищення doctor, якщо хочете видалити застарілі id
- Маршрути Codex сімейства OpenAI зберігають окремі межі Plugin:
поверхню, що належить plugin, наприклад посилання на модель провайдера, конфігурацію каналу або runtime
harness
- Застаріла конфігурація plugin зберігається, доки активний `plugins.enabled: false`;
знову ввімкніть plugins перед запуском очищення doctor, якщо хочете видалити застарілі ids
- Маршрути Codex сімейства OpenAI зберігають окремі межі plugin:
`openai-codex/*` належить OpenAI plugin, тоді як bundled Codex
app-server plugin вибирається через `agentRuntime.id: "codex"` або legacy
app-server plugin вибирається через `agentRuntime.id: "codex"` або застарілі
посилання на моделі `codex/*`
## Усунення несправностей runtime hooks
Якщо Plugin з’являється у `plugins list`, але побічні ефекти або hooks
`register(api)` не запускаються в live chat traffic, спочатку перевірте це:
Якщо plugin з’являється в `plugins list`, але побічні ефекти або hooks
`register(api)` не виконуються в живому чат-трафіку, спершу перевірте таке:
- Запустіть `openclaw gateway status --deep --require-rpc` і підтвердьте, що активні
URL Gateway, профіль, шлях конфігурації та процес є саме тими, які ви редагуєте.
- Перезапустіть live Gateway після змін встановлення/конфігурації/коду Plugin. У wrapper
containers PID 1 може бути лише супервізором; перезапустіть або надішліть сигнал дочірньому
- Перезапустіть живий Gateway після змін встановлення/config/code plugin. У wrapper
containers PID 1 може бути лише supervisor; перезапустіть або надішліть сигнал дочірньому
процесу `openclaw gateway run`.
- Використовуйте `openclaw plugins inspect <id> --runtime --json`, щоб підтвердити реєстрації hooks і
діагностику. Non-bundled conversation hooks, як-от `llm_input`,
- Використайте `openclaw plugins inspect <id> --runtime --json`, щоб підтвердити реєстрації hooks і
діагностику. Небандловані conversation hooks, як-от `llm_input`,
`llm_output`, `before_agent_finalize` і `agent_end`, потребують
`plugins.entries.<id>.hooks.allowConversationAccess=true`.
- Для перемикання моделей віддавайте перевагу `before_model_resolve`. Він виконується перед
розв’язанням моделі для agent turns; `llm_output` запускається лише після того, як спроба моделі
створить assistant output.
- Для підтвердження фактичної моделі сесії використовуйте `openclaw sessions` або
поверхні сесії/статусу Gateway, а під час налагодження provider payloads запускайте
- Для перемикання моделей віддавайте перевагу `before_model_resolve`. Він виконується перед розв’язанням моделі
для ходів агента; `llm_output` виконується лише після того, як спроба моделі
створює вивід асистента.
- Для підтвердження ефективної моделі сесії використовуйте `openclaw sessions` або
поверхні сесії/статусу Gateway, а під час налагодження payloads провайдера запускайте
Gateway з `--raw-stream --raw-stream-path <path>`.
### Повільне налаштування інструментів plugin
Якщо ходи агента наче зависають під час підготовки інструментів, увімкніть trace logging і
перевірте рядки часу виконання factory інструментів plugin:
```bash
openclaw config set logging.level trace
openclaw logs --follow
```
Шукайте:
```text
[trace:plugin-tools] factory timings ...
```
Зведення перелічує загальний час factory і найповільніші factory інструментів plugin,
зокрема plugin id, оголошені назви інструментів, форму результату та чи є інструмент
необов’язковим. Повільні рядки підвищуються до попереджень, коли одна factory триває
щонайменше 1 с або загальна підготовка factory інструментів plugin триває щонайменше 5 с.
Якщо один plugin домінує в часі виконання, перевірте його runtime registrations:
```bash
openclaw plugins inspect <plugin-id> --runtime --json
```
Потім оновіть, перевстановіть або вимкніть цей plugin. Автори Plugin повинні переносити
дороге завантаження залежностей за шлях виконання інструмента, а не виконувати його
всередині tool factory.
### Дублювання власності каналу або інструмента
Симптоми:
@ -345,34 +379,34 @@ OpenClaw сканує plugins у такому порядку (перше спі
- `channel setup already registered: <channel-id> (<plugin-id>)`
- `plugin tool name conflict (<plugin-id>): <tool-name>`
Це означає, що більш ніж один увімкнений Plugin намагається володіти тим самим каналом,
Це означає, що більше ніж один увімкнений plugin намагається володіти тим самим каналом,
потоком налаштування або назвою інструмента. Найпоширеніша причина — зовнішній channel plugin,
встановлений поруч із bundled plugin, який тепер надає той самий channel id.
Кроки налагодження:
- Запустіть `openclaw plugins list --enabled --verbose`, щоб побачити кожен увімкнений Plugin
- Запустіть `openclaw plugins list --enabled --verbose`, щоб побачити кожен увімкнений plugin
і його походження.
- Запустіть `openclaw plugins inspect <id> --runtime --json` для кожного підозрюваного Plugin і
порівняйте `channels`, `channelConfigs`, `tools` і діагностику.
- Запустіть `openclaw plugins inspect <id> --runtime --json` для кожного підозрюваного plugin і
порівняйте `channels`, `channelConfigs`, `tools` і diagnostics.
- Запустіть `openclaw plugins registry --refresh` після встановлення або видалення
plugin packages, щоб збережені metadata відображали поточне встановлення.
- Перезапустіть Gateway після змін встановлення, registry або конфігурації.
- Перезапустіть Gateway після змін install, registry або config.
Варіанти виправлення:
- Якщо один Plugin навмисно замінює інший для того самого channel id, бажаний
Plugin має оголосити `channelConfigs.<channel-id>.preferOver` з
нижчопріоритетним plugin id. Див. [/plugins/manifest#replacing-another-channel-plugin](/uk/plugins/manifest#replacing-another-channel-plugin).
- Якщо один plugin навмисно замінює інший для того самого channel id, бажаний
plugin має оголосити `channelConfigs.<channel-id>.preferOver` з id plugin нижчого пріоритету.
Див. [/plugins/manifest#replacing-another-channel-plugin](/uk/plugins/manifest#replacing-another-channel-plugin).
- Якщо дублювання випадкове, вимкніть одну сторону через
`plugins.entries.<plugin-id>.enabled: false` або видаліть застаріле встановлення Plugin.
`plugins.entries.<plugin-id>.enabled: false` або видаліть застаріле встановлення plugin.
- Якщо ви явно ввімкнули обидва plugins, OpenClaw зберігає цей запит і
повідомляє про конфлікт. Виберіть одного власника для каналу або перейменуйте інструменти,
що належать Plugin, щоб runtime surface була однозначною.
що належать plugin, щоб runtime surface була однозначною.
## Слоти Plugin (ексклюзивні категорії)
Деякі категорії є ексклюзивними (активною може бути лише одна за раз):
Деякі категорії є ексклюзивними (активна лише одна за раз):
```json5
{
@ -385,9 +419,9 @@ OpenClaw сканує plugins у такому порядку (перше спі
}
```
| Слот | Що він контролює | За замовчуванням |
| Слот | Що він контролює | Значення за замовчуванням |
| --------------- | --------------------- | ------------------- |
| `memory` | Plugin active memory | `memory-core` |
| `memory` | Plugin активної пам’яті | `memory-core` |
| `contextEngine` | Активний context engine | `legacy` (вбудований) |
## Довідник CLI
@ -437,79 +471,79 @@ openclaw plugins enable <id>
openclaw plugins disable <id>
```
Bundled plugins постачаються з OpenClaw. Багато з них увімкнені за замовчуванням (наприклад
Bundled plugins постачаються з OpenClaw. Багато з них увімкнено за замовчуванням (наприклад
bundled model providers, bundled speech providers і bundled browser
plugin). Інші bundled plugins все ще потребують `openclaw plugins enable <id>`.
`--force` перезаписує наявний встановлений Plugin або hook pack на місці. Використовуйте
`openclaw plugins update <id-or-npm-spec>` для регулярних оновлень відстежуваних npm
plugins. Це не підтримується з `--link`, який повторно використовує шлях джерел замість
`--force` перезаписує наявний встановлений plugin або hook pack на місці. Використовуйте
`openclaw plugins update <id-or-npm-spec>` для звичайних оновлень відстежуваних npm
plugins. Це не підтримується з `--link`, який повторно використовує шлях вихідного коду замість
копіювання поверх керованої цілі встановлення.
Коли `plugins.allow` уже задано, `openclaw plugins install` додає id
встановленого Plugin до цього allowlist перед його ввімкненням. Якщо той самий plugin id
Коли `plugins.allow` уже встановлено, `openclaw plugins install` додає
id встановленого plugin до цього allowlist перед його ввімкненням. Якщо той самий plugin id
присутній у `plugins.deny`, install видаляє цей застарілий запис deny, щоб
явне встановлення можна було одразу завантажити після перезапуску.
явне встановлення можна було завантажити одразу після перезапуску.
OpenClaw зберігає persistent local plugin registry як cold read model для
інвентаризації Plugin, власності contributions і планування запуску. Потоки install, update,
uninstall, enable і disable оновлюють цей registry після зміни стану Plugin.
OpenClaw зберігає локальний реєстр plugin як модель холодного читання для
інвентаризації plugins, власності внесків і планування запуску. Потоки install, update,
uninstall, enable і disable оновлюють цей registry після зміни стану plugin.
Той самий файл `plugins/installs.json` зберігає довговічні install metadata у
top-level `installRecords` і перебудовувані manifest metadata у `plugins`. Якщо
верхньорівневому `installRecords` і відновлювані manifest metadata у `plugins`. Якщо
registry відсутній, застарілий або недійсний, `openclaw plugins registry
--refresh` перебудовує його manifest view з install records, config policy і
manifest/package metadata без завантаження runtime modules Plugin.
`openclaw plugins update <id-or-npm-spec>` застосовується до відстежуваних встановлень. Передавання
npm package spec з dist-tag або точною версією розв’язує package name
назад до відстежуваного запису Plugin і записує новий spec для майбутніх оновлень.
Передавання package name без версії переводить exact pinned install назад на
лінію релізів за замовчуванням registry. Якщо встановлений npm plugin уже відповідає
розв’язаній версії та записаній ідентичності артефакта, OpenClaw пропускає оновлення
без завантаження, перевстановлення або перезапису конфігурації.
--refresh` перебудовує його manifest view із install records, config policy і
manifest/package metadata без завантаження runtime modules plugin.
`openclaw plugins update <id-or-npm-spec>` застосовується до відстежуваних install. Передавання
npm package spec з dist-tag або exact version розв’язує назву пакета
назад до відстежуваного запису plugin і записує новий spec для майбутніх updates.
Передавання назви пакета без версії повертає точне pinned install назад до
типової release line registry. Якщо встановлений npm plugin уже відповідає
розв’язаній версії та записаній artifact identity, OpenClaw пропускає update
без завантаження, перевстановлення або перезапису config.
`--pin` є лише для npm. Він не підтримується з `--marketplace`, тому що
`--pin` працює лише для npm. Він не підтримується з `--marketplace`, тому що
marketplace installs зберігають metadata джерела marketplace замість npm spec.
`--dangerously-force-unsafe-install` — це аварійне перевизначення для хибних
спрацювань вбудованого dangerous-code scanner. Воно дозволяє встановлення Plugin
і оновлення Plugin продовжуватися попри вбудовані findings рівня `critical`, але все одно
не обходить блокування plugin `before_install` policy або блокування через scan-failure.
Install scans ігнорують типові тестові файли та директорії, як-от `tests/`,
`__tests__/`, `*.test.*` і `*.spec.*`, щоб не блокувати packaged test mocks;
оголошені runtime entrypoints Plugin усе одно скануються, навіть якщо вони використовують одну з
спрацьовувань вбудованого dangerous-code scanner. Воно дозволяє plugin installs
і plugin updates продовжуватися після вбудованих findings рівня `critical`, але все одно
не обходить блокування політики `before_install` plugin або блокування через scan failure.
Install scans ігнорують поширені тестові файли й каталоги, як-от `tests/`,
`__tests__/`, `*.test.*` і `*.spec.*`, щоб не блокувати упаковані test mocks;
оголошені runtime entrypoints plugin усе одно скануються, навіть якщо вони використовують одну з
цих назв.
Цей CLI flag застосовується лише до потоків install/update Plugin. Встановлення skill
dependencies через Gateway використовують відповідне override запиту
Цей CLI flag застосовується лише до потоків install/update plugin. Встановлення залежностей Skills
на базі Gateway натомість використовують відповідний override запиту
`dangerouslyForceUnsafeInstall`, тоді як `openclaw skills install` залишається окремим потоком
завантаження/встановлення Skills з ClawHub.
завантаження/встановлення ClawHub skill.
Якщо Plugin, який ви опублікували на ClawHub, прихований або заблокований скануванням, відкрийте
dashboard ClawHub або запустіть `clawhub package rescan <name>`, щоб попросити ClawHub перевірити
Якщо Plugin, який ви опублікували на ClawHub, приховано або заблоковано скануванням, відкрийте
панель ClawHub або запустіть `clawhub package rescan <name>`, щоб попросити ClawHub перевірити
його знову. `--dangerously-force-unsafe-install` впливає лише на встановлення на вашому власному
комп’ютері; він не просить ClawHub повторно сканувати Plugin або робити заблокований реліз
комп’ютері; він не просить ClawHub повторно просканувати Plugin і не робить заблокований випуск
публічним.
Сумісні бандли беруть участь у тому самому потоці list/inspect/enable/disable для Plugin.
Поточна підтримка runtime включає bundle skills, Claude command-skills,
типові значення Claude `settings.json`, типові значення Claude `.lsp.json` і manifest-declared
`lspServers`, Cursor command-skills і сумісні директорії Codex hooks.
Сумісні пакети беруть участь у тому самому потоці перегляду списку/інспектування/увімкнення/вимкнення
Plugins. Поточна підтримка середовища виконання охоплює пакетні Skills, command-skills Claude,
типові значення Claude `settings.json`, типові значення Claude `.lsp.json` і оголошені в маніфесті
`lspServers`, command-skills Cursor, а також сумісні каталоги хуків Codex.
`openclaw plugins inspect <id>` також повідомляє виявлені можливості bundle, а також
підтримувані або непідтримувані записи серверів MCP і LSP для bundle-backed plugins.
`openclaw plugins inspect <id>` також повідомляє виявлені можливості пакета, а також
підтримувані або непідтримувані записи серверів MCP і LSP для Plugins на основі пакетів.
Джерелами маркетплейсу можуть бути відома Claude назва маркетплейсу з
`~/.claude/plugins/known_marketplaces.json`, локальний корінь маркетплейсу або
шлях `marketplace.json`, скорочення GitHub на кшталт `owner/repo`, URL репозиторію
GitHub або git URL. Для віддалених маркетплейсів записи плагінів мають залишатися всередині
клонованого репозиторію маркетплейсу й використовувати лише відносні джерела шляхів.
Джерелами маркетплейсу можуть бути відома назва маркетплейсу Claude з
`~/.claude/plugins/known_marketplaces.json`, локальний корінь маркетплейсу або шлях
`marketplace.json`, скорочення GitHub на кшталт `owner/repo`, URL репозиторію GitHub
або git URL. Для віддалених маркетплейсів записи Plugins мають залишатися всередині
клонованого репозиторію маркетплейсу й використовувати лише джерела з відносними шляхами.
Повні відомості див. у [довідці CLI `openclaw plugins`](/uk/cli/plugins).
Докладні відомості див. у [довіднику CLI `openclaw plugins`](/uk/cli/plugins).
## Огляд API Plugin
Нативні плагіни експортують об’єкт входу, який надає `register(api)`. Старіші
плагіни можуть іще використовувати `activate(api)` як застарілий псевдонім, але нові плагіни мають
Нативні Plugins експортують об’єкт входу, який надає `register(api)`. Старіші
Plugins усе ще можуть використовувати `activate(api)` як застарілий псевдонім, але нові Plugins мають
використовувати `register`.
```typescript
@ -530,75 +564,75 @@ export default definePluginEntry({
});
```
OpenClaw завантажує об’єкт входу й викликає `register(api)` під час активації плагіна.
Завантажувач усе ще повертається до `activate(api)` для старіших плагінів,
але вбудовані плагіни й нові зовнішні плагіни мають розглядати `register` як
OpenClaw завантажує об’єкт входу й викликає `register(api)` під час активації Plugin.
Завантажувач усе ще повертається до `activate(api)` для старіших Plugins,
але вбудовані Plugins і нові зовнішні Plugins мають розглядати `register` як
публічний контракт.
`api.registrationMode` повідомляє плагіну, чому завантажується його вхід:
`api.registrationMode` повідомляє Plugin, чому завантажується його вхід:
| Режим | Значення |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `full` | Активація під час виконання. Реєструє інструменти, хуки, служби, команди, маршрути та інші активні побічні ефекти. |
| `discovery` | Доступне лише для читання виявлення можливостей. Реєструє провайдерів і метадані; довірений код входу плагіна може завантажуватися, але активні побічні ефекти слід пропускати. |
| `setup-only` | Завантаження метаданих налаштування каналу через легковаговий вхід налаштування. |
| `setup-runtime` | Завантаження налаштування каналу, якому також потрібен вхід часу виконання. |
| `full` | Активація середовища виконання. Реєструє інструменти, хуки, сервіси, команди, маршрути та інші активні побічні ефекти. |
| `discovery` | Виявлення можливостей лише для читання. Реєструє провайдерів і метадані; довірений код входу Plugin може завантажуватися, але має пропускати активні побічні ефекти. |
| `setup-only` | Завантаження метаданих налаштування каналу через полегшений вхід налаштування. |
| `setup-runtime` | Завантаження налаштування каналу, якому також потрібен вхід середовища виконання. |
| `cli-metadata` | Лише збирання метаданих команд CLI. |
Входи плагінів, які відкривають сокети, бази даних, фонових працівників або довгоживучі
клієнти, мають захищати ці побічні ефекти умовою `api.registrationMode === "full"`.
Записи Plugins, які відкривають сокети, бази даних, фонові воркери або довготривалих
клієнтів, мають захищати ці побічні ефекти умовою `api.registrationMode === "full"`.
Завантаження виявлення кешуються окремо від завантажень активації й не замінюють
поточний реєстр Gateway. Виявлення не активує, але й не є вільним від імпортів:
OpenClaw може виконати довірений вхід плагіна або модуль канального плагіна, щоб побудувати
знімок. Тримайте верхні рівні модулів легковаговими й без побічних ефектів, а
мережевих клієнтів, підпроцеси, слухачі, читання облікових даних і запуск служб
переносьте за шляхи повного виконання.
поточний реєстр Gateway. Виявлення не активує, але не є вільним від імпорту:
OpenClaw може виконувати довірений вхід Plugin або модуль Plugin каналу, щоб побудувати
знімок. Тримайте верхні рівні модулів легкими й без побічних ефектів, а мережеві
клієнти, підпроцеси, слухачі, читання облікових даних і запуск сервісів перемістіть
за шляхи повного середовища виконання.
Поширені методи реєстрації:
| Метод | Що він реєструє |
| --------------------------------------- | --------------------------- |
| `registerProvider` | Провайдер моделі (LLM) |
| `registerChannel` | Канал чату |
| `registerTool` | Інструмент агента |
| `registerHook` / `on(...)` | Хуки життєвого циклу |
| `registerSpeechProvider` | Перетворення тексту на мовлення / STT |
| `registerRealtimeTranscriptionProvider` | Потоковий STT |
| `registerRealtimeVoiceProvider` | Дуплексний голос у реальному часі |
| `registerMediaUnderstandingProvider` | Аналіз зображень/аудіо |
| `registerImageGenerationProvider` | Генерація зображень |
| `registerMusicGenerationProvider` | Генерація музики |
| `registerVideoGenerationProvider` | Генерація відео |
| `registerWebFetchProvider` | Провайдер вебзавантаження / скрейпінгу |
| `registerWebSearchProvider` | Вебпошук |
| `registerHttpRoute` | HTTP endpoint |
| `registerCommand` / `registerCli` | Команди CLI |
| `registerContextEngine` | Рушій контексту |
| `registerService` | Фонова служба |
| Метод | Що він реєструє |
| --------------------------------------- | --------------------------------------- |
| `registerProvider` | Провайдер моделі (LLM) |
| `registerChannel` | Канал чату |
| `registerTool` | Інструмент агента |
| `registerHook` / `on(...)` | Хуки життєвого циклу |
| `registerSpeechProvider` | Перетворення тексту на мовлення / STT |
| `registerRealtimeTranscriptionProvider` | Потокове STT |
| `registerRealtimeVoiceProvider` | Дуплексний голос у реальному часі |
| `registerMediaUnderstandingProvider` | Аналіз зображень/аудіо |
| `registerImageGenerationProvider` | Генерація зображень |
| `registerMusicGenerationProvider` | Генерація музики |
| `registerVideoGenerationProvider` | Генерація відео |
| `registerWebFetchProvider` | Провайдер веботримання / скрейпінгу |
| `registerWebSearchProvider` | Вебпошук |
| `registerHttpRoute` | Кінцева точка HTTP |
| `registerCommand` / `registerCli` | Команди CLI |
| `registerContextEngine` | Рушій контексту |
| `registerService` | Фоновий сервіс |
Поведінка захисту хуків для типізованих хуків життєвого циклу:
- `before_tool_call`: `{ block: true }` є термінальним; обробники з нижчим пріоритетом пропускаються.
- `before_tool_call`: `{ block: false }` є no-op і не скасовує попередній блок.
- `before_install`: `{ block: true }` є термінальним; обробники з нижчим пріоритетом пропускаються.
- `before_install`: `{ block: false }` є no-op і не скасовує попередній блок.
- `message_sending`: `{ cancel: true }` є термінальним; обробники з нижчим пріоритетом пропускаються.
- `message_sending`: `{ cancel: false }` є no-op і не скасовує попереднє скасування.
- `before_tool_call`: `{ block: true }` є завершальним; обробники з нижчим пріоритетом пропускаються.
- `before_tool_call`: `{ block: false }` не виконує жодної дії й не скасовує попереднє блокування.
- `before_install`: `{ block: true }` є завершальним; обробники з нижчим пріоритетом пропускаються.
- `before_install`: `{ block: false }` не виконує жодної дії й не скасовує попереднє блокування.
- `message_sending`: `{ cancel: true }` є завершальним; обробники з нижчим пріоритетом пропускаються.
- `message_sending`: `{ cancel: false }` не виконує жодної дії й не скасовує попереднє скасування.
Нативний сервер застосунку Codex передає нативні для Codex події інструментів назад у цю
поверхню хуків. Плагіни можуть блокувати нативні інструменти Codex через `before_tool_call`,
Нативний сервер застосунку Codex передає нативні події інструментів Codex назад у цю
поверхню хуків. Plugins можуть блокувати нативні інструменти Codex через `before_tool_call`,
спостерігати результати через `after_tool_call` і брати участь у схваленнях Codex
`PermissionRequest`. Міст поки що не переписує аргументи нативних інструментів Codex.
Точна межа підтримки середовища виконання Codex описана в
[контракті підтримки Codex harness v1](/uk/plugins/codex-harness#v1-support-contract).
[контракті підтримки v1 середовища Codex](/uk/plugins/codex-harness#v1-support-contract).
Повну поведінку типізованих хуків див. в [огляді SDK](/uk/plugins/sdk-overview#hook-decision-semantics).
## Пов’язане
- [Створення плагінів](/uk/plugins/building-plugins) — створіть власний плагін
- [Пакети плагінів](/uk/plugins/bundles) — сумісність пакетів Codex/Claude/Cursor
- [Створення Plugins](/uk/plugins/building-plugins) — створіть власний Plugin
- [Пакети Plugins](/uk/plugins/bundles) — сумісність пакетів Codex/Claude/Cursor
- [Маніфест Plugin](/uk/plugins/manifest) — схема маніфесту
- [Реєстрація інструментів](/uk/plugins/building-plugins#registering-agent-tools) — додайте інструменти агента в плагін
- [Внутрішня архітектура Plugin](/uk/plugins/architecture) — модель можливостей і конвеєр завантаження
- [Плагіни спільноти](/uk/plugins/community) — сторонні каталоги
- [Реєстрація інструментів](/uk/plugins/building-plugins#registering-agent-tools) — додайте інструменти агента в Plugin
- [Внутрішня архітектура Plugins](/uk/plugins/architecture) — модель можливостей і конвеєр завантаження
- [Спільнотні Plugins](/uk/plugins/community) — списки сторонніх Plugins