chore(i18n): refresh uk translations
This commit is contained in:
parent
a140b5b2f7
commit
7c1d5f1bb5
File diff suppressed because it is too large
Load Diff
113
docs/uk/channels/qa-channel.md
Normal file
113
docs/uk/channels/qa-channel.md
Normal 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
|
||||
73
docs/uk/concepts/qa-e2e-automation.md
Normal file
73
docs/uk/concepts/qa-e2e-automation.md
Normal 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)
|
||||
@ -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: **C3‑PO** (protocol droid).
|
||||
- Пропускає channel providers у dev mode (`OPENCLAW_SKIP_CHANNELS=1`).
|
||||
- Типова ідентичність: **C3‑PO** (протокольний дроїд).
|
||||
- Пропускає провайдери каналів у режимі 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
@ -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) — довідник зі схеми маніфесту
|
||||
|
||||
@ -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) — глибока архітектура та модель можливостей
|
||||
|
||||
@ -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) -- покроковий посібник для початку роботи
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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).
|
||||
|
||||
@ -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`).
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user