chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-05 22:50:55 +00:00
parent a140b5b2f7
commit 7c1d5f1bb5
13 changed files with 2139 additions and 1858 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,113 @@
---
read_when:
- Ви підключаєте синтетичний транспорт QA до локального або CI тестового запуску
- Вам потрібна поверхня конфігурації вбудованого qa-channel
- Ви працюєте над наскрізною автоматизацією QA
summary: Синтетичний плагін каналу класу Slack для детермінованих сценаріїв QA OpenClaw
title: Канал QA
x-i18n:
generated_at: "2026-04-05T22:36:40Z"
model: gpt-5.4
provider: openai
source_hash: 3b88cd73df2f61b34ad1eb83c3450f8fe15a51ac69fbb5a9eca0097564d67a06
source_path: channels/qa-channel.md
workflow: 15
---
# Канал QA
`qa-channel` — це вбудований синтетичний транспорт повідомлень для автоматизованого QA OpenClaw.
Це не production-канал. Він існує, щоб задіяти ту саму межу плагіна каналу,
яку використовують реальні транспорти, водночас зберігаючи стан детермінованим
і повністю доступним для перевірки.
## Що він робить сьогодні
- Граматика цілей класу Slack:
- `dm:<user>`
- `channel:<room>`
- `thread:<room>/<thread>`
- Синтетична шина на базі HTTP для:
- інʼєкції вхідних повідомлень
- захоплення вихідних транскриптів
- створення потоків
- реакцій
- редагувань
- видалень
- дій пошуку та читання
- Вбудований запуск self-check на стороні хоста, який записує звіт Markdown
## Конфігурація
```json
{
"channels": {
"qa-channel": {
"baseUrl": "http://127.0.0.1:43123",
"botUserId": "openclaw",
"botDisplayName": "OpenClaw QA",
"allowFrom": ["*"],
"pollTimeoutMs": 1000
}
}
}
```
Підтримувані ключі облікового запису:
- `baseUrl`
- `botUserId`
- `botDisplayName`
- `pollTimeoutMs`
- `allowFrom`
- `defaultTo`
- `actions.messages`
- `actions.reactions`
- `actions.search`
- `actions.threads`
## Runner
Поточний вертикальний зріз:
```bash
pnpm qa:e2e
```
Тепер це маршрутизується через вбудоване розширення `qa-lab`. Воно запускає
внутрішньорепозиторну шину QA, завантажує вбудований runtime-зріз
`qa-channel`, виконує детермінований self-check і записує звіт Markdown у
`.artifacts/qa-e2e/`.
Приватний UI налагоджувача:
```bash
pnpm qa:lab:build
pnpm openclaw qa ui
```
Повний набір QA із прив’язкою до репозиторію:
```bash
pnpm openclaw qa suite
```
Це запускає приватний налагоджувач QA за локальною URL-адресою, окремо від
постачуваного пакета Control UI.
## Область застосування
Поточна область застосування навмисно вузька:
- шина + транспорт плагіна
- граматика маршрутизації потоків
- дії з повідомленнями, що належать каналу
- звітність у Markdown
Подальша робота додасть:
- Dockerized оркестрацію OpenClaw
- виконання матриці provider/model
- багатше виявлення сценаріїв
- пізніше — оркестрацію, нативну для OpenClaw

View File

@ -0,0 +1,73 @@
---
read_when:
- Розширення qa-lab або qa-channel
- Додавання QA-сценаріїв, підкріплених репозиторієм
- Побудова реалістичнішої автоматизації QA навколо інформаційної панелі Gateway
summary: Форма приватної автоматизації QA для qa-lab, qa-channel, початково підготовлених сценаріїв і звітів за протоколом
title: Автоматизація QA E2E
x-i18n:
generated_at: "2026-04-05T22:36:39Z"
model: gpt-5.4
provider: openai
source_hash: df35f353d5ab0e0432e6a828c82772f9a88edb41c20ec5037315b7ba310b28e6
source_path: concepts/qa-e2e-automation.md
workflow: 15
---
# Автоматизація QA E2E
Приватний стек QA призначений для перевірки OpenClaw у реалістичніший,
орієнтований на канали спосіб, ніж це може зробити один модульний тест.
Поточні складові:
- `extensions/qa-channel`: синтетичний канал повідомлень із поверхнями для DM, каналів, тредів,
реакцій, редагування та видалення.
- `extensions/qa-lab`: інтерфейс налагодження та QA-шина для спостереження за транскриптом,
впровадження вхідних повідомлень і експорту звіту у форматі Markdown.
- `qa/`: початкові ресурси, підкріплені репозиторієм, для стартового завдання та базових QA-
сценаріїв.
Довгострокова мета — двопанельний сайт QA:
- Ліворуч: інформаційна панель Gateway (Control UI) з агентом.
- Праворуч: QA Lab, що показує транскрипт у стилі Slack і план сценарію.
Це дає оператору або циклу автоматизації змогу поставити агенту місію QA, спостерігати
реальну поведінку каналу та фіксувати, що спрацювало, що не спрацювало або що лишилося заблокованим.
## Початкові дані, підкріплені репозиторієм
Початкові ресурси зберігаються в `qa/`:
- `qa/QA_KICKOFF_TASK.md`
- `qa/seed-scenarios.json`
Їх навмисно зберігають у git, щоб план QA був видимий і людям, і
агенту. Базовий список має залишатися достатньо широким, щоб охоплювати:
- чат у DM і каналах
- поведінку тредів
- життєвий цикл дій із повідомленнями
- зворотні виклики cron
- відтворення з пам’яті
- перемикання моделей
- передавання підзадачі субагенту
- читання репозиторію та документації
- одне невелике завдання зі збірки, наприклад Lobster Invaders
## Звітування
`qa-lab` експортує звіт за протоколом у форматі Markdown на основі спостережуваної часової шкали шини.
Звіт має відповідати на такі запитання:
- Що спрацювало
- Що не спрацювало
- Що лишилося заблокованим
- Які сценарії для подальшого опрацювання варто додати
## Пов’язана документація
- [Тестування](/uk/help/testing)
- [QA Channel](/channels/qa-channel)
- [Інформаційна панель](/web/dashboard)

View File

@ -1,15 +1,15 @@
---
read_when:
- Вам потрібно перевірити сирий вивід моделі на витік reasoning
- Вам потрібно перевірити сирий вивід моделі на витік міркувань
- Ви хочете запускати Gateway у режимі watch під час ітерацій
- Вам потрібен відтворюваний робочий процес налагодження
summary: 'Інструменти налагодження: режим watch, сирі потоки моделі та трасування витоку reasoning'
summary: 'Інструменти налагодження: режим watch, сирі потоки моделі та відстеження витоку міркувань'
title: Налагодження
x-i18n:
generated_at: "2026-04-05T18:05:26Z"
generated_at: "2026-04-05T22:36:52Z"
model: gpt-5.4
provider: openai
source_hash: f90d944ecc2e846ca0b26a162126ceefb3a3c6cf065c99b731359ec79d4289e3
source_hash: 4bc72e8d6cad3a1acaad066f381c82309583fabf304c589e63885f2685dc704e
source_path: help/debugging.md
workflow: 15
---
@ -17,13 +17,13 @@ x-i18n:
# Налагодження
Ця сторінка описує допоміжні засоби налагодження для потокового виводу, особливо коли
провайдер змішує reasoning зі звичайним текстом.
провайдер змішує міркування зі звичайним текстом.
## Перевизначення runtime для налагодження
## Перевизначення налагодження під час виконання
Використовуйте `/debug` у чаті, щоб задавати перевизначення config **лише для runtime** (у пам’яті, не на диску).
`/debug` типово вимкнено; увімкніть його через `commands.debug: true`.
Це зручно, коли потрібно перемкнути малопомітні налаштування без редагування `openclaw.json`.
Використовуйте `/debug` у чаті, щоб задавати перевизначення конфігурації **лише на час виконання** (у пам’яті, не на диску).
`/debug` вимкнено за замовчуванням; увімкніть його за допомогою `commands.debug: true`.
Це зручно, коли потрібно перемкнути маловідомі налаштування без редагування `openclaw.json`.
Приклади:
@ -34,42 +34,43 @@ x-i18n:
/debug reset
```
`/debug reset` очищає всі перевизначення і повертає до config на диску.
`/debug reset` очищує всі перевизначення та повертає конфігурацію з диска.
## Режим watch для Gateway
Для швидких ітерацій запускайте gateway під файловим watcher:
Для швидких ітерацій запускайте gateway під наглядом засобу відстеження файлів:
```bash
pnpm gateway:watch
```
Це відповідає:
Це відповідає такому:
```bash
node scripts/watch-node.mjs gateway --force
```
Watcher перезапускається на файлах, важливих для збірки, у `src/`, вихідних файлах extension,
метаданих extension `package.json` і `openclaw.plugin.json`, `tsconfig.json`,
`package.json` і `tsdown.config.ts`. Зміни в метаданих extension перезапускають
gateway без примусового `tsdown` rebuild; зміни у вихідних файлах і config, як і раніше,
Засіб відстеження перезапускається при змінах у важливих для збірки файлах у `src/`, вихідних файлах розширень,
метаданих розширень `package.json` і `openclaw.plugin.json`, `tsconfig.json`,
`package.json` і `tsdown.config.ts`. Зміни в метаданих розширень перезапускають
gateway без примусового перебудування `tsdown`; зміни у вихідних файлах і конфігурації, як і раніше,
спочатку перебудовують `dist`.
Додавайте будь-які прапорці CLI для gateway після `gateway:watch`, і вони передаватимуться
при кожному перезапуску.
Додайте будь-які прапорці CLI для gateway після `gateway:watch`, і вони передаватимуться під час
кожного перезапуску. Повторний запуск тієї самої команди watch для того самого репозиторію/набору прапорців тепер
замінює старіший засіб відстеження, замість того щоб залишати дубльовані батьківські процеси спостерігача.
## Dev-профіль і dev gateway (`--dev`)
## Профіль dev + dev gateway (--dev)
Використовуйте dev-профіль, щоб ізолювати стан і підняти безпечну тимчасову конфігурацію для
Використовуйте профіль dev, щоб ізолювати стан і підняти безпечне, тимчасове середовище для
налагодження. Існує **два** прапорці `--dev`:
- **Глобальний `--dev` (профіль):** ізолює стан у `~/.openclaw-dev` і
типово встановлює порт gateway на `19001` (похідні порти зсуваються разом із ним).
- **`gateway --dev`: вказує Gateway автоматично створювати типові config +
workspace**, якщо їх немає (і пропускати `BOOTSTRAP.md`).
за замовчуванням встановлює порт gateway на `19001` (похідні порти зміщуються разом із ним).
- **`gateway --dev`:** вказує Gateway автоматично створити типову конфігурацію +
робочу область, якщо вони відсутні (і пропустити BOOTSTRAP.md).
Рекомендований процес (dev profile + dev bootstrap):
Рекомендований процес (профіль dev + dev bootstrap):
```bash
pnpm gateway:dev
@ -84,16 +85,16 @@ OPENCLAW_PROFILE=dev openclaw tui
- `OPENCLAW_PROFILE=dev`
- `OPENCLAW_STATE_DIR=~/.openclaw-dev`
- `OPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.json`
- `OPENCLAW_GATEWAY_PORT=19001` (browser/canvas зсуваються відповідно)
- `OPENCLAW_GATEWAY_PORT=19001` (порти browser/canvas відповідно зміщуються)
2. **Dev bootstrap** (`gateway --dev`)
- Записує мінімальний config, якщо його немає (`gateway.mode=local`, bind loopback).
- Встановлює `agent.workspace` на dev workspace.
- Встановлює `agent.skipBootstrap=true` (без `BOOTSTRAP.md`).
- Заповнює файли workspace, якщо їх немає:
- Записує мінімальну конфігурацію, якщо її немає (`gateway.mode=local`, прив’язка до loopback).
- Встановлює `agent.workspace` на dev-робочу область.
- Встановлює `agent.skipBootstrap=true` (без BOOTSTRAP.md).
- Ініціалізує файли робочої області, якщо їх немає:
`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`.
- Типова identity: **C3PO** (protocol droid).
- Пропускає channel providers у dev mode (`OPENCLAW_SKIP_CHANNELS=1`).
- Типова ідентичність: **C3PO** (протокольний дроїд).
- Пропускає провайдери каналів у режимі dev (`OPENCLAW_SKIP_CHANNELS=1`).
Процес скидання (чистий старт):
@ -101,17 +102,17 @@ OPENCLAW_PROFILE=dev openclaw tui
pnpm gateway:dev:reset
```
Примітка: `--dev` — це **глобальний** прапорець профілю, і деякі runners його перехоплюють.
Якщо потрібно вказати його явно, використовуйте форму через env var:
Примітка: `--dev` — це **глобальний** прапорець профілю, і деякі засоби запуску його поглинають.
Якщо потрібно вказати його явно, використовуйте форму зі змінною середовища:
```bash
OPENCLAW_PROFILE=dev openclaw gateway --dev --reset
```
`--reset` очищає config, credentials, sessions і dev workspace (із використанням
`trash`, а не `rm`), а потім заново створює типову dev-конфігурацію.
`--reset` очищує конфігурацію, облікові дані, сесії та dev-робочу область (з використанням
`trash`, а не `rm`), а потім заново створює типове dev-середовище.
Порада: якщо вже працює не-dev gateway (launchd/systemd), спочатку зупиніть його:
Порада: якщо вже запущено gateway не в режимі dev (launchd/systemd), спочатку зупиніть його:
```bash
openclaw gateway stop
@ -119,9 +120,9 @@ openclaw gateway stop
## Логування сирого потоку (OpenClaw)
OpenClaw може логувати **сирий потік асистента** до будь-якої фільтрації/форматування.
Це найкращий спосіб побачити, чи reasoning надходить як звичайні текстові delta
(або як окремі thinking blocks).
OpenClaw може журналювати **сирий потік помічника** до будь-якої фільтрації/форматування.
Це найкращий спосіб побачити, чи надходять міркування як звичайні текстові дельти
(або як окремі блоки thinking).
Увімкнення через CLI:
@ -135,7 +136,7 @@ pnpm gateway:watch --raw-stream
pnpm gateway:watch --raw-stream --raw-stream-path ~/.openclaw/logs/raw-stream.jsonl
```
Еквівалентні env vars:
Еквівалентні змінні середовища:
```bash
OPENCLAW_RAW_STREAM=1
@ -146,10 +147,10 @@ OPENCLAW_RAW_STREAM_PATH=~/.openclaw/logs/raw-stream.jsonl
`~/.openclaw/logs/raw-stream.jsonl`
## Логування сирих chunks (pi-mono)
## Логування сирих чанків (pi-mono)
Щоб захоплювати **сирі chunks OpenAI-compat** до того, як вони розбиратимуться на blocks,
pi-mono надає окремий logger:
Щоб захопити **сирі OpenAI-сумісні чанки** до того, як вони буде розібрано на блоки,
pi-mono надає окремий журналювальник:
```bash
PI_RAW_STREAM=1
@ -165,11 +166,11 @@ PI_RAW_STREAM_PATH=~/.pi-mono/logs/raw-openai-completions.jsonl
`~/.pi-mono/logs/raw-openai-completions.jsonl`
> Примітка: це виводиться лише процесами, які використовують провайдера
> `openai-completions` з pi-mono.
> Примітка: це виводиться лише процесами, які використовують провайдер
> `openai-completions` у pi-mono.
## Примітки щодо безпеки
- Сирі логи потоку можуть містити повні prompts, вивід інструментів і дані користувача.
- Зберігайте логи локально та видаляйте їх після налагодження.
- Якщо ділитеся логами, спочатку приберіть секрети та PII.
- Журнали сирого потоку можуть містити повні запити, вивід інструментів і дані користувача.
- Зберігайте журнали локально та видаляйте їх після налагодження.
- Якщо ви ділитеся журналами, спочатку очистьте з них секрети та персональні дані.

File diff suppressed because it is too large Load Diff

View File

@ -2,91 +2,83 @@
read_when:
- Ви бачите попередження OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED
- Ви бачите попередження OPENCLAW_EXTENSION_API_DEPRECATED
- Ви оновлюєте плагін до сучасної архітектури плагінів
- Ви підтримуєте зовнішній плагін OpenClaw
- Ви оновлюєте plugin до сучасної архітектури plugin
- Ви підтримуєте зовнішній plugin OpenClaw
sidebarTitle: Migrate to SDK
summary: Перейдіть із застарілого шару зворотної сумісності на сучасний SDK плагінів
title: Міграція SDK плагінів
summary: Перейдіть із застарілого шару зворотної сумісності на сучасний Plugin SDK
title: Міграція Plugin SDK
x-i18n:
generated_at: "2026-04-05T21:47:20Z"
generated_at: "2026-04-05T22:37:55Z"
model: gpt-5.4
provider: openai
source_hash: d2a0f2501484b224a1f5b87dc66e9bef1dcb9d3225aaeefe711ed94bf70b6a16
source_hash: 23fd97ccf58e626ea4be4ae36d060cb963e13f14036cd82d2a86b7dc631ec8f1
source_path: plugins/sdk-migration.md
workflow: 15
---
# Міграція SDK плагінів
# Міграція Plugin SDK
OpenClaw перейшов від широкого шару зворотної сумісності до сучасної
архітектури плагінів зі сфокусованими, задокументованими імпортами. Якщо ваш
плагін було створено до появи нової архітектури, цей посібник допоможе вам
виконати міграцію.
архітектури plugin із цільовими, задокументованими імпортами. Якщо ваш plugin
було створено до появи нової архітектури, цей посібник допоможе вам
перейти на неї.
## Що змінюється
Стара система плагінів надавала дві надто широкі поверхні, які дозволяли
плагінам імпортувати все, що їм потрібно, з єдиної точки входу:
Стара система plugin надавала дві широко відкриті поверхні, які дозволяли plugin
імпортувати все, що їм потрібно, з однієї точки входу:
- **`openclaw/plugin-sdk/compat`** — єдиний імпорт, який повторно експортував
десятки допоміжних засобів. Його було запроваджено, щоб старі плагіни на
основі хуків продовжували працювати, поки будувалася нова архітектура
плагінів.
- **`openclaw/extension-api`** — міст, який надавав плагінам прямий доступ до
допоміжних засобів на стороні хоста, як-от вбудований запускальник агента.
- **`openclaw/plugin-sdk/compat`** — один імпорт, який повторно експортував десятки
допоміжних засобів. Його було введено, щоб старі plugin на основі hook
продовжували працювати, поки створювалася нова архітектура plugin.
- **`openclaw/extension-api`** — міст, який надавав plugin прямий доступ до
допоміжних засобів на стороні хоста, як-от вбудований засіб запуску agent.
Обидві поверхні тепер **застарілі**. Вони досі працюють під час виконання, але
нові плагіни не повинні їх використовувати, а наявним плагінам слід
перейти на нові механізми до того, як у наступному великому випуску їх буде
видалено.
Обидві поверхні тепер **застарілі**. Вони все ще працюють під час виконання, але нові
plugin не повинні їх використовувати, а наявним plugin слід перейти на нові
механізми до того, як наступний мажорний реліз їх видалить.
<Warning>
Шар зворотної сумісності буде видалено в одному з майбутніх великих випусків.
Плагіни, які все ще імпортують із цих поверхонь, перестануть працювати,
коли це станеться.
Шар зворотної сумісності буде видалено в одному з майбутніх мажорних релізів.
Plugin, які все ще імпортують із цих поверхонь, перестануть працювати, коли це станеться.
</Warning>
## Чому це змінилося
Старий підхід спричиняв проблеми:
Старий підхід створював проблеми:
- **Повільний запуск** — імпорт одного допоміжного засобу завантажував десятки
не пов’язаних між собою модулів
- **Циклічні залежності** — широкі повторні експорти спрощували створення
циклів імпорту
- **Неясна поверхня API** — не було способу зрозуміти, які експорти є
стабільними, а які внутрішніми
- **Повільний запуск** — імпорт одного допоміжного засобу завантажував десятки не пов’язаних між собою модулів
- **Циклічні залежності** — широкі повторні експорти спрощували створення циклів імпорту
- **Нечітка поверхня API** — не було способу зрозуміти, які експорти є стабільними, а які внутрішніми
Сучасний SDK плагінів вирішує це: кожен шлях імпорту (`openclaw/plugin-sdk/\<subpath\>`)
є невеликим, самодостатнім модулем із чітким призначенням і задокументованим
контрактом.
Сучасний Plugin SDK вирішує це: кожен шлях імпорту (`openclaw/plugin-sdk/\<subpath\>`)
є невеликим, самодостатнім модулем із чітким призначенням і задокументованим контрактом.
Застарілі зручні шви провайдера для вбудованих каналів також зникли. Імпорти
Застарілі зручні шви provider для вбудованих каналів також зникли. Імпорти
на кшталт `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`,
допоміжні шви з брендингом каналів і
`openclaw/plugin-sdk/telegram-core` були приватними скороченнями для
монорепозиторію, а не стабільними контрактами плагінів. Натомість
використовуйте вузькі загальні підшляхи SDK. Усередині вбудованого робочого
простору плагінів зберігайте допоміжні засоби, що належать провайдеру, у
власному `api.ts` або `runtime-api.ts` цього плагіна.
канально-брендовані допоміжні шви та
`openclaw/plugin-sdk/telegram-core` були приватними скороченнями монорепозиторію, а не
стабільними контрактами plugin. Натомість використовуйте вузькі загальні підшляхи SDK. Усередині
робочого простору вбудованих plugin зберігайте допоміжні засоби, що належать provider, у власних
`api.ts` або `runtime-api.ts` цього plugin.
Поточні приклади вбудованих провайдерів:
Поточні приклади вбудованих provider:
- Anthropic зберігає допоміжні засоби потокової передачі, специфічні для
Claude, у власному шві `api.ts` / `contract-api.ts`
- OpenAI зберігає конструктори провайдерів, допоміжні засоби для моделей за
замовчуванням і конструктори провайдерів реального часу у власному `api.ts`
- OpenRouter зберігає конструктор провайдера та допоміжні засоби для
онбордингу/конфігурації у власному `api.ts`
- Anthropic зберігає допоміжні засоби потоків, специфічні для Claude, у власному шві `api.ts` /
`contract-api.ts`
- OpenAI зберігає білдери provider, допоміжні засоби моделей за замовчуванням і білдери realtime provider
у власному `api.ts`
- OpenRouter зберігає білдер provider та допоміжні засоби onboarding/config у власному
`api.ts`
## Як виконати міграцію
<Steps>
<Step title="Перевірте резервну поведінку обгортки Windows">
Якщо ваш плагін використовує `openclaw/plugin-sdk/windows-spawn`, невизначені
обгортки Windows `.cmd`/`.bat` тепер завершуються без резервного варіанта,
якщо ви явно не передасте `allowShellFallback: true`.
<Step title="Перевірте резервну поведінку оболонки-обгортки Windows">
Якщо ваш plugin використовує `openclaw/plugin-sdk/windows-spawn`, нерозв’язані Windows-
обгортки `.cmd`/`.bat` тепер завершуються у закритому режимі, якщо ви явно не передасте
`allowShellFallback: true`.
```typescript
// Before
@ -101,14 +93,13 @@ OpenClaw перейшов від широкого шару зворотної с
});
```
Якщо ваш викликаючий код не покладається навмисно на резервний варіант
через оболонку, не встановлюйте `allowShellFallback` і натомість обробіть
викинуту помилку.
Якщо ваш викликаючий код не покладається навмисно на резервний перехід через оболонку, не встановлюйте
`allowShellFallback` і натомість обробляйте викинуту помилку.
</Step>
<Step title="Знайдіть застарілі імпорти">
Знайдіть у своєму плагіні імпорти з будь-якої із застарілих поверхонь:
Знайдіть у своєму plugin імпорти з будь-якої з двох застарілих поверхонь:
```bash
grep -r "plugin-sdk/compat" my-plugin/
@ -117,7 +108,7 @@ OpenClaw перейшов від широкого шару зворотної с
</Step>
<Step title="Замініть їх на сфокусовані імпорти">
<Step title="Замініть їх цільовими імпортами">
Кожен експорт зі старої поверхні відповідає певному сучасному шляху імпорту:
```typescript
@ -134,8 +125,8 @@ OpenClaw перейшов від широкого шару зворотної с
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
```
Для допоміжних засобів на стороні хоста використовуйте впроваджене
середовище виконання плагіна замість прямого імпорту:
Для допоміжних засобів на стороні хоста використовуйте інжектований runtime plugin замість
прямого імпорту:
```typescript
// Before (deprecated extension-api bridge)
@ -146,8 +137,7 @@ OpenClaw перейшов від широкого шару зворотної с
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
```
Такий самий шаблон застосовується до інших застарілих допоміжних засобів
мосту:
Такий самий шаблон застосовується й до інших застарілих допоміжних засобів bridge:
| Старий імпорт | Сучасний еквівалент |
| --- | --- |
@ -157,7 +147,7 @@ OpenClaw перейшов від широкого шару зворотної с
| `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` |
| `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` |
| `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` |
| допоміжні засоби сховища сесій | `api.runtime.agent.session.*` |
| допоміжні засоби сховища session | `api.runtime.agent.session.*` |
</Step>
@ -174,164 +164,163 @@ OpenClaw перейшов від широкого шару зворотної с
<Accordion title="Таблиця поширених шляхів імпорту">
| Шлях імпорту | Призначення | Ключові експорти |
| --- | --- | --- |
| `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб точки входу плагіна | `definePluginEntry` |
| `plugin-sdk/core` | Застарілий узагальнений повторний експорт для визначень/конструкторів точок входу каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` |
| `plugin-sdk/config-schema` | Експорт кореневої схеми конфігурації | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | Допоміжний засіб точки входу для одного провайдера | `defineSingleProviderPluginEntry` |
| `plugin-sdk/channel-core` | Сфокусовані визначення та конструктори точок входу каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування | Запити списку дозволених, конструктори стану налаштування |
| `plugin-sdk/setup-runtime` | Допоміжні засоби середовища виконання для етапу налаштування | Безпечні для імпорту адаптери патчів налаштування, допоміжні засоби приміток пошуку, `promptResolvedAllowFrom`, `splitSetupEntries`, делеговані проксі налаштування |
| `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб точки входу plugin | `definePluginEntry` |
| `plugin-sdk/core` | Застарілий зонтичний повторний експорт для визначень/білдерів точок входу каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` |
| `plugin-sdk/config-schema` | Експорт кореневої схеми config | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | Допоміжний засіб точки входу для одного provider | `defineSingleProviderPluginEntry` |
| `plugin-sdk/channel-core` | Цільові визначення та білдери точок входу каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування | Підказки allowlist, білдери стану налаштування |
| `plugin-sdk/setup-runtime` | Допоміжні засоби runtime під час налаштування | Безпечні для імпорту адаптери patch налаштування, допоміжні засоби приміток пошуку, `promptResolvedAllowFrom`, `splitSetupEntries`, делеговані проксі налаштування |
| `plugin-sdk/setup-adapter-runtime` | Допоміжні засоби адаптера налаштування | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | Допоміжні засоби інструментів налаштування | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Допоміжні засоби для кількох облікових записів | Допоміжні засоби списку облікових записів/конфігурації/шлюзу дій |
| `plugin-sdk/account-id` | Допоміжні засоби для ідентифікатора облікового запису | `DEFAULT_ACCOUNT_ID`, нормалізація ідентифікатора облікового запису |
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису | Допоміжні засоби пошуку облікового запису + резервного значення за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для облікових записів | Допоміжні засоби списку облікових записів/дій з обліковими записами |
| `plugin-sdk/account-core` | Допоміжні засоби для багатьох облікових записів | Допоміжні засоби списку облікових записів/config/шлюзу дій |
| `plugin-sdk/account-id` | Допоміжні засоби ідентифікатора облікового запису | `DEFAULT_ACCOUNT_ID`, нормалізація ідентифікатора облікового запису |
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису | Допоміжні засоби пошуку облікового запису + резервного вибору за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби облікового запису | Допоміжні засоби списку облікових записів/дій з обліковим записом |
| `plugin-sdk/channel-setup` | Адаптери майстра налаштування | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/channel-pairing` | Примітиви прив’язування DM | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | Налаштування префікса відповіді та індикатора набору | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | Фабрики адаптерів конфігурації | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Конструктори схем конфігурації | Типи схем конфігурації каналу |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби конфігурації команд Telegram | Нормалізація назв команд, обрізання описів, перевірка дублікатів/конфліктів |
| `plugin-sdk/channel-pairing` | Примітиви pair для DM | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | Префікс відповіді + логіка індикації набору | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | Фабрики адаптерів config | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Білдери схем config | Типи схем config каналу |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби config команд Telegram | Нормалізація назв команд, обрізання описів, валідація дублікатів/конфліктів |
| `plugin-sdk/channel-policy` | Визначення політики груп/DM | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | Відстеження стану облікового запису | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Допоміжні засоби для вхідного конверта | Спільні допоміжні засоби маршруту + побудови конверта |
| `plugin-sdk/inbound-envelope` | Допоміжні засоби вхідного envelope | Спільні допоміжні засоби маршрутів + білдера envelope |
| `plugin-sdk/inbound-reply-dispatch` | Допоміжні засоби вхідних відповідей | Спільні допоміжні засоби запису та диспетчеризації |
| `plugin-sdk/messaging-targets` | Розбір цілей повідомлень | Допоміжні засоби розбору/зіставлення цілей |
| `plugin-sdk/outbound-media` | Допоміжні засоби вихідних медіа | Спільне завантаження вихідних медіа |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби середовища виконання вихідних повідомлень | Допоміжні засоби вихідної ідентичності/делегата надсилання |
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби прив’язок потоків | Життєвий цикл прив’язок потоків і допоміжні засоби адаптера |
| `plugin-sdk/agent-media-payload` | Застарілі допоміжні засоби медіанавантаження | Конструктор медіанавантаження агента для застарілих макетів полів |
| `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише застарілі утиліти середовища виконання каналу |
| `plugin-sdk/messaging-targets` | Аналіз цілей повідомлень | Допоміжні засоби аналізу/зіставлення цілей |
| `plugin-sdk/outbound-media` | Допоміжні засоби вихідного media | Спільне завантаження вихідного media |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідного runtime | Допоміжні засоби ідентичності вихідних повідомлень/делегування надсилання |
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби прив’язки thread | Життєвий цикл прив’язки thread та допоміжні засоби адаптера |
| `plugin-sdk/agent-media-payload` | Застарілі допоміжні засоби media payload | Білдер media payload agent для застарілих макетів полів |
| `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише застарілі утиліти runtime каналу |
| `plugin-sdk/channel-send-result` | Типи результатів надсилання | Типи результатів відповіді |
| `plugin-sdk/runtime-store` | Постійне сховище плагіна | `createPluginRuntimeStore` |
| `plugin-sdk/runtime` | Широкі допоміжні засоби середовища виконання | Допоміжні засоби runtime/логування/резервного копіювання/встановлення плагіна |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби оточення runtime | Допоміжні засоби логера/оточення runtime, таймаутів, повторів і backoff |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби runtime плагіна | Допоміжні засоби команд/хуків/http/інтерактивної взаємодії плагіна |
| `plugin-sdk/hook-runtime` | Допоміжні засоби конвеєра хуків | Спільні допоміжні засоби конвеєра webhook/внутрішніх хуків |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби відкладеного runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
| `plugin-sdk/runtime-store` | Постійне сховище plugin | `createPluginRuntimeStore` |
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime | Допоміжні засоби runtime/logging/backup/інсталяції plugin |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби середовища runtime | Logger/runtime env, допоміжні засоби timeout, retry і backoff |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби runtime plugin | Допоміжні засоби plugin для command/hooks/http/interactive |
| `plugin-sdk/hook-runtime` | Допоміжні засоби конвеєра hook | Спільні допоміжні засоби конвеєра webhook/внутрішнього hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби процесів | Спільні допоміжні засоби exec |
| `plugin-sdk/cli-runtime` | Допоміжні засоби CLI runtime | Форматування команд, очікування, допоміжні засоби версій |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби gateway | Клієнт gateway і допоміжні засоби патчів стану каналу |
| `plugin-sdk/config-runtime` | Допоміжні засоби конфігурації | Допоміжні засоби завантаження/запису конфігурації |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби команд Telegram | Допоміжні засоби перевірки команд Telegram зі стабільним резервним варіантом, коли поверхня контракту вбудованого Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби запитів на погодження | Навантаження погодження exec/плагіна, допоміжні засоби можливостей/профілю погодження, нативна маршрутизація/середовище виконання погодження |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби автентифікації погодження | Визначення затверджувача, автентифікація дій у тому самому чаті |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта погодження | Допоміжні засоби профілю/фільтра нативного погодження exec |
| `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби доставки погодження | Адаптери можливостей/доставки нативного погодження |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілей погодження | Допоміжні засоби прив’язування цілей/облікових записів нативного погодження |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповідей на погодження | Допоміжні засоби навантаження відповіді погодження exec/плагіна |
| `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби довіри, шлюзування DM, зовнішнього вмісту та збирання секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF | Допоміжні засоби списку дозволених хостів і політики приватної мережі |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби SSRF runtime | Закріплений dispatcher, guarded fetch, допоміжні засоби політики SSRF |
| `plugin-sdk/collection-runtime` | Допоміжні засоби обмеженого кешу | `pruneMapToMaxSize` |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби шлюзування діагностики | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби gateway | Клієнт gateway і допоміжні засоби patch стану каналу |
| `plugin-sdk/config-runtime` | Допоміжні засоби config | Допоміжні засоби завантаження/запису config |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби команд Telegram | Допоміжні засоби валідації команд Telegram зі стабільним резервним режимом, коли поверхня контракту вбудованого Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби запиту approval | Допоміжні засоби payload approval exec/plugin, можливостей/профілів approval, нативної маршрутизації/runtime approval |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби auth для approval | Визначення approver, auth дій у тому самому chat |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта approval | Допоміжні засоби профілів/фільтрів нативного approval exec |
| `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби доставки approval | Адаптери можливостей/доставки нативного approval |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілей approval | Допоміжні засоби прив’язки цілей/облікових записів нативного approval |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповідей approval | Допоміжні засоби payload відповідей approval exec/plugin |
| `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби trust, шлюзування DM, зовнішнього контенту та збирання secret |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF | Допоміжні засоби allowlist хостів і політики приватної мережі |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби SSRF runtime | Допоміжні засоби pinned-dispatcher, guarded fetch, SSRF policy |
| `plugin-sdk/collection-runtime` | Допоміжні засоби обмеженого cache | `pruneMapToMaxSize` |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичного шлюзування | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
| `plugin-sdk/error-runtime` | Допоміжні засоби форматування помилок | `formatUncaughtError`, `isApprovalNotFoundError`, допоміжні засоби графа помилок |
| `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch/proxy | `resolveFetch`, допоміжні засоби proxy |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації хоста | `normalizeHostname`, `normalizeScpRemoteHost` |
| `plugin-sdk/retry-runtime` | Допоміжні засоби повтору | `RetryConfig`, `retryAsync`, виконавці політик |
| `plugin-sdk/allow-from` | Форматування списку дозволених | `formatAllowFromLowercase` |
| `plugin-sdk/allowlist-resolution` | Мапування вхідних даних списку дозволених | `mapAllowlistResolutionInputs` |
| `plugin-sdk/command-auth` | Допоміжні засоби шлюзування команд і поверхні команд | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд |
| `plugin-sdk/secret-input` | Розбір секретного вводу | Допоміжні засоби секретного вводу |
| `plugin-sdk/retry-runtime` | Допоміжні засоби retry | `RetryConfig`, `retryAsync`, виконавці політик |
| `plugin-sdk/allow-from` | Форматування allowlist | `formatAllowFromLowercase` |
| `plugin-sdk/allowlist-resolution` | Зіставлення вхідних даних allowlist | `mapAllowlistResolutionInputs` |
| `plugin-sdk/command-auth` | Шлюзування command і допоміжні засоби поверхні command | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру command |
| `plugin-sdk/secret-input` | Аналіз введення secret | Допоміжні засоби введення secret |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів webhook | Утиліти цілей webhook |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби захисту запитів webhook | Допоміжні засоби читання/обмеження тіла запиту |
| `plugin-sdk/reply-runtime` | Спільне середовище виконання відповіді | Вхідна диспетчеризація, heartbeat, планувальник відповіді, розбиття на частини |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації відповіді | Допоміжні засоби фіналізації + диспетчеризації провайдера |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби guard для тіла webhook | Допоміжні засоби читання/обмеження тіла запиту |
| `plugin-sdk/reply-runtime` | Спільний runtime відповідей | Вхідна диспетчеризація, heartbeat, планувальник відповідей, chunking |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації відповідей | Допоміжні засоби завершення + диспетчеризації provider |
| `plugin-sdk/reply-history` | Допоміжні засоби історії відповідей | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | Планування посилань на відповіді | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Допоміжні засоби розбиття відповіді | Допоміжні засоби розбиття тексту/markdown |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій | Допоміжні засоби шляху сховища + updated-at |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів стану | Допоміжні засоби каталогів стану та OAuth |
| `plugin-sdk/routing` | Допоміжні засоби маршрутизації/ключів сесії | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, допоміжні засоби нормалізації ключа сесії |
| `plugin-sdk/status-helpers` | Допоміжні засоби стану каналу | Конструктори зведень стану каналу/облікового запису, типові значення runtime-state, допоміжні засоби метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Допоміжні засоби визначення цілей | Спільні допоміжні засоби визначення цілей |
| `plugin-sdk/reply-reference` | Планування посилань відповіді | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Допоміжні засоби chunk відповіді | Допоміжні засоби chunking тексту/markdown |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища session | Допоміжні засоби шляхів сховища + updated-at |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів state | Допоміжні засоби каталогів state та OAuth |
| `plugin-sdk/routing` | Допоміжні засоби routing/ключів session | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, допоміжні засоби нормалізації ключів session |
| `plugin-sdk/status-helpers` | Допоміжні засоби стану каналу | Білдери підсумків стану каналу/облікового запису, значення runtime-state за замовчуванням, допоміжні засоби метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Допоміжні засоби визначення цілі | Спільні допоміжні засоби визначення цілі |
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації рядків | Допоміжні засоби нормалізації slug/рядків |
| `plugin-sdk/request-url` | Допоміжні засоби URL запитів | Витяг рядкових URL із request-подібних вхідних даних |
| `plugin-sdk/run-command` | Допоміжні засоби команд із таймаутом | Виконавець команд із таймаутом і нормалізованими stdout/stderr |
| `plugin-sdk/param-readers` | Зчитувачі параметрів | Поширені зчитувачі параметрів інструментів/CLI |
| `plugin-sdk/tool-send` | Витягування надсилання інструмента | Витяг канонічних полів цілі надсилання з аргументів інструмента |
| `plugin-sdk/temp-path` | Допоміжні засоби тимчасових шляхів | Спільні допоміжні засоби шляху тимчасового завантаження |
| `plugin-sdk/logging-core` | Допоміжні засоби логування | Логер підсистеми й допоміжні засоби редагування |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби markdown-таблиць | Допоміжні засоби режиму markdown-таблиць |
| `plugin-sdk/reply-payload` | Типи відповідей повідомлень | Типи навантаження відповіді |
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted провайдерів | Допоміжні засоби виявлення/конфігурації self-hosted провайдерів |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдерів, сумісних з OpenAI | Ті самі допоміжні засоби виявлення/конфігурації self-hosted провайдерів |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби runtime-автентифікації провайдера | Допоміжні засоби визначення API-ключа під час виконання |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби налаштування API-ключа провайдера | Допоміжні засоби онбордингу/запису профілю API-ключа |
| `plugin-sdk/provider-auth-result` | Допоміжні засоби результату автентифікації провайдера | Стандартний конструктор результату OAuth-автентифікації |
| `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного входу провайдера | Спільні допоміжні засоби інтерактивного входу |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби змінних середовища провайдера | Допоміжні засоби пошуку auth env vars провайдера |
| `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделі/повторного відтворення провайдера | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політики повторного відтворення, допоміжні засоби endpoint провайдера та нормалізації ідентифікатора моделі |
| `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу провайдера | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-onboard` | Патчі онбордингу провайдера | Допоміжні засоби конфігурації онбордингу |
| `plugin-sdk/provider-http` | Допоміжні засоби HTTP провайдера | Загальні допоміжні засоби можливостей HTTP/endpoint провайдера |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch провайдера | Допоміжні засоби реєстрації/кешу провайдера web-fetch |
| `plugin-sdk/provider-web-search` | Допоміжні засоби web-search провайдера | Допоміжні засоби реєстрації/кешу/конфігурації провайдера web-search |
| `plugin-sdk/provider-tools` | Допоміжні засоби сумісності інструментів/схем провайдера | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | Допоміжні засоби використання провайдера | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші допоміжні засоби використання провайдера |
| `plugin-sdk/provider-stream` | Допоміжні засоби обгортки потоку провайдера | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоку та спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/keyed-async-queue` | Упорядкована асинхронна черга | `KeyedAsyncQueue` |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби медіа | Допоміжні засоби отримання/перетворення/зберігання медіа плюс конструктори медіанавантаження |
| `plugin-sdk/media-understanding` | Допоміжні засоби media-understanding | Типи провайдера media understanding плюс орієнтовані на провайдера експорти допоміжних засобів зображень/аудіо |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту | Видалення видимого для асистента тексту, рендеринг/розбиття/таблиці markdown, редагування, допоміжні засоби тегів директив, утиліти безпечного тексту та пов’язані допоміжні засоби тексту/логування |
| `plugin-sdk/text-chunking` | Допоміжні засоби розбиття тексту | Допоміжний засіб розбиття вихідного тексту |
| `plugin-sdk/speech` | Допоміжні засоби speech | Типи speech-провайдера плюс орієнтовані на провайдера допоміжні засоби директив, реєстру та перевірки |
| `plugin-sdk/speech-core` | Спільне ядро speech | Типи speech-провайдера, реєстр, директиви, нормалізація |
| `plugin-sdk/realtime-transcription` | Допоміжні засоби транскрипції в реальному часі | Типи провайдера та допоміжні засоби реєстру |
| `plugin-sdk/realtime-voice` | Допоміжні засоби голосу в реальному часі | Типи провайдера та допоміжні засоби реєстру |
| `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Допоміжні засоби типів, failover, auth і реєстру для генерації зображень |
| `plugin-sdk/video-generation` | Допоміжні засоби генерації відео | Типи провайдера/запиту/результату генерації відео |
| `plugin-sdk/video-generation-core` | Спільне ядро генерації відео | Допоміжні засоби типів генерації відео, failover, пошуку провайдера та розбору model-ref |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби інтерактивних відповідей | Нормалізація/скорочення навантаження інтерактивних відповідей |
| `plugin-sdk/channel-config-primitives` | Примітиви конфігурації каналу | Вузькі примітиви schema конфігурації каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби запису конфігурації каналу | Допоміжні засоби авторизації запису конфігурації каналу |
| `plugin-sdk/channel-plugin-common` | Спільна преамбула каналу | Експорти спільної преамбули плагіна каналу |
| `plugin-sdk/channel-status` | Допоміжні засоби стану каналу | Спільні допоміжні засоби знімка/зведення стану каналу |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби конфігурації списку дозволених | Допоміжні засоби редагування/читання конфігурації списку дозволених |
| `plugin-sdk/group-access` | Допоміжні засоби доступу до груп | Спільні допоміжні засоби рішень щодо доступу до груп |
| `plugin-sdk/direct-dm` | Допоміжні засоби прямих DM | Спільні допоміжні засоби auth/guard для прямих DM |
| `plugin-sdk/extension-shared` | Спільні допоміжні засоби розширення | Примітиви допоміжних засобів пасивного каналу/стану |
| `plugin-sdk/request-url` | Допоміжні засоби URL запиту | Отримання рядкових URL з вхідних даних, подібних до request |
| `plugin-sdk/run-command` | Допоміжні засоби timed command | Виконавець timed command із нормалізованими stdout/stderr |
| `plugin-sdk/param-readers` | Зчитувачі param | Загальні зчитувачі param для tool/CLI |
| `plugin-sdk/tool-send` | Витягування надсилання tool | Витягування канонічних полів цілі надсилання з аргументів tool |
| `plugin-sdk/temp-path` | Допоміжні засоби тимчасових шляхів | Спільні допоміжні засоби шляхів тимчасового завантаження |
| `plugin-sdk/logging-core` | Допоміжні засоби logging | Logger підсистеми та допоміжні засоби редагування |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби таблиць Markdown | Допоміжні засоби режимів таблиць Markdown |
| `plugin-sdk/reply-payload` | Типи payload відповіді | Типи payload відповіді |
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локального/self-hosted provider | Допоміжні засоби виявлення/config self-hosted provider |
| `plugin-sdk/self-hosted-provider-setup` | Цільові допоміжні засоби налаштування self-hosted provider, сумісного з OpenAI | Ті самі допоміжні засоби виявлення/config self-hosted provider |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби auth runtime provider | Допоміжні засоби визначення API-ключа під час runtime |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби налаштування API-ключа provider | Допоміжні засоби onboarding/запису профілю для API-ключа |
| `plugin-sdk/provider-auth-result` | Допоміжні засоби результатів auth provider | Стандартний білдер результату auth OAuth |
| `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного входу provider | Спільні допоміжні засоби інтерактивного входу |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби env var provider | Допоміжні засоби пошуку env var auth provider |
| `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделей/replay provider | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні білдери політик replay, допоміжні засоби endpoint provider та допоміжні засоби нормалізації model-id |
| `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу provider | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-onboard` | Patch onboarding provider | Допоміжні засоби config onboarding |
| `plugin-sdk/provider-http` | Допоміжні засоби HTTP provider | Загальні допоміжні засоби можливостей HTTP/endpoint provider |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch provider | Допоміжні засоби реєстрації/cache provider web-fetch |
| `plugin-sdk/provider-web-search` | Допоміжні засоби web-search provider | Допоміжні засоби реєстрації/cache/config provider web-search |
| `plugin-sdk/provider-tools` | Допоміжні засоби сумісності tool/schema provider | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | Допоміжні засоби використання provider | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші допоміжні засоби використання provider |
| `plugin-sdk/provider-stream` | Допоміжні засоби обгортки потоків provider | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/keyed-async-queue` | Впорядкована асинхронна черга | `KeyedAsyncQueue` |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби media | Допоміжні засоби отримання/перетворення/зберігання media та білдери media payload |
| `plugin-sdk/media-understanding` | Допоміжні засоби media-understanding | Типи provider media understanding та експорти допоміжних засобів зображень/аудіо для provider |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту | Видалення видимого для assistant тексту, допоміжні засоби render/chunking/table для markdown, редагування, допоміжні засоби тегів директив, утиліти безпечного тексту та пов’язані допоміжні засоби text/logging |
| `plugin-sdk/text-chunking` | Допоміжні засоби chunking тексту | Допоміжний засіб chunking вихідного тексту |
| `plugin-sdk/speech` | Допоміжні засоби speech | Типи provider speech та експорти допоміжних засобів директив, реєстру й валідації для provider |
| `plugin-sdk/speech-core` | Спільне ядро speech | Типи provider speech, реєстр, директиви, нормалізація |
| `plugin-sdk/realtime-transcription` | Допоміжні засоби realtime transcription | Типи provider та допоміжні засоби реєстру |
| `plugin-sdk/realtime-voice` | Допоміжні засоби realtime voice | Типи provider та допоміжні засоби реєстру |
| `plugin-sdk/image-generation-core` | Спільне ядро image-generation | Типи image-generation, failover, auth та допоміжні засоби реєстру |
| `plugin-sdk/video-generation` | Допоміжні засоби video-generation | Типи provider/request/result для video-generation |
| `plugin-sdk/video-generation-core` | Спільне ядро video-generation | Типи video-generation, допоміжні засоби failover, пошук provider і аналіз model-ref |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби інтерактивних відповідей | Нормалізація/скорочення payload інтерактивних відповідей |
| `plugin-sdk/channel-config-primitives` | Примітиви config каналу | Вузькі примітиви schema config каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби запису config каналу | Допоміжні засоби авторизації запису config каналу |
| `plugin-sdk/channel-plugin-common` | Спільна преамбула каналу | Експорти спільної преамбули plugin каналу |
| `plugin-sdk/channel-status` | Допоміжні засоби стану каналу | Спільні допоміжні засоби snapshot/summary стану каналу |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби config allowlist | Допоміжні засоби редагування/читання config allowlist |
| `plugin-sdk/group-access` | Допоміжні засоби доступу груп | Спільні допоміжні засоби рішень щодо доступу груп |
| `plugin-sdk/direct-dm` | Допоміжні засоби direct-DM | Спільні допоміжні засоби auth/guard для direct-DM |
| `plugin-sdk/extension-shared` | Спільні допоміжні засоби extension | Примітиви допоміжних засобів passive-channel/status |
| `plugin-sdk/webhook-targets` | Допоміжні засоби цілей webhook | Реєстр цілей webhook і допоміжні засоби встановлення маршрутів |
| `plugin-sdk/webhook-path` | Допоміжні засоби шляху webhook | Допоміжні засоби нормалізації шляху webhook |
| `plugin-sdk/web-media` | Спільні допоміжні засоби web media | Допоміжні засоби завантаження віддалених/локальних медіа |
| `plugin-sdk/zod` | Повторний експорт Zod | Повторно експортований `zod` для споживачів SDK плагінів |
| `plugin-sdk/memory-core` | Вбудовані допоміжні засоби memory-core | Поверхня допоміжних засобів memory manager/config/file/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime рушія memory | Фасад runtime індексування/пошуку memory |
| `plugin-sdk/memory-core-host-engine-foundation` | Базовий рушій memory для хоста | Експорти базового рушія memory для хоста |
| `plugin-sdk/memory-core-host-engine-embeddings` | Рушій embeddings memory для хоста | Експорти рушія embeddings memory для хоста |
| `plugin-sdk/memory-core-host-engine-qmd` | Рушій QMD memory для хоста | Експорти рушія QMD memory для хоста |
| `plugin-sdk/memory-core-host-engine-storage` | Рушій зберігання memory для хоста | Експорти рушія зберігання memory для хоста |
| `plugin-sdk/memory-core-host-multimodal` | Багатомодальні допоміжні засоби memory для хоста | Багатомодальні допоміжні засоби memory для хоста |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів memory для хоста | Допоміжні засоби запитів memory для хоста |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів memory для хоста | Допоміжні засоби секретів memory для хоста |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби стану memory для хоста | Допоміжні засоби стану memory для хоста |
| `plugin-sdk/memory-core-host-runtime-cli` | CLI runtime memory для хоста | Допоміжні засоби CLI runtime memory для хоста |
| `plugin-sdk/memory-core-host-runtime-core` | Базовий runtime memory для хоста | Допоміжні засоби базового runtime memory для хоста |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime memory для хоста | Допоміжні засоби файлів/runtime memory для хоста |
| `plugin-sdk/memory-lancedb` | Вбудовані допоміжні засоби memory-lancedb | Поверхня допоміжних засобів memory-lancedb |
| `plugin-sdk/testing` | Утиліти тестування | Допоміжні засоби тестування та mock-об’єкти |
| `plugin-sdk/webhook-path` | Допоміжні засоби шляхів webhook | Допоміжні засоби нормалізації шляхів webhook |
| `plugin-sdk/web-media` | Спільні допоміжні засоби web media | Допоміжні засоби завантаження віддаленого/локального media |
| `plugin-sdk/zod` | Повторний експорт Zod | Повторно експортований `zod` для споживачів Plugin SDK |
| `plugin-sdk/memory-core` | Допоміжні засоби вбудованого memory-core | Поверхня допоміжних засобів memory manager/config/file/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime рушія пам’яті | Фасад runtime індексації/пошуку пам’яті |
| `plugin-sdk/memory-core-host-engine-foundation` | Базовий рушій host пам’яті | Експорти базового рушія host пам’яті |
| `plugin-sdk/memory-core-host-engine-embeddings` | Рушій embedding host пам’яті | Експорти рушія embedding host пам’яті |
| `plugin-sdk/memory-core-host-engine-qmd` | Рушій QMD host пам’яті | Експорти рушія QMD host пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Рушій сховища host пам’яті | Експорти рушія сховища host пам’яті |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби host пам’яті | Мультимодальні допоміжні засоби host пам’яті |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів host пам’яті | Допоміжні засоби запитів host пам’яті |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби secret host пам’яті | Допоміжні засоби secret host пам’яті |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби стану host пам’яті | Допоміжні засоби стану host пам’яті |
| `plugin-sdk/memory-core-host-runtime-cli` | CLI runtime host пам’яті | Допоміжні засоби CLI runtime host пам’яті |
| `plugin-sdk/memory-core-host-runtime-core` | Основний runtime host пам’яті | Основні допоміжні засоби runtime host пам’яті |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime host пам’яті | Допоміжні засоби файлів/runtime host пам’яті |
| `plugin-sdk/memory-lancedb` | Допоміжні засоби вбудованого memory-lancedb | Поверхня допоміжних засобів memory-lancedb |
| `plugin-sdk/testing` | Утиліти тестування | Допоміжні засоби тестування та mocks |
</Accordion>
Ця таблиця навмисно містить поширену підмножину для міграції, а не повну
Ця таблиця навмисно охоплює поширену підмножину для міграції, а не всю
поверхню SDK. Повний список із понад 200 точок входу міститься у
`scripts/lib/plugin-sdk-entrypoints.json`.
Цей список усе ще містить деякі допоміжні шви вбудованих плагінів, як-от
Цей список усе ще містить деякі допоміжні шви вбудованих plugin, такі як
`plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`,
`plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Вони й далі експортуються для
підтримки вбудованих плагінів і сумісності, але навмисно не включені до
таблиці поширеної міграції й не є рекомендованою ціллю для нового коду
плагінів.
підтримки та сумісності вбудованих plugin, але навмисно
не включені до таблиці поширеної міграції й не є рекомендованою ціллю для
нового коду plugin.
Те саме правило застосовується до інших сімейств вбудованих допоміжних засобів,
таких як:
Те саме правило застосовується до інших сімейств вбудованих допоміжних засобів, таких як:
- допоміжні засоби підтримки браузера: `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-support`
- допоміжні засоби підтримки browser: `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support`
- Matrix: `plugin-sdk/matrix*`
- LINE: `plugin-sdk/line*`
- IRC: `plugin-sdk/irc*`
- поверхні вбудованих допоміжних засобів/плагінів, як-от `plugin-sdk/googlechat`,
- поверхні вбудованих helper/plugin, такі як `plugin-sdk/googlechat`,
`plugin-sdk/zalouser`, `plugin-sdk/bluebubbles*`,
`plugin-sdk/mattermost*`, `plugin-sdk/msteams`,
`plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`,
@ -340,22 +329,22 @@ OpenClaw перейшов від широкого шару зворотної с
`plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`,
`plugin-sdk/thread-ownership` і `plugin-sdk/voice-call`
`plugin-sdk/github-copilot-token` наразі надає вузьку поверхню допоміжних
засобів токена: `DEFAULT_COPILOT_API_BASE_URL`,
`plugin-sdk/github-copilot-token` наразі надає вузьку
поверхню допоміжних засобів token: `DEFAULT_COPILOT_API_BASE_URL`,
`deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken`.
Використовуйте найвужчий імпорт, який відповідає задачі. Якщо ви не можете
знайти експорт, перегляньте джерело в `src/plugin-sdk/` або запитайте в Discord.
Використовуйте найвужчий імпорт, який відповідає вашому завданню. Якщо ви не можете знайти експорт,
перевірте вихідний код у `src/plugin-sdk/` або запитайте в Discord.
## Хронологія видалення
| Коли | Що відбувається |
| Коли | Що відбувається |
| ---------------------- | ----------------------------------------------------------------------- |
| **Зараз** | Застарілі поверхні видають попередження під час виконання |
| **Наступний великий випуск** | Застарілі поверхні буде видалено; плагіни, які все ще їх використовують, перестануть працювати |
| **Зараз** | Застарілі поверхні виводять попередження під час runtime |
| **Наступний мажорний реліз** | Застарілі поверхні буде видалено; plugin, які все ще їх використовують, перестануть працювати |
Усі основні плагіни вже мігрували. Зовнішнім плагінам слід виконати міграцію
до наступного великого випуску.
Усі core plugin уже мігровано. Зовнішнім plugin слід перейти на нові механізми
до наступного мажорного релізу.
## Тимчасове приглушення попереджень
@ -370,9 +359,9 @@ OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
## Пов’язане
- [Початок роботи](/uk/plugins/building-plugins) — створіть свій перший плагін
- [Початок роботи](/uk/plugins/building-plugins) — створіть свій перший plugin
- [Огляд SDK](/uk/plugins/sdk-overview) — повний довідник імпортів за підшляхами
- [Плагіни каналів](/uk/plugins/sdk-channel-plugins) — створення плагінів каналів
- [Плагіни провайдерів](/uk/plugins/sdk-provider-plugins) — створення плагінів провайдерів
- [Внутрішня будова плагінів](/uk/plugins/architecture) — детальний розбір архітектури
- [Маніфест плагіна](/uk/plugins/manifest) — довідник схеми маніфесту
- [Плагіни каналів](/uk/plugins/sdk-channel-plugins) — створення plugin каналів
- [Плагіни provider](/uk/plugins/sdk-provider-plugins) — створення plugin provider
- [Внутрішня будова plugin](/uk/plugins/architecture) — глибоке занурення в архітектуру
- [Маніфест plugin](/uk/plugins/manifest) — довідник зі схеми маніфесту

View File

@ -1,16 +1,16 @@
---
read_when:
- Потрібно знати, з якого підшляху SDK імпортувати
- Потрібен довідник для всіх методів реєстрації в OpenClawPluginApi
- Вам потрібно знати, з якого підшляху SDK імпортувати
- Ви хочете отримати довідник для всіх методів реєстрації в OpenClawPluginApi
- Ви шукаєте конкретний експорт SDK
sidebarTitle: SDK Overview
summary: Карта імпортів, довідник API реєстрації та архітектура SDK
title: Огляд Plugin SDK
x-i18n:
generated_at: "2026-04-05T21:47:19Z"
generated_at: "2026-04-05T22:38:04Z"
model: gpt-5.4
provider: openai
source_hash: d70ea8cc1343b2dc1b4243b0562d19bebb1fdf7eb5065220b17e87cfd8aecc3e
source_hash: 0e023cf1ca8a35a437e27fdebde66d955771d50a3db5ffeef335c174873b1867
source_path: plugins/sdk-overview.md
workflow: 15
---
@ -18,16 +18,16 @@ x-i18n:
# Огляд Plugin SDK
Plugin SDK — це типізований контракт між плагінами та ядром. Ця сторінка є
довідником для **що імпортувати** і **що можна реєструвати**.
довідником щодо **що імпортувати** і **що можна реєструвати**.
<Tip>
**Шукаєте покроковий посібник?**
- Перший плагін? Почніть із [Getting Started](/uk/plugins/building-plugins)
- Плагін каналу? Див. [Channel Plugins](/uk/plugins/sdk-channel-plugins)
- Плагін провайдера? Див. [Provider Plugins](/uk/plugins/sdk-provider-plugins)
- Перший плагін? Почніть із [Початок роботи](/uk/plugins/building-plugins)
- Плагін каналу? Див. [Плагіни каналів](/uk/plugins/sdk-channel-plugins)
- Плагін провайдера? Див. [Плагіни провайдерів](/uk/plugins/sdk-provider-plugins)
</Tip>
## Правило імпорту
## Угода щодо імпорту
Завжди імпортуйте з конкретного підшляху:
@ -36,25 +36,24 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
```
Кожен підшлях — це невеликий самодостатній модуль. Це пришвидшує запуск і
запобігає проблемам із циклічними залежностями. Для специфічних для каналу
допоміжних засобів entry/build віддавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` залишайте для
ширшої парасолькової поверхні та спільних допоміжних засобів, таких як
Кожен підшлях — це невеликий самодостатній модуль. Це зберігає швидкий запуск і
запобігає проблемам із циклічними залежностями. Для допоміжних засобів
входу/збирання, специфічних для каналу, надавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` залишайте для
ширшої узагальненої поверхні та спільних допоміжних засобів, таких як
`buildChannelConfigSchema`.
Не додавайте й не використовуйте зручні шари з назвами провайдерів, як-от
Не додавайте й не використовуйте зручні шари, названі на честь провайдерів, такі як
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, або
допоміжні шари з брендуванням каналу. Вбудовані плагіни мають компонувати
загальні підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а ядро
має або використовувати ці локальні barrel-файли плагіна, або додавати вузький загальний
контракт SDK, якщо потреба справді є міжканальною.
допоміжні шари з брендингом каналів. Вбудовані плагіни мають компонувати узагальнені
підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а ядро
має або використовувати ці локальні barrel-файли плагінів, або додавати вузький узагальнений контракт SDK, коли потреба справді є міжканальною.
Згенерована карта експортів усе ще містить невеликий набір допоміжних
шарів для вбудованих плагінів, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
Згенерована карта експортів усе ще містить невеликий набір
допоміжних шарів для вбудованих плагінів, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Ці
підшляхи існують лише для підтримки вбудованих плагінів і сумісності; їх
навмисно пропущено в основній таблиці нижче, і вони не є рекомендованим
підшляхи існують лише для супроводу та сумісності вбудованих плагінів; вони
навмисно не включені до основної таблиці нижче і не є рекомендованим
шляхом імпорту для нових сторонніх плагінів.
## Довідник підшляхів
@ -62,11 +61,11 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
Найуживаніші підшляхи, згруповані за призначенням. Згенерований повний список із
понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`.
Зарезервовані допоміжні підшляхи вбудованих плагінів усе ще з’являються в цьому
згенерованому списку. Розглядайте їх як поверхні деталей реалізації/сумісності, якщо сторінка документації
явно не просуває якийсь із них як публічний.
Зарезервовані підшляхи допоміжних засобів для вбудованих плагінів усе ще з’являються в цьому згенерованому списку.
Розглядайте їх як поверхні деталей реалізації/сумісності, якщо лише якась сторінка документації
явно не позначає одну з них як публічну.
### Вхідна точка плагіна
### Точка входу плагіна
| Підшлях | Ключові експорти |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
@ -76,74 +75,74 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
<AccordionGroup>
<Accordion title="Підшляхи каналу">
<Accordion title="Підшляхи каналів">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, підказки allowlist, конструктори статусу налаштування |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, запити allowlist, конструктори стану налаштування |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Допоміжні засоби багатооблікової конфігурації/action-gate, допоміжні засоби fallback для облікового запису за замовчуванням |
| `plugin-sdk/account-core` | Допоміжні засоби конфігурації/контролю дій для кількох облікових записів, допоміжні засоби резервного облікового запису за замовчуванням |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації ID облікового запису |
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + fallback за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списку облікових записів/дій облікового запису |
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + резервного варіанту за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списку облікових записів/дій з обліковими записами |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Типи схеми конфігурації каналу |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із fallback на вбудований контракт |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервним варіантом вбудованого контракту |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби для route вхідних повідомлень + побудови envelope |
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та диспетчеризації вхідних повідомлень |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації вхідних даних + побудови envelope |
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису й диспетчеризації вхідних даних |
| `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей |
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби для вихідної ідентичності/send delegate |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідної ідентичності/делегування надсилання |
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок потоків і адаптерів |
| `plugin-sdk/agent-media-payload` | Застарілий конструктор медіапейлоаду агента |
| `plugin-sdk/conversation-runtime` | Допоміжні засоби для прив’язки розмови/потоку, pairing і configured-binding |
| `plugin-sdk/agent-media-payload` | Застарілий конструктор медіапейлоада агента |
| `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмови/потоку, pairing і налаштованих прив’язок |
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики в runtime |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку статусу каналу |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення політики груп runtime |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку стану каналу |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
| `plugin-sdk/channel-plugin-common` | Спільні прелюд-експорти плагіна каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагінів каналів |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
| `plugin-sdk/group-access` | Спільні допоміжні засоби прийняття рішень щодо групового доступу |
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби автентифікації/захисту direct-DM |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби нормалізації/скорочення пейлоадів інтерактивних відповідей |
| `plugin-sdk/group-access` | Спільні допоміжні засоби прийняття рішень щодо доступу груп |
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби авторизації/захисту прямих DM |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби нормалізації/згортання пейлоада інтерактивних відповідей |
| `plugin-sdk/channel-inbound` | Допоміжні засоби debounce, зіставлення згадок, envelope |
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
| `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення цілей |
| `plugin-sdk/channel-contract` | Типи контракту каналу |
| `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
| `plugin-sdk/channel-feedback` | Логіка зворотного зв’язку/реакцій |
</Accordion>
<Accordion title="Підшляхи провайдера">
<Accordion title="Підшляхи провайдерів">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/provider-setup` | Добірні допоміжні засоби налаштування локального/self-hosted провайдера |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдера, сумісного з OpenAI |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в runtime для плагінів провайдерів |
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted провайдерів |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдерів, сумісних з OpenAI |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення runtime API-ключів для плагінів провайдерів |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа |
| `plugin-sdk/provider-auth-result` | Стандартний конструктор результату OAuth-автентифікації |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars для автентифікації провайдера |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars автентифікації провайдера |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори replay-policy, допоміжні засоби endpoint провайдера та нормалізації ID моделей, як-от `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політики replay, допоміжні засоби endpoint провайдера та допоміжні засоби нормалізації ID моделей, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint провайдера |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу провайдера web-fetch |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/конфігурації провайдера web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-http` | Узагальнені допоміжні засоби HTTP/можливостей endpoint провайдера |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу провайдерів web-fetch |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/конфігурації провайдерів web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper та спільні допоміжні засоби wrapper для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу |
| `plugin-sdk/provider-onboard` | Допоміжні засоби латання конфігурації онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
</Accordion>
@ -152,96 +151,96 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і action-auth у тому самому чаті |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтрів native exec approval |
| `plugin-sdk/approval-delivery-runtime` | Адаптери native approval capability/delivery |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби target і прив’язки облікового запису для native approval |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби пейлоаду відповіді exec/plugin approval |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval |
| `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки native approval |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілі native approval + прив’язки облікового запису |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби пейлоада відповіді для approval exec/плагіна |
| `plugin-sdk/command-auth-native` | Допоміжні засоби native command auth + native session-target |
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та command-surface |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби для довіри, DM gating, external-content і збору секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики host allowlist і SSRF для приватних мереж |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, обмеження DM, зовнішнього контенту та збирання секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватних мереж |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF і політики SSRF |
| `plugin-sdk/secret-input` | Допоміжні засоби розбору секретного вводу |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі webhook |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби для розміру body/timeout запиту |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру тіла запиту/таймауту |
</Accordion>
<Accordion title="Підшляхи runtime та сховища">
<Accordion title="Підшляхи runtime і сховища">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/plugin-install |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff |
| `plugin-sdk/runtime` | Широка поверхня допоміжних засобів runtime/логування/резервного копіювання/встановлення плагінів |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env, logger, timeout, retry і backoff |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби для команд/hook/http/interactive плагіна |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби для конвеєра webhook/internal hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy import/binding у runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/хуків/http/інтерактивності плагінів |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра webhook/внутрішніх хуків |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби ледачого імпорту/прив’язки runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби виконання процесів |
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування та версій |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway і патчів статусу каналу |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта gateway і латання стану каналу |
| `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації |
| `plugin-sdk/telegram-command-config` | Нормалізація назви/опису команди Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня контракту вбудованого Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, конструктори approval-capability, допоміжні засоби auth/profile, native routing/runtime |
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime для вхідних повідомлень/відповідей, chunking, dispatch, heartbeat, planner відповіді |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби short-window reply-history, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/telegram-command-config` | Нормалізація назви/опису команди Telegram і перевірки дублювання/конфліктів, навіть коли поверхня контракту вбудованого Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби approval exec/плагіна, конструктори можливостей approval, допоміжні засоби auth/profile, native routing/runtime helpers |
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, heartbeat, planner відповідей |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповідей |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби коротковіконної історії відповідей, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking для text/markdown |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій + updated-at |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогу state/OAuth |
| `plugin-sdk/routing` | Допоміжні засоби прив’язки route/session-key/account, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку статусу каналу/облікового запису, значення runtime-state за замовчуванням і допоміжні засоби метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби target resolver |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів state/OAuth |
| `plugin-sdk/routing` | Допоміжні засоби прив’язки маршруту/ключа сесії/облікового запису, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку стану каналу/облікового запису, типові значення стану runtime та допоміжні засоби метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілей |
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків |
| `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних вхідних даних |
| `plugin-sdk/request-url` | Видобування рядкових URL із входів, подібних до fetch/request |
| `plugin-sdk/run-command` | Виконавець команд із таймером і нормалізованими результатами stdout/stderr |
| `plugin-sdk/param-readers` | Загальні засоби читання параметрів tool/CLI |
| `plugin-sdk/tool-send` | Витягування канонічних полів цілі send з аргументів інструмента |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляху тимчасового завантаження |
| `plugin-sdk/logging-core` | Допоміжні засоби журналювання підсистеми та редагування конфіденційних даних |
| `plugin-sdk/param-readers` | Поширені зчитувачі параметрів tool/CLI |
| `plugin-sdk/tool-send` | Видобування канонічних полів цілі надсилання з аргументів tool |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляху тимчасових завантажень |
| `plugin-sdk/logging-core` | Допоміжні засоби subsystem logger і redaction |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму таблиць Markdown |
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
| `plugin-sdk/file-lock` | Допоміжні засоби re-entrant file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби дискового dedupe-кешу |
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/session ACP і dispatch відповіді |
| `plugin-sdk/file-lock` | Повторно вхідні допоміжні засоби file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу дедуплікації з дисковою підтримкою |
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/сесій ACP і dispatch відповідей |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
| `plugin-sdk/boolean-param` | Гнучкий засіб читання булевих параметрів |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення небезпечних назв |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токенів pairing |
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel і status |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді команди `/models`/провайдера |
| `plugin-sdk/boolean-param` | Нестрогий зчитувач булевих параметрів |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення зіставлення небезпечних імен |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби початкового налаштування пристрою та токенів pairing |
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів пасивних каналів і стану |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді провайдера/команди `/models` |
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills |
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native command |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
| `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/heartbeat |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби bounded cache |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців і подій |
| `plugin-sdk/error-runtime` | Допоміжні засоби графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Допоміжні засоби wrapped fetch, proxy і pinned lookup |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і хостів SCP |
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry та запуску retry |
| `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy і pinned lookup helpers |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host |
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і запуску retry |
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента |
| `plugin-sdk/directory-runtime` | Query/dedup каталогів на основі конфігурації |
| `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогів на основі конфігурації |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Підшляхи можливостей і тестування">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також конструктори медіапейлоадів |
| `plugin-sdk/media-understanding` | Типи провайдера media understanding і орієнтовані на провайдера експорти допоміжних засобів для зображень/аудіо |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби для text/markdown/logging, такі як видалення тексту, видимого асистенту, допоміжні засоби render/chunking/table для markdown, редагування конфіденційних даних, допоміжні засоби directive-tag і безпечного тексту |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking для вихідного тексту |
| `plugin-sdk/speech` | Типи провайдера мовлення, а також орієнтовані на провайдера допоміжні засоби directive, registry і validation |
| `plugin-sdk/speech-core` | Спільні типи провайдера мовлення, допоміжні засоби registry, directive і normalizaton |
| `plugin-sdk/realtime-transcription` | Типи провайдера транскрипції в реальному часі та допоміжні засоби реєстру |
| `plugin-sdk/realtime-voice` | Типи провайдера голосу в реальному часі та допоміжні засоби реєстру |
| `plugin-sdk/image-generation` | Типи провайдера генерації зображень |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store медіа, а також конструктори медіапейлоадів |
| `plugin-sdk/media-understanding` | Типи провайдерів media understanding, а також provider-facing експорти допоміжних засобів для зображень/аудіо |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту/markdown/логування, такі як видалення видимого для асистента тексту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби redaction, directive-tag та safe-text utilities |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
| `plugin-sdk/speech` | Типи провайдерів мовлення, а також provider-facing допоміжні засоби directive, registry і validation |
| `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, допоміжні засоби registry, directive і normalization |
| `plugin-sdk/realtime-transcription` | Типи провайдерів транскрибування в реальному часі та допоміжні засоби registry |
| `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби registry |
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і registry |
| `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео |
| `plugin-sdk/video-generation` | Типи провайдерів/запитів/результатів генерації відео |
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошуку провайдера та розбору model-ref |
| `plugin-sdk/webhook-targets` | Реєстр цілей webhook і допоміжні засоби встановлення route |
| `plugin-sdk/webhook-targets` | Реєстр цілей webhook і допоміжні засоби встановлення маршрутів |
| `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху webhook |
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів Plugin SDK |
@ -251,7 +250,7 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
<Accordion title="Підшляхи пам’яті">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI |
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для менеджера/конфігурації/файлів/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексу/пошуку пам’яті |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-embeddings` | Експорти embedding engine хоста пам’яті |
@ -261,78 +260,78 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби query хоста пам’яті |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби secret хоста пам’яті |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби status хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби runtime CLI хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті |
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
</Accordion>
<Accordion title="Зарезервовані підшляхи допоміжних засобів вбудованих плагінів">
| Сімейство | Поточні підшляхи | Призначення |
<Accordion title="Зарезервовані підшляхи вбудованих допоміжних засобів">
| Сімейство | Поточні підшляхи | Призначене використання |
| --- | --- | --- |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки вбудованого плагіна браузера |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних засобів/runtime для вбудованого Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime для вбудованого LINE |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки вбудованого browser plugin (`browser-support` лишається barrel-файлом сумісності) |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних засобів/runtime вбудованого Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime вбудованого LINE |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів вбудованого IRC |
| Допоміжні засоби, специфічні для каналу | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Шари сумісності/допоміжних засобів вбудованих каналів |
| Допоміжні засоби, специфічні для auth/плагіна | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шари допоміжних засобів вбудованих функцій/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
| Допоміжні засоби, специфічні для каналів | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Шари сумісності/допоміжних засобів вбудованих каналів |
| Допоміжні засоби, специфічні для auth/плагінів | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шари допоміжних засобів вбудованих можливостей/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
</Accordion>
</AccordionGroup>
## API реєстрації
Колбек `register(api)` отримує об’єкт `OpenClawPluginApi` із такими
Зворотний виклик `register(api)` отримує об’єкт `OpenClawPluginApi` із такими
методами:
### Реєстрація можливостей
| Метод | Що реєструє |
| Метод | Що він реєструє |
| ------------------------------------------------ | ------------------------------ |
| `api.registerProvider(...)` | Текстову інференцію (LLM) |
| `api.registerChannel(...)` | Канал повідомлень |
| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Потокову транскрипцію в реальному часі |
| `api.registerRealtimeVoiceProvider(...)` | Двобічні голосові сесії в реальному часі |
| `api.registerProvider(...)` | Текстовий inference (LLM) |
| `api.registerChannel(...)` | Канал обміну повідомленнями |
| `api.registerSpeechProvider(...)` | Text-to-speech / STT synthesis |
| `api.registerRealtimeTranscriptionProvider(...)` | Потокове транскрибування в реальному часі |
| `api.registerRealtimeVoiceProvider(...)` | Дуплексні голосові сесії в реальному часі |
| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
| `api.registerImageGenerationProvider(...)` | Генерацію зображень |
| `api.registerVideoGenerationProvider(...)` | Генерацію відео |
| `api.registerWebFetchProvider(...)` | Провайдера web fetch / scrape |
| `api.registerImageGenerationProvider(...)` | Генерація зображень |
| `api.registerVideoGenerationProvider(...)` | Генерація відео |
| `api.registerWebFetchProvider(...)` | Провайдер web fetch / scrape |
| `api.registerWebSearchProvider(...)` | Вебпошук |
### Інструменти та команди
### Інструменти і команди
| Метод | Що реєструє |
| ------------------------------- | ------------------------------------------- |
| Метод | Що він реєструє |
| ------------------------------ | -------------------------------------------- |
| `api.registerTool(tool, opts?)` | Інструмент агента (обов’язковий або `{ optional: true }`) |
| `api.registerCommand(def)` | Користувацьку команду (оминає LLM) |
| `api.registerCommand(def)` | Користувацька команда (оминає LLM) |
### Інфраструктура
| Метод | Що реєструє |
| ---------------------------------------------- | -------------------- |
| `api.registerHook(events, handler, opts?)` | Хук події |
| `api.registerHttpRoute(params)` | HTTP-ендпоінт Gateway |
| `api.registerGatewayMethod(name, handler)` | RPC-метод Gateway |
| `api.registerCli(registrar, opts?)` | Підкоманду CLI |
| `api.registerService(service)` | Фоновий сервіс |
| Метод | Що він реєструє |
| --------------------------------------------- | --------------------- |
| `api.registerHook(events, handler, opts?)` | Хук події |
| `api.registerHttpRoute(params)` | HTTP endpoint gateway |
| `api.registerGatewayMethod(name, handler)` | RPC-метод gateway |
| `api.registerCli(registrar, opts?)` | Підкоманда CLI |
| `api.registerService(service)` | Фонова служба |
| `api.registerInteractiveHandler(registration)` | Інтерактивний обробник |
Зарезервовані простори імен core admin (`config.*`, `exec.approvals.*`, `wizard.*`,
Зарезервовані простори імен адміністратора ядра (`config.*`, `exec.approvals.*`, `wizard.*`,
`update.*`) завжди залишаються `operator.admin`, навіть якщо плагін намагається призначити
вужчу область дії методу gateway. Для методів, що належать
плагіну, віддавайте перевагу специфічним для плагіна префіксам.
вужчу область gateway method. Для методів, що належать плагіну, надавайте перевагу
префіксам, специфічним для плагіна.
### Метадані реєстрації CLI
`api.registerCli(registrar, opts?)` приймає два типи метаданих верхнього рівня:
`api.registerCli(registrar, opts?)` приймає два види метаданих верхнього рівня:
- `commands`: явні корені команд, якими володіє registrar
- `descriptors`: дескриптори команд на етапі парсингу, які використовуються для кореневої довідки CLI,
маршрутизації та лінивої реєстрації CLI плагіна
- `commands`: явні корені команд, якими володіє реєстратор
- `descriptors`: дескриптори команд на етапі парсингу, що використовуються для кореневої довідки CLI,
маршрутизації та ледачої реєстрації CLI плагіна
Якщо ви хочете, щоб команда плагіна залишалася ліниво завантажуваною у
звичайному кореневому шляху CLI, надайте `descriptors`, які охоплюють кожен
корінь команди верхнього рівня, що експонує цей registrar.
Якщо ви хочете, щоб команда плагіна залишалася ледачо завантажуваною у звичайному кореневому шляху CLI,
надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, що надається
цим реєстратором.
```typescript
api.registerCli(
@ -352,117 +351,117 @@ api.registerCli(
);
```
Використовуйте лише `commands`, коли вам не потрібна лінива реєстрація кореневого CLI.
Цей сумісний eager-шлях і далі підтримується, але він не встановлює
placeholders із підтримкою descriptors для лінивого завантаження на етапі парсингу.
Використовуйте лише `commands`, якщо вам не потрібна ледача реєстрація кореневого CLI.
Цей eager-шлях сумісності й надалі підтримується, але він не встановлює
заповнювачі на основі descriptor для ледачого завантаження на етапі парсингу.
### Ексклюзивні слоти
| Метод | Що реєструє |
| ------------------------------------------ | ------------------------------------- |
| Метод | Що він реєструє |
| ----------------------------------------- | -------------------------------------- |
| `api.registerContextEngine(id, factory)` | Контекстний рушій (одночасно активний лише один) |
| `api.registerMemoryPromptSection(builder)` | Конструктор секції prompt для пам’яті |
| `api.registerMemoryFlushPlan(resolver)` | Резолвер плану flush для пам’яті |
| `api.registerMemoryRuntime(runtime)` | Адаптер runtime для пам’яті |
| `api.registerMemoryPromptSection(builder)` | Конструктор секції prompt пам’яті |
| `api.registerMemoryFlushPlan(resolver)` | Резолвер плану flush пам’яті |
| `api.registerMemoryRuntime(runtime)` | Адаптер runtime пам’яті |
### Адаптери embedding для пам’яті
### Адаптери embedding пам’яті
| Метод | Що реєструє |
| ---------------------------------------------- | --------------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер embedding для пам’яті для активного плагіна |
| Метод | Що він реєструє |
| --------------------------------------------- | ------------------------------------------------ |
| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер embedding пам’яті для активного плагіна |
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` і
`registerMemoryRuntime` є ексклюзивними для плагінів пам’яті.
- `registerMemoryEmbeddingProvider` дозволяє активному плагіну пам’яті реєструвати один
або кілька ID адаптерів embedding (наприклад `openai`, `gemini` або
спеціальний ID, визначений плагіном).
- `registerMemoryEmbeddingProvider` дозволяє активному плагіну пам’яті зареєструвати один
або кілька ID адаптерів embedding (наприклад, `openai`, `gemini` або
власний ID, визначений плагіном).
- Конфігурація користувача, така як `agents.defaults.memorySearch.provider` і
`agents.defaults.memorySearch.fallback`, визначається відносно цих зареєстрованих
ID адаптерів.
### Події та життєвий цикл
| Метод | Що робить |
| -------------------------------------------- | ------------------------- |
| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу |
| `api.onConversationBindingResolved(handler)` | Колбек визначення прив’язки розмови |
| Метод | Що він робить |
| ------------------------------------------- | ---------------------------- |
| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу |
| `api.onConversationBindingResolved(handler)` | Зворотний виклик прив’язки розмови |
### Семантика рішень хуків
- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник задає це значення, обробники з нижчим пріоритетом пропускаються.
- `before_tool_call`: повернення `{ block: false }` вважається відсутністю рішення (так само, як пропуск `block`), а не перевизначенням.
- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник задає це значення, обробники з нижчим пріоритетом пропускаються.
- `before_install`: повернення `{ block: false }` вважається відсутністю рішення (так само, як пропуск `block`), а не перевизначенням.
- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник бере dispatch на себе, обробники з нижчим пріоритетом і типовий шлях dispatch моделі пропускаються.
- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник задає це значення, обробники з нижчим пріоритетом пропускаються.
- `message_sending`: повернення `{ cancel: false }` вважається відсутністю рішення (так само, як пропуск `cancel`), а не перевизначенням.
- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `before_tool_call`: повернення `{ block: false }` вважається відсутністю рішення (так само, як і пропуск `block`), а не перевизначенням.
- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `before_install`: повернення `{ block: false }` вважається відсутністю рішення (так само, як і пропуск `block`), а не перевизначенням.
- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник перехоплює диспетчеризацію, обробники з нижчим пріоритетом і типовий шлях диспетчеризації моделі пропускаються.
- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `message_sending`: повернення `{ cancel: false }` вважається відсутністю рішення (так само, як і пропуск `cancel`), а не перевизначенням.
### Поля об’єкта API
| Поле | Тип | Опис |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
| `api.id` | `string` | ID плагіна |
| `api.name` | `string` | Назва для відображення |
| `api.version` | `string?` | Версія плагіна (необов’язково) |
| `api.description` | `string?` | Опис плагіна (необов’язково) |
| `api.source` | `string` | Шлях до джерела плагіна |
| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) |
| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок in-memory runtime, якщо доступний) |
| `api.pluginConfig` | `Record<string, unknown>` | Конфігурація, специфічна для плагіна, з `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger з областю видимості (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це полегшене вікно запуску/налаштування до повного entry |
| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня плагіна |
| Поле | Тип | Опис |
| ------------------------ | ------------------------- | -------------------------------------------------------------------------------------------- |
| `api.id` | `string` | ID плагіна |
| `api.name` | `string` | Відображувана назва |
| `api.version` | `string?` | Версія плагіна (необов’язково) |
| `api.description` | `string?` | Опис плагіна (необов’язково) |
| `api.source` | `string` | Шлях до джерела плагіна |
| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) |
| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime у пам’яті, коли доступний) |
| `api.pluginConfig` | `Record<string, unknown>` | Конфігурація, специфічна для плагіна, з `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger з областю видимості (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це легковагоме вікно запуску/налаштування до повного входу |
| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня плагіна |
## Внутрішня домовленість про модулі
## Угода щодо внутрішніх модулів
Усередині вашого плагіна використовуйте локальні barrel-файли для внутрішніх імпортів:
```
my-plugin/
api.ts # Публічні експорти для зовнішніх споживачів
runtime-api.ts # Лише внутрішні експорти runtime
runtime-api.ts # Лише внутрішні runtime-експорти
index.ts # Точка входу плагіна
setup-entry.ts # Полегшений entry лише для налаштування (необов’язково)
setup-entry.ts # Легка точка входу лише для налаштування (необов’язково)
```
<Warning>
Ніколи не імпортуйте власний плагін через `openclaw/plugin-sdk/<your-plugin>`
у production-коді. Для внутрішніх імпортів використовуйте `./api.ts` або
`./runtime-api.ts`. Шлях SDK — це лише зовнішній контракт.
у production-коді. Для внутрішніх імпортів використовуйте
`./api.ts` або `./runtime-api.ts`. Шлях SDK — це лише зовнішній контракт.
</Warning>
Публічні поверхні вбудованих плагінів, завантажувані через facade (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` та подібні публічні entry-файли), тепер віддають перевагу
активному знімку конфігурації runtime, коли OpenClaw уже запущено. Якщо знімка runtime
ще не існує, вони використовують fallback до визначеного файла конфігурації на диску.
Фасадно завантажувані публічні поверхні вбудованих плагінів (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` та подібні публічні файли входу) тепер надають перевагу
активному знімку конфігурації runtime, коли OpenClaw уже запущено. Якщо знімок runtime
ще не існує, вони повертаються до визначеного конфігураційного файла на диску.
Плагіни провайдерів також можуть експортувати вузький локальний контрактний barrel плагіна, коли
певний допоміжний засіб навмисно є специфічним для провайдера й поки що не належить до
загального підшляху SDK. Поточний вбудований приклад: провайдер Anthropic тримає свої
допоміжні засоби потоків Claude у власному публічному шарі `api.ts` / `contract-api.ts`, замість
того щоб просувати логіку бета-заголовків Anthropic і `service_tier` до загального
Плагіни провайдерів також можуть надавати вузький локальний barrel-файл контракту плагіна, коли
певний допоміжний засіб навмисно є специфічним для провайдера і ще не належить до узагальненого
підшляху SDK. Поточний вбудований приклад: провайдер Anthropic зберігає свої допоміжні засоби
потоків Claude у власному публічному шарі `api.ts` / `contract-api.ts` замість того, щоб
просувати логіку beta-header і `service_tier` Anthropic до узагальненого
контракту `plugin-sdk/*`.
Інші поточні вбудовані приклади:
- `@openclaw/openai-provider`: `api.ts` експортує конструктори провайдерів,
допоміжні засоби моделей за замовчуванням і конструктори realtime-провайдерів
- `@openclaw/openrouter-provider`: `api.ts` експортує конструктор провайдера, а також
- `@openclaw/openrouter-provider`: `api.ts` експортує конструктор провайдера та
допоміжні засоби онбордингу/конфігурації
<Warning>
Production-код розширень також має уникати імпортів `openclaw/plugin-sdk/<other-plugin>`.
Якщо допоміжний засіб справді спільний, перемістіть його до нейтрального підшляху SDK,
Якщо допоміжний засіб справді спільний, винесіть його до нейтрального підшляху SDK,
такого як `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої
поверхні, орієнтованої на можливості, замість жорсткого зв’язування двох плагінів.
поверхні, орієнтованої на можливість, замість того щоб зчіплювати два плагіни між собою.
</Warning>
## Пов’язане
- [Entry Points](/uk/plugins/sdk-entrypoints) — параметри `definePluginEntry` і `defineChannelPluginEntry`
- [Runtime Helpers](/uk/plugins/sdk-runtime) — повний довідник простору імен `api.runtime`
- [Setup and Config](/uk/plugins/sdk-setup) — пакування, маніфести, схеми конфігурації
- [Testing](/uk/plugins/sdk-testing) — утиліти тестування та правила lint
- [SDK Migration](/uk/plugins/sdk-migration) — міграція із застарілих поверхонь
- [Plugin Internals](/uk/plugins/architecture) — детальна архітектура та модель можливостей
- [Точки входу](/uk/plugins/sdk-entrypoints) — параметри `definePluginEntry` і `defineChannelPluginEntry`
- [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) — повний довідник простору імен `api.runtime`
- [Налаштування і конфігурація](/uk/plugins/sdk-setup) — пакування, маніфести, схеми конфігурації
- [Тестування](/uk/plugins/sdk-testing) — утиліти тестування і правила lint
- [Міграція SDK](/uk/plugins/sdk-migration) — міграція із застарілих поверхонь
- [Внутрішня будова плагінів](/uk/plugins/architecture) — глибока архітектура та модель можливостей

View File

@ -2,33 +2,33 @@
read_when:
- Ви додаєте майстер налаштування до плагіна
- Вам потрібно зрозуміти різницю між setup-entry.ts і index.ts
- Ви визначаєте schema конфігурації плагіна або метадані openclaw у package.json
- Ви визначаєте схеми конфігурації плагіна або метадані openclaw у package.json
sidebarTitle: Setup and Config
summary: Майстри налаштування, setup-entry.ts, schema конфігурації та метадані package.json
title: Налаштування та конфігурація плагіна
summary: Майстри налаштування, setup-entry.ts, схеми конфігурації та метадані package.json
title: Налаштування плагінів і конфігурація
x-i18n:
generated_at: "2026-04-05T18:13:31Z"
generated_at: "2026-04-05T22:37:37Z"
model: gpt-5.4
provider: openai
source_hash: 68fda27be1c89ea6ba906833113e9190ddd0ab358eb024262fb806746d54f7bf
source_hash: eac2586516d27bcd94cc4c259fe6274c792b3f9938c7ddd6dbf04a6dbb988dc9
source_path: plugins/sdk-setup.md
workflow: 15
---
# Налаштування та конфігурація плагіна
# Налаштування плагінів і конфігурація
Довідник із пакування плагінів (метадані `package.json`), маніфестів
(`openclaw.plugin.json`), setup entries і schema конфігурації.
Довідник щодо пакування плагінів (метадані `package.json`), маніфестів
(`openclaw.plugin.json`), точок входу налаштування та схем конфігурації.
<Tip>
**Шукаєте покрокове пояснення?** У посібниках how-to розглядається пакування в контексті:
[Плагіни каналів](/plugins/sdk-channel-plugins#step-1-package-and-manifest) і
[Плагіни провайдерів](/plugins/sdk-provider-plugins#step-1-package-and-manifest).
**Шукаєте покроковий посібник?** Практичні інструкції розглядають пакування в контексті:
[Channel Plugins](/uk/plugins/sdk-channel-plugins#step-1-package-and-manifest) і
[Provider Plugins](/uk/plugins/sdk-provider-plugins#step-1-package-and-manifest).
</Tip>
## Метадані пакета
Ваш `package.json` має містити поле `openclaw`, яке повідомляє системі плагінів, що
Вашому `package.json` потрібне поле `openclaw`, яке повідомляє системі плагінів, що
саме надає ваш плагін:
**Плагін каналу:**
@ -50,7 +50,7 @@ x-i18n:
}
```
**Плагін провайдера / базовий варіант для публікації в ClawHub:**
**Плагін провайдера / базовий варіант для публікації ClawHub:**
```json openclaw-clawhub-package.json
{
@ -71,47 +71,47 @@ x-i18n:
}
```
Якщо ви публікуєте плагін зовні в ClawHub, ці поля `compat` і `build`
є обов’язковими. Канонічні фрагменти для публікації розміщено в
Якщо ви публікуєте плагін зовнішньо в ClawHub, поля `compat` і `build`
є обов’язковими. Канонічні фрагменти для публікації знаходяться в
`docs/snippets/plugin-publish/`.
### Поля `openclaw`
| Поле | Тип | Опис |
| ----------- | ---------- | ------------------------------------------------------------------------------------------------------ |
| `extensions` | `string[]` | Файли entry point'ів (відносно кореня пакета) |
| `setupEntry` | `string` | Полегшений запис лише для налаштування (необов’язково) |
| `channel` | `object` | Метадані каталогу каналів для налаштування, пікера, quickstart і поверхонь статусу |
| `providers` | `string[]` | Id провайдерів, які реєструє цей плагін |
| Поле | Тип | Опис |
| ------------ | ---------- | -------------------------------------------------------------------------------------------------------------- |
| `extensions` | `string[]` | Файли точок входу (відносно кореня пакета) |
| `setupEntry` | `string` | Легка точка входу лише для налаштування (необов’язково) |
| `channel` | `object` | Метадані каталогу каналів для налаштування, вибору, швидкого старту та поверхонь стану |
| `providers` | `string[]` | Ідентифікатори провайдерів, зареєстрованих цим плагіном |
| `install` | `object` | Підказки для встановлення: `npmSpec`, `localPath`, `defaultChoice`, `minHostVersion`, `allowInvalidConfigRecovery` |
| `startup` | `object` | Прапорці поведінки під час запуску |
| `startup` | `object` | Прапорці поведінки під час запуску |
### `openclaw.channel`
`openclaw.channel` — це недорогі метадані пакета для виявлення каналу і поверхонь
налаштування до завантаження середовища виконання.
`openclaw.channel` — це недорогі метадані пакета для виявлення каналів і
поверхонь налаштування до завантаження середовища виконання.
| Поле | Тип | Що це означає |
| -------------------------------------- | ---------- | --------------------------------------------------------------------------- |
| `id` | `string` | Канонічний id каналу. |
| `label` | `string` | Основна мітка каналу. |
| `selectionLabel` | `string` | Мітка для пікера/налаштування, якщо вона має відрізнятися від `label`. |
| `detailLabel` | `string` | Додаткова мітка для докладніших каталогів каналів і поверхонь статусу. |
| `docsPath` | `string` | Шлях до документації для посилань у налаштуванні та виборі. |
| `docsLabel` | `string` | Заміна мітки для посилань на документацію, якщо вона має відрізнятися від id каналу. |
| `blurb` | `string` | Короткий опис для онбордингу/каталогу. |
| `order` | `number` | Порядок сортування в каталогах каналів. |
| `aliases` | `string[]` | Додаткові псевдоніми для пошуку каналу. |
| `preferOver` | `string[]` | Менш пріоритетні id плагінів/каналів, які цей канал має перевершувати. |
| `systemImage` | `string` | Необов’язкова назва icon/system-image для каталогів UI каналів. |
| `selectionDocsPrefix` | `string` | Префіксний текст перед посиланнями на документацію на поверхнях вибору. |
| `selectionDocsOmitLabel` | `boolean` | Показує шлях до документації напряму замість підписаного посилання в тексті вибору. |
| `selectionExtras` | `string[]` | Додаткові короткі рядки, що додаються до тексту вибору. |
| `markdownCapable` | `boolean` | Позначає канал як такий, що підтримує markdown для вихідного форматування. |
| `showConfigured` | `boolean` | Керує тим, чи показують поверхні списку налаштованих каналів цей канал. |
| `quickstartAllowFrom` | `boolean` | Додає цей канал до стандартного потоку налаштування quickstart `allowFrom`. |
| `forceAccountBinding` | `boolean` | Вимагає явної прив’язки облікового запису, навіть якщо існує лише один запис. |
| `preferSessionLookupForAnnounceTarget` | `boolean` | Віддає перевагу пошуку сесії під час визначення announce targets для цього каналу. |
| Поле | Тип | Що це означає |
| -------------------------------------- | ---------- | ----------------------------------------------------------------------------- |
| `id` | `string` | Канонічний ідентифікатор каналу. |
| `label` | `string` | Основна мітка каналу. |
| `selectionLabel` | `string` | Мітка у виборі/налаштуванні, якщо вона має відрізнятися від `label`. |
| `detailLabel` | `string` | Додаткова мітка для багатших каталогів каналів і поверхонь стану. |
| `docsPath` | `string` | Шлях до документації для посилань налаштування й вибору. |
| `docsLabel` | `string` | Перевизначення мітки для посилань на документацію, якщо вона має відрізнятися від ідентифікатора каналу. |
| `blurb` | `string` | Короткий опис для онбордингу/каталогу. |
| `order` | `number` | Порядок сортування в каталогах каналів. |
| `aliases` | `string[]` | Додаткові псевдоніми пошуку для вибору каналу. |
| `preferOver` | `string[]` | Ідентифікатори плагінів/каналів нижчого пріоритету, які цей канал має випереджати. |
| `systemImage` | `string` | Необов’язкова назва значка/system-image для UI-каталогів каналів. |
| `selectionDocsPrefix` | `string` | Текст-префікс перед посиланнями на документацію в поверхнях вибору. |
| `selectionDocsOmitLabel` | `boolean` | Показувати шлях до документації напряму замість підписаного посилання в тексті вибору. |
| `selectionExtras` | `string[]` | Додаткові короткі рядки, додані в тексті вибору. |
| `markdownCapable` | `boolean` | Позначає канал як сумісний із Markdown для рішень щодо вихідного форматування. |
| `exposure` | `object` | Керування видимістю каналу для налаштування, списків налаштованих каналів і поверхонь документації. |
| `quickstartAllowFrom` | `boolean` | Вмикає для цього каналу стандартний потік налаштування quickstart `allowFrom`. |
| `forceAccountBinding` | `boolean` | Вимагає явної прив’язки облікового запису, навіть якщо існує лише один обліковий запис. |
| `preferSessionLookupForAnnounceTarget` | `boolean` | Надає перевагу пошуку сесії під час визначення announce-target для цього каналу. |
Приклад:
@ -132,12 +132,26 @@ x-i18n:
"selectionDocsPrefix": "Guide:",
"selectionExtras": ["Markdown"],
"markdownCapable": true,
"exposure": {
"configured": true,
"setup": true,
"docs": true
},
"quickstartAllowFrom": true
}
}
}
```
`exposure` підтримує:
- `configured`: включати канал до поверхонь переліку налаштованих каналів/стану
- `setup`: включати канал до інтерактивних засобів вибору налаштування/конфігурації
- `docs`: позначати канал як публічний у поверхнях документації/навігації
`showConfigured` і `showInSetup` залишаються підтримуваними як застарілі псевдоніми. Рекомендується
`exposure`.
### `openclaw.install`
`openclaw.install` — це метадані пакета, а не метадані маніфесту.
@ -145,25 +159,24 @@ x-i18n:
| Поле | Тип | Що це означає |
| ---------------------------- | -------------------- | -------------------------------------------------------------------------------- |
| `npmSpec` | `string` | Канонічна npm-специфікація для потоків встановлення/оновлення. |
| `localPath` | `string` | Локальний шлях встановлення для розробки або вбудованого пакета. |
| `defaultChoice` | `"npm"` \| `"local"` | Бажане джерело встановлення, якщо доступні обидва варіанти. |
| `localPath` | `string` | Локальний шлях для розробки або вбудованого встановлення. |
| `defaultChoice` | `"npm"` \| `"local"` | Бажане джерело встановлення, коли доступні обидва варіанти. |
| `minHostVersion` | `string` | Мінімальна підтримувана версія OpenClaw у формі `>=x.y.z`. |
| `allowInvalidConfigRecovery` | `boolean` | Дозволяє потокам перевстановлення вбудованих плагінів відновлюватися після певних збоїв застарілої конфігурації. |
| `allowInvalidConfigRecovery` | `boolean` | Дає змогу потокам перевстановлення вбудованих плагінів відновлюватися після окремих збоїв через застарілу конфігурацію. |
Якщо задано `minHostVersion`, його перевіряють і потоки встановлення, і
завантаження реєстру маніфестів. Старіші хости пропускають плагін; некоректні
рядки версій відхиляються.
Якщо задано `minHostVersion`, його перевіряють як під час встановлення, так і
під час завантаження реєстру маніфестів. Старіші хости пропускають плагін;
некоректні рядки версій відхиляються.
`allowInvalidConfigRecovery` не є загальним обходом для зламаних конфігурацій. Це
лише вузький механізм відновлення для вбудованих плагінів, щоб перевстановлення/налаштування
могло виправити відомі залишки після оновлення, як-от відсутній шлях до
вбудованого плагіна або застарілий запис `channels.<id>` для цього ж плагіна.
Якщо конфігурація зламана з непов’язаних причин, встановлення все одно завершується fail-closed і
радить оператору запустити `openclaw doctor --fix`.
`allowInvalidConfigRecovery` — це не загальний обхід для зламаних конфігурацій. Він
призначений лише для вузького відновлення вбудованих плагінів, щоб перевстановлення/налаштування
могло виправити відомі залишки після оновлення, як-от відсутній шлях до вбудованого плагіна або застарілий запис `channels.<id>`
для цього самого плагіна. Якщо конфігурація зламана з інших причин, встановлення
все одно завершується із закритою відмовою та пропонує оператору виконати `openclaw doctor --fix`.
### Відкладене повне завантаження
Плагіни каналів можуть увімкнути відкладене завантаження так:
Плагіни каналів можуть увімкнути відкладене завантаження за допомогою:
```json
{
@ -177,26 +190,26 @@ x-i18n:
}
```
Коли це ввімкнено, OpenClaw під час фази запуску до початку прослуховування
завантажує лише `setupEntry`, навіть для вже налаштованих каналів. Повний entry
Якщо цю можливість увімкнено, OpenClaw завантажує лише `setupEntry` під час
передслуховувальної фази запуску, навіть для вже налаштованих каналів. Повна точка входу
завантажується після того, як gateway починає слухати.
<Warning>
Вмикайте відкладене завантаження лише тоді, коли ваш `setupEntry` реєструє все,
що gateway потребує до початку прослуховування (реєстрацію каналу, HTTP-маршрути,
методи gateway). Якщо необхідні можливості запуску належать повному entry,
залишайте типову поведінку.
що gateway потрібно до початку прослуховування (реєстрацію каналів, HTTP-маршрути,
методи gateway). Якщо повна точка входу володіє необхідними можливостями запуску, залиште
поведінку за замовчуванням.
</Warning>
Якщо ваш setup/full entry реєструє gateway RPC methods, використовуйте для них
префікс, специфічний для плагіна. Зарезервовані простори імен основного admin (`config.*`,
`exec.approvals.*`, `wizard.*`, `update.*`) залишаються у власності core і завжди
визначаються як `operator.admin`.
Якщо ваш setup/full entry реєструє RPC-методи gateway, залишайте їх на
префіксі, специфічному для плагіна. Зарезервовані простори імен основного адміністратора (`config.*`,
`exec.approvals.*`, `wizard.*`, `update.*`) належать ядру й завжди зіставляються
з `operator.admin`.
## Маніфест плагіна
Кожен власний плагін має постачатися з `openclaw.plugin.json` у корені пакета.
OpenClaw використовує цей файл для валідації конфігурації без виконання коду плагіна.
Кожен нативний плагін має постачатися з `openclaw.plugin.json` у корені пакета.
OpenClaw використовує його для перевірки конфігурації без виконання коду плагіна.
```json
{
@ -231,7 +244,7 @@ OpenClaw використовує цей файл для валідації ко
}
```
Навіть плагіни без конфігурації мають постачатися зі schema. Порожня schema є коректною:
Навіть плагіни без конфігурації мають постачатися зі схемою. Порожня схема є коректною:
```json
{
@ -243,25 +256,25 @@ OpenClaw використовує цей файл для валідації ко
}
```
Повний довідник schema див. у [Маніфесті плагіна](/plugins/manifest).
Див. [Plugin Manifest](/uk/plugins/manifest), щоб отримати повний довідник зі схеми.
## Публікація в ClawHub
Для пакетів плагінів використовуйте команду ClawHub, специфічну для пакетів:
Для пакетів плагінів використовуйте команду ClawHub, специфічну для пакета:
```bash
clawhub package publish your-org/your-plugin --dry-run
clawhub package publish your-org/your-plugin
```
Застарілий псевдонім публікації лише для Skills призначений для Skills. Пакети плагінів
Застарілий псевдонім публікації лише для skills призначений для Skills. Пакети плагінів
завжди мають використовувати `clawhub package publish`.
## Setup entry
## Точка входу налаштування
Файл `setup-entry.ts` — це полегшена альтернатива `index.ts`, яку
Файл `setup-entry.ts` — це легка альтернатива `index.ts`, яку
OpenClaw завантажує, коли йому потрібні лише поверхні налаштування (онбординг, відновлення конфігурації,
перевірка вимкненого каналу).
перевірка вимкнених каналів).
```typescript
// setup-entry.ts
@ -271,10 +284,10 @@ import { myChannelPlugin } from "./src/channel.js";
export default defineSetupPluginEntry(myChannelPlugin);
```
Це дозволяє уникнути завантаження важкого коду runtime (криптобібліотек, CLI-реєстрацій,
Це дає змогу уникнути завантаження важкого runtime-коду (криптографічних бібліотек, реєстрацій CLI,
фонових сервісів) під час потоків налаштування.
**Коли OpenClaw використовує `setupEntry` замість повного entry:**
**Коли OpenClaw використовує `setupEntry` замість повної точки входу:**
- Канал вимкнено, але потрібні поверхні налаштування/онбордингу
- Канал увімкнено, але не налаштовано
@ -286,61 +299,61 @@ export default defineSetupPluginEntry(myChannelPlugin);
- Будь-які HTTP-маршрути, потрібні до початку прослуховування gateway
- Будь-які методи gateway, потрібні під час запуску
Ці стартові методи gateway усе одно мають уникати зарезервованих просторів імен
основного admin, таких як `config.*` або `update.*`.
Ці методи gateway для запуску все одно мають уникати зарезервованих
просторів імен основного адміністратора, як-от `config.*` або `update.*`.
**Що НЕ має містити `setupEntry`:**
- CLI-реєстрації
- Реєстрації CLI
- Фонові сервіси
- Важкі runtime-імпорти (crypto, SDK)
- Важкі імпорти runtime (криптографія, SDK)
- Методи gateway, потрібні лише після запуску
### Вузькі імпорти setup helpers
### Вузькі імпорти допоміжних засобів налаштування
Для гарячих шляхів лише для налаштування віддавайте перевагу вузьким seams setup helper'ів замість ширшого
umbrella `plugin-sdk/setup`, коли вам потрібна лише частина поверхні налаштування:
Для гарячих шляхів лише налаштування віддавайте перевагу вузьким швам допоміжних засобів налаштування замість ширшої
парасольки `plugin-sdk/setup`, коли вам потрібна лише частина поверхні налаштування:
| Шлях імпорту | Для чого використовувати | Ключові експорти |
| --------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/setup-runtime` | runtime helpers на етапі налаштування, які лишаються доступними в `setupEntry` / під час відкладеного запуску каналу | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | environment-aware account setup adapters | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | CLI/archive/docs helpers для setup/install | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| Шлях імпорту | Використовуйте для | Ключові експорти |
| ---------------------------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/setup-runtime` | допоміжні засоби runtime під час налаштування, які залишаються доступними в `setupEntry` / відкладеному запуску каналу | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | адаптери налаштування облікових записів, що враховують середовище | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | допоміжні засоби CLI/архівів/документації для налаштування/встановлення | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
Використовуйте ширший seam `plugin-sdk/setup`, коли вам потрібен повний спільний
набір інструментів для налаштування, зокрема helpers для patch конфігурації, як-от
Використовуйте ширший шов `plugin-sdk/setup`, коли вам потрібен повний спільний
набір інструментів налаштування, включно з допоміжними засобами patch-конфігурації, такими як
`moveSingleAccountChannelSectionToDefaultAccount(...)`.
Адаптери patch налаштування лишаються безпечними для імпорту на гарячому шляху. Їхній вбудований
лінивий пошук contract surface для підвищення single-account не виконується завчасно, тому імпорт
`plugin-sdk/setup-runtime` не призводить до раннього завантаження виявлення bundled contract-surface
до фактичного використання адаптера.
Адаптери patch для налаштування залишаються безпечними для імпорту на гарячому шляху. Їхня вбудована
ледача перевірка contract-surface для підвищення одного облікового запису
є лінивою, тому імпорт `plugin-sdk/setup-runtime` не завантажує завчасно
виявлення вбудованої contract-surface до фактичного використання адаптера.
### Підвищення single-account, що належить каналу
### Підвищення одного облікового запису, яке належить каналу
Коли канал оновлюється з top-level конфігурації одного облікового запису до
`channels.<id>.accounts.*`, типова спільна поведінка полягає в перенесенні значень
на рівні облікового запису до `accounts.default`.
Коли канал оновлюється з верхньорівневої конфігурації одного облікового запису до
`channels.<id>.accounts.*`, типовою спільною поведінкою є переміщення значень,
що належать обліковому запису, до `accounts.default`.
Вбудовані канали можуть звузити або перевизначити це підвищення через свій
setup contract surface:
Вбудовані канали можуть звузити або перевизначити це підвищення через свою
contract-surface налаштування:
- `singleAccountKeysToMove`: додаткові top-level ключі, які слід перенести до
- `singleAccountKeysToMove`: додаткові верхньорівневі ключі, які слід перемістити до
підвищеного облікового запису
- `namedAccountPromotionKeys`: коли іменовані облікові записи вже існують, лише ці
ключі переносяться до підвищеного облікового запису; спільні policy/delivery ключі лишаються на
корені каналу
ключі переміщуються до підвищеного облікового запису; спільні ключі політики/доставки залишаються в корені
каналу
- `resolveSingleAccountPromotionTarget(...)`: вибір наявного облікового запису,
який має отримати підвищені значення
який отримує підвищені значення
Поточний вбудований приклад — Matrix. Якщо вже існує рівно один іменований обліковий запис Matrix,
або якщо `defaultAccount` вказує на наявний неканонічний ключ, наприклад `Ops`,
підвищення зберігає цей обліковий запис замість створення нового запису
Matrix — поточний вбудований приклад. Якщо вже існує рівно один іменований обліковий запис Matrix
або якщо `defaultAccount` вказує на наявний неканонічний ключ, наприклад
`Ops`, підвищення зберігає цей обліковий запис замість створення нового запису
`accounts.default`.
## Schema конфігурації
## Схема конфігурації
Конфігурація плагіна проходить валідацію за JSON Schema у вашому маніфесті. Користувачі
Конфігурація плагіна перевіряється відповідно до JSON Schema у вашому маніфесті. Користувачі
налаштовують плагіни через:
```json5
@ -372,10 +385,10 @@ setup contract surface:
}
```
### Побудова schema конфігурації каналу
### Побудова схем конфігурації каналу
Використовуйте `buildChannelConfigSchema` з `openclaw/plugin-sdk/core`, щоб перетворити
schema Zod на обгортку `ChannelConfigSchema`, яку валідує OpenClaw:
схему Zod на обгортку `ChannelConfigSchema`, яку перевіряє OpenClaw:
```typescript
import { z } from "zod";
@ -428,12 +441,13 @@ const setupWizard: ChannelSetupWizard = {
```
Тип `ChannelSetupWizard` підтримує `credentials`, `textInputs`,
`dmPolicy`, `allowFrom`, `groupAccess`, `prepare`, `finalize` та інше.
Повні приклади див. у пакетах вбудованих плагінів (наприклад, у Discord plugin `src/channel.setup.ts`).
`dmPolicy`, `allowFrom`, `groupAccess`, `prepare`, `finalize` та інші можливості.
Див. пакети вбудованих плагінів (наприклад, плагін Discord `src/channel.setup.ts`) для
повних прикладів.
Для prompt'ів списку дозволів DM, яким потрібен лише стандартний потік
`note -> prompt -> parse -> merge -> patch`, віддавайте перевагу спільним setup
helper'ам з `openclaw/plugin-sdk/setup`: `createPromptParsedAllowFromForAccount(...)`,
Для запитів списку дозволених DM, яким потрібен лише стандартний
потік `note -> prompt -> parse -> merge -> patch`, віддавайте перевагу спільним допоміжним засобам налаштування
з `openclaw/plugin-sdk/setup`: `createPromptParsedAllowFromForAccount(...)`,
`createTopLevelChannelParsedAllowFromPrompt(...)` і
`createNestedChannelParsedAllowFromPrompt(...)`.
@ -457,67 +471,67 @@ const setupSurface = createOptionalChannelSetupSurface({
// Returns { setupAdapter, setupWizard }
```
`plugin-sdk/channel-setup` також надає нижчорівневі конструктори
`createOptionalChannelSetupAdapter(...)` і
`plugin-sdk/channel-setup` також надає низькорівневі
конструктори `createOptionalChannelSetupAdapter(...)` і
`createOptionalChannelSetupWizard(...)`, коли вам потрібна лише одна половина
цієї необов’язкової поверхні встановлення.
Згенеровані необов’язкові adapter/wizard працюють у режимі fail-closed під час реального запису конфігурації. Вони
Згенеровані необов’язкові adapter/wizard відмовляють у закритому режимі під час реальних записів конфігурації. Вони
повторно використовують одне повідомлення про необхідність встановлення у `validateInput`,
`applyAccountConfig` і `finalize`, а також додають посилання на документацію, якщо задано `docsPath`.
Для UI налаштування на основі бінарних файлів віддавайте перевагу спільним delegated helper'ам замість
копіювання однакової логіки binary/status у кожен канал:
Для UI налаштування, що спираються на бінарні файли, віддавайте перевагу спільним делегованим допоміжним засобам замість
копіювання однакового glue-коду бінарних файлів/стану в кожен канал:
- `createDetectedBinaryStatus(...)` для блоків статусу, що відрізняються лише мітками,
підказками, оцінками та виявленням бінарного файлу
- `createCliPathTextInput(...)` для текстових полів, прив’язаних до шляху
- `createDetectedBinaryStatus(...)` для блоків стану, що відрізняються лише мітками,
підказками, оцінками та виявленням бінарного файла
- `createCliPathTextInput(...)` для текстових полів на основі шляху
- `createDelegatedSetupWizardStatusResolvers(...)`,
`createDelegatedPrepare(...)`, `createDelegatedFinalize(...)` і
`createDelegatedResolveConfigured(...)`, коли `setupEntry` має ліниво переспрямовувати
до важчого повного wizard
`createDelegatedResolveConfigured(...)`, коли `setupEntry` має ліниво переспрямовувати до
важчого повного майстра
- `createDelegatedTextInputShouldPrompt(...)`, коли `setupEntry` потрібно лише
делегувати рішення `textInputs[*].shouldPrompt`
## Публікація та встановлення
**Зовнішні плагіни:** опублікуйте в [ClawHub](/tools/clawhub) або npm, а потім установіть:
**Зовнішні плагіни:** опублікуйте в [ClawHub](/uk/tools/clawhub) або npm, а потім встановіть:
```bash
openclaw plugins install @myorg/openclaw-my-plugin
```
OpenClaw спочатку пробує ClawHub і автоматично переходить до npm. Ви також можете
явно примусово використовувати ClawHub:
OpenClaw спочатку намагається використати ClawHub і автоматично переходить до npm у разі невдачі. Ви також можете
явно примусово використати ClawHub:
```bash
openclaw plugins install clawhub:@myorg/openclaw-my-plugin # лише ClawHub
openclaw plugins install clawhub:@myorg/openclaw-my-plugin # Лише ClawHub
```
Відповідного перевизначення `npm:` немає. Використовуйте звичайну npm-spec пакета, коли
хочете шлях npm після fallback з ClawHub:
Відповідного перевизначення `npm:` не існує. Використовуйте звичайну специфікацію npm-пакета, коли
вам потрібен шлях npm після резервного переходу з ClawHub:
```bash
openclaw plugins install @myorg/openclaw-my-plugin
```
**Плагіни в репозиторії:** розміщуйте їх у дереві workspace вбудованих плагінів, і вони автоматично
виявлятимуться під час збирання.
**Плагіни в репозиторії:** розмістіть їх у дереві workspace вбудованих плагінів, і вони
автоматично виявлятимуться під час збірки.
**Користувачі можуть установлювати:**
**Користувачі можуть встановлювати:**
```bash
openclaw plugins install <package-name>
```
<Info>
Для встановлень із npm `openclaw plugins install` виконує
`npm install --ignore-scripts` (без lifecycle scripts). Зберігайте дерева
залежностей плагіна чистими JS/TS і уникайте пакетів, які потребують збирання через `postinstall`.
Для встановлень із джерела npm `openclaw plugins install` виконує
`npm install --ignore-scripts` (без lifecycle-скриптів). Зберігайте дерева залежностей плагіна
чистими JS/TS і уникайте пакетів, які потребують збірок через `postinstall`.
</Info>
## Пов’язане
- [Точки входу SDK](/plugins/sdk-entrypoints) -- `definePluginEntry` і `defineChannelPluginEntry`
- [Маніфест плагіна](/plugins/manifest) -- повний довідник schema маніфесту
- [Створення плагінів](/plugins/building-plugins) -- покроковий посібник для початку роботи
- [SDK Entry Points](/uk/plugins/sdk-entrypoints) -- `definePluginEntry` і `defineChannelPluginEntry`
- [Plugin Manifest](/uk/plugins/manifest) -- повний довідник зі схемою маніфесту
- [Building Plugins](/uk/plugins/building-plugins) -- покроковий посібник для початку роботи

View File

@ -1,21 +1,21 @@
---
read_when:
- Ви хочете використовувати генерацію відео Alibaba Wan в OpenClaw
- Вам потрібно налаштувати API-ключ Model Studio або DashScope для генерації відео
- Вам потрібно налаштувати ключ API Model Studio або DashScope для генерації відео
summary: Генерація відео Wan в Alibaba Model Studio в OpenClaw
title: Alibaba Model Studio
x-i18n:
generated_at: "2026-04-05T22:22:55Z"
generated_at: "2026-04-05T22:36:47Z"
model: gpt-5.4
provider: openai
source_hash: dca1ddd91e884773c3835eebda2da3da2994f82f940bdd26fe94e55cac149058
source_hash: 97a1eddc7cbd816776b9368f2a926b5ef9ee543f08d151a490023736f67dc635
source_path: providers/alibaba.md
workflow: 15
---
# Alibaba Model Studio
OpenClaw постачається з вбудованим провайдером генерації відео `alibaba` для моделей Wan в
OpenClaw постачається з вбудованим провайдером генерації відео `alibaba` для моделей Wan у
Alibaba Model Studio / DashScope.
- Провайдер: `alibaba`
@ -25,7 +25,7 @@ Alibaba Model Studio / DashScope.
## Швидкий старт
1. Установіть API-ключ:
1. Установіть ключ API:
```bash
openclaw onboard --auth-choice qwen-standard-api-key
@ -61,20 +61,19 @@ openclaw onboard --auth-choice qwen-standard-api-key
- До **1** вхідного зображення
- До **4** вхідних відео
- Тривалість до **10 секунд**
- Підтримує `size`, `aspectRatio`, `resolution`, `audio` і `watermark`
- Режим з еталонним зображенням/відео наразі вимагає **віддалені URL-адреси http(s)**
- Підтримуються `size`, `aspectRatio`, `resolution`, `audio` і `watermark`
- Режим еталонного зображення/відео наразі потребує **віддалених URL-адрес http(s)**
## Зв’язок із Qwen
Вбудований провайдер `qwen` також використовує розміщені в Alibaba кінцеві точки DashScope для
Вбудований провайдер `qwen` також використовує розміщені Alibaba кінцеві точки DashScope для
генерації відео Wan. Використовуйте:
- `qwen/...`, якщо вам потрібна канонічна поверхня провайдера Qwen
- `alibaba/...`, якщо вам потрібна пряма поверхня відео Wan від постачальника
- `alibaba/...`, якщо вам потрібна пряма поверхня генерації відео Wan від постачальника
## Пов’язане
- [Генерація відео](/uk/tools/video-generation)
- [Qwen](/uk/providers/qwen)
- [Qwen / Model Studio](/uk/providers/qwen_modelstudio)
- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults)

View File

@ -1,28 +1,28 @@
---
read_when:
- Ви хочете вибрати провайдера моделі
- Ви хочете вибрати постачальника моделей
- Вам потрібен короткий огляд підтримуваних бекендів LLM
summary: Провайдери моделей (LLM), які підтримує OpenClaw
title: Каталог провайдерів
summary: Постачальники моделей (LLM), які підтримує OpenClaw
title: Каталог постачальників
x-i18n:
generated_at: "2026-04-05T22:22:59Z"
generated_at: "2026-04-05T22:36:52Z"
model: gpt-5.4
provider: openai
source_hash: a13202fc20a64c68e9c7de4f2cd8ad11908029f3fe3300a8e6d69fcb0b6080ba
source_hash: 83911cf9bba0d0711fd49081529becf4eb1eea08b61079d71eac927a1d069061
source_path: providers/index.md
workflow: 15
---
# Провайдери моделей
# Постачальники моделей
OpenClaw може використовувати багато провайдерів LLM. Виберіть провайдера, пройдіть автентифікацію, а потім задайте модель за замовчуванням як `provider/model`.
OpenClaw може використовувати багато постачальників LLM. Виберіть постачальника, пройдіть автентифікацію, а потім установіть модель за замовчуванням у форматі `provider/model`.
Шукаєте документацію щодо каналів чату (WhatsApp/Telegram/Discord/Slack/Mattermost (plugin)/тощо)? Див. [Канали](/uk/channels).
Шукаєте документацію про канали чату (WhatsApp/Telegram/Discord/Slack/Mattermost (plugin)/тощо)? Див. [Channels](/uk/channels).
## Швидкий старт
1. Пройдіть автентифікацію у провайдера (зазвичай через `openclaw onboard`).
2. Задайте модель за замовчуванням:
1. Пройдіть автентифікацію у постачальника (зазвичай через `openclaw onboard`).
2. Установіть модель за замовчуванням:
```json5
{
@ -30,22 +30,22 @@ OpenClaw може використовувати багато провайдер
}
```
## Документація провайдерів
## Документація постачальників
- [Alibaba Model Studio](/providers/alibaba)
- [Alibaba Model Studio](/uk/providers/alibaba)
- [Amazon Bedrock](/uk/providers/bedrock)
- [Anthropic (API + Claude CLI)](/uk/providers/anthropic)
- [BytePlus (міжнародний)](/uk/concepts/model-providers#byteplus-international)
- [BytePlus (Міжнародний)](/uk/concepts/model-providers#byteplus-international)
- [Chutes](/uk/providers/chutes)
- [Cloudflare AI Gateway](/uk/providers/cloudflare-ai-gateway)
- [DeepSeek](/uk/providers/deepseek)
- [fal](/providers/fal)
- [fal](/uk/providers/fal)
- [Fireworks](/uk/providers/fireworks)
- [GitHub Copilot](/uk/providers/github-copilot)
- [Моделі GLM](/uk/providers/glm)
- [Google (Gemini)](/uk/providers/google)
- [Groq (LPU-інференс)](/uk/providers/groq)
- [Hugging Face (інференс)](/uk/providers/huggingface)
- [Groq (LPU inference)](/uk/providers/groq)
- [Hugging Face (Inference)](/uk/providers/huggingface)
- [Kilocode](/uk/providers/kilocode)
- [LiteLLM (уніфікований шлюз)](/uk/providers/litellm)
- [MiniMax](/uk/providers/minimax)
@ -60,12 +60,11 @@ OpenClaw може використовувати багато провайдер
- [Perplexity (вебпошук)](/uk/providers/perplexity-provider)
- [Qianfan](/uk/providers/qianfan)
- [Qwen Cloud](/uk/providers/qwen)
- [Qwen / Model Studio (деталі endpoint; `qwen-*` canonical, `modelstudio-*` legacy)](/uk/providers/qwen_modelstudio)
- [SGLang (локальні моделі)](/uk/providers/sglang)
- [StepFun](/uk/providers/stepfun)
- [Synthetic](/uk/providers/synthetic)
- [Together AI](/uk/providers/together)
- [Venice (Venice AI, з фокусом на приватність)](/uk/providers/venice)
- [Venice (Venice AI, орієнтований на конфіденційність)](/uk/providers/venice)
- [Vercel AI Gateway](/uk/providers/vercel-ai-gateway)
- [vLLM (локальні моделі)](/uk/providers/vllm)
- [Volcengine (Doubao)](/uk/providers/volcengine)
@ -73,18 +72,18 @@ OpenClaw може використовувати багато провайдер
- [Xiaomi](/uk/providers/xiaomi)
- [Z.AI](/uk/providers/zai)
## Спільні оглядові сторінки
## Спільні сторінки огляду
- [Додаткові вбудовані варіанти](/uk/providers/models#additional-bundled-provider-variants) - Anthropic Vertex, Copilot Proxy та Gemini CLI OAuth
- [Генерація зображень](/uk/tools/image-generation) - Спільний інструмент `image_generate`, вибір провайдера та failover
- [Генерація відео](/uk/tools/video-generation) - Спільний інструмент `video_generate`, вибір провайдера та failover
- [Додаткові вбудовані варіанти](/uk/providers/models#additional-bundled-provider-variants) - Anthropic Vertex, Copilot Proxy і Gemini CLI OAuth
- [Генерація зображень](/uk/tools/image-generation) - Спільний інструмент `image_generate`, вибір постачальника та failover
- [Генерація відео](/uk/tools/video-generation) - Спільний інструмент `video_generate`, вибір постачальника та failover
## Провайдери транскрибування
## Постачальники транскрипції
- [Deepgram (транскрибування аудіо)](/uk/providers/deepgram)
- [Deepgram (транскрипція аудіо)](/uk/providers/deepgram)
## Інструменти спільноти
- [Claude Max API Proxy](/uk/providers/claude-max-api-proxy) - Проксі від спільноти для облікових даних підписки Claude (перед використанням перевірте політику/умови Anthropic)
- [Claude Max API Proxy](/uk/providers/claude-max-api-proxy) - Проксі спільноти для облікових даних підписки Claude (перед використанням перевірте політику/умови Anthropic)
Повний каталог провайдерів (xAI, Groq, Mistral тощо) і розширену конфігурацію див. у розділі [Провайдери моделей](/uk/concepts/model-providers).
Для повного каталогу постачальників (xAI, Groq, Mistral тощо) і розширеної конфігурації див. [Model providers](/uk/concepts/model-providers).

View File

@ -5,10 +5,10 @@ read_when:
summary: Використовуйте Qwen Cloud через вбудований провайдер qwen в OpenClaw
title: Qwen
x-i18n:
generated_at: "2026-04-05T22:23:05Z"
generated_at: "2026-04-05T22:37:14Z"
model: gpt-5.4
provider: openai
source_hash: c1e1022a368513fd09474a2c2b8394911787a6bc5e325868da590a3d32446a34
source_hash: f175793693ab6a4c3f1f4d42040e673c15faf7603a500757423e9e06977c989d
source_path: providers/qwen.md
workflow: 15
---
@ -18,46 +18,46 @@ x-i18n:
<Warning>
**Qwen OAuth було видалено.** Інтеграція OAuth безкоштовного рівня
(`qwen-portal`), яка використовувала ендпоінти `portal.qwen.ai`, більше недоступна.
(`qwen-portal`), яка використовувала кінцеві точки `portal.qwen.ai`, більше недоступна.
Див. [Issue #49557](https://github.com/openclaw/openclaw/issues/49557) для
додаткового контексту.
довідки.
</Warning>
## Рекомендовано: Qwen Cloud
Тепер OpenClaw розглядає Qwen як вбудований провайдер першого класу з канонічним id
`qwen`. Вбудований провайдер націлено на ендпоінти Qwen Cloud / Alibaba DashScope і
Coding Plan та зберігає роботу застарілих id `modelstudio` як
аліаса сумісності.
Тепер OpenClaw розглядає Qwen як першокласного вбудованого провайдера з канонічним ідентифікатором
`qwen`. Вбудований провайдер націлений на кінцеві точки Qwen Cloud / Alibaba DashScope та
Coding Plan і зберігає роботу застарілих ідентифікаторів `modelstudio` як
псевдонім сумісності.
- Провайдер: `qwen`
- Бажана змінна середовища: `QWEN_API_KEY`
- Також приймаються для сумісності: `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY`
- Стиль API: сумісний з OpenAI
Якщо ви хочете використовувати `qwen3.6-plus`, надавайте перевагу ендпоінту **Standard (оплата за використання)**.
Якщо вам потрібен `qwen3.6-plus`, надавайте перевагу кінцевій точці **Standard (pay-as-you-go)**.
Підтримка Coding Plan може відставати від публічного каталогу.
```bash
# Глобальний ендпоінт Coding Plan
# Глобальна кінцева точка Coding Plan
openclaw onboard --auth-choice qwen-api-key
# Китайський ендпоінт Coding Plan
# Китайська кінцева точка Coding Plan
openclaw onboard --auth-choice qwen-api-key-cn
# Глобальний ендпоінт Standard (оплата за використання)
# Глобальна кінцева точка Standard (pay-as-you-go)
openclaw onboard --auth-choice qwen-standard-api-key
# Китайський ендпоінт Standard (оплата за використання)
# Китайська кінцева точка Standard (pay-as-you-go)
openclaw onboard --auth-choice qwen-standard-api-key-cn
```
Застарілі id `auth-choice` у форматі `modelstudio-*` і посилання на моделі `modelstudio/...` досі
працюють як аліаси сумісності, але в нових сценаріях налаштування слід надавати перевагу канонічним
id `auth-choice` у форматі `qwen-*` і посиланням на моделі `qwen/...`.
Застарілі ідентифікатори `auth-choice` у форматі `modelstudio-*` і посилання на моделі `modelstudio/...` усе ще
працюють як псевдоніми сумісності, але в нових потоках налаштування слід надавати перевагу канонічним
ідентифікаторам `auth-choice` у форматі `qwen-*` і посиланням на моделі `qwen/...`.
Після онбордингу встановіть типову модель:
Після онбордингу встановіть модель за замовчуванням:
```json5
{
@ -69,48 +69,110 @@ id `auth-choice` у форматі `qwen-*` і посиланням на мод
}
```
## Типи планів і кінцеві точки
| План | Регіон | Вибір автентифікації | Кінцева точка |
| -------------------------- | ------ | -------------------------- | ------------------------------------------------ |
| Standard (pay-as-you-go) | China | `qwen-standard-api-key-cn` | `dashscope.aliyuncs.com/compatible-mode/v1` |
| Standard (pay-as-you-go) | Global | `qwen-standard-api-key` | `dashscope-intl.aliyuncs.com/compatible-mode/v1` |
| Coding Plan (subscription) | China | `qwen-api-key-cn` | `coding.dashscope.aliyuncs.com/v1` |
| Coding Plan (subscription) | Global | `qwen-api-key` | `coding-intl.dashscope.aliyuncs.com/v1` |
Провайдер автоматично вибирає кінцеву точку на основі вашого вибору автентифікації. Канонічні
варіанти використовують сімейство `qwen-*`; `modelstudio-*` залишається лише для сумісності.
Ви можете перевизначити це за допомогою власного `baseUrl` у конфігурації.
Нативні кінцеві точки Model Studio оголошують сумісність використання потокового передавання на
спільному транспорті `openai-completions`. Тепер OpenClaw прив’язує це до можливостей кінцевої точки, тож
користувацькі ідентифікатори провайдера, сумісні з DashScope, які націлені на ті самі нативні хости,
успадковують ту саму поведінку потокового використання замість того,
щоб вимагати саме вбудований ідентифікатор провайдера `qwen`.
## Отримайте свій ключ API
- **Керування ключами**: [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys)
- **Документація**: [docs.qwencloud.com](https://docs.qwencloud.com/developer-guides/getting-started/introduction)
## Вбудований каталог
Наразі OpenClaw постачається з таким вбудованим каталогом Qwen:
| Посилання на модель | Вхідні дані | Контекст | Примітки |
| --------------------------- | ----------- | --------- | -------------------------------------------------- |
| `qwen/qwen3.5-plus` | text, image | 1,000,000 | Модель за замовчуванням |
| `qwen/qwen3.6-plus` | text, image | 1,000,000 | Надавайте перевагу кінцевим точкам Standard, коли потрібна ця модель |
| `qwen/qwen3-max-2026-01-23` | text | 262,144 | Лінійка Qwen Max |
| `qwen/qwen3-coder-next` | text | 262,144 | Для кодування |
| `qwen/qwen3-coder-plus` | text | 1,000,000 | Для кодування |
| `qwen/MiniMax-M2.5` | text | 1,000,000 | Увімкнено міркування |
| `qwen/glm-5` | text | 202,752 | GLM |
| `qwen/glm-4.7` | text | 202,752 | GLM |
| `qwen/kimi-k2.5` | text, image | 262,144 | Moonshot AI через Alibaba |
Доступність усе ще може відрізнятися залежно від кінцевої точки та тарифного плану, навіть якщо модель
є у вбудованому каталозі.
Сумісність використання нативного потокового передавання застосовується як до хостів Coding Plan, так і
до сумісних із DashScope хостів Standard:
- `https://coding.dashscope.aliyuncs.com/v1`
- `https://coding-intl.dashscope.aliyuncs.com/v1`
- `https://dashscope.aliyuncs.com/compatible-mode/v1`
- `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`
## Доступність Qwen 3.6 Plus
`qwen3.6-plus` доступна на кінцевих точках Model Studio Standard (pay-as-you-go):
- China: `dashscope.aliyuncs.com/compatible-mode/v1`
- Global: `dashscope-intl.aliyuncs.com/compatible-mode/v1`
Якщо кінцеві точки Coding Plan повертають помилку "unsupported model" для
`qwen3.6-plus`, перейдіть на Standard (pay-as-you-go) замість пари
кінцевої точки/ключа Coding Plan.
## План можливостей
Розширення `qwen` позиціонується як основне середовище постачальника для всієї поверхні Qwen
Розширення `qwen` позиціонується як дім постачальника для повної поверхні Qwen
Cloud, а не лише для моделей кодування/тексту.
- Текстові/чат-моделі: уже вбудовано
- Виклик інструментів, структурований вивід, thinking: успадковуються від сумісного з OpenAI транспорту
- Виклик інструментів, структурований вивід, міркування: успадковано від транспорту, сумісного з OpenAI
- Генерація зображень: заплановано на рівні плагіна провайдера
- Розуміння зображень/відео: уже вбудовано в ендпоінті Standard
- Розуміння зображень/відео: уже вбудовано на кінцевій точці Standard
- Мовлення/аудіо: заплановано на рівні плагіна провайдера
- Ембеддинги пам’яті/переранжування: заплановано через поверхню адаптера ембеддингів
- Вбудовування пам’яті/переранжування: заплановано через поверхню адаптера embeddings
- Генерація відео: уже вбудовано через спільну можливість генерації відео
## Мультимодальні доповнення
Розширення `qwen` тепер також надає:
Тепер розширення `qwen` також надає:
- Розуміння відео через `qwen-vl-max-latest`
- Генерацію відео Wan через:
- `wan2.6-t2v` (типово)
- `wan2.6-t2v` (за замовчуванням)
- `wan2.6-i2v`
- `wan2.6-r2v`
- `wan2.6-r2v-flash`
- `wan2.7-r2v`
Ці мультимодальні поверхні використовують ендпоінти DashScope **Standard**, а не
ендпоінти Coding Plan.
Ці мультимодальні поверхні використовують кінцеві точки DashScope **Standard**, а не
кінцеві точки Coding Plan.
- Базовий URL Global/Intl Standard: `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`
- Базовий URL China Standard: `https://dashscope.aliyuncs.com/compatible-mode/v1`
- Базовий URL Standard Global/Intl: `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`
- Базовий URL Standard China: `https://dashscope.aliyuncs.com/compatible-mode/v1`
Для генерації відео OpenClaw зіставляє налаштований регіон Qwen з відповідним
Для генерації відео OpenClaw зіставляє налаштований регіон Qwen із відповідним
хостом DashScope AIGC перед надсиланням завдання:
- Global/Intl: `https://dashscope-intl.aliyuncs.com`
- China: `https://dashscope.aliyuncs.com`
Це означає, що звичайний `models.providers.qwen.baseUrl`, який вказує або на
хости Qwen Coding Plan, або на Standard, усе одно забезпечує генерацію відео через правильний
регіональний відеоендпоінт DashScope.
Це означає, що звичайний `models.providers.qwen.baseUrl`, який вказує на будь-який із
хостів Qwen для Coding Plan або Standard, усе одно зберігає генерацію відео на правильній
регіональній кінцевій точці відео DashScope.
Для генерації відео явно встановіть типову модель:
Для генерації відео явно встановіть модель за замовчуванням:
```json5
{
@ -128,13 +190,16 @@ Cloud, а не лише для моделей кодування/тексту.
- До **1** вхідного зображення
- До **4** вхідних відео
- Тривалість до **10 секунд**
- Підтримує `size`, `aspectRatio`, `resolution`, `audio` і `watermark`
- Режим еталонного зображення/відео наразі вимагає **віддалених URL http(s)**. Локальні
шляхи до файлів відхиляються одразу, оскільки відеоендпоінт DashScope не
приймає завантажені локальні буфери для таких еталонів.
- Підтримуються `size`, `aspectRatio`, `resolution`, `audio` і `watermark`
- Режим еталонного зображення/відео наразі потребує **віддалених URL-адрес http(s)**. Локальні
шляхи до файлів відхиляються одразу, оскільки кінцева точка відео DashScope не
приймає завантажені локальні буфери для цих еталонів.
Див. [Video Generation](/uk/tools/video-generation) щодо спільних параметрів
інструмента, вибору провайдера та поведінки перемикання при збоях.
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри
інструмента, вибір провайдера та поведінку failover.
Див. [Qwen / Model Studio](/uk/providers/qwen_modelstudio) щодо деталей на рівні ендпоінтів
і приміток щодо сумісності.
## Примітка щодо середовища
Якщо Gateway працює як демон (launchd/systemd), переконайтеся, що `QWEN_API_KEY`
доступний цьому процесу (наприклад, у `~/.openclaw/.env` або через
`env.shellEnv`).

View File

@ -1,149 +1,18 @@
---
read_when:
- Вам потрібні деталі на рівні кінцевих точок для Qwen Cloud / Alibaba DashScope
- Вам потрібна інформація про сумісність змінних середовища для провайдера qwen
- Ви хочете використовувати кінцеву точку Standard (pay-as-you-go) або Coding Plan
summary: Деталі кінцевих точок для вбудованого провайдера qwen і його застарілої поверхні сумісності modelstudio
- Ви перейшли за старішим посиланням Model Studio
- Ви хочете відкрити канонічну сторінку постачальника Qwen
summary: Перенаправлення до /providers/qwen
title: Qwen / Model Studio
x-i18n:
generated_at: "2026-04-05T22:23:16Z"
generated_at: "2026-04-05T22:36:55Z"
model: gpt-5.4
provider: openai
source_hash: f21bf55e7acf51131027a1c1faf5fa85a00757ee40995ea4e1d24935cd310e24
source_hash: 9397492125a033586a432faed8e6d667e6bfd12c5b34ab98e665abf6491c8f7d
source_path: providers/qwen_modelstudio.md
workflow: 15
---
# Qwen / Model Studio (Alibaba Cloud)
# Qwen / Model Studio
На цій сторінці описано зіставлення кінцевих точок, яке використовується у вбудованому провайдері `qwen` в OpenClaw. Провайдер зберігає ідентифікатори провайдера `modelstudio`, ідентифікатори вибору автентифікації та посилання на моделі в робочому стані як псевдоніми сумісності, тоді як `qwen` стає канонічною поверхнею.
<Info>
Якщо вам потрібна **`qwen3.6-plus`**, віддавайте перевагу **Standard (pay-as-you-go)**. Доступність у Coding Plan може відставати від публічного каталогу Model Studio, а API Coding Plan може відхиляти модель, доки вона не з’явиться в списку підтримуваних моделей вашого плану.
</Info>
- Провайдер: `qwen` (застарілий псевдонім: `modelstudio`)
- Автентифікація: `QWEN_API_KEY`
- Також приймаються: `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY`
- API: сумісний з OpenAI
## Швидкий початок
### Standard (pay-as-you-go)
```bash
# China endpoint
openclaw onboard --auth-choice qwen-standard-api-key-cn
# Global/Intl endpoint
openclaw onboard --auth-choice qwen-standard-api-key
```
### Coding Plan (subscription)
```bash
# China endpoint
openclaw onboard --auth-choice qwen-api-key-cn
# Global/Intl endpoint
openclaw onboard --auth-choice qwen-api-key
```
Застарілі ідентифікатори вибору автентифікації `modelstudio-*` усе ще працюють як псевдоніми сумісності, але канонічними ідентифікаторами для онбордингу є варіанти `qwen-*`, показані вище.
Після онбордингу встановіть типову модель:
```json5
{
agents: {
defaults: {
model: { primary: "qwen/qwen3.5-plus" },
},
},
}
```
## Типи планів і кінцеві точки
| План | Регіон | Вибір автентифікації | Кінцева точка |
| -------------------------- | ------ | ------------------------- | ------------------------------------------------ |
| Standard (pay-as-you-go) | China | `qwen-standard-api-key-cn` | `dashscope.aliyuncs.com/compatible-mode/v1` |
| Standard (pay-as-you-go) | Global | `qwen-standard-api-key` | `dashscope-intl.aliyuncs.com/compatible-mode/v1` |
| Coding Plan (subscription) | China | `qwen-api-key-cn` | `coding.dashscope.aliyuncs.com/v1` |
| Coding Plan (subscription) | Global | `qwen-api-key` | `coding-intl.dashscope.aliyuncs.com/v1` |
Провайдер автоматично вибирає кінцеву точку на основі вашого вибору автентифікації. Канонічні варіанти використовують сімейство `qwen-*`; `modelstudio-*` залишається лише для сумісності. Ви можете перевизначити це за допомогою власного `baseUrl` у конфігурації.
Нативні кінцеві точки Model Studio повідомляють про сумісність використання потокового режиму на спільному транспорті `openai-completions`. Тепер OpenClaw визначає це за можливостями кінцевої точки, тому сумісні з DashScope власні ідентифікатори провайдерів, націлені на ті самі нативні хости, успадковують ту саму поведінку потокового використання, замість того щоб вимагати саме вбудований ідентифікатор провайдера `qwen`.
## Отримайте свій API-ключ
- **Керування ключами**: [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys)
- **Документація**: [docs.qwencloud.com](https://docs.qwencloud.com/developer-guides/getting-started/introduction)
## Вбудований каталог
Зараз OpenClaw постачається з таким вбудованим каталогом Qwen:
| Посилання на модель | Вхідні дані | Контекст | Примітки |
| --------------------------- | ----------- | --------- | -------------------------------------------------- |
| `qwen/qwen3.5-plus` | text, image | 1,000,000 | Типова модель |
| `qwen/qwen3.6-plus` | text, image | 1,000,000 | Віддавайте перевагу кінцевим точкам Standard, якщо вам потрібна ця модель |
| `qwen/qwen3-max-2026-01-23` | text | 262,144 | Лінійка Qwen Max |
| `qwen/qwen3-coder-next` | text | 262,144 | Програмування |
| `qwen/qwen3-coder-plus` | text | 1,000,000 | Програмування |
| `qwen/MiniMax-M2.5` | text | 1,000,000 | Логічне міркування увімкнено |
| `qwen/glm-5` | text | 202,752 | GLM |
| `qwen/glm-4.7` | text | 202,752 | GLM |
| `qwen/kimi-k2.5` | text, image | 262,144 | Moonshot AI через Alibaba |
Доступність усе ще може відрізнятися залежно від кінцевої точки та тарифного плану, навіть якщо модель присутня у вбудованому каталозі.
Сумісність використання нативного потокового режиму застосовується як до хостів Coding Plan, так і до сумісних зі Standard DashScope хостів:
- `https://coding.dashscope.aliyuncs.com/v1`
- `https://coding-intl.dashscope.aliyuncs.com/v1`
- `https://dashscope.aliyuncs.com/compatible-mode/v1`
- `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`
## Доступність Qwen 3.6 Plus
`qwen3.6-plus` доступна на кінцевих точках Model Studio Standard (pay-as-you-go):
- China: `dashscope.aliyuncs.com/compatible-mode/v1`
- Global: `dashscope-intl.aliyuncs.com/compatible-mode/v1`
Якщо кінцеві точки Coding Plan повертають помилку "unsupported model" для `qwen3.6-plus`, перейдіть на Standard (pay-as-you-go) замість пари кінцева точка/ключ Coding Plan.
## Примітка щодо середовища
Якщо Gateway працює як демон (launchd/systemd), переконайтеся, що `QWEN_API_KEY` доступний для цього процесу (наприклад, у `~/.openclaw/.env` або через `env.shellEnv`).
## Генерація відео Wan
Поверхня Standard DashScope також лежить в основі вбудованих провайдерів генерації відео Wan.
Ви можете звертатися до тієї самої сім’ї Wan через будь-який із префіксів:
- канонічні посилання Qwen:
- `qwen/wan2.6-t2v`
- `qwen/wan2.6-i2v`
- `qwen/wan2.6-r2v`
- `qwen/wan2.6-r2v-flash`
- `qwen/wan2.7-r2v`
- прямі посилання Alibaba:
- `alibaba/wan2.6-t2v`
- `alibaba/wan2.6-i2v`
- `alibaba/wan2.6-r2v`
- `alibaba/wan2.6-r2v-flash`
- `alibaba/wan2.7-r2v`
Усі режими посилань Wan наразі вимагають **віддалені URL-адреси http(s)** для посилань на зображення або відео. Локальні шляхи до файлів відхиляються до завантаження, оскільки кінцева точка відео DashScope не приймає еталонні ресурси з локальних буферів для цих режимів.
## Пов’язане
- [Qwen](/uk/providers/qwen)
- [Alibaba Model Studio](/providers/alibaba)
- [Генерація відео](/uk/tools/video-generation)
Цю сторінку перенесено до [Qwen](/uk/providers/qwen). Див. [Qwen](/uk/providers/qwen), щоб дізнатися про канонічне налаштування постачальника, подробиці endpoint, псевдоніми сумісності та примітки щодо генерації відео Wan.

View File

@ -1,15 +1,15 @@
---
read_when:
- Генерація відео через агента
- Створення відео через агента
- Налаштування провайдерів і моделей генерації відео
- Розуміння параметрів інструмента video_generate
summary: Генеруйте відео за допомогою налаштованих провайдерів, таких як Alibaba, OpenAI, Google, Qwen і MiniMax
- Розуміння параметрів інструмента `video_generate`
summary: Створюйте відео за допомогою налаштованих провайдерів, таких як Alibaba, OpenAI, Google, Qwen і MiniMax
title: Генерація відео
x-i18n:
generated_at: "2026-04-05T22:23:33Z"
generated_at: "2026-04-05T22:37:17Z"
model: gpt-5.4
provider: openai
source_hash: 6bcaf4adf187254d1c9fac8a7e3578b863c736149beffb2517381ebe101bffb8
source_hash: 138de16fae7c0f00d1e2be55e62ccd6d8ea9e6364dc7f0159a68f9b00a2902eb
source_path: tools/video-generation.md
workflow: 15
---
@ -19,13 +19,13 @@ x-i18n:
Інструмент `video_generate` дає змогу агенту створювати відео за допомогою ваших налаштованих провайдерів. Згенеровані відео автоматично доставляються як медіавкладення у відповіді агента.
<Note>
Інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви не бачите `video_generate` в інструментах свого агента, налаштуйте `agents.defaults.videoGenerationModel` або задайте API-ключ провайдера.
Інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви не бачите `video_generate` серед інструментів агента, налаштуйте `agents.defaults.videoGenerationModel` або встановіть API-ключ провайдера.
</Note>
## Швидкий старт
1. Установіть API-ключ принаймні для одного провайдера (наприклад, `OPENAI_API_KEY`, `GEMINI_API_KEY`, `MODELSTUDIO_API_KEY` або `QWEN_API_KEY`).
2. За бажанням установіть бажану модель:
2. За потреби задайте бажану модель:
```json5
{
@ -39,23 +39,23 @@ x-i18n:
}
```
3. Попросіть агента: _"Згенеруй 5-секундне кінематографічне відео з дружнім лобстером, який займається серфінгом на заході сонця."_
3. Попросіть агента: _"Створи 5-секундне кінематографічне відео з дружнім лобстером, який катається на серфі на заході сонця."_
Агент автоматично викликає `video_generate`. Додавати інструмент до списку дозволених не потрібно — він увімкнений типово, коли доступний провайдер.
Агент автоматично викликає `video_generate`. Жодного allow-list для інструмента не потрібно — його увімкнено за замовчуванням, коли доступний провайдер.
## Підтримувані провайдери
| Провайдер | Типова модель | Еталонні входи | API-ключ |
| --------- | ------------------------------ | ------------------- | ---------------------------------------------------------- |
| Alibaba | `wan2.6-t2v` | Так, віддалені URL | `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY`, `QWEN_API_KEY` |
| BytePlus | `seedance-1-0-lite-t2v-250428` | 1 зображення | `BYTEPLUS_API_KEY` |
| fal | `fal-ai/minimax/video-01-live` | 1 зображення | `FAL_KEY` |
| Google | `veo-3.1-fast-generate-preview`| 1 зображення або 1 відео | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
| MiniMax | `MiniMax-Hailuo-2.3` | 1 зображення | `MINIMAX_API_KEY` |
| OpenAI | `sora-2` | 1 зображення або 1 відео | `OPENAI_API_KEY` |
| Qwen | `wan2.6-t2v` | Так, віддалені URL | `QWEN_API_KEY`, `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY` |
| Together | `Wan-AI/Wan2.2-T2V-A14B` | 1 зображення | `TOGETHER_API_KEY` |
| xAI | `grok-imagine-video` | 1 зображення або 1 відео | `XAI_API_KEY` |
| Провайдер | Типова модель | Еталонні вхідні дані | API-ключ |
| --------- | ------------------------------ | -------------------- | ---------------------------------------------------------- |
| Alibaba | `wan2.6-t2v` | Так, віддалені URL | `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY`, `QWEN_API_KEY` |
| BytePlus | `seedance-1-0-lite-t2v-250428` | 1 зображення | `BYTEPLUS_API_KEY` |
| fal | `fal-ai/minimax/video-01-live` | 1 зображення | `FAL_KEY` |
| Google | `veo-3.1-fast-generate-preview` | 1 зображення або 1 відео | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
| MiniMax | `MiniMax-Hailuo-2.3` | 1 зображення | `MINIMAX_API_KEY` |
| OpenAI | `sora-2` | 1 зображення або 1 відео | `OPENAI_API_KEY` |
| Qwen | `wan2.6-t2v` | Так, віддалені URL | `QWEN_API_KEY`, `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY` |
| Together | `Wan-AI/Wan2.2-T2V-A14B` | 1 зображення | `TOGETHER_API_KEY` |
| xAI | `grok-imagine-video` | 1 зображення або 1 відео | `XAI_API_KEY` |
Використовуйте `action: "list"`, щоб переглянути доступні провайдери та моделі під час виконання:
@ -67,20 +67,20 @@ x-i18n:
| Параметр | Тип | Опис |
| ---------------- | -------- | ------------------------------------------------------------------------------------- |
| `prompt` | string | Запит для генерації відео (обов’язковий для `action: "generate"`) |
| `action` | string | `"generate"` (типово) або `"list"` для перегляду провайдерів |
| `model` | string | Перевизначення провайдера/моделі, наприклад `qwen/wan2.6-t2v` |
| `image` | string | Шлях або URL одного еталонного зображення |
| `images` | string[] | Кілька еталонних зображень (до 5) |
| `video` | string | Шлях або URL одного еталонного відео |
| `videos` | string[] | Кілька еталонних відео (до 4) |
| `size` | string | Підказка щодо розміру, якщо провайдер це підтримує |
| `prompt` | string | Запит для генерації відео (обов’язковий для `action: "generate"`) |
| `action` | string | `"generate"` (типово) або `"list"` для перегляду провайдерів |
| `model` | string | Перевизначення провайдера/моделі, наприклад `qwen/wan2.6-t2v` |
| `image` | string | Шлях або URL одного еталонного зображення |
| `images` | string[] | Кілька еталонних зображень (до 5) |
| `video` | string | Шлях або URL одного еталонного відео |
| `videos` | string[] | Кілька еталонних відео (до 4) |
| `size` | string | Підказка щодо розміру, якщо провайдер це підтримує |
| `aspectRatio` | string | Співвідношення сторін: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
| `resolution` | string | Підказка щодо роздільної здатності: `480P`, `720P` або `1080P` |
| `durationSeconds`| number | Цільова тривалість у секундах |
| `audio` | boolean | Увімкнути згенероване аудіо, якщо провайдер це підтримує |
| `watermark` | boolean | Увімкнути або вимкнути водяний знак провайдера, якщо це підтримується |
| `filename` | string | Підказка щодо імені вихідного файлу |
| `resolution` | string | Підказка щодо роздільної здатності: `480P`, `720P` або `1080P` |
| `durationSeconds`| number | Цільова тривалість у секундах |
| `audio` | boolean | Увімкнути згенероване аудіо, якщо провайдер це підтримує |
| `watermark` | boolean | Увімкнути або вимкнути водяні знаки провайдера, якщо це підтримується |
| `filename` | string | Підказка для імені вихідного файла |
Не всі провайдери підтримують усі параметри. Інструмент перевіряє обмеження можливостей провайдера перед надсиланням запиту.
@ -103,40 +103,39 @@ x-i18n:
### Порядок вибору провайдера
Під час генерації відео OpenClaw пробує провайдери в такому порядку:
Під час генерації відео OpenClaw пробує провайдерів у такому порядку:
1. **Параметр `model`** із виклику інструмента (якщо агент його вказує)
2. **`videoGenerationModel.primary`** із конфігурації
3. **`videoGenerationModel.fallbacks`** по черзі
4. **Автовиявлення** — використовує лише типові значення провайдерів, підкріплені автентифікацією:
1. **Параметр `model`** з виклику інструмента (якщо агент його вказує)
2. **`videoGenerationModel.primary`** з конфігурації
3. **`videoGenerationModel.fallbacks`** по порядку
4. **Автовизначення** — використовує лише типові значення провайдерів, підкріплені автентифікацією:
- спочатку поточний типовий провайдер
- потім решта зареєстрованих провайдерів генерації відео в порядку id провайдера
- решта зареєстрованих провайдерів генерації відео в порядку `provider-id`
Якщо провайдер завершується з помилкою, автоматично пробується наступний кандидат. Якщо помиляються всі, помилка міститиме деталі кожної спроби.
Якщо провайдер завершується з помилкою, автоматично пробується наступний кандидат. Якщо помиляються всі, помилка містить подробиці кожної спроби.
## Примітки щодо провайдерів
- Alibaba використовує асинхронний відеоендпоінт DashScope / Model Studio і наразі вимагає віддалені URL `http(s)` для еталонних ресурсів.
- Google використовує Gemini/Veo і підтримує один еталонний вхід зображення або відео.
- MiniMax, Together, BytePlus і fal наразі підтримують один еталонний вхід зображення.
- OpenAI використовує нативний відеоендпоінт і наразі типово використовує `sora-2`.
- Qwen підтримує еталонні зображення/відео, але вихідний відеоендпоінт DashScope наразі вимагає віддалені URL `http(s)` для цих еталонів.
- xAI використовує нативний відео-API xAI і підтримує сценарії text-to-video, image-to-video та віддалене редагування/розширення відео.
- Alibaba використовує асинхронний відеоендпойнт DashScope / Model Studio і наразі вимагає віддалені URL `http(s)` для еталонних ресурсів.
- Google використовує Gemini/Veo та підтримує одне еталонне зображення або одне еталонне відео.
- MiniMax, Together, BytePlus і fal наразі підтримують одне еталонне зображення.
- OpenAI використовує нативний відеоендпойнт і наразі за замовчуванням використовує `sora-2`.
- Qwen підтримує еталонні зображення/відео, але висхідний відеоендпойнт DashScope наразі вимагає віддалені URL `http(s)` для цих еталонів.
- xAI використовує нативний відео-API xAI та підтримує сценарії text-to-video, image-to-video і віддалене редагування/розширення відео.
## Еталонні входи Qwen
## Еталонні вхідні дані Qwen
Вбудований провайдер Qwen підтримує text-to-video, а також режими з еталонними зображеннями/відео, але вихідний відеоендпоінт DashScope наразі вимагає **віддалені URL `http(s)`** для еталонних входів. Локальні шляхи до файлів і завантажені буфери відхиляються одразу, а не ігноруються непомітно.
Вбудований провайдер Qwen підтримує text-to-video, а також режими з еталонними зображеннями/відео, але висхідний відеоендпойнт DashScope наразі вимагає **віддалені URL `http(s)`** для еталонних вхідних даних. Шляхи до локальних файлів і завантажені буфери відхиляються одразу, а не ігноруються безшумно.
## Пов’язане
- [Огляд інструментів](/uk/tools) — усі доступні інструменти агента
- [Alibaba Model Studio](/providers/alibaba) — пряме налаштування провайдера Wan
- [Alibaba Model Studio](/uk/providers/alibaba) — безпосереднє налаштування провайдера Wan
- [Google (Gemini)](/uk/providers/google) — налаштування провайдера Veo
- [MiniMax](/uk/providers/minimax) — налаштування провайдера Hailuo
- [OpenAI](/uk/providers/openai) — налаштування провайдера Sora
- [Qwen](/uk/providers/qwen) — налаштування та обмеження, специфічні для Qwen
- [Qwen / Model Studio](/uk/providers/qwen_modelstudio) — деталі DashScope на рівні ендпоінтів
- [Together AI](/uk/providers/together) — налаштування провайдера Wan у Together
- [xAI](/uk/providers/xai) — налаштування відеопровайдера Grok
- [Довідник з конфігурації](/uk/gateway/configuration-reference#agent-defaults) — конфігурація `videoGenerationModel`
- [Моделі](/uk/concepts/models) — конфігурація моделей і перемикання при збоях
- [Together AI](/uk/providers/together) — налаштування провайдера Wan для Together
- [xAI](/uk/providers/xai) — налаштування провайдера відео Grok
- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults) — конфігурація `videoGenerationModel`
- [Моделі](/uk/concepts/models) — конфігурація моделей і failover