From 2e4294efe36900fa92a83fa5727f9df5c41e130a Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Sat, 25 Apr 2026 09:44:04 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/channels/feishu.md | 168 ++++----- docs/uk/plugins/sdk-migration.md | 578 +++++++++++++++---------------- docs/uk/plugins/sdk-subpaths.md | 296 ++++++++-------- docs/uk/providers/minimax.md | 216 ++++++------ docs/uk/tools/slash-commands.md | 259 +++++++------- docs/uk/tools/tts.md | 282 +++++++-------- 6 files changed, 905 insertions(+), 894 deletions(-) diff --git a/docs/uk/channels/feishu.md b/docs/uk/channels/feishu.md index ec4da3582..3cc9943c4 100644 --- a/docs/uk/channels/feishu.md +++ b/docs/uk/channels/feishu.md @@ -5,32 +5,32 @@ read_when: summary: Огляд бота Feishu, функції та налаштування title: Feishu x-i18n: - generated_at: "2026-04-25T08:32:09Z" + generated_at: "2026-04-25T09:41:26Z" model: gpt-5.4 provider: openai - source_hash: 5630a1f817a4831e1af75d63594edd4647861c09b5b2cfd32478b2c2aba1b049 + source_hash: 2b9cebcedf05a517b03a15ae306cece1a3c07f772c48c54b7ece05ef892d05d2 source_path: channels/feishu.md workflow: 15 --- # Feishu / Lark -Feishu/Lark — це універсальна платформа для співпраці, де команди спілкуються в чаті, діляться документами, керують календарями та працюють разом. +Feishu/Lark — це універсальна платформа для спільної роботи, де команди спілкуються в чаті, обмінюються документами, керують календарями та разом виконують роботу. -**Статус:** готовий до використання у production для особистих повідомлень бота та групових чатів. WebSocket — режим за замовчуванням; режим webhook — додатковий. +**Статус:** готово до production для DM ботів і групових чатів. WebSocket — режим за замовчуванням; режим webhook — необов’язковий. --- ## Швидкий старт -> **Потрібен OpenClaw 2026.4.24 або новіший.** Щоб перевірити версію, виконайте `openclaw --version`. Щоб оновити, виконайте `openclaw update`. +> **Потрібен OpenClaw 2026.4.25 або новіший.** Щоб перевірити, виконайте `openclaw --version`. Оновіть за допомогою `openclaw update`. ```bash openclaw channels login --channel feishu ``` - Відскануйте QR-код у мобільному застосунку Feishu/Lark, щоб автоматично створити бота Feishu/Lark. + Проскануйте QR-код за допомогою мобільного застосунку Feishu/Lark, щоб автоматично створити бота Feishu/Lark. @@ -46,14 +46,14 @@ Feishu/Lark — це універсальна платформа для спів ### Особисті повідомлення -Налаштуйте `dmPolicy`, щоб керувати тим, хто може писати боту в особисті повідомлення: +Налаштуйте `dmPolicy`, щоб керувати тим, хто може надсилати боту DM: -- `"pairing"` — невідомі користувачі отримують код прив’язки; підтвердження через CLI -- `"allowlist"` — спілкуватися можуть лише користувачі зі списку `allowFrom` (типово: лише власник бота) +- `"pairing"` — невідомі користувачі отримують код pairing; підтвердження виконується через CLI +- `"allowlist"` — спілкуватися можуть лише користувачі, перелічені в `allowFrom` (типово: лише власник бота) - `"open"` — дозволити всіх користувачів -- `"disabled"` — вимкнути всі особисті повідомлення +- `"disabled"` — вимкнути всі DM -**Підтвердити запит на прив’язку:** +**Підтвердити запит на pairing:** ```bash openclaw pairing list feishu @@ -64,25 +64,25 @@ openclaw pairing approve feishu **Політика груп** (`channels.feishu.groupPolicy`): -| Значення | Поведінка | -| ------------- | ------------------------------------------- | -| `"open"` | Відповідати на всі повідомлення в групах | -| `"allowlist"` | Відповідати лише в групах із `groupAllowFrom` | -| `"disabled"` | Вимкнути всі повідомлення в групах | +| Value | Поведінка | +| ------------- | ------------------------------------------ | +| `"open"` | Відповідати на всі повідомлення в групах | +| `"allowlist"` | Відповідати лише групам у `groupAllowFrom` | +| `"disabled"` | Вимкнути всі повідомлення в групах | Типове значення: `allowlist` **Вимога згадки** (`channels.feishu.requireMention`): -- `true` — вимагати @згадку (типово) -- `false` — відповідати без @згадки +- `true` — вимагати @mention (типово) +- `false` — відповідати без @mention - Перевизначення для окремої групи: `channels.feishu.groups..requireMention` --- -## Приклади налаштування груп +## Приклади конфігурації груп -### Дозволити всі групи, @згадка не потрібна +### Дозволити всі групи, без обов’язкової @mention ```json5 { @@ -94,7 +94,7 @@ openclaw pairing approve feishu } ``` -### Дозволити всі групи, але все одно вимагати @згадку +### Дозволити всі групи, але все ще вимагати @mention ```json5 { @@ -107,14 +107,14 @@ openclaw pairing approve feishu } ``` -### Дозволити лише певні групи +### Дозволити лише вказані групи ```json5 { channels: { feishu: { groupPolicy: "allowlist", - // ID груп мають такий вигляд: oc_xxx + // Ідентифікатори груп мають такий вигляд: oc_xxx groupAllowFrom: ["oc_xxx", "oc_yyy"], }, }, @@ -154,13 +154,13 @@ openclaw pairing approve feishu ### ID користувачів (`open_id`, формат: `ou_xxx`) -Запустіть Gateway, надішліть боту особисте повідомлення, а потім перевірте журнали: +Запустіть Gateway, надішліть боту DM, а потім перевірте журнали: ```bash openclaw logs --follow ``` -Знайдіть `open_id` у виводі журналу. Ви також можете перевірити запити на прив’язку, що очікують підтвердження: +Шукайте `open_id` у виводі журналу. Ви також можете перевірити запити pairing, які очікують на підтвердження: ```bash openclaw pairing list feishu @@ -170,35 +170,35 @@ openclaw pairing list feishu ## Поширені команди -| Команда | Опис | -| --------- | --------------------------------- | -| `/status` | Показати статус бота | -| `/reset` | Скинути поточну сесію | -| `/model` | Показати або змінити AI-модель | +| Command | Опис | +| --------- | -------------------------------- | +| `/status` | Показати статус бота | +| `/reset` | Скинути поточну сесію | +| `/model` | Показати або змінити модель ШІ | -> Feishu/Lark не підтримує вбудовані меню slash-команд, тому надсилайте їх як звичайні текстові повідомлення. +> Feishu/Lark не підтримує вбудовані меню slash-команд, тому надсилайте ці команди як звичайні текстові повідомлення. --- -## Усунення проблем +## Усунення несправностей ### Бот не відповідає в групових чатах 1. Переконайтеся, що бота додано до групи -2. Переконайтеся, що ви згадуєте бота через @ (це потрібно за замовчуванням) -3. Переконайтеся, що `groupPolicy` не має значення `"disabled"` +2. Переконайтеся, що ви згадуєте бота через @mention (типово це обов’язково) +3. Перевірте, що `groupPolicy` не має значення `"disabled"` 4. Перевірте журнали: `openclaw logs --follow` ### Бот не отримує повідомлення -1. Переконайтеся, що бот опублікований і схвалений у Feishu Open Platform / Lark Developer -2. Переконайтеся, що підписка на події містить `im.message.receive_v1` +1. Переконайтеся, що бота опубліковано та схвалено в Feishu Open Platform / Lark Developer +2. Переконайтеся, що підписка на події включає `im.message.receive_v1` 3. Переконайтеся, що вибрано **persistent connection** (WebSocket) -4. Переконайтеся, що надано всі потрібні дозволи +4. Переконайтеся, що надано всі потрібні області дозволів 5. Переконайтеся, що Gateway запущено: `openclaw gateway status` 6. Перевірте журнали: `openclaw logs --follow` -### Витік App Secret +### App Secret скомпрометовано 1. Скиньте App Secret у Feishu Open Platform / Lark Developer 2. Оновіть значення у своїй конфігурації @@ -206,7 +206,7 @@ openclaw pairing list feishu --- -## Розширене налаштування +## Розширена конфігурація ### Кілька облікових записів @@ -238,31 +238,31 @@ openclaw pairing list feishu ### Обмеження повідомлень - `textChunkLimit` — розмір фрагмента вихідного тексту (типово: `2000` символів) -- `mediaMaxMb` — ліміт завантаження/вивантаження медіа (типово: `30` МБ) +- `mediaMaxMb` — ліміт завантаження/вивантаження медіа (типово: `30` MB) ### Потокове передавання -Feishu/Lark підтримує потокові відповіді через інтерактивні картки. Якщо ввімкнено, бот оновлює картку в реальному часі під час генерації тексту. +Feishu/Lark підтримує потокові відповіді через інтерактивні картки. Якщо цю функцію ввімкнено, бот у реальному часі оновлює картку під час генерування тексту. ```json5 { channels: { feishu: { - streaming: true, // увімкнути потоковий вивід у картках (типово: true) + streaming: true, // увімкнути виведення потокових карток (типово: true) blockStreaming: true, // увімкнути потокове передавання на рівні блоків (типово: true) }, }, } ``` -Встановіть `streaming: false`, щоб надсилати повну відповідь одним повідомленням. +Установіть `streaming: false`, щоб надсилати повну відповідь одним повідомленням. ### Оптимізація квот -Зменште кількість викликів API Feishu/Lark за допомогою двох додаткових прапорців: +Зменште кількість викликів API Feishu/Lark за допомогою двох необов’язкових прапорців: -- `typingIndicator` (типово `true`): встановіть `false`, щоб пропустити виклики реакції набору тексту -- `resolveSenderNames` (типово `true`): встановіть `false`, щоб пропустити отримання профілів відправників +- `typingIndicator` (типово `true`): установіть `false`, щоб пропустити виклики реакції друку +- `resolveSenderNames` (типово `true`): установіть `false`, щоб пропустити пошук профілів відправників ```json5 { @@ -277,7 +277,7 @@ Feishu/Lark підтримує потокові відповіді через і ### Сесії ACP -Feishu/Lark підтримує ACP для особистих повідомлень і повідомлень у гілках груп. ACP у Feishu/Lark керується текстовими командами — вбудованих меню slash-команд немає, тому використовуйте повідомлення `/acp ...` безпосередньо в розмові. +Feishu/Lark підтримує ACP для DM і повідомлень у гілках груп. ACP у Feishu/Lark керується текстовими командами — вбудованих меню slash-команд немає, тому використовуйте повідомлення `/acp ...` безпосередньо в розмові. #### Постійна прив’язка ACP @@ -325,17 +325,17 @@ Feishu/Lark підтримує ACP для особистих повідомле #### Запуск ACP із чату -У особистих повідомленнях Feishu/Lark або в гілці: +У DM або гілці Feishu/Lark: ```text /acp spawn codex --thread here ``` -`--thread here` працює для особистих повідомлень і повідомлень у гілках Feishu/Lark. Наступні повідомлення в прив’язаній розмові маршрутизуються безпосередньо до цієї сесії ACP. +`--thread here` працює для DM і повідомлень у гілках Feishu/Lark. Подальші повідомлення в прив’язаній розмові напряму спрямовуються до цієї сесії ACP. ### Маршрутизація між кількома агентами -Використовуйте `bindings`, щоб маршрутизувати особисті повідомлення або групи Feishu/Lark до різних агентів. +Використовуйте `bindings`, щоб спрямовувати DM або групи Feishu/Lark до різних агентів. ```json5 { @@ -368,10 +368,10 @@ Feishu/Lark підтримує ACP для особистих повідомле Поля маршрутизації: - `match.channel`: `"feishu"` -- `match.peer.kind`: `"direct"` (особисті повідомлення) або `"group"` (груповий чат) -- `match.peer.id`: user Open ID (`ou_xxx`) або ID групи (`oc_xxx`) +- `match.peer.kind`: `"direct"` (DM) або `"group"` (груповий чат) +- `match.peer.id`: Open ID користувача (`ou_xxx`) або ID групи (`oc_xxx`) -Поради щодо пошуку див. у [Отримання ID груп/користувачів](#get-groupuser-ids). +Підказки щодо пошуку див. у [Отримання ID груп/користувачів](#get-groupuser-ids). --- @@ -379,33 +379,33 @@ Feishu/Lark підтримує ACP для особистих повідомле Повна конфігурація: [Конфігурація Gateway](/uk/gateway/configuration) -| Параметр | Опис | Типове значення | -| ------------------------------------------------ | ------------------------------------------ | ---------------- | -| `channels.feishu.enabled` | Увімкнути/вимкнути канал | `true` | -| `channels.feishu.domain` | Домен API (`feishu` або `lark`) | `feishu` | -| `channels.feishu.connectionMode` | Транспорт подій (`websocket` або `webhook`) | `websocket` | +| Setting | Опис | Default | +| ------------------------------------------------- | -------------------------------------------- | ---------------- | +| `channels.feishu.enabled` | Увімкнути/вимкнути канал | `true` | +| `channels.feishu.domain` | Домен API (`feishu` або `lark`) | `feishu` | +| `channels.feishu.connectionMode` | Транспорт подій (`websocket` або `webhook`) | `websocket` | | `channels.feishu.defaultAccount` | Типовий обліковий запис для вихідної маршрутизації | `default` | -| `channels.feishu.verificationToken` | Потрібно для режиму webhook | — | -| `channels.feishu.encryptKey` | Потрібно для режиму webhook | — | -| `channels.feishu.webhookPath` | Шлях маршруту webhook | `/feishu/events` | -| `channels.feishu.webhookHost` | Хост прив’язки webhook | `127.0.0.1` | -| `channels.feishu.webhookPort` | Порт прив’язки webhook | `3000` | -| `channels.feishu.accounts..appId` | App ID | — | -| `channels.feishu.accounts..appSecret` | App Secret | — | -| `channels.feishu.accounts..domain` | Перевизначення домену для облікового запису | `feishu` | -| `channels.feishu.dmPolicy` | Політика особистих повідомлень | `allowlist` | -| `channels.feishu.allowFrom` | Allowlist особистих повідомлень (список `open_id`) | [BotOwnerId] | -| `channels.feishu.groupPolicy` | Політика груп | `allowlist` | -| `channels.feishu.groupAllowFrom` | Allowlist груп | — | -| `channels.feishu.requireMention` | Вимагати @згадку в групах | `true` | -| `channels.feishu.groups..requireMention` | Перевизначення @згадки для окремої групи | inherited | -| `channels.feishu.groups..enabled` | Увімкнути/вимкнути окрему групу | `true` | -| `channels.feishu.textChunkLimit` | Розмір фрагмента повідомлення | `2000` | -| `channels.feishu.mediaMaxMb` | Обмеження розміру медіа | `30` | -| `channels.feishu.streaming` | Потоковий вивід у картках | `true` | -| `channels.feishu.blockStreaming` | Потокове передавання на рівні блоків | `true` | -| `channels.feishu.typingIndicator` | Надсилати реакції набору тексту | `true` | -| `channels.feishu.resolveSenderNames` | Визначати відображувані імена відправників | `true` | +| `channels.feishu.verificationToken` | Обов’язково для режиму webhook | — | +| `channels.feishu.encryptKey` | Обов’язково для режиму webhook | — | +| `channels.feishu.webhookPath` | Шлях маршруту webhook | `/feishu/events` | +| `channels.feishu.webhookHost` | Хост прив’язки webhook | `127.0.0.1` | +| `channels.feishu.webhookPort` | Порт прив’язки webhook | `3000` | +| `channels.feishu.accounts..appId` | ID застосунку | — | +| `channels.feishu.accounts..appSecret` | App Secret | — | +| `channels.feishu.accounts..domain` | Перевизначення домену для окремого облікового запису | `feishu` | +| `channels.feishu.dmPolicy` | Політика DM | `allowlist` | +| `channels.feishu.allowFrom` | allowlist DM (список `open_id`) | [BotOwnerId] | +| `channels.feishu.groupPolicy` | Політика груп | `allowlist` | +| `channels.feishu.groupAllowFrom` | allowlist груп | — | +| `channels.feishu.requireMention` | Вимагати @mention у групах | `true` | +| `channels.feishu.groups..requireMention` | Перевизначення @mention для окремої групи | inherited | +| `channels.feishu.groups..enabled` | Увімкнути/вимкнути конкретну групу | `true` | +| `channels.feishu.textChunkLimit` | Розмір фрагмента повідомлення | `2000` | +| `channels.feishu.mediaMaxMb` | Обмеження розміру медіа | `30` | +| `channels.feishu.streaming` | Виведення потокових карток | `true` | +| `channels.feishu.blockStreaming` | Потокове передавання на рівні блоків | `true` | +| `channels.feishu.typingIndicator` | Надсилати реакції друку | `true` | +| `channels.feishu.resolveSenderNames` | Визначати відображувані імена відправників | `true` | --- @@ -429,9 +429,9 @@ Feishu/Lark підтримує ACP для особистих повідомле - ✅ Аудіо - ✅ Відео/медіа - ✅ Інтерактивні картки (включно з потоковими оновленнями) -- ⚠️ Форматований текст (форматування у стилі post; не підтримує всі можливості авторингу Feishu/Lark) +- ⚠️ Форматований текст (форматування у стилі post; не підтримує повні можливості авторингу Feishu/Lark) -Власні аудіобульбашки Feishu/Lark використовують тип повідомлення Feishu `audio` і потребують завантаження медіа у форматі Ogg/Opus (`file_type: "opus"`). Наявні медіафайли `.opus` і `.ogg` надсилаються безпосередньо як нативне аудіо. MP3/WAV/M4A та інші ймовірні аудіоформати перекодовуються до 48 кГц Ogg/Opus за допомогою `ffmpeg` лише тоді, коли відповідь запитує голосову доставку (`audioAsVoice` / інструмент повідомлень `asVoice`, включно з голосовими TTS-відповідями у форматі voice note). Звичайні вкладення MP3 залишаються звичайними файлами. Якщо `ffmpeg` відсутній або конвертація завершується помилкою, OpenClaw повертається до вкладення файлу та записує причину в журнал. +Нативні аудіобульбашки Feishu/Lark використовують тип повідомлення Feishu `audio` і потребують завантаження медіа у форматі Ogg/Opus (`file_type: "opus"`). Наявні медіафайли `.opus` і `.ogg` надсилаються безпосередньо як нативне аудіо. MP3/WAV/M4A та інші ймовірні аудіоформати перекодовуються в 48 kHz Ogg/Opus за допомогою `ffmpeg` лише тоді, коли відповідь запитує доставку голосом (`audioAsVoice` / інструмент повідомлень `asVoice`, включно з голосовими нотатками TTS). Звичайні вкладення MP3 залишаються звичайними файлами. Якщо `ffmpeg` відсутній або конвертація завершується помилкою, OpenClaw повертається до вкладення файлу й записує причину в журнал. ### Гілки та відповіді @@ -439,14 +439,14 @@ Feishu/Lark підтримує ACP для особистих повідомле - ✅ Відповіді в гілках - ✅ Відповіді з медіа зберігають прив’язку до гілки під час відповіді на повідомлення в гілці -Для `groupSessionScope: "group_topic"` і `"group_topic_sender"` нативні тематичні групи Feishu/Lark використовують `thread_id` (`omt_*`) із події як канонічний ключ сесії теми. Звичайні групові відповіді, які OpenClaw перетворює на гілки, і надалі використовують ID кореневого повідомлення відповіді (`om_*`), щоб перший і наступний ходи залишалися в межах однієї сесії. +Для `groupSessionScope: "group_topic"` і `"group_topic_sender"` нативні тематичні групи Feishu/Lark використовують `thread_id` події (`omt_*`) як канонічний ключ сесії теми. Звичайні відповіді в групі, які OpenClaw перетворює на гілки, і далі використовують ID кореневого повідомлення відповіді (`om_*`), щоб перший і наступний кроки залишалися в одній сесії. --- ## Пов’язане - [Огляд каналів](/uk/channels) — усі підтримувані канали -- [Прив’язка](/uk/channels/pairing) — автентифікація в особистих повідомленнях і процес прив’язки -- [Групи](/uk/channels/groups) — поведінка групових чатів і керування через згадки +- [Pairing](/uk/channels/pairing) — автентифікація DM і процес pairing +- [Групи](/uk/channels/groups) — поведінка групового чату та обмеження згадками - [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень - [Безпека](/uk/gateway/security) — модель доступу та посилення захисту diff --git a/docs/uk/plugins/sdk-migration.md b/docs/uk/plugins/sdk-migration.md index 75e83a6c8..60e2650e7 100644 --- a/docs/uk/plugins/sdk-migration.md +++ b/docs/uk/plugins/sdk-migration.md @@ -1,88 +1,80 @@ --- read_when: - - Ви бачите попередження OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED - - Ви бачите попередження OPENCLAW_EXTENSION_API_DEPRECATED - - Ви використовували `api.registerEmbeddedExtensionFactory` до OpenClaw 2026.4.24 - - Ви оновлюєте Plugin до сучасної архітектури Plugin + - Ви бачите попередження `OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED` + - Ви бачите попередження `OPENCLAW_EXTENSION_API_DEPRECATED` + - Ви використовували `api.registerEmbeddedExtensionFactory` до OpenClaw 2026.4.25 + - Ви оновлюєте Plugin до сучасної архітектури плагінів - Ви підтримуєте зовнішній Plugin OpenClaw sidebarTitle: Migrate to SDK summary: Перейдіть із застарілого шару зворотної сумісності на сучасний Plugin SDK title: Міграція Plugin SDK x-i18n: - generated_at: "2026-04-25T02:02:28Z" + generated_at: "2026-04-25T09:41:31Z" model: gpt-5.4 provider: openai - source_hash: 6944e81e02d0e4031090a1b557e58842c59046f5e0c3834d7079c6370b4cb45c + source_hash: e3a1410d9353156b4597d16a42a931f83189680f89c320a906aa8d2c8196792f source_path: plugins/sdk-migration.md workflow: 15 --- -OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури Plugin із цільовими, задокументованими імпортами. Якщо ваш Plugin було створено до появи нової архітектури, цей посібник допоможе вам виконати міграцію. +OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури плагінів із вузькоспрямованими, задокументованими імпортами. Якщо ваш Plugin було створено до появи нової архітектури, цей посібник допоможе вам виконати міграцію. ## Що змінюється -Стара система Plugin надавала дві широкі поверхні, які дозволяли Plugin імпортувати все необхідне з єдиної точки входу: +Стара система плагінів надавала дві широкі поверхні, які дозволяли плагінам імпортувати все необхідне з однієї точки входу: -- **`openclaw/plugin-sdk/compat`** — єдиний імпорт, який повторно експортував десятки допоміжних засобів. Його було запроваджено, щоб старіші Plugins на основі хуків продовжували працювати, поки створювалася нова архітектура Plugin. -- **`openclaw/extension-api`** — міст, який надавав Plugins прямий доступ до допоміжних засобів на боці хоста, таких як вбудований виконавець агента. -- **`api.registerEmbeddedExtensionFactory(...)`** — вилучений API-хук для вбудованих розширень лише для Pi, який міг спостерігати за подіями вбудованого виконавця, такими як `tool_result`. +- **`openclaw/plugin-sdk/compat`** — єдиний імпорт, який повторно експортував десятки допоміжних засобів. Його було запроваджено, щоб старіші hook-орієнтовані плагіни продовжували працювати, поки створювалася нова архітектура плагінів. +- **`openclaw/extension-api`** — міст, який надавав плагінам прямий доступ до допоміжних засобів на стороні хоста, таких як вбудований runner агента. +- **`api.registerEmbeddedExtensionFactory(...)`** — видалений хук вбудованого розширення лише для Pi, який міг відстежувати події embedded-runner, такі як `tool_result`. -Ці широкі поверхні імпорту тепер **застарілі**. Вони все ще працюють під час виконання, але нові Plugins не повинні їх використовувати, а наявні Plugins мають перейти на новий підхід до того, як у наступному мажорному релізі їх буде вилучено. API реєстрації фабрики вбудованого розширення лише для Pi вилучено; натомість використовуйте проміжне ПЗ результатів інструментів. +Ці широкі поверхні імпорту тепер **застарілі**. Вони все ще працюють під час виконання, але нові плагіни не повинні їх використовувати, а наявні плагіни мають виконати міграцію до того, як наступний мажорний реліз їх видалить. API реєстрації фабрики вбудованих розширень лише для Pi вже видалено; замість нього використовуйте middleware для результатів інструментів. -OpenClaw не вилучає і не переосмислює задокументовану поведінку Plugin у тій самій зміні, яка запроваджує заміну. Зміни контрактів, що ламають сумісність, спочатку мають пройти через адаптер сумісності, діагностику, документацію та вікно застарівання. Це стосується імпортів SDK, полів маніфесту, API налаштування, хуків і поведінки реєстрації під час виконання. +OpenClaw не видаляє і не переосмислює задокументовану поведінку плагінів у тій самій зміні, у якій запроваджується заміна. Зміни контракту, що ламають сумісність, спочатку мають проходити через адаптер сумісності, діагностику, документацію та вікно застарівання. Це стосується імпортів SDK, полів маніфесту, API налаштування, hook-ів і поведінки реєстрації під час виконання. - Шар зворотної сумісності буде вилучено в одному з майбутніх мажорних релізів. - Plugins, які все ще імпортують із цих поверхонь, перестануть працювати, коли це станеться. - Реєстрації фабрики вбудованого розширення лише для Pi уже більше не завантажуються. + Шар зворотної сумісності буде видалено в одному з майбутніх мажорних релізів. + Плагіни, які досі імпортують із цих поверхонь, перестануть працювати, коли це станеться. + Реєстрації фабрик вбудованих розширень лише для Pi вже більше не завантажуються. ## Чому це змінилося -Старий підхід спричиняв проблеми: +Старий підхід створював проблеми: - **Повільний запуск** — імпорт одного допоміжного засобу завантажував десятки не пов’язаних між собою модулів - **Циклічні залежності** — широкі повторні експорти полегшували створення циклів імпорту -- **Неясна поверхня API** — не було способу зрозуміти, які експорти є стабільними, а які внутрішніми +- **Нечітка поверхня API** — неможливо було зрозуміти, які експорти є стабільними, а які внутрішніми -Сучасний Plugin SDK це виправляє: кожен шлях імпорту (`openclaw/plugin-sdk/\`) — це невеликий самодостатній модуль із чітким призначенням і задокументованим контрактом. +Сучасний Plugin SDK це виправляє: кожен шлях імпорту (`openclaw/plugin-sdk/\`) є невеликим, самодостатнім модулем із чітким призначенням і задокументованим контрактом. -Застарілі зручні шви провайдерів для вбудованих каналів також вилучено. Імпорти -на кшталт `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`, -`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, -допоміжні шви з брендуванням каналу та -`openclaw/plugin-sdk/telegram-core` були внутрішніми скороченнями mono-repo, а не -стабільними контрактами Plugin. Натомість використовуйте вузькі загальні підшляхи SDK. Усередині робочого простору вбудованого Plugin зберігайте допоміжні засоби, що належать провайдеру, у власному `api.ts` або `runtime-api.ts` цього Plugin. +Застарілі зручні шви provider для вбудованих каналів також зникли. Імпорти на кшталт `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`, `openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, фірмові допоміжні шви каналів і `openclaw/plugin-sdk/telegram-core` були приватними скороченнями монорепозиторію, а не стабільними контрактами плагінів. Натомість використовуйте вузькі універсальні підшляхи SDK. Усередині робочого простору вбудованого плагіна зберігайте допоміжні засоби, що належать provider, у власному `api.ts` або `runtime-api.ts` цього плагіна. -Поточні приклади вбудованих провайдерів: +Поточні приклади вбудованих provider: -- Anthropic зберігає допоміжні засоби потоків, специфічні для Claude, у власному шві `api.ts` / - `contract-api.ts` -- OpenAI зберігає конструктори провайдера, допоміжні засоби моделей за замовчуванням і конструктори провайдера realtime - у власному `api.ts` -- OpenRouter зберігає конструктор провайдера та допоміжні засоби онбордингу/конфігурації у власному - `api.ts` +- Anthropic зберігає специфічні для Claude допоміжні засоби потокової обробки у власному шві `api.ts` / `contract-api.ts` +- OpenAI зберігає builder-и provider, допоміжні засоби моделей за замовчуванням і builder-и realtime provider у власному `api.ts` +- OpenRouter зберігає builder provider і допоміжні засоби онбордингу/конфігурації у власному `api.ts` ## Політика сумісності -Для зовнішніх Plugins робота із сумісністю відбувається в такому порядку: +Для зовнішніх плагінів робота із сумісністю відбувається в такому порядку: 1. додати новий контракт -2. зберегти стару поведінку через адаптер сумісності -3. вивести діагностичне повідомлення або попередження, у якому вказано старий шлях і заміну +2. зберегти стару поведінку, підключивши її через адаптер сумісності +3. вивести діагностичне повідомлення або попередження, яке вказує старий шлях і заміну 4. покрити обидва шляхи в тестах 5. задокументувати застарівання та шлях міграції -6. вилучати лише після оголошеного вікна міграції, зазвичай у мажорному релізі +6. видаляти лише після оголошеного вікна міграції, зазвичай у мажорному релізі -Якщо поле маніфесту все ще приймається, автори Plugin можуть і надалі його використовувати, доки документація й діагностика не скажуть інакше. Новий код має надавати перевагу задокументованій заміні, але наявні Plugins не повинні ламатися під час звичайних мінорних релізів. +Якщо поле маніфесту все ще приймається, автори плагінів можуть і далі його використовувати, доки документація та діагностика не повідомлять інакше. Новий код має надавати перевагу задокументованій заміні, але наявні плагіни не повинні ламатися під час звичайних мінорних релізів. ## Як виконати міграцію - - Вбудовані Plugins мають замінити обробники результатів інструментів лише для Pi в + + Вбудовані плагіни мають замінити обробники результатів інструментів Pi-only `api.registerEmbeddedExtensionFactory(...)` - на нейтральне до середовища виконання проміжне ПЗ. + на middleware, нейтральне до runtime. ```typescript // Pi and Codex runtime dynamic tools @@ -93,7 +85,7 @@ OpenClaw не вилучає і не переосмислює задокумен }); ``` - Одночасно оновіть маніфест Plugin: + Одночасно оновіть маніфест плагіна: ```json { @@ -103,39 +95,38 @@ OpenClaw не вилучає і не переосмислює задокумен } ``` - Зовнішні Plugins не можуть реєструвати проміжне ПЗ результатів інструментів, оскільки воно може - переписувати вихідні дані інструментів із високим рівнем довіри до того, як модель їх побачить. + Зовнішні плагіни не можуть реєструвати middleware для результатів інструментів, тому що воно може переписувати високодовірений вивід інструментів до того, як його побачить модель. - - Plugins каналів із підтримкою схвалення тепер надають рідну поведінку схвалення через - `approvalCapability.nativeRuntime` разом зі спільним реєстром контексту середовища виконання. + + Плагіни каналів, що підтримують approval, тепер надають нативну поведінку approval через + `approvalCapability.nativeRuntime` разом зі спільним реєстром контексту runtime. - Ключові зміни: + Основні зміни: - Замініть `approvalCapability.handler.loadRuntime(...)` на `approvalCapability.nativeRuntime` - - Перенесіть специфічні для схвалення auth/доставку зі застарілої прив’язки `plugin.auth` / - `plugin.approvals` на `approvalCapability` - - `ChannelPlugin.approvals` вилучено з публічного контракту Plugin каналу; - перенесіть поля delivery/native/render у `approvalCapability` - - `plugin.auth` залишається лише для потоків login/logout каналу; auth-хуки схвалення - там більше не зчитуються ядром - - Реєструйте об’єкти середовища виконання, що належать каналу, такі як clients, tokens або Bolt + - Перенесіть специфічну для approval автентифікацію/доставку зі застарілої схеми `plugin.auth` / + `plugin.approvals` до `approvalCapability` + - `ChannelPlugin.approvals` видалено з публічного + контракту channel-plugin; перенесіть поля delivery/native/render до `approvalCapability` + - `plugin.auth` залишається лише для потоків входу/виходу каналу; approval + hook-и автентифікації там більше не зчитуються ядром + - Реєструйте об’єкти runtime, що належать каналу, такі як clients, tokens або Bolt apps, через `openclaw/plugin-sdk/channel-runtime-context` - - Не надсилайте повідомлення про перенаправлення, що належать Plugin, із рідних обробників схвалення; - ядро тепер саме володіє повідомленнями «перенаправлено в інше місце» на основі фактичних результатів доставки - - Під час передавання `channelRuntime` у `createChannelManager(...)` надавайте - справжню поверхню `createPluginRuntime().channel`. Часткові заглушки відхиляються. + - Не надсилайте сповіщення reroute, що належать плагіну, з нативних обробників approval; + тепер ядро відповідає за повідомлення routed-elsewhere на основі фактичних результатів доставки + - Під час передавання `channelRuntime` до `createChannelManager(...)` надавайте + справжню поверхню `createPluginRuntime().channel`. Часткові stub-и відхиляються. - Актуальну структуру можливостей схвалення див. у `/plugins/sdk-channel-plugins`. + Поточну структуру approval capability дивіться в `/plugins/sdk-channel-plugins`. - - Якщо ваш Plugin використовує `openclaw/plugin-sdk/windows-spawn`, невизначені обгортки Windows - `.cmd`/`.bat` тепер завершуються із закритою відмовою, якщо ви явно не передасте `allowShellFallback: true`. + + Якщо ваш Plugin використовує `openclaw/plugin-sdk/windows-spawn`, нерозв’язані Windows + wrapper-и `.cmd`/`.bat` тепер завершуються без резервного обходу, якщо ви явно не передасте `allowShellFallback: true`. ```typescript // Before @@ -150,8 +141,8 @@ OpenClaw не вилучає і не переосмислює задокумен }); ``` - Якщо ваш викликаючий код не покладається навмисно на резервний shell-виклик, не встановлюйте - `allowShellFallback`, а натомість обробляйте викинуту помилку. + Якщо ваш виклик навмисно не покладається на резервний обхід через оболонку, не встановлюйте + `allowShellFallback` і натомість обробляйте згенеровану помилку. @@ -165,8 +156,8 @@ OpenClaw не вилучає і не переосмислює задокумен - - Кожен експорт зі старої поверхні відповідає певному сучасному шляху імпорту: + + Кожен експорт зі старої поверхні зіставляється з конкретним сучасним шляхом імпорту: ```typescript // Before (deprecated backwards-compatibility layer) @@ -182,8 +173,7 @@ OpenClaw не вилучає і не переосмислює задокумен import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth"; ``` - Для допоміжних засобів на боці хоста використовуйте впроваджене середовище виконання Plugin замість - прямого імпорту: + Для допоміжних засобів на стороні хоста використовуйте впроваджений runtime плагіна замість прямого імпорту: ```typescript // Before (deprecated extension-api bridge) @@ -194,7 +184,7 @@ OpenClaw не вилучає і не переосмислює задокумен const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt }); ``` - Такий самий шаблон застосовується до інших допоміжних засобів застарілого мосту: + Такий самий шаблон застосовується і до інших допоміжних засобів застарілого bridge: | Старий імпорт | Сучасний еквівалент | | --- | --- | @@ -219,177 +209,177 @@ OpenClaw не вилучає і не переосмислює задокумен ## Довідник шляхів імпорту - | Import path | Призначення | Ключові експорти | + | Шлях імпорту | Призначення | Ключові експорти | | --- | --- | --- | - | `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб точки входу Plugin | `definePluginEntry` | - | `plugin-sdk/core` | Застарілий парасольковий повторний експорт для визначень/конструкторів точок входу каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` | + | `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб точки входу плагіна | `definePluginEntry` | + | `plugin-sdk/core` | Застарілий узагальнений повторний експорт для визначень/builder-ів точок входу каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` | | `plugin-sdk/config-schema` | Експорт кореневої схеми конфігурації | `OpenClawSchema` | - | `plugin-sdk/provider-entry` | Допоміжний засіб точки входу для одного провайдера | `defineSingleProviderPluginEntry` | - | `plugin-sdk/channel-core` | Цільові визначення та конструктори точок входу каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | - | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування | Підказки allowlist, конструктори статусу налаштування | - | `plugin-sdk/setup-runtime` | Допоміжні засоби середовища виконання для етапу налаштування | Безпечні для імпорту адаптери патчів налаштування, допоміжні засоби приміток пошуку, `promptResolvedAllowFrom`, `splitSetupEntries`, делеговані проксі налаштування | + | `plugin-sdk/provider-entry` | Допоміжний засіб точки входу одного provider | `defineSingleProviderPluginEntry` | + | `plugin-sdk/channel-core` | Вузькоспрямовані визначення та builder-и точок входу каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | + | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування | Підказки allowlist, builder-и стану налаштування | + | `plugin-sdk/setup-runtime` | Допоміжні засоби runtime під час налаштування | Безпечні для імпорту адаптери patch налаштування, допоміжні засоби lookup-note, `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-core` | Допоміжні засоби для кількох облікових записів | Допоміжні засоби списку облікових записів/конфігурації/action-gate | | `plugin-sdk/account-id` | Допоміжні засоби account-id | `DEFAULT_ACCOUNT_ID`, нормалізація account-id | - | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікових записів | Допоміжні засоби пошуку облікових записів + резервного вибору за замовчуванням | - | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для облікових записів | Допоміжні засоби списку облікових записів/дій облікового запису | + | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікових записів | Допоміжні засоби пошуку облікових записів + fallback за замовчуванням | + | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби облікових записів | Допоміжні засоби списку облікових записів/account-action | | `plugin-sdk/channel-setup` | Адаптери майстра налаштування | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | - | `plugin-sdk/channel-pairing` | Примітиви pairing для DM | `createChannelPairingController` | - | `plugin-sdk/channel-reply-pipeline` | Підключення префікса відповіді + введення тексту | `createChannelReplyPipeline` | + | `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-config-schema` | Builder-и схем конфігурації | Спільні примітиви схем конфігурації каналів; іменовані експорти схем вбудованих каналів залишаються лише для застарілої сумісності | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби конфігурації команд Telegram | Нормалізація назв команд, обрізання описів, перевірка дублікатів/конфліктів | | `plugin-sdk/channel-policy` | Визначення політики груп/DM | `resolveChannelGroupRequireMention` | - | `plugin-sdk/channel-lifecycle` | Допоміжні засоби статусу облікових записів і життєвого циклу потоків чернеток | `createAccountStatusSink`, допоміжні засоби фіналізації попереднього перегляду чернетки | - | `plugin-sdk/inbound-envelope` | Допоміжні засоби вхідних envelope | Спільні допоміжні засоби маршрутизації + побудови envelope | - | `plugin-sdk/inbound-reply-dispatch` | Допоміжні засоби вхідних відповідей | Спільні допоміжні засоби запису та диспетчеризації | + | `plugin-sdk/channel-lifecycle` | Допоміжні засоби життєвого циклу стану облікового запису та чернеткового потоку | `createAccountStatusSink`, допоміжні засоби фіналізації попереднього перегляду чернетки | + | `plugin-sdk/inbound-envelope` | Допоміжні засоби вхідного envelope | Спільні допоміжні засоби маршрутизації + побудови envelope | + | `plugin-sdk/inbound-reply-dispatch` | Допоміжні засоби вхідної відповіді | Спільні допоміжні засоби запису та dispatch | | `plugin-sdk/messaging-targets` | Розбір цілей повідомлень | Допоміжні засоби розбору/зіставлення цілей | - | `plugin-sdk/outbound-media` | Допоміжні засоби вихідних медіа | Спільне завантаження вихідних медіа | - | `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідного середовища виконання | Допоміжні засоби вихідної доставки, delegate ідентичності/надсилання, сесії, форматування та планування payload | - | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби thread-binding | Допоміжні засоби життєвого циклу та адаптера thread-binding | - | `plugin-sdk/agent-media-payload` | Застарілі допоміжні засоби payload медіа агента | Конструктор payload медіа агента для застарілих макетів полів | - | `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише застарілі утиліти середовища виконання каналу | + | `plugin-sdk/outbound-media` | Допоміжні засоби вихідного медіа | Спільне завантаження вихідного медіа | + | `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідного runtime | Допоміжні засоби вихідної доставки, делегата identity/send, session, форматування та планування payload | + | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби прив’язок thread | Допоміжні засоби життєвого циклу та адаптера прив’язок thread | + | `plugin-sdk/agent-media-payload` | Застарілі допоміжні засоби media payload | Builder media payload агента для застарілих макетів полів | + | `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише застарілі утиліти runtime каналів | | `plugin-sdk/channel-send-result` | Типи результатів надсилання | Типи результатів відповіді | - | `plugin-sdk/runtime-store` | Постійне сховище Plugin | `createPluginRuntimeStore` | - | `plugin-sdk/runtime` | Широкі допоміжні засоби середовища виконання | Допоміжні засоби середовища виконання/логування/резервного копіювання/встановлення Plugin | - | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env середовища виконання | Logger/env середовища виконання, допоміжні засоби timeout, retry і backoff | - | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби середовища виконання Plugin | Допоміжні засоби команд/хуків/http/інтерактивної взаємодії Plugin | - | `plugin-sdk/hook-runtime` | Допоміжні засоби конвеєра хуків | Спільні допоміжні засоби конвеєра Webhook/внутрішніх хуків | + | `plugin-sdk/runtime-store` | Постійне сховище плагіна | `createPluginRuntimeStore` | + | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime | Допоміжні засоби runtime/логування/резервного копіювання/встановлення плагіна | + | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env | Допоміжні засоби logger/runtime env, timeout, retry і backoff | + | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби runtime плагіна | Допоміжні засоби команд/hook-ів/http/interactive плагіна | + | `plugin-sdk/hook-runtime` | Допоміжні засоби pipeline hook-ів | Спільні допоміжні засоби pipeline Webhook/внутрішніх hook-ів | | `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` | - | `plugin-sdk/process-runtime` | Допоміжні засоби процесів | Спільні допоміжні засоби exec | - | `plugin-sdk/cli-runtime` | Допоміжні засоби середовища виконання CLI | Форматування команд, очікування, допоміжні засоби версій | - | `plugin-sdk/gateway-runtime` | Допоміжні засоби Gateway | Клієнт Gateway і допоміжні засоби патчів статусу каналу | + | `plugin-sdk/process-runtime` | Допоміжні засоби process | Спільні допоміжні засоби exec | + | `plugin-sdk/cli-runtime` | Допоміжні засоби CLI runtime | Форматування команд, очікування, допоміжні засоби версій | + | `plugin-sdk/gateway-runtime` | Допоміжні засоби Gateway | Клієнт Gateway і допоміжні засоби patch стану каналу | | `plugin-sdk/config-runtime` | Допоміжні засоби конфігурації | Допоміжні засоби завантаження/запису конфігурації | - | `plugin-sdk/telegram-command-config` | Допоміжні засоби команд Telegram | Стабільні резервні допоміжні засоби перевірки команд Telegram, коли поверхня контракту вбудованого Telegram недоступна | - | `plugin-sdk/approval-runtime` | Допоміжні засоби запитів на схвалення | Допоміжні засоби payload схвалення exec/Plugin, допоміжні засоби capability/profile схвалення, допоміжні засоби маршрутизації/середовища виконання рідного схвалення та форматування структурованого шляху відображення схвалення | - | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби auth схвалення | Визначення approver, auth дій у тому самому чаті | - | `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта схвалення | Допоміжні засоби профілю/фільтра рідного схвалення exec | - | `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби доставки схвалення | Адаптери capability/доставки рідного схвалення | - | `plugin-sdk/approval-gateway-runtime` | Допоміжні засоби Gateway схвалення | Спільний допоміжний засіб визначення Gateway схвалення | - | `plugin-sdk/approval-handler-adapter-runtime` | Допоміжні засоби адаптера схвалення | Легковагові допоміжні засоби завантаження адаптера рідного схвалення для гарячих точок входу каналу | - | `plugin-sdk/approval-handler-runtime` | Допоміжні засоби обробника схвалення | Ширші допоміжні засоби середовища виконання обробника схвалення; надавайте перевагу вужчим швам adapter/gateway, коли їх достатньо | - | `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілей схвалення | Допоміжні засоби прив’язки цілей/облікових записів рідного схвалення | - | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповідей на схвалення | Допоміжні засоби payload відповіді на схвалення exec/Plugin | - | `plugin-sdk/channel-runtime-context` | Допоміжні засоби runtime-context каналу | Загальні допоміжні засоби register/get/watch для runtime-context каналу | - | `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби trust, DM gating, external-content і збору секретів | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби команд Telegram | Стабільні fallback-допоміжні засоби валідації команд Telegram, коли поверхня контракту вбудованого Telegram недоступна | + | `plugin-sdk/approval-runtime` | Допоміжні засоби prompt approval | Допоміжні засоби payload approval exec/plugin, capability/profile approval, нативної маршрутизації/runtime approval і форматування шляху структурованого відображення approval | + | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби auth approval | Визначення approver, auth дій у тому самому чаті | + | `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта approval | Допоміжні засоби профілю/фільтра нативного exec approval | + | `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби доставки approval | Адаптери capability/доставки нативного approval | + | `plugin-sdk/approval-gateway-runtime` | Допоміжні засоби Gateway approval | Спільний допоміжний засіб визначення approval gateway | + | `plugin-sdk/approval-handler-adapter-runtime` | Допоміжні засоби адаптера approval | Полегшені допоміжні засоби завантаження адаптера нативного approval для гарячих точок входу каналів | + | `plugin-sdk/approval-handler-runtime` | Допоміжні засоби обробника approval | Ширші допоміжні засоби runtime обробника approval; віддавайте перевагу вужчим швам adapter/gateway, якщо їх достатньо | + | `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілі approval | Допоміжні засоби прив’язки цілі/облікового запису нативного approval | + | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповіді approval | Допоміжні засоби payload відповіді approval exec/plugin | + | `plugin-sdk/channel-runtime-context` | Допоміжні засоби runtime-context каналу | Універсальні допоміжні засоби register/get/watch для runtime-context каналу | + | `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби trust, DM gating, external-content і збирання секретів | | `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF | Допоміжні засоби allowlist хостів і політики приватної мережі | - | `plugin-sdk/ssrf-runtime` | Допоміжні засоби середовища виконання SSRF | Допоміжні засоби pinned-dispatcher, guarded fetch, політики SSRF | + | `plugin-sdk/ssrf-runtime` | Допоміжні засоби SSRF runtime | Допоміжні засоби pinned-dispatcher, guarded fetch, SSRF policy | | `plugin-sdk/collection-runtime` | Допоміжні засоби обмеженого кешу | `pruneMapToMaxSize` | | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби керування діагностикою | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` | | `plugin-sdk/error-runtime` | Допоміжні засоби форматування помилок | `formatUncaughtError`, `isApprovalNotFoundError`, допоміжні засоби графа помилок | - | `plugin-sdk/fetch-runtime` | Обгорнуті допоміжні засоби fetch/proxy | `resolveFetch`, допоміжні засоби proxy | + | `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch/proxy | `resolveFetch`, допоміжні засоби proxy | | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації хоста | `normalizeHostname`, `normalizeScpRemoteHost` | - | `plugin-sdk/retry-runtime` | Допоміжні засоби retry | `RetryConfig`, `retryAsync`, виконавці політик | + | `plugin-sdk/retry-runtime` | Допоміжні засоби retry | `RetryConfig`, `retryAsync`, виконавці policy | | `plugin-sdk/allow-from` | Форматування allowlist | `formatAllowFromLowercase` | - | `plugin-sdk/allowlist-resolution` | Відображення вхідних даних allowlist | `mapAllowlistResolutionInputs` | - | `plugin-sdk/command-auth` | Керування командами та допоміжні засоби поверхні команд | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд | - | `plugin-sdk/command-status` | Засоби відображення статусу/довідки команд | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` | + | `plugin-sdk/allowlist-resolution` | Мапування входів allowlist | `mapAllowlistResolutionInputs` | + | `plugin-sdk/command-auth` | Керування доступом до команд і допоміжні засоби поверхні команд | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд, зокрема форматування меню динамічних аргументів | + | `plugin-sdk/command-status` | Рендерери стану/довідки команд | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` | | `plugin-sdk/secret-input` | Розбір секретного вводу | Допоміжні засоби секретного вводу | | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів Webhook | Утиліти цілей Webhook | | `plugin-sdk/webhook-request-guards` | Допоміжні засоби guard для тіла запиту Webhook | Допоміжні засоби читання/обмеження тіла запиту | - | `plugin-sdk/reply-runtime` | Спільне середовище виконання відповідей | Вхідна диспетчеризація, Heartbeat, planner відповідей, chunking | - | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації відповідей | Допоміжні засоби finalize, dispatch провайдера та міток розмов | + | `plugin-sdk/reply-runtime` | Спільний runtime відповідей | Inbound dispatch, Heartbeat, планувальник відповідей, chunking | + | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch відповідей | Фіналізація, dispatch provider і допоміжні засоби міток conversation | | `plugin-sdk/reply-history` | Допоміжні засоби історії відповідей | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` | | `plugin-sdk/reply-reference` | Планування посилань відповіді | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Допоміжні засоби фрагментації відповідей | Допоміжні засоби chunking тексту/markdown | - | `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій | Допоміжні засоби шляху сховища + updated-at | - | `plugin-sdk/state-paths` | Допоміжні засоби шляхів стану | Допоміжні засоби каталогів state і OAuth | + | `plugin-sdk/reply-chunking` | Допоміжні засоби chunk відповідей | Допоміжні засоби chunking тексту/markdown | + | `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища session | Допоміжні засоби шляху сховища + updated-at | + | `plugin-sdk/state-paths` | Допоміжні засоби шляхів стану | Допоміжні засоби каталогів стану та OAuth | | `plugin-sdk/routing` | Допоміжні засоби маршрутизації/session-key | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, допоміжні засоби нормалізації session-key | - | `plugin-sdk/status-helpers` | Допоміжні засоби статусу каналу | Конструктори підсумків статусу каналу/облікового запису, значення runtime-state за замовчуванням, допоміжні засоби метаданих проблем | - | `plugin-sdk/target-resolver-runtime` | Допоміжні засоби визначення цілі | Спільні допоміжні засоби визначення цілі | + | `plugin-sdk/status-helpers` | Допоміжні засоби стану каналу | Builder-и зведення стану каналу/облікового запису, значення runtime-state за замовчуванням, допоміжні засоби метаданих проблем | + | `plugin-sdk/target-resolver-runtime` | Допоміжні засоби визначення цілей | Спільні допоміжні засоби визначення цілей | | `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації рядків | Допоміжні засоби нормалізації slug/рядків | - | `plugin-sdk/request-url` | Допоміжні засоби URL запитів | Витягування рядкових URL з об’єктів, подібних до запитів | - | `plugin-sdk/run-command` | Допоміжні засоби команд із таймерами | Виконавець команд із таймером і нормалізованими stdout/stderr | - | `plugin-sdk/param-readers` | Зчитувачі параметрів | Поширені зчитувачі параметрів tool/CLI | - | `plugin-sdk/tool-payload` | Витягування payload tool | Витягування нормалізованих payload з об’єктів результатів інструментів | - | `plugin-sdk/tool-send` | Витягування надсилання tool | Витягування канонічних полів цілі надсилання з аргументів tool | - | `plugin-sdk/temp-path` | Допоміжні засоби тимчасових шляхів | Спільні допоміжні засоби тимчасових шляхів завантаження | - | `plugin-sdk/logging-core` | Допоміжні засоби логування | Допоміжні засоби logger підсистем і редагування | - | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби markdown-таблиць | Допоміжні засоби режимів markdown-таблиць | - | `plugin-sdk/reply-payload` | Типи відповідей повідомлень | Типи 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` | Допоміжні засоби auth середовища виконання провайдера | Допоміжні засоби визначення API-ключів під час виконання | - | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби налаштування API-ключа провайдера | Допоміжні засоби онбордингу/запису профілю API-ключа | - | `plugin-sdk/provider-auth-result` | Допоміжні засоби результатів auth провайдера | Стандартний конструктор auth-result OAuth | - | `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного login провайдера | Спільні допоміжні засоби інтерактивного login | - | `plugin-sdk/provider-selection-runtime` | Допоміжні засоби вибору провайдера | Допоміжні засоби вибору налаштованого або автоматичного провайдера та злиття сирої конфігурації провайдера | - | `plugin-sdk/provider-env-vars` | Допоміжні засоби env-var провайдера | Допоміжні засоби пошуку env-var auth провайдера | - | `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделей/replay провайдерів | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори replay-policy, допоміжні засоби endpoint провайдерів і допоміжні засоби нормалізації model-id | - | `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу провайдерів | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-onboard` | Патчі онбордингу провайдера | Допоміжні засоби конфігурації онбордингу | - | `plugin-sdk/provider-http` | Допоміжні засоби HTTP провайдера | Загальні допоміжні засоби HTTP/endpoint capability провайдера, зокрема допоміжні засоби multipart form для транскрибування аудіо | - | `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch провайдера | Допоміжні засоби реєстрації/кешу провайдера web-fetch | - | `plugin-sdk/provider-web-search-config-contract` | Допоміжні засоби конфігурації web-search провайдера | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення enable Plugin | - | `plugin-sdk/provider-web-search-contract` | Допоміжні засоби контракту web-search провайдера | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setters/getters облікових даних | - | `plugin-sdk/provider-web-search` | Допоміжні засоби web-search провайдера | Допоміжні засоби реєстрації/кешу/середовища виконання провайдера web-search | - | `plugin-sdk/provider-tools` | Допоміжні засоби compat tool/schema провайдера | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, cleanup + diagnostics схеми Gemini і допоміжні засоби compat xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | - | `plugin-sdk/provider-usage` | Допоміжні засоби usage провайдера | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші допоміжні засоби usage провайдера | - | `plugin-sdk/provider-stream` | Допоміжні засоби обгортки stream провайдера | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток stream і спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | - | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби транспорту провайдера | Рідні допоміжні засоби транспорту провайдера, такі як guarded fetch, transforms повідомлень транспорту та writable event streams транспорту | - | `plugin-sdk/keyed-async-queue` | Упорядкована async-черга | `KeyedAsyncQueue` | - | `plugin-sdk/media-runtime` | Спільні допоміжні засоби медіа | Допоміжні засоби fetch/transform/store для медіа, а також конструктори media payload | - | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби генерації медіа | Спільні допоміжні засоби failover, вибору candidate та повідомлень про відсутню модель для генерації зображень/відео/музики | - | `plugin-sdk/media-understanding` | Допоміжні засоби media-understanding | Типи провайдерів media understanding, а також експортовані допоміжні засоби зображень/аудіо для провайдерів | - | `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту | Видалення видимого для асистента тексту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування, допоміжні засоби directive-tag, safe-text utilities і пов’язані допоміжні засоби тексту/логування | - | `plugin-sdk/text-chunking` | Допоміжні засоби фрагментації тексту | Допоміжний засіб chunking вихідного тексту | - | `plugin-sdk/speech` | Допоміжні засоби мовлення | Типи провайдерів мовлення, а також допоміжні засоби directive, registry і validation для провайдерів | - | `plugin-sdk/speech-core` | Спільне ядро мовлення | Типи провайдерів мовлення, registry, directives, normalізація | - | `plugin-sdk/realtime-transcription` | Допоміжні засоби транскрибування в realtime | Типи провайдерів, допоміжні засоби registry і спільний допоміжний засіб сесії WebSocket | - | `plugin-sdk/realtime-voice` | Допоміжні засоби голосу в realtime | Типи провайдерів, допоміжні засоби registry/resolution і допоміжні засоби bridge session | - | `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Типи генерації зображень, допоміжні засоби failover, auth і registry | - | `plugin-sdk/music-generation` | Допоміжні засоби генерації музики | Типи провайдерів/запитів/результатів генерації музики | - | `plugin-sdk/music-generation-core` | Спільне ядро генерації музики | Типи генерації музики, допоміжні засоби failover, пошук провайдера та парсинг model-ref | - | `plugin-sdk/video-generation` | Допоміжні засоби генерації відео | Типи провайдерів/запитів/результатів генерації відео | - | `plugin-sdk/video-generation-core` | Спільне ядро генерації відео | Типи генерації відео, допоміжні засоби failover, пошук провайдера та парсинг model-ref | - | `plugin-sdk/interactive-runtime` | Допоміжні засоби інтерактивних відповідей | Нормалізація/редукція payload інтерактивних відповідей | + | `plugin-sdk/request-url` | Допоміжні засоби URL запиту | Витягування рядкових URL із request-подібних входів | + | `plugin-sdk/run-command` | Допоміжні засоби команд із таймінгом | Виконавець команд із таймінгом і нормалізованими stdout/stderr | + | `plugin-sdk/param-readers` | Зчитувачі параметрів | Поширені зчитувачі параметрів інструментів/CLI | + | `plugin-sdk/tool-payload` | Витягування payload інструментів | Витягування нормалізованих payload з об’єктів результатів інструментів | + | `plugin-sdk/tool-send` | Витягування надсилання інструментів | Витягування канонічних полів цілі надсилання з аргументів інструмента | + | `plugin-sdk/temp-path` | Допоміжні засоби тимчасових шляхів | Спільні допоміжні засоби шляхів для тимчасового завантаження | + | `plugin-sdk/logging-core` | Допоміжні засоби логування | Допоміжні засоби logger підсистеми та редагування чутливих даних | + | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби markdown-table | Допоміжні засоби режимів markdown table | + | `plugin-sdk/reply-payload` | Типи reply повідомлень | Типи reply payload | + | `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локального/self-hosted provider | Допоміжні засоби виявлення/конфігурації self-hosted provider | + | `plugin-sdk/self-hosted-provider-setup` | Вузькоспрямовані допоміжні засоби налаштування self-hosted provider, сумісного з OpenAI | Ті самі допоміжні засоби виявлення/конфігурації self-hosted provider | + | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби runtime auth provider | Допоміжні засоби визначення API-key під час runtime | + | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби налаштування API-key provider | Допоміжні засоби онбордингу/запису профілю API-key | + | `plugin-sdk/provider-auth-result` | Допоміжні засоби результату auth provider | Стандартний builder результату OAuth auth | + | `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного входу provider | Спільні допоміжні засоби інтерактивного входу | + | `plugin-sdk/provider-selection-runtime` | Допоміжні засоби вибору provider | Вибір налаштованого або автоматичного provider і злиття сирої конфігурації provider | + | `plugin-sdk/provider-env-vars` | Допоміжні засоби env vars provider | Допоміжні засоби пошуку env vars auth provider | + | `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделей/replay provider | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні builder-и replay-policy, допоміжні засоби endpoint provider і нормалізації model-id | + | `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу provider | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | + | `plugin-sdk/provider-onboard` | Патчі онбордингу provider | Допоміжні засоби конфігурації онбордингу | + | `plugin-sdk/provider-http` | Допоміжні засоби HTTP provider | Універсальні допоміжні засоби HTTP/endpoint capability provider, зокрема допоміжні засоби multipart form для аудіотранскрипції | + | `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch provider | Допоміжні засоби реєстрації/кешу provider web-fetch | + | `plugin-sdk/provider-web-search-config-contract` | Допоміжні засоби конфігурації web-search provider | Вузькі допоміжні засоби конфігурації/облікових даних web-search для provider, яким не потрібне підключення plugin-enable | + | `plugin-sdk/provider-web-search-contract` | Допоміжні засоби контракту web-search provider | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter-и/getter-и облікових даних | + | `plugin-sdk/provider-web-search` | Допоміжні засоби web-search provider | Допоміжні засоби реєстрації/кешу/runtime provider web-search | + | `plugin-sdk/provider-tools` | Допоміжні засоби сумісності інструментів/схем 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/provider-transport-runtime` | Допоміжні засоби транспорту provider | Нативні допоміжні засоби транспорту provider, такі як guarded fetch, перетворення transport message і записувані потоки transport event | + | `plugin-sdk/keyed-async-queue` | Впорядкована асинхронна черга | `KeyedAsyncQueue` | + | `plugin-sdk/media-runtime` | Спільні допоміжні засоби медіа | Допоміжні засоби fetch/transform/store медіа, а також builder-и media payload | + | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби генерації медіа | Спільні допоміжні засоби failover, вибору candidate і повідомлень про відсутню модель для генерації зображень/відео/музики | + | `plugin-sdk/media-understanding` | Допоміжні засоби media-understanding | Типи provider media understanding, а також орієнтовані на provider експорти допоміжних засобів зображень/аудіо | + | `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту | Вилучення assistant-visible-text, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування чутливих даних, допоміжні засоби directive-tag, утиліти safe-text та пов’язані допоміжні засоби text/logging | + | `plugin-sdk/text-chunking` | Допоміжні засоби chunking тексту | Допоміжний засіб outbound text chunking | + | `plugin-sdk/speech` | Допоміжні засоби мовлення | Типи provider мовлення, а також орієнтовані на provider допоміжні засоби директив, реєстру й валідації | + | `plugin-sdk/speech-core` | Спільне ядро мовлення | Типи provider мовлення, реєстр, директиви, нормалізація | + | `plugin-sdk/realtime-transcription` | Допоміжні засоби транскрипції в реальному часі | Типи provider, допоміжні засоби реєстру та спільний допоміжний засіб WebSocket session | + | `plugin-sdk/realtime-voice` | Допоміжні засоби голосу в реальному часі | Типи provider, допоміжні засоби реєстру/визначення та допоміжні засоби bridge session | + | `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Типи генерації зображень, failover, auth і допоміжні засоби реєстру | + | `plugin-sdk/music-generation` | Допоміжні засоби генерації музики | Типи provider/request/result для генерації музики | + | `plugin-sdk/music-generation-core` | Спільне ядро генерації музики | Типи генерації музики, допоміжні засоби failover, пошуку provider і розбору model-ref | + | `plugin-sdk/video-generation` | Допоміжні засоби генерації відео | Типи provider/request/result для генерації відео | + | `plugin-sdk/video-generation-core` | Спільне ядро генерації відео | Типи генерації відео, допоміжні засоби failover, пошуку provider і розбору model-ref | + | `plugin-sdk/interactive-runtime` | Допоміжні засоби інтерактивної відповіді | Нормалізація/редукція payload інтерактивної відповіді | | `plugin-sdk/channel-config-primitives` | Примітиви конфігурації каналу | Вузькі примітиви channel config-schema | | `plugin-sdk/channel-config-writes` | Допоміжні засоби запису конфігурації каналу | Допоміжні засоби авторизації запису конфігурації каналу | - | `plugin-sdk/channel-plugin-common` | Спільний прелюд каналу | Експорти спільного прелюду Plugin каналу | - | `plugin-sdk/channel-status` | Допоміжні засоби статусу каналу | Спільні допоміжні засоби snapshot/summary статусу каналу | + | `plugin-sdk/channel-plugin-common` | Спільний прелюд каналу | Експорти спільного прелюду channel plugin | + | `plugin-sdk/channel-status` | Допоміжні засоби стану каналу | Спільні допоміжні засоби snapshot/summary стану каналу | | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби конфігурації allowlist | Допоміжні засоби редагування/читання конфігурації allowlist | - | `plugin-sdk/group-access` | Допоміжні засоби доступу до груп | Спільні допоміжні засоби рішень щодо group-access | + | `plugin-sdk/group-access` | Допоміжні засоби доступу до груп | Спільні допоміжні засоби рішень щодо доступу до груп | | `plugin-sdk/direct-dm` | Допоміжні засоби direct-DM | Спільні допоміжні засоби auth/guard для direct-DM | - | `plugin-sdk/extension-shared` | Спільні допоміжні засоби розширень | Примітиви допоміжних засобів passive-channel/status і ambient proxy | + | `plugin-sdk/extension-shared` | Спільні допоміжні засоби розширень | Примітиви допоміжних засобів passive-channel/status та ambient proxy | | `plugin-sdk/webhook-targets` | Допоміжні засоби цілей Webhook | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів | | `plugin-sdk/webhook-path` | Допоміжні засоби шляхів Webhook | Допоміжні засоби нормалізації шляхів Webhook | | `plugin-sdk/web-media` | Спільні допоміжні засоби вебмедіа | Допоміжні засоби завантаження віддалених/локальних медіа | - | `plugin-sdk/zod` | Повторний експорт Zod | Повторно експортований `zod` для споживачів Plugin SDK | - | `plugin-sdk/memory-core` | Допоміжні засоби вбудованого memory-core | Поверхня допоміжних засобів менеджера/config/file/CLI пам’яті | - | `plugin-sdk/memory-core-engine-runtime` | Фасад середовища виконання рушія пам’яті | Фасад середовища виконання індексу/пошуку пам’яті | - | `plugin-sdk/memory-core-host-engine-foundation` | Базовий рушій хоста пам’яті | Експорти базового рушія хоста пам’яті | - | `plugin-sdk/memory-core-host-engine-embeddings` | Рушій embedding хоста пам’яті | Контракти embedding пам’яті, доступ до registry, локальний провайдер і загальні допоміжні засоби batch/remote; конкретні remote-провайдери живуть у Plugins, яким вони належать | - | `plugin-sdk/memory-core-host-engine-qmd` | Рушій QMD хоста пам’яті | Експорти рушія QMD хоста пам’яті | - | `plugin-sdk/memory-core-host-engine-storage` | Рушій сховища хоста пам’яті | Експорти рушія сховища хоста пам’яті | - | `plugin-sdk/memory-core-host-multimodal` | Допоміжні засоби multimodal хоста пам’яті | Допоміжні засоби multimodal хоста пам’яті | - | `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті | Допоміжні засоби запитів хоста пам’яті | - | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті | Допоміжні засоби секретів хоста пам’яті | - | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті | Допоміжні засоби журналу подій хоста пам’яті | - | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті | Допоміжні засоби статусу хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-cli` | CLI середовища виконання хоста пам’яті | Допоміжні засоби CLI середовища виконання хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-core` | Основне середовище виконання хоста пам’яті | Допоміжні засоби основного середовища виконання хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/середовища виконання хоста пам’яті | Допоміжні засоби файлів/середовища виконання хоста пам’яті | - | `plugin-sdk/memory-host-core` | Псевдонім основного середовища виконання хоста пам’яті | Нейтральний до постачальника псевдонім для допоміжних засобів основного середовища виконання хоста пам’яті | - | `plugin-sdk/memory-host-events` | Псевдонім журналу подій хоста пам’яті | Нейтральний до постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті | - | `plugin-sdk/memory-host-files` | Псевдонім файлів/середовища виконання хоста пам’яті | Нейтральний до постачальника псевдонім для допоміжних засобів файлів/середовища виконання хоста пам’яті | - | `plugin-sdk/memory-host-markdown` | Допоміжні засоби керованого markdown | Спільні допоміжні засоби керованого markdown для Plugins, суміжних із пам’яттю | - | `plugin-sdk/memory-host-search` | Фасад пошуку Active Memory | Lazy фасад середовища виконання search-manager для active-memory | - | `plugin-sdk/memory-host-status` | Псевдонім статусу хоста пам’яті | Нейтральний до постачальника псевдонім для допоміжних засобів статусу хоста пам’яті | + | `plugin-sdk/zod` | Повторний експорт Zod | Повторно експортований `zod` для користувачів Plugin SDK | + | `plugin-sdk/memory-core` | Допоміжні засоби вбудованого memory-core | Поверхня допоміжних засобів менеджера memory/config/file/CLI | + | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime рушія memory | Фасад runtime індексації/пошуку memory | + | `plugin-sdk/memory-core-host-engine-foundation` | Foundation engine хоста memory | Експорти foundation engine хоста memory | + | `plugin-sdk/memory-core-host-engine-embeddings` | Embedding engine хоста memory | Контракти embedding memory, доступ до реєстру, локальний provider і універсальні допоміжні засоби batch/remote; конкретні remote provider живуть у своїх відповідних плагінах | + | `plugin-sdk/memory-core-host-engine-qmd` | QMD engine хоста memory | Експорти QMD engine хоста memory | + | `plugin-sdk/memory-core-host-engine-storage` | Storage engine хоста memory | Експорти storage engine хоста 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-events` | Допоміжні засоби журналу подій хоста 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` | Core runtime хоста memory | Допоміжні засоби core runtime хоста memory | + | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста memory | Допоміжні засоби файлів/runtime хоста memory | + | `plugin-sdk/memory-host-core` | Псевдонім core runtime хоста memory | Незалежний від постачальника псевдонім для допоміжних засобів core runtime хоста memory | + | `plugin-sdk/memory-host-events` | Псевдонім журналу подій хоста memory | Незалежний від постачальника псевдонім для допоміжних засобів журналу подій хоста memory | + | `plugin-sdk/memory-host-files` | Псевдонім файлів/runtime хоста memory | Незалежний від постачальника псевдонім для допоміжних засобів файлів/runtime хоста memory | + | `plugin-sdk/memory-host-markdown` | Допоміжні засоби керованого markdown | Спільні допоміжні засоби керованого markdown для плагінів, суміжних із memory | + | `plugin-sdk/memory-host-search` | Фасад пошуку Active Memory | Lazy фасад runtime менеджера пошуку active-memory | + | `plugin-sdk/memory-host-status` | Псевдонім стану хоста memory | Незалежний від постачальника псевдонім для допоміжних засобів стану хоста memory | | `plugin-sdk/memory-lancedb` | Допоміжні засоби вбудованого memory-lancedb | Поверхня допоміжних засобів memory-lancedb | - | `plugin-sdk/testing` | Утиліти тестування | Допоміжні засоби тестування та mock-об’єкти | + | `plugin-sdk/testing` | Утиліти тестування | Допоміжні засоби тестування та mocks | Ця таблиця навмисно містить поширену підмножину для міграції, а не всю -поверхню SDK. Повний список із понад 200 точок входу міститься у +поверхню SDK. Повний список із понад 200 точок входу знаходиться в `scripts/lib/plugin-sdk-entrypoints.json`. -Цей список усе ще містить деякі шви допоміжних засобів вбудованих Plugins, як-от +Цей список усе ще містить деякі шви допоміжних засобів вбудованих плагінів, такі як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, -`plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Вони й надалі експортуються для -підтримки та сумісності вбудованих Plugins, але навмисно не включені до -поширеної таблиці міграції та не є рекомендованою ціллю для -нового коду Plugin. +`plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Вони й далі експортуються для +підтримки та сумісності вбудованих плагінів, але навмисно пропущені в +таблиці поширеної міграції й не є рекомендованою ціллю для +нового коду плагінів. Те саме правило застосовується до інших сімейств вбудованих допоміжних засобів, таких як: @@ -397,7 +387,7 @@ OpenClaw не вилучає і не переосмислює задокумен - Matrix: `plugin-sdk/matrix*` - LINE: `plugin-sdk/line*` - IRC: `plugin-sdk/irc*` -- поверхні вбудованих допоміжних засобів/Plugins, як-от `plugin-sdk/googlechat`, +- поверхні вбудованих допоміжних засобів/плагінів, такі як `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`, @@ -406,8 +396,8 @@ 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` наразі надає вузьку поверхню +допоміжних засобів токенів: `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken`. Використовуйте найвужчий імпорт, який відповідає завданню. Якщо ви не можете знайти експорт, @@ -415,19 +405,19 @@ OpenClaw не вилучає і не переосмислює задокумен ## Активні застарівання -Вужчі застарівання, які застосовуються в усьому Plugin SDK, контракті провайдера, -поверхні середовища виконання та маніфесті. Кожен із них і далі працює сьогодні, але буде -вилучений у майбутньому мажорному релізі. Запис під кожним елементом зіставляє старий API -із його канонічною заміною. +Вужчі застарівання, які застосовуються в усьому Plugin SDK, контракті provider, +поверхні runtime і маніфесті. Кожне з них усе ще працює сьогодні, але буде видалене +в одному з майбутніх мажорних релізів. Запис під кожним елементом зіставляє старий API +з його канонічною заміною. - + **Старе (`openclaw/plugin-sdk/command-auth`)**: `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage`. **Нове (`openclaw/plugin-sdk/command-status`)**: ті самі сигнатури, ті самі - експорти — лише імпортовані з вужчого підшляху. `command-auth` - повторно експортує їх як compat-заглушки. + експорти — просто імпортовані з вужчого підшляху. `command-auth` + повторно експортує їх як compat stub-и. ```typescript // Before @@ -448,89 +438,89 @@ OpenClaw не вилучає і не переосмислює задокумен **Нове**: `resolveInboundMentionDecision({ facts, policy })` — повертає єдиний об’єкт рішення замість двох розділених викликів. - Downstream Plugins каналів (Slack, Discord, Matrix, MS Teams) уже - перейшли. + Downstream плагіни каналів (Slack, Discord, Matrix, MS Teams) уже + перейшли на нього. - - `openclaw/plugin-sdk/channel-runtime` — це compat-shim для старіших - Plugins каналів. Не імпортуйте його в новому коді; використовуйте + + `openclaw/plugin-sdk/channel-runtime` — це shim сумісності для старіших + плагінів каналів. Не імпортуйте його в новому коді; використовуйте `openclaw/plugin-sdk/channel-runtime-context` для реєстрації об’єктів - середовища виконання. + runtime. Допоміжні засоби `channelActions*` у `openclaw/plugin-sdk/channel-actions` є - застарілими разом із сирими експортами каналу "actions". Натомість - надавайте можливості через семантичну поверхню `presentation` — Plugins каналів - оголошують, що саме вони відображають (cards, buttons, selects), а не які сирі - назви actions вони приймають. + застарілими разом із сирими експортами дій каналу. Натомість відкривайте + можливості через семантичну поверхню `presentation` — плагіни каналів + оголошують, що саме вони відображають (cards, buttons, selects), а не те, + які сирі назви дій вони приймають. - + **Старе**: фабрика `tool()` з `openclaw/plugin-sdk/provider-web-search`. - **Нове**: реалізуйте `createTool(...)` безпосередньо в Plugin провайдера. - OpenClaw більше не потребує допоміжного засобу SDK для реєстрації обгортки tool. + **Нове**: реалізуйте `createTool(...)` безпосередньо в плагіні provider. + OpenClaw більше не потрібен допоміжний засіб SDK для реєстрації обгортки інструмента. - + **Старе**: `formatInboundEnvelope(...)` (і - `ChannelMessageForAgent.channelEnvelope`) для побудови плоского текстового prompt + `ChannelMessageForAgent.channelEnvelope`) для побудови плаского текстового prompt envelope із вхідних повідомлень каналу. - **Нове**: `BodyForAgent` плюс структуровані блоки контексту користувача. Plugins + **Нове**: `BodyForAgent` плюс структуровані блоки контексту користувача. Плагіни каналів додають метадані маршрутизації (thread, topic, reply-to, reactions) як типізовані поля замість конкатенації їх у рядок prompt. Допоміжний засіб - `formatAgentEnvelope(...)` і далі підтримується для синтезованих envelope, - видимих асистенту, але вхідні текстові envelope уже - поступово виводяться з ужитку. + `formatAgentEnvelope(...)` усе ще підтримується для синтезованих + envelope, орієнтованих на assistant, але вхідні прості текстові envelope + поступово зникають. - Зачеплені області: `inbound_claim`, `message_received` і будь-який користувацький - Plugin каналу, який виконував постобробку тексту `channelEnvelope`. + Зачеплені області: `inbound_claim`, `message_received` і будь-який кастомний + плагін каналу, який постобробляв текст `channelEnvelope`. - - Чотири псевдоніми типів виявлення тепер є тонкими обгортками над - типами епохи каталогу: + + Чотири псевдоніми типів виявлення тепер є тонкими обгортками над типами + епохи каталогу: - | Старий псевдонім | Новий тип | - | ------------------------ | ------------------------ | - | `ProviderDiscoveryOrder` | `ProviderCatalogOrder` | - | `ProviderDiscoveryContext`| `ProviderCatalogContext` | - | `ProviderDiscoveryResult` | `ProviderCatalogResult` | - | `ProviderPluginDiscovery` | `ProviderPluginCatalog` | + | Старий псевдонім | Новий тип | + | --------------------------- | ------------------------- | + | `ProviderDiscoveryOrder` | `ProviderCatalogOrder` | + | `ProviderDiscoveryContext` | `ProviderCatalogContext` | + | `ProviderDiscoveryResult` | `ProviderCatalogResult` | + | `ProviderPluginDiscovery` | `ProviderPluginCatalog` | - А також застарілий статичний набір `ProviderCapabilities` — Plugins провайдерів - мають приєднувати факти можливостей через контракт середовища виконання провайдера, + Плюс застарілий статичний набір `ProviderCapabilities` — плагіни provider + мають приєднувати capability facts через контракт runtime provider, а не через статичний об’єкт. - - **Старе** (три окремі хуки в `ProviderThinkingPolicy`): + + **Старе** (три окремі hook-и в `ProviderThinkingPolicy`): `isBinaryThinking(ctx)`, `supportsXHighThinking(ctx)` і `resolveDefaultThinkingLevel(ctx)`. **Нове**: єдиний `resolveThinkingProfile(ctx)`, який повертає - `ProviderThinkingProfile` із канонічним `id`, необов’язковим `label` і + `ProviderThinkingProfile` з канонічним `id`, необов’язковим `label` і ранжованим списком рівнів. OpenClaw автоматично знижує застарілі збережені значення за рангом профілю. - Реалізуйте один хук замість трьох. Застарілі хуки продовжують працювати протягом - вікна застарівання, але не поєднуються з результатом профілю. + Реалізуйте один hook замість трьох. Застарілі hook-и продовжують працювати + протягом вікна застарівання, але не поєднуються з результатом профілю. - + **Старе**: реалізація `resolveExternalOAuthProfiles(...)` без - оголошення провайдера в маніфесті Plugin. + оголошення provider у маніфесті плагіна. - **Нове**: оголосіть `contracts.externalAuthProviders` у маніфесті Plugin - **і** реалізуйте `resolveExternalAuthProfiles(...)`. Старий шлях "auth - fallback" виводить попередження під час виконання й буде вилучений. + **Нове**: оголосіть `contracts.externalAuthProviders` у маніфесті плагіна + **і** реалізуйте `resolveExternalAuthProfiles(...)`. Старий шлях + "auth fallback" виводить попередження під час runtime і буде видалений. ```json { @@ -542,43 +532,43 @@ OpenClaw не вилучає і не переосмислює задокумен - + **Старе** поле маніфесту: `providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }`. - **Нове**: віддзеркальте той самий пошук env-var у `setup.providers[].envVars` - маніфесту. Це об’єднує метадані env налаштування/статусу в одному - місці та дає змогу уникнути запуску середовища виконання Plugin лише для відповіді на - запити пошуку env-var. + **Нове**: продублюйте той самий пошук env vars у `setup.providers[].envVars` + у маніфесті. Це об’єднує метадані env налаштування/стану в одному + місці та уникає запуску runtime плагіна лише для того, щоб відповісти на + запити пошуку env vars. - `providerAuthEnvVars` і далі підтримується через адаптер сумісності + `providerAuthEnvVars` залишається підтримуваним через адаптер сумісності до завершення вікна застарівання. - + **Старе**: три окремі виклики — `api.registerMemoryPromptSection(...)`, `api.registerMemoryFlushPlan(...)`, `api.registerMemoryRuntime(...)`. - **Нове**: один виклик у API memory-state — + **Нове**: один виклик в API memory-state — `registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime })`. - Ті самі слоти, один виклик реєстрації. Адитивні допоміжні засоби пам’яті + Ті самі слоти, один виклик реєстрації. Додаткові допоміжні засоби memory (`registerMemoryPromptSupplement`, `registerMemoryCorpusSupplement`, - `registerMemoryEmbeddingProvider`) це не зачіпає. + `registerMemoryEmbeddingProvider`) не зачеплені. - + Два застарілі псевдоніми типів усе ще експортуються з `src/plugins/runtime/types.ts`: - | Старе | Нове | - | --------------------------- | ------------------------------- | + | Старе | Нове | + | ----------------------------- | ------------------------------- | | `SubagentReadSessionParams` | `SubagentGetSessionMessagesParams` | | `SubagentReadSessionResult` | `SubagentGetSessionMessagesResult` | - Метод середовища виконання `readSession` є застарілим на користь + Метод runtime `readSession` є застарілим на користь `getSessionMessages`. Та сама сигнатура; старий метод викликає новий. @@ -587,8 +577,8 @@ OpenClaw не вилучає і не переосмислює задокумен **Старе**: `runtime.tasks.flow` (в однині) повертав живий accessor TaskFlow. - **Нове**: `runtime.tasks.flows` (у множині) повертає DTO-based доступ до TaskFlow, - який є безпечним для імпорту і не потребує завантаження повного середовища виконання задач. + **Нове**: `runtime.tasks.flows` (у множині) повертає DTO-орієнтований доступ до TaskFlow, + який безпечний для імпорту й не потребує завантаження повного runtime завдань. ```typescript // Before @@ -599,17 +589,17 @@ OpenClaw не вилучає і не переосмислює задокумен - - Це описано вище в розділі "Як виконати міграцію → Перенесіть розширення результатів інструментів Pi на - проміжне ПЗ". Для повноти тут також зазначено: вилучений шлях лише для Pi + + Розглянуто вище в розділі "Як виконати міграцію → Перенесіть розширення Pi для результатів інструментів на + middleware". Додано тут для повноти: видалений шлях лише для Pi `api.registerEmbeddedExtensionFactory(...)` замінено на - `api.registerAgentToolResultMiddleware(...)` з явним списком середовищ виконання - у `contracts.agentToolResultMiddleware`. + `api.registerAgentToolResultMiddleware(...)` з явним + списком runtime у `contracts.agentToolResultMiddleware`. - `OpenClawSchemaType`, який повторно експортується з `openclaw/plugin-sdk`, тепер є - однорядковим псевдонімом для `OpenClawConfig`. Надавайте перевагу канонічній назві. + `OpenClawSchemaType`, повторно експортований із `openclaw/plugin-sdk`, тепер є + однорядковим псевдонімом для `OpenClawConfig`. Віддавайте перевагу канонічній назві. ```typescript // Before @@ -622,22 +612,22 @@ OpenClaw не вилучає і не переосмислює задокумен -Застарівання на рівні розширень (усередині вбудованих Plugins каналів/провайдерів у -`extensions/`) відстежуються у їхніх власних barrel-файлах `api.ts` і `runtime-api.ts`. -Вони не впливають на контракти сторонніх Plugins і тут не перелічені. -Якщо ви напряму споживаєте локальний barrel вбудованого Plugin, перед +Застарівання на рівні extension (усередині вбудованих channel/provider плагінів у +`extensions/`) відстежуються у їхніх власних barrel-ах `api.ts` і `runtime-api.ts`. +Вони не впливають на контракти сторонніх плагінів і тут не перелічені. +Якщо ви напряму використовуєте локальний barrel вбудованого плагіна, перед оновленням прочитайте коментарі щодо застарівання в цьому barrel. -## Хронологія вилучення +## Часова шкала видалення -| Коли | Що відбувається | -| ---------------------- | ------------------------------------------------------------------------ | -| **Зараз** | Застарілі поверхні виводять попередження під час виконання | -| **Наступний мажорний реліз** | Застарілі поверхні буде вилучено; Plugins, які все ще їх використовують, завершаться з помилкою | +| Коли | Що відбувається | +| --------------------- | ------------------------------------------------------------------------ | +| **Зараз** | Застарілі поверхні виводять попередження під час runtime | +| **Наступний мажорний реліз** | Застарілі поверхні буде видалено; плагіни, які все ще їх використовують, перестануть працювати | -Усі core Plugins уже перенесено. Зовнішнім Plugins слід виконати міграцію -до наступного мажорного релізу. +Усі core-плагіни вже мігровано. Зовнішнім плагінам слід виконати +міграцію до наступного мажорного релізу. ## Тимчасове приглушення попереджень @@ -648,13 +638,13 @@ OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run ``` -Це тимчасовий обхідний механізм, а не постійне рішення. +Це тимчасовий обхідний шлях, а не постійне рішення. -## Пов’язане +## Пов’язані матеріали -- [Початок роботи](/uk/plugins/building-plugins) — створіть свій перший Plugin +- [Початок роботи](/uk/plugins/building-plugins) — створіть свій перший плагін - [Огляд SDK](/uk/plugins/sdk-overview) — повний довідник імпортів підшляхів -- [Plugins каналів](/uk/plugins/sdk-channel-plugins) — створення Plugins каналів -- [Plugins провайдерів](/uk/plugins/sdk-provider-plugins) — створення Plugins провайдерів -- [Внутрішня будова Plugin](/uk/plugins/architecture) — глибокий огляд архітектури -- [Маніфест Plugin](/uk/plugins/manifest) — довідник схеми маніфесту +- [Плагіни каналів](/uk/plugins/sdk-channel-plugins) — створення плагінів каналів +- [Плагіни provider](/uk/plugins/sdk-provider-plugins) — створення плагінів provider +- [Внутрішня будова плагінів](/uk/plugins/architecture) — глибоке занурення в архітектуру +- [Маніфест плагіна](/uk/plugins/manifest) — довідник зі схеми маніфесту diff --git a/docs/uk/plugins/sdk-subpaths.md b/docs/uk/plugins/sdk-subpaths.md index 941eb06f8..1fdfd006e 100644 --- a/docs/uk/plugins/sdk-subpaths.md +++ b/docs/uk/plugins/sdk-subpaths.md @@ -1,27 +1,27 @@ --- read_when: - - Вибір правильного підшляху plugin-sdk для імпорту Plugin + - Вибір правильного підшляху plugin-sdk для імпорту плагіна - Аудит підшляхів bundled-plugin і допоміжних поверхонь summary: 'Каталог підшляхів Plugin SDK: які імпорти де знаходяться, згруповано за областями' title: Підшляхи Plugin SDK x-i18n: - generated_at: "2026-04-25T03:24:44Z" + generated_at: "2026-04-25T09:41:24Z" model: gpt-5.4 provider: openai - source_hash: 0ff08a1f6801329cd9c20353e77983c3333a4237db9217d19a621b670c1b636f + source_hash: 47598d82cccc14708d9a4f6fbb3ce29bfa876e3808e335de7572d166ce0c5386 source_path: plugins/sdk-subpaths.md workflow: 15 --- - Plugin SDK представлено як набір вузьких підшляхів у `openclaw/plugin-sdk/`. - На цій сторінці наведено каталог найуживаніших підшляхів, згрупованих за призначенням. Згенерований + Plugin SDK надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`. + На цій сторінці каталогізовано найуживаніші підшляхи, згруповані за призначенням. Згенерований повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`; - зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але є деталлю + зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але є деталями реалізації, якщо лише сторінка документації явно не просуває їх. - Посібник з авторства Plugin див. у [Огляд Plugin SDK](/uk/plugins/sdk-overview). + Посібник з авторства плагінів дивіться у [Огляді Plugin SDK](/uk/plugins/sdk-overview). - ## Точка входу Plugin + ## Точка входу плагіна | Підшлях | Ключові експорти | | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | @@ -37,51 +37,51 @@ x-i18n: | `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` | Допоміжні засоби для конфігурації/керування багатьма акаунтами, допоміжні засоби резервного використання акаунта за замовчуванням | - | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації ідентифікатора акаунта | - | `plugin-sdk/account-resolution` | Пошук акаунта + допоміжні засоби резервного використання за замовчуванням | - | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списків акаунтів/дій над акаунтами | + | `plugin-sdk/account-core` | Допоміжні засоби для багатoоблікової конфігурації/шлюзування дій, допоміжні засоби резервного переходу до облікового запису за замовчуванням | + | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id | + | `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 із резервною bundled-contract сумісністю | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервною підтримкою bundled-contract | | `plugin-sdk/command-gating` | Вузькі допоміжні засоби шлюзування авторизації команд | | `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` | | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації чернеткового потоку | - | `plugin-sdk/inbound-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` | Допоміжні засоби доставки вихідних повідомлень, ідентичності, делегата надсилання, сесії, форматування та планування payload | + | `plugin-sdk/outbound-runtime` | Допоміжні засоби доставки вихідних повідомлень, ідентичності, делегування надсилання, сесій, форматування та планування payload | | `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації опитувань | - | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок потоків та адаптерів | - | `plugin-sdk/agent-media-payload` | Застарілий побудовник медіа-payload агента | - | `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмов/потоків, парування та налаштованих прив’язок | - | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації рантайму | - | `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики рантайму | - | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/зведення стану каналу | + | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding і адаптерів | + | `plugin-sdk/agent-media-payload` | Застарілий побудовник media payload агента | + | `plugin-sdk/conversation-runtime` | Допоміжні засоби conversation/thread binding, pairing і configured-binding | + | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime | + | `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` | Спільні prelude-експорти Plugin каналу | - | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist | - | `plugin-sdk/group-access` | Спільні допоміжні засоби для рішень щодо групового доступу | - | `plugin-sdk/direct-dm` | Спільні допоміжні засоби авторизації/захисту прямих DM | + | `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагіна каналу | + | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби читання/редагування конфігурації allowlist | + | `plugin-sdk/group-access` | Спільні допоміжні засоби прийняття рішень щодо group-access | + | `plugin-sdk/direct-dm` | Спільні допоміжні засоби авторизації/захисту для direct-DM | | `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні засоби інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) | - | `plugin-sdk/channel-inbound` | Barrel зворотної сумісності для debounce вхідних повідомлень, зіставлення згадок, допоміжних засобів політики згадок і допоміжних засобів конверта | - | `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce для вхідних повідомлень | + | `plugin-sdk/channel-inbound` | Barrel сумісності для допоміжних засобів debounce вхідних повідомлень, зіставлення згадок, політики згадок і допоміжних засобів envelope | + | `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce вхідних повідомлень | | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадок і тексту згадок без ширшої поверхні inbound runtime | - | `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування конверта вхідних повідомлень | - | `plugin-sdk/channel-location` | Допоміжні засоби контексту й форматування розташування каналу | - | `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для відкидання вхідних повідомлень і збоїв typing/ack | - | `plugin-sdk/channel-send-result` | Типи результату відповіді | - | `plugin-sdk/channel-actions` | Допоміжні засоби дій над повідомленнями каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin | + | `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування inbound envelope | + | `plugin-sdk/channel-location` | Допоміжні засоби контексту та форматування розташування каналу | + | `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для відкинутих вхідних повідомлень і збоїв typing/ack | + | `plugin-sdk/channel-send-result` | Типи результатів відповіді | + | `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності плагінів | | `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення цілей | - | `plugin-sdk/channel-contract` | Типи контракту каналу | + | `plugin-sdk/channel-contract` | Типи контрактів каналу | | `plugin-sdk/channel-feedback` | Підключення feedback/reaction | | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target | @@ -92,128 +92,128 @@ x-i18n: | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` | | `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локального/self-hosted провайдера | | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдера, сумісного з OpenAI | - | `plugin-sdk/cli-backend` | Значення CLI backend за замовчуванням + константи watchdog | - | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в рантаймі для Plugin провайдерів | + | `plugin-sdk/cli-backend` | Типові значення CLI backend і константи watchdog | + | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в runtime для плагінів провайдерів | | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа, такі як `upsertApiKeyProfile` | | `plugin-sdk/provider-auth-result` | Стандартний побудовник результату OAuth-автентифікації | - | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для Plugin провайдерів | - | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars для автентифікації провайдера | + | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів | + | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env var для автентифікації провайдера | | `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` | - | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політики replay, допоміжні засоби endpoint провайдера та допоміжні засоби нормалізації ідентифікатора моделі, такі як `normalizeNativeXaiModelId` | + | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники replay-policy, допоміжні засоби endpoint провайдера та засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` | | `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-http` | Загальні допоміжні засоби можливостей HTTP/endpoint провайдера, HTTP-помилки провайдера та допоміжні засоби multipart form для аудіотранскрипції | + | `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint провайдера, помилки HTTP провайдера та допоміжні засоби multipart form для транскрипції аудіо | | `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту конфігурації/вибору web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` | - | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування провайдера web-fetch | - | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення вмикання Plugin | - | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і обмежені сетери/гетери облікових даних | - | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime провайдера web-search | - | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | - | `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібне | - | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоку та спільні допоміжні засоби обгорток для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | - | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби native transport провайдера, такі як guarded fetch, перетворення transport message і потоки подій writable transport | - | `plugin-sdk/provider-onboard` | Допоміжні засоби patch конфігурації онбордингу | + | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування web-fetch провайдера | + | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення увімкнення плагіна | + | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped-сетери/гетери облікових даних | + | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime web-search провайдера | + | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | + | `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні | + | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | + | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби native transport провайдера, такі як guarded fetch, перетворення transport message та потоки подій writable transport | + | `plugin-sdk/provider-onboard` | Допоміжні засоби внесення patch у конфігурацію онбордингу | | `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache | - | `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації групи та розбору команд | + | `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації груп і розбору команд | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника | - | `plugin-sdk/command-status` | Побудовники команд/довідкових повідомлень, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` | - | `plugin-sdk/approval-auth-runtime` | Визначення затверджувача та допоміжні засоби автентифікації дій у тому самому чаті | - | `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval | - | `plugin-sdk/approval-delivery-runtime` | Native адаптери можливостей/доставки approval | + | `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, включно з форматуванням меню динамічних аргументів, допоміжні засоби авторизації відправника | + | `plugin-sdk/command-status` | Побудовники повідомлень команд/довідки, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` | + | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і авторизації дій у тому самому чаті | + | `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілів/фільтрів native exec approval | + | `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки native approval | | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення approval gateway | - | `plugin-sdk/approval-handler-adapter-runtime` | Легковагові допоміжні засоби завантаження native approval adapter для гарячих точок входу каналу | - | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби approval handler runtime; надавайте перевагу вужчим adapter/gateway seams, коли їх достатньо | - | `plugin-sdk/approval-native-runtime` | Допоміжні засоби native approval target + прив’язки акаунта | - | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби reply payload для exec/plugin approval | - | `plugin-sdk/approval-runtime` | Допоміжні засоби payload для exec/plugin approval, допоміжні засоби native approval routing/runtime і допоміжні засоби структурованого відображення approval, такі як `formatApprovalDisplayPath` | + | `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження native approval adapter для гарячих точок входу каналів | + | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби approval handler runtime; віддавайте перевагу вужчим adapter/gateway seam, коли їх достатньо | + | `plugin-sdk/approval-native-runtime` | Допоміжні засоби native approval target і account-binding | + | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді exec/plugin approval | + | `plugin-sdk/approval-runtime` | Допоміжні засоби payload exec/plugin approval, допоміжні засоби маршрутизації/runtime native approval і структуровані допоміжні засоби відображення approval, такі як `formatApprovalDisplayPath` | | `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання дедуплікації вхідних відповідей | | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контракту каналу без широкого testing barrel | - | `plugin-sdk/command-auth-native` | Native command auth + допоміжні засоби native session-target | + | `plugin-sdk/command-auth-native` | Допоміжні засоби native command auth, форматування меню динамічних аргументів і native session-target | | `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд | - | `plugin-sdk/command-primitives-runtime` | Легковагові предикати тексту команд для гарячих шляхів каналу | - | `plugin-sdk/command-surface` | Нормалізація command-body і допоміжні засоби command-surface | + | `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для гарячих шляхів каналів | + | `plugin-sdk/command-surface` | Допоміжні засоби нормалізації command-body і command-surface | | `plugin-sdk/allow-from` | `formatAllowFromLowercase` | - | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь секретів каналу/plugin | + | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збору secret-contract для поверхонь секретів каналу/плагіна | | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config | | `plugin-sdk/security-runtime` | Спільні допоміжні засоби trust, DM gating, external-content і збирання секретів | | `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватних мереж | | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої поверхні infra runtime | - | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF і політики SSRF | + | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, SSRF-guarded fetch і політики SSRF | | `plugin-sdk/secret-input` | Допоміжні засоби розбору secret input | - | `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі Webhook | + | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей Webhook | | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру body/timeout запиту | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/встановлення plugin | + | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/встановлення плагінів | | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env, logger, timeout, retry і backoff | | `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку channel runtime-context | | `plugin-sdk/runtime-store` | `createPluginRuntimeStore` | - | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive для plugin | + | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби plugin command/hook/http/interactive | | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра webhook/internal hook | | `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime import/binding, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` | - | `plugin-sdk/process-runtime` | Допоміжні засоби виконання процесів | - | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування та версій | - | `plugin-sdk/gateway-runtime` | Допоміжні засоби gateway client і channel-status patch | - | `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису config і допоміжні засоби пошуку plugin-config | - | `plugin-sdk/telegram-command-config` | Нормалізація імені/опису команд Telegram та перевірки дублікатів/конфліктів, навіть коли поверхня bundled Telegram contract недоступна | + | `plugin-sdk/process-runtime` | Допоміжні засоби exec process | + | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування, очікування та версій CLI | + | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway і patch статусу каналу | + | `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації та пошуку plugin-config | + | `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня bundled Telegram contract недоступна | | `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файлові посилання без широкого text-runtime barrel | - | `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники approval-capability, допоміжні засоби auth/profile, native routing/runtime helpers і форматування шляху структурованого відображення approval | - | `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/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники approval-capability, допоміжні засоби auth/profile, допоміжні засоби native routing/runtime і форматування шляху структурованого відображення approval | + | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, Heartbeat, планувальник відповіді | + | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді та міток conversation | + | `plugin-sdk/reply-history` | Спільні допоміжні засоби reply-history для короткого вікна, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` | | `plugin-sdk/reply-reference` | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown | - | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій + `updated-at` | - | `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів state/OAuth | + | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/Markdown | + | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху session store і `updated-at` | + | `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів state/OAuth | | `plugin-sdk/routing` | Допоміжні засоби route/session-key/account binding, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` | - | `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення стану каналу/акаунта, значення runtime-state за замовчуванням і допоміжні засоби метаданих issue | + | `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу каналу/облікового запису, типові значення runtime-state і допоміжні засоби метаданих проблем | | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби target resolver | | `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків | - | `plugin-sdk/request-url` | Видобування рядкових URL із входів, подібних до fetch/request | - | `plugin-sdk/run-command` | Виконавець команд із таймером і нормалізованими результатами stdout/stderr | - | `plugin-sdk/param-readers` | Загальні зчитувачі параметрів tool/CLI | - | `plugin-sdk/tool-payload` | Видобування нормалізованих payload із об’єктів результатів tool | - | `plugin-sdk/tool-send` | Видобування канонічних полів цілі надсилання з аргументів tool | - | `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасового завантаження | - | `plugin-sdk/logging-core` | Допоміжні засоби subsystem logger і редагування чутливих даних | + | `plugin-sdk/request-url` | Витягання рядкових URL з fetch/request-подібних вхідних даних | + | `plugin-sdk/run-command` | Виконавець команд із таймуванням і нормалізованими результатами stdout/stderr | + | `plugin-sdk/param-readers` | Поширені засоби читання параметрів tool/CLI | + | `plugin-sdk/tool-payload` | Витягання нормалізованих payload з об'єктів результатів tool | + | `plugin-sdk/tool-send` | Витягання канонічних полів цілі надсилання з аргументів tool | + | `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів до тимчасових завантажень | + | `plugin-sdk/logging-core` | Допоміжні засоби системного logger і редагування чутливих даних | | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму таблиць Markdown і конвертації | | `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON | - | `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідного file-lock | + | `plugin-sdk/file-lock` | Реентерабельні допоміжні засоби file-lock | | `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу дедуплікації з дисковим зберіганням | - | `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/session і reply-dispatch для ACP | - | `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язок ACP лише для читання без import запуску життєвого циклу | - | `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента | - | `plugin-sdk/boolean-param` | Нестрогий зчитувач булевих параметрів | - | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних імен | - | `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токенів парування | + | `plugin-sdk/acp-runtime` | Допоміжні засоби ACP runtime/session і dispatch відповідей | + | `plugin-sdk/acp-binding-resolve-runtime` | Лише читання для визначення ACP binding без імпортів запуску життєвого циклу | + | `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 і ambient proxy | | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді `/models` command/provider | - | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills | - | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native команд | - | `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort для active-run, допоміжні засоби мосту tool OpenClaw, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб | + | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби виведення списку команд Skills | + | `plugin-sdk/native-command-registry` | Допоміжні засоби native command registry/build/serialize | + | `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort активного запуску, місток інструментів OpenClaw, допоміжні засоби форматування/detail прогресу tool і утиліти результатів спроб | | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI | | `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/Heartbeat | | `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу | | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців і подій | | `plugin-sdk/error-runtime` | Граф помилок, форматування, спільні допоміжні засоби класифікації помилок, `isApprovalNotFoundError` | - | `plugin-sdk/fetch-runtime` | Обгорнуті допоміжні засоби fetch, proxy і pinned lookup | - | `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без import proxy/guarded-fetch | - | `plugin-sdk/response-limit-runtime` | Зчитувач body відповіді з обмеженням без широкої поверхні media runtime | - | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без маршрутизації configured binding або сховищ парування | - | `plugin-sdk/session-store-runtime` | Допоміжні засоби читання session-store без широких import запису/обслуговування config | - | `plugin-sdk/context-visibility-runtime` | Визначення видимості контексту та фільтрація додаткового контексту без широких import config/security | - | `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення і нормалізації primitive record/string без import markdown/logging | + | `plugin-sdk/fetch-runtime` | Допоміжні засоби wrapped fetch, proxy і pinned lookup | + | `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без імпортів proxy/guarded-fetch | + | `plugin-sdk/response-limit-runtime` | Обмежений reader для body відповіді без широкої поверхні media runtime | + | `plugin-sdk/session-binding-runtime` | Поточний стан binding розмови без configured binding routing або pairing store | + | `plugin-sdk/session-store-runtime` | Допоміжні засоби читання session-store без широких імпортів запису/обслуговування конфігурації | + | `plugin-sdk/context-visibility-runtime` | Визначення видимості контексту та фільтрація додаткового контексту без широких імпортів config/security | + | `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації primitive record/string без імпортів markdown/logging | | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host | | `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і виконавця retry | - | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/робочого простору агента | - | `plugin-sdk/directory-runtime` | Запит/dedup каталогів із підтримкою config | + | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента | + | `plugin-sdk/directory-runtime` | Запит/dedup каталогу на основі конфігурації | | `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` | @@ -222,62 +222,62 @@ x-i18n: | --- | --- | | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store медіа, а також побудовники media payload | | `plugin-sdk/media-store` | Вузькі допоміжні засоби media store, такі як `saveMediaBuffer` | - | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибору кандидатів і повідомлень про відсутню модель | - | `plugin-sdk/media-understanding` | Типи провайдерів media understanding, а також орієнтовані на провайдера допоміжні експорти для зображень/аудіо | - | `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як видалення видимого для помічника тексту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування чутливих даних, допоміжні засоби тегів директив і утиліти безпечного тексту | + | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутню модель | + | `plugin-sdk/media-understanding` | Типи провайдерів media understanding, а також орієнтовані на провайдер експорти допоміжних засобів image/audio | + | `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/Markdown/logging, такі як вилучення assistant-visible-text, допоміжні засоби render/chunking/table для Markdown, допоміжні засоби редагування чутливих даних, допоміжні засоби directive-tag і утиліти безпечного тексту | | `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту | - | `plugin-sdk/speech` | Типи провайдерів мовлення, а також орієнтовані на провайдера допоміжні експорти directive, registry, validation і speech | - | `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, registry, directive, normalization і допоміжні експорти speech | - | `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби registry і спільний допоміжний засіб WebSocket session | - | `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби registry | + | `plugin-sdk/speech` | Типи провайдерів speech, а також орієнтовані на провайдер експорти directive, registry, validation і допоміжних засобів speech | + | `plugin-sdk/speech-core` | Спільні типи провайдерів speech, експорти registry, directive, normalization і допоміжних засобів speech | + | `plugin-sdk/realtime-transcription` | Типи провайдерів realtime transcription, допоміжні засоби registry і спільний допоміжний засіб WebSocket session | + | `plugin-sdk/realtime-voice` | Типи провайдерів realtime voice і допоміжні засоби registry | | `plugin-sdk/image-generation` | Типи провайдерів генерації зображень | | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і registry | - | `plugin-sdk/music-generation` | Типи провайдера/запиту/результату генерації музики | - | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера та розбір model-ref | - | `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео | - | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера та розбір model-ref | - | `plugin-sdk/webhook-targets` | Допоміжні засоби реєстру цілей Webhook і встановлення маршрутів | + | `plugin-sdk/music-generation` | Типи провайдерів/запитів/результатів генерації музики | + | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера і розбір model-ref | + | `plugin-sdk/video-generation` | Типи провайдерів/запитів/результатів генерації відео | + | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера і розбір model-ref | + | `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів | | `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook | | `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа | | `plugin-sdk/zod` | Повторно експортований `zod` для споживачів Plugin SDK | | `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` | - + | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для менеджера/config/файлів/CLI | - | `plugin-sdk/memory-core-engine-runtime` | Runtime facade індексу/пошуку Memory | - | `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста Memory | - | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста Memory, доступ до registry, локальний провайдер і загальні допоміжні засоби batch/remote | - | `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста Memory | - | `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста Memory | - | `plugin-sdk/memory-core-host-multimodal` | Допоміжні засоби multimodal хоста Memory | - | `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста Memory | - | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста Memory | - | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста Memory | - | `plugin-sdk/memory-core-host-status` | Допоміжні засоби стану хоста Memory | - | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста Memory | - | `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста Memory | - | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста Memory | - | `plugin-sdk/memory-host-core` | Нейтральний до постачальника псевдонім для допоміжних засобів core runtime хоста Memory | - | `plugin-sdk/memory-host-events` | Нейтральний до постачальника псевдонім для допоміжних засобів журналу подій хоста Memory | - | `plugin-sdk/memory-host-files` | Нейтральний до постачальника псевдонім для допоміжних засобів файлів/runtime хоста Memory | - | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для plugin, суміжних із memory | - | `plugin-sdk/memory-host-search` | Active Memory runtime facade для доступу до search-manager | - | `plugin-sdk/memory-host-status` | Нейтральний до постачальника псевдонім для допоміжних засобів стану хоста Memory | + | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI helpers | + | `plugin-sdk/memory-core-engine-runtime` | Runtime facade індексу/пошуку пам’яті | + | `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті | + | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до registry, локальний провайдер і загальні batch/remote helpers | + | `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті | + | `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті | + | `plugin-sdk/memory-core-host-multimodal` | Допоміжні засоби multimodal хоста пам’яті | + | `plugin-sdk/memory-core-host-query` | Допоміжні засоби query хоста пам’яті | + | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби secret хоста пам’яті | + | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті | + | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті | + | `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` | Допоміжні засоби file/runtime хоста пам’яті | + | `plugin-sdk/memory-host-core` | Нейтральний щодо постачальника псевдонім для допоміжних засобів core runtime хоста пам’яті | + | `plugin-sdk/memory-host-events` | Нейтральний щодо постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті | + | `plugin-sdk/memory-host-files` | Нейтральний щодо постачальника псевдонім для допоміжних засобів file/runtime хоста пам’яті | + | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого Markdown для плагінів, суміжних із пам’яттю | + | `plugin-sdk/memory-host-search` | Runtime facade Active Memory для доступу до search-manager | + | `plugin-sdk/memory-host-status` | Нейтральний щодо постачальника псевдонім для допоміжних засобів статусу хоста пам’яті | | `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb | | Сімейство | Поточні підшляхи | Призначення | | --- | --- | --- | - | 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` | Допоміжні засоби підтримки bundled browser plugin. `browser-profiles` експортує `resolveBrowserConfig`, `resolveProfile`, `ResolvedBrowserConfig`, `ResolvedBrowserProfile` і `ResolvedBrowserTabCleanupConfig` для нормалізованої форми `browser.tabCleanup`. `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 bundled Matrix | - | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime bundled LINE | - | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів bundled 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` | Шви сумісності/допоміжних засобів bundled каналів | - | Допоміжні засоби для конкретних auth/plugin | `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` | Шви допоміжних засобів bundled feature/plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` | + | Браузер | `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` | Допоміжні засоби підтримки bundled browser plugin. `browser-profiles` експортує `resolveBrowserConfig`, `resolveProfile`, `ResolvedBrowserConfig`, `ResolvedBrowserProfile` і `ResolvedBrowserTabCleanupConfig` для нормалізованої форми `browser.tabCleanup`. `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` | Поверхня bundled Matrix helper/runtime | + | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня bundled LINE helper/runtime | + | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня bundled IRC helper | + | Допоміжні засоби, специфічні для каналів | `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` | Поверхні сумісності/допоміжних засобів bundled channel | + | Допоміжні засоби, специфічні для 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` | Поверхні допоміжних засобів bundled feature/plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` | @@ -285,4 +285,4 @@ x-i18n: - [Огляд Plugin SDK](/uk/plugins/sdk-overview) - [Налаштування Plugin SDK](/uk/plugins/sdk-setup) -- [Створення Plugin](/uk/plugins/building-plugins) +- [Створення плагінів](/uk/plugins/building-plugins) diff --git a/docs/uk/providers/minimax.md b/docs/uk/providers/minimax.md index 7592067a2..6f754914f 100644 --- a/docs/uk/providers/minimax.md +++ b/docs/uk/providers/minimax.md @@ -2,13 +2,13 @@ read_when: - Ви хочете моделі MiniMax в OpenClaw - Вам потрібні вказівки з налаштування MiniMax -summary: Використання моделей MiniMax в OpenClaw +summary: Використовуйте моделі MiniMax в OpenClaw title: MiniMax x-i18n: - generated_at: "2026-04-25T04:07:29Z" + generated_at: "2026-04-25T09:41:24Z" model: gpt-5.4 provider: openai - source_hash: 202b0852f3f1f484193d6f9a019b179c807dc13d7bed497f1122c36eae03e980 + source_hash: ddf6cfb68ef5fcaa360a2a7ebb9e3ce130100a59b014643091449a07654c7c6f source_path: providers/minimax.md workflow: 15 --- @@ -18,37 +18,37 @@ x-i18n: MiniMax також надає: - Вбудований синтез мовлення через T2A v2 -- Вбудоване розпізнавання зображень через `MiniMax-VL-01` +- Вбудоване розуміння зображень через `MiniMax-VL-01` - Вбудовану генерацію музики через `music-2.5+` - Вбудований `web_search` через API пошуку MiniMax Coding Plan -Розподіл провайдерів: +Розділення провайдерів: -| ID провайдера | Автентифікація | Можливості | -| ---------------- | -------------- | -------------------------------------------------------------- | -| `minimax` | API key | Текст, генерація зображень, розпізнавання зображень, мовлення, вебпошук | -| `minimax-portal` | OAuth | Текст, генерація зображень, розпізнавання зображень | +| Provider ID | Auth | Можливості | +| ---------------- | ------- | ------------------------------------------------------------- | +| `minimax` | API key | Текст, генерація зображень, розуміння зображень, мовлення, вебпошук | +| `minimax-portal` | OAuth | Текст, генерація зображень, розуміння зображень, мовлення | ## Вбудований каталог -| Модель | Тип | Опис | +| Model | Type | Description | | ------------------------ | ---------------- | ---------------------------------------- | | `MiniMax-M2.7` | Чат (міркування) | Типова розміщена модель для міркування | | `MiniMax-M2.7-highspeed` | Чат (міркування) | Швидший рівень міркування M2.7 | -| `MiniMax-VL-01` | Vision | Модель розпізнавання зображень | -| `image-01` | Генерація зображень | Перетворення тексту на зображення та редагування зображення за зображенням | -| `music-2.5+` | Генерація музики | Типова модель музики | +| `MiniMax-VL-01` | Зір | Модель розуміння зображень | +| `image-01` | Генерація зображень | Перетворення тексту на зображення та редагування зображення на зображення | +| `music-2.5+` | Генерація музики | Типова музична модель | | `music-2.5` | Генерація музики | Попередній рівень генерації музики | | `music-2.0` | Генерація музики | Застарілий рівень генерації музики | -| `MiniMax-Hailuo-2.3` | Генерація відео | Потоки «текст у відео» та з опорним зображенням | +| `MiniMax-Hailuo-2.3` | Генерація відео | Потоки перетворення тексту на відео та з посиланням на зображення | ## Початок роботи -Оберіть бажаний спосіб автентифікації та виконайте кроки налаштування. +Виберіть бажаний спосіб автентифікації та виконайте кроки налаштування. - **Найкраще для:** швидкого налаштування MiniMax Coding Plan через OAuth, без потреби в API key. + **Найкраще для:** швидкого налаштування з MiniMax Coding Plan через OAuth, без потреби в API key. @@ -58,7 +58,7 @@ MiniMax також надає: openclaw onboard --auth-choice minimax-global-oauth ``` - Це виконує автентифікацію через `api.minimax.io`. + Це автентифікує через `api.minimax.io`. ```bash @@ -74,7 +74,7 @@ MiniMax також надає: openclaw onboard --auth-choice minimax-cn-oauth ``` - Це виконує автентифікацію через `api.minimaxi.com`. + Це автентифікує через `api.minimaxi.com`. ```bash @@ -86,7 +86,7 @@ MiniMax також надає: - Налаштування OAuth використовують ID провайдера `minimax-portal`. Посилання на моделі мають формат `minimax-portal/MiniMax-M2.7`. + Налаштування OAuth використовують ідентифікатор провайдера `minimax-portal`. Посилання на моделі мають формат `minimax-portal/MiniMax-M2.7`. @@ -173,11 +173,11 @@ MiniMax також надає: ``` - У сумісному з Anthropic потоковому режимі OpenClaw за замовчуванням вимикає мислення MiniMax, якщо ви явно не встановите `thinking` самостійно. Потокова кінцева точка MiniMax надсилає `reasoning_content` у дельта-фрагментах у стилі OpenAI замість нативних блоків thinking Anthropic, що може призвести до витоку внутрішнього міркування у видимий вивід, якщо залишити це неявно ввімкненим. + У шляху потокової передачі, сумісному з Anthropic, OpenClaw типово вимикає thinking для MiniMax, якщо ви явно не встановите `thinking` самостійно. Кінцева точка потокової передачі MiniMax надсилає `reasoning_content` у блоках дельти в стилі OpenAI замість нативних блоків thinking Anthropic, через що внутрішні міркування можуть потрапити у видимий вивід, якщо залишити цю опцію неявно ввімкненою. - Налаштування з API key використовують ID провайдера `minimax`. Посилання на моделі мають формат `minimax/MiniMax-M2.7`. + Налаштування з API key використовують ідентифікатор провайдера `minimax`. Посилання на моделі мають формат `minimax/MiniMax-M2.7`. @@ -196,10 +196,10 @@ MiniMax також надає: У меню виберіть **Model/auth**. - - Виберіть один із доступних варіантів MiniMax: + + Оберіть один із доступних варіантів MiniMax: - | Варіант автентифікації | Опис | + | Auth choice | Description | | --- | --- | | `minimax-global-oauth` | Міжнародний OAuth (Coding Plan) | | `minimax-cn-oauth` | OAuth для Китаю (Coding Plan) | @@ -207,8 +207,8 @@ MiniMax також надає: | `minimax-cn-api` | API key для Китаю | - - Коли з’явиться запит, виберіть модель за замовчуванням. + + Коли з’явиться запит, виберіть свою типову модель. @@ -216,12 +216,12 @@ MiniMax також надає: ### Генерація зображень -Plugin MiniMax реєструє модель `image-01` для інструмента `image_generate`. Підтримується: +Плагін MiniMax реєструє модель `image-01` для інструмента `image_generate`. Підтримується: -- **Генерація зображень із тексту** з керуванням співвідношенням сторін -- **Редагування зображення за зображенням** (опорний об’єкт) з керуванням співвідношенням сторін +- **Генерація зображень за текстом** із керуванням співвідношенням сторін +- **Редагування зображення на основі зображення** (посилання на об’єкт) із керуванням співвідношенням сторін - До **9 вихідних зображень** на запит -- До **1 опорного зображення** на запит редагування +- До **1 еталонного зображення** на запит редагування - Підтримувані співвідношення сторін: `1:1`, `16:9`, `4:3`, `3:2`, `2:3`, `3:4`, `9:16`, `21:9` Щоб використовувати MiniMax для генерації зображень, встановіть його як провайдера генерації зображень: @@ -236,56 +236,66 @@ Plugin MiniMax реєструє модель `image-01` для інструме } ``` -Plugin використовує той самий `MINIMAX_API_KEY` або OAuth-автентифікацію, що й текстові моделі. Додаткова конфігурація не потрібна, якщо MiniMax уже налаштовано. +Плагін використовує той самий `MINIMAX_API_KEY` або OAuth-автентифікацію, що й текстові моделі. Якщо MiniMax уже налаштовано, додаткова конфігурація не потрібна. І `minimax`, і `minimax-portal` реєструють `image_generate` з тією самою -моделлю `image-01`. Налаштування з API key використовують `MINIMAX_API_KEY`; налаштування OAuth можуть натомість використовувати -вбудований шлях автентифікації `minimax-portal`. +моделлю `image-01`. Налаштування з API key використовують `MINIMAX_API_KEY`; налаштування OAuth можуть +натомість використовувати вбудований шлях автентифікації `minimax-portal`. -Коли онбординг або налаштування API key записує явні записи `models.providers.minimax`, +Коли онбординг або налаштування з API key записує явні записи `models.providers.minimax`, OpenClaw матеріалізує `MiniMax-M2.7` і -`MiniMax-M2.7-highspeed` як текстові чат-моделі. Розпізнавання зображень -надається окремо через медіапровайдер `MiniMax-VL-01`, що належить plugin. +`MiniMax-M2.7-highspeed` як текстові моделі чату. Розуміння зображень +надається окремо через медіапровайдер `MiniMax-VL-01`, що належить плагіну. -Див. [Генерація зображень](/uk/tools/image-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover. +Див. [Генерація зображень](/uk/tools/image-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою перемикання при збої. ### Перетворення тексту на мовлення -Вбудований plugin `minimax` реєструє MiniMax T2A v2 як провайдера мовлення для +Вбудований плагін `minimax` реєструє MiniMax T2A v2 як провайдера мовлення для `messages.tts`. - Типова модель TTS: `speech-2.8-hd` - Типовий голос: `English_expressive_narrator` +- Підтримувані вбудовані ідентифікатори моделей: `speech-2.8-hd`, `speech-2.8-turbo`, + `speech-2.6-hd`, `speech-2.6-turbo`, `speech-02-hd`, + `speech-02-turbo`, `speech-01-hd` і `speech-01-turbo`. +- Розв’язання автентифікації: `messages.tts.providers.minimax.apiKey`, потім + профілі автентифікації OAuth/токена `minimax-portal`, потім ключі середовища Token Plan + (`MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, + `MINIMAX_CODING_API_KEY`), потім `MINIMAX_API_KEY`. +- Якщо хост TTS не налаштовано, OpenClaw повторно використовує налаштований + OAuth-хост `minimax-portal` і прибирає суфікси шляху, сумісні з Anthropic, + як-от `/anthropic`. - Звичайні аудіовкладення залишаються у форматі MP3. -- Цілі voice-note, такі як Feishu і Telegram, перекодовуються з MP3 MiniMax - у 48kHz Opus через `ffmpeg`, оскільки API файлів Feishu/Lark - приймає лише `file_type: "opus"` для нативних аудіоповідомлень. +- Цілі для голосових нотаток, такі як Feishu і Telegram, перекодовуються з MP3 MiniMax + у 48 кГц Opus за допомогою `ffmpeg`, оскільки API файлів Feishu/Lark + приймає для нативних аудіоповідомлень лише `file_type: "opus"`. - MiniMax T2A приймає дробові значення `speed` і `vol`, але `pitch` надсилається як ціле число; OpenClaw відкидає дробову частину значень `pitch` перед запитом до API. -| Налаштування | Змінна середовища | Типове значення | Опис | -| ---------------------------------------- | ---------------------- | -------------------------- | ------------------------------------ | -| `messages.tts.providers.minimax.baseUrl` | `MINIMAX_API_HOST` | `https://api.minimax.io` | Хост API MiniMax T2A. | -| `messages.tts.providers.minimax.model` | `MINIMAX_TTS_MODEL` | `speech-2.8-hd` | ID моделі TTS. | -| `messages.tts.providers.minimax.voiceId` | `MINIMAX_TTS_VOICE_ID` | `English_expressive_narrator` | ID голосу, що використовується для мовленнєвого виводу. | -| `messages.tts.providers.minimax.speed` | | `1.0` | Швидкість відтворення, `0.5..2.0`. | -| `messages.tts.providers.minimax.vol` | | `1.0` | Гучність, `(0, 10]`. | -| `messages.tts.providers.minimax.pitch` | | `0` | Цілочисельне зміщення тону, `-12..12`. | +| Setting | Env var | Default | Description | +| ---------------------------------------- | ---------------------- | ----------------------------- | -------------------------------- | +| `messages.tts.providers.minimax.baseUrl` | `MINIMAX_API_HOST` | `https://api.minimax.io` | Хост API MiniMax T2A. | +| `messages.tts.providers.minimax.model` | `MINIMAX_TTS_MODEL` | `speech-2.8-hd` | Ідентифікатор моделі TTS. | +| `messages.tts.providers.minimax.voiceId` | `MINIMAX_TTS_VOICE_ID` | `English_expressive_narrator` | Ідентифікатор голосу для мовленнєвого виводу. | +| `messages.tts.providers.minimax.speed` | | `1.0` | Швидкість відтворення, `0.5..2.0`. | +| `messages.tts.providers.minimax.vol` | | `1.0` | Гучність, `(0, 10]`. | +| `messages.tts.providers.minimax.pitch` | | `0` | Цілочисельне зміщення висоти тону, `-12..12`. | ### Генерація музики -Вбудований plugin `minimax` також реєструє генерацію музики через спільний +Вбудований плагін `minimax` також реєструє генерацію музики через спільний інструмент `music_generate`. - Типова музична модель: `minimax/music-2.5+` - Також підтримуються `minimax/music-2.5` і `minimax/music-2.0` -- Керування prompt: `lyrics`, `instrumental`, `durationSeconds` +- Керування підказкою: `lyrics`, `instrumental`, `durationSeconds` - Формат виводу: `mp3` -- Запуски із session-відстеженням відокремлюються через спільний потік завдань/статусу, включно з `action: "status"` +- Запуски з підтримкою сесії відокремлюються через спільний потік завдань/стану, зокрема `action: "status"` -Щоб використовувати MiniMax як типовий музичний провайдер: +Щоб використовувати MiniMax як типового провайдера музики: ```json5 { @@ -300,19 +310,19 @@ OpenClaw матеріалізує `MiniMax-M2.7` і ``` -Див. [Генерація музики](/uk/tools/music-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover. +Див. [Генерація музики](/uk/tools/music-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою перемикання при збої. ### Генерація відео -Вбудований plugin `minimax` також реєструє генерацію відео через спільний +Вбудований плагін `minimax` також реєструє генерацію відео через спільний інструмент `video_generate`. - Типова відеомодель: `minimax/MiniMax-Hailuo-2.3` -- Режими: «текст у відео» та потоки з одним опорним зображенням -- Підтримує `aspectRatio` і `resolution` +- Режими: перетворення тексту на відео та потоки з одним еталонним зображенням +- Підтримуються `aspectRatio` і `resolution` -Щоб використовувати MiniMax як типовий відеопровайдер: +Щоб використовувати MiniMax як типового провайдера відео: ```json5 { @@ -327,67 +337,67 @@ OpenClaw матеріалізує `MiniMax-M2.7` і ``` -Див. [Генерація відео](/uk/tools/video-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover. +Див. [Генерація відео](/uk/tools/video-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою перемикання при збої. -### Розпізнавання зображень +### Розуміння зображень -Plugin MiniMax реєструє розпізнавання зображень окремо від текстового +Плагін MiniMax реєструє розуміння зображень окремо від текстового каталогу: -| ID провайдера | Типова модель зображень | +| Provider ID | Типова модель зображень | | ---------------- | ----------------------- | | `minimax` | `MiniMax-VL-01` | | `minimax-portal` | `MiniMax-VL-01` | -Саме тому автоматична маршрутизація медіа може використовувати розпізнавання зображень MiniMax навіть -тоді, коли вбудований каталог текстового провайдера все ще показує лише текстові посилання чату M2.7. +Саме тому автоматична маршрутизація медіа може використовувати MiniMax для розуміння зображень, навіть +коли вбудований каталог текстових провайдерів усе ще показує лише текстові посилання чату M2.7. ### Вебпошук -Plugin MiniMax також реєструє `web_search` через API пошуку MiniMax Coding Plan. +Плагін MiniMax також реєструє `web_search` через API пошуку MiniMax Coding Plan. -- ID провайдера: `minimax` +- Ідентифікатор провайдера: `minimax` - Структуровані результати: заголовки, URL, фрагменти, пов’язані запити - Бажана змінна середовища: `MINIMAX_CODE_PLAN_KEY` - Прийнятний псевдонім змінної середовища: `MINIMAX_CODING_API_KEY` -- Сумісний запасний варіант: `MINIMAX_API_KEY`, якщо він уже вказує на токен coding plan +- Резервний варіант сумісності: `MINIMAX_API_KEY`, якщо він уже вказує на токен coding plan - Повторне використання регіону: `plugins.entries.minimax.config.webSearch.region`, потім `MINIMAX_API_HOST`, потім базові URL провайдера MiniMax -- Пошук залишається на ID провайдера `minimax`; налаштування OAuth CN/global усе ще можуть опосередковано спрямовувати регіон через `models.providers.minimax-portal.baseUrl` +- Пошук залишається на ідентифікаторі провайдера `minimax`; налаштування OAuth CN/global усе ще можуть опосередковано спрямовувати регіон через `models.providers.minimax-portal.baseUrl` -Конфігурація розміщується в `plugins.entries.minimax.config.webSearch.*`. +Конфігурація міститься в `plugins.entries.minimax.config.webSearch.*`. -Див. [MiniMax Search](/uk/tools/minimax-search), щоб ознайомитися з повною конфігурацією та використанням вебпошуку. +Див. [Пошук MiniMax](/uk/tools/minimax-search), щоб ознайомитися з повною конфігурацією та використанням вебпошуку. ## Розширена конфігурація - | Параметр | Опис | + | Option | Description | | --- | --- | - | `models.providers.minimax.baseUrl` | Рекомендовано `https://api.minimax.io/anthropic` (сумісний з Anthropic); `https://api.minimax.io/v1` є необов’язковим для навантажень, сумісних з OpenAI | - | `models.providers.minimax.api` | Рекомендовано `anthropic-messages`; `openai-completions` є необов’язковим для навантажень, сумісних з OpenAI | + | `models.providers.minimax.baseUrl` | Надавайте перевагу `https://api.minimax.io/anthropic` (сумісний з Anthropic); `https://api.minimax.io/v1` є необов’язковим для даних, сумісних з OpenAI | + | `models.providers.minimax.api` | Надавайте перевагу `anthropic-messages`; `openai-completions` є необов’язковим для даних, сумісних з OpenAI | | `models.providers.minimax.apiKey` | API key MiniMax (`MINIMAX_API_KEY`) | - | `models.providers.minimax.models` | Визначає `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost` | - | `agents.defaults.models` | Псевдоніми моделей, які ви хочете додати до allowlist | + | `models.providers.minimax.models` | Визначте `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost` | + | `agents.defaults.models` | Псевдоніми моделей, які ви хочете додати до списку дозволених | | `models.mode` | Залиште `merge`, якщо хочете додати MiniMax поряд із вбудованими | - Для `api: "anthropic-messages"` OpenClaw додає `thinking: { type: "disabled" }`, якщо thinking ще не задано явно в params/config. + Для `api: "anthropic-messages"` OpenClaw додає `thinking: { type: "disabled" }`, якщо thinking ще не задано явно в параметрах/конфігурації. - Це запобігає тому, щоб потокова кінцева точка MiniMax надсилала `reasoning_content` у дельта-фрагментах у стилі OpenAI, що призвело б до витоку внутрішнього міркування у видимий вивід. + Це запобігає тому, щоб потокова кінцева точка MiniMax надсилала `reasoning_content` у блоках дельти в стилі OpenAI, що могло б розкрити внутрішні міркування у видимому виводі. - `/fast on` або `params.fastMode: true` замінює `MiniMax-M2.7` на `MiniMax-M2.7-highspeed` у сумісному з Anthropic потоковому шляху. + `/fast on` або `params.fastMode: true` замінює `MiniMax-M2.7` на `MiniMax-M2.7-highspeed` у шляху потоку, сумісному з Anthropic. - - **Найкраще для:** зберегти вашу найсильнішу основну модель останнього покоління як primary і перейти на MiniMax M2.7 у разі відмови. У прикладі нижче як конкретну primary використано Opus; замініть її на бажану primary модель останнього покоління. + + **Найкраще для:** зберегти найсильнішу сучасну модель як основну та перемикатися на MiniMax M2.7 у разі збою. У наведеному нижче прикладі як конкретну основну модель використано Opus; замініть її на бажану сучасну основну модель. ```json5 { @@ -409,11 +419,11 @@ Plugin MiniMax також реєструє `web_search` через API пошу - + - API використання Coding Plan: `https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains` (потрібен ключ coding plan). - - OpenClaw нормалізує використання coding plan MiniMax до того самого відображення `% left`, що й в інших провайдерів. Необроблені поля MiniMax `usage_percent` / `usagePercent` — це квота, що залишилася, а не вже використана квота, тому OpenClaw інвертує їх. Поля на основі лічильників мають пріоритет, якщо вони присутні. - - Коли API повертає `model_remains`, OpenClaw віддає перевагу запису чат-моделі, за потреби виводить мітку вікна з `start_time` / `end_time` і включає вибрану назву моделі в мітку плану, щоб вікна coding plan було легше розрізняти. - - Знімки використання трактують `minimax`, `minimax-cn` і `minimax-portal` як одну й ту саму поверхню квоти MiniMax і віддають перевагу збереженому OAuth MiniMax, перш ніж переходити до змінних середовища ключа Coding Plan. + - OpenClaw нормалізує використання MiniMax coding plan до того самого відображення `% left`, що використовується для інших провайдерів. Сирі поля MiniMax `usage_percent` / `usagePercent` означають залишок квоти, а не витрачену квоту, тому OpenClaw інвертує їх. Якщо доступні поля з підрахунком, вони мають пріоритет. + - Коли API повертає `model_remains`, OpenClaw надає перевагу запису моделі чату, за потреби виводить мітку вікна з `start_time` / `end_time` і включає вибрану назву моделі до мітки плану, щоб вікна coding plan було легше розрізняти. + - Знімки використання трактують `minimax`, `minimax-cn` і `minimax-portal` як ту саму поверхню квоти MiniMax і надають перевагу збереженому OAuth MiniMax перед резервним використанням змінних середовища з ключем Coding Plan. @@ -421,13 +431,13 @@ Plugin MiniMax також реєструє `web_search` через API пошу - Посилання на моделі відповідають шляху автентифікації: - Налаштування з API key: `minimax/` - - Налаштування з OAuth: `minimax-portal/` -- Типова чат-модель: `MiniMax-M2.7` -- Альтернативна чат-модель: `MiniMax-M2.7-highspeed` -- Онбординг і пряме налаштування API key записують визначення лише текстових моделей для обох варіантів M2.7 -- Для розпізнавання зображень використовується медіапровайдер `MiniMax-VL-01`, що належить plugin + - Налаштування OAuth: `minimax-portal/` +- Типова модель чату: `MiniMax-M2.7` +- Альтернативна модель чату: `MiniMax-M2.7-highspeed` +- Онбординг і пряме налаштування з API key записують текстові визначення моделей для обох варіантів M2.7 +- Для розуміння зображень використовується медіапровайдер `MiniMax-VL-01`, що належить плагіну - Оновіть значення цін у `models.json`, якщо вам потрібне точне відстеження вартості -- Використовуйте `openclaw models list`, щоб підтвердити поточний ID провайдера, а потім перемкніть його через `openclaw models set minimax/MiniMax-M2.7` або `openclaw models set minimax-portal/MiniMax-M2.7` +- Використовуйте `openclaw models list`, щоб підтвердити поточний ідентифікатор провайдера, а потім перемкніть його за допомогою `openclaw models set minimax/MiniMax-M2.7` або `openclaw models set minimax-portal/MiniMax-M2.7` Реферальне посилання для MiniMax Coding Plan (знижка 10%): [MiniMax Coding Plan](https://platform.minimax.io/subscribe/coding-plan?code=DbXJTRClnb&source=link) @@ -437,18 +447,18 @@ Plugin MiniMax також реєструє `web_search` через API пошу Див. [Провайдери моделей](/uk/concepts/model-providers), щоб ознайомитися з правилами для провайдерів. -## Усунення несправностей +## Усунення проблем - Зазвичай це означає, що **провайдер MiniMax не налаштовано** (немає відповідного запису провайдера і не знайдено профілю автентифікації/env key MiniMax). Виправлення для цього виявлення входить до **2026.1.12**. Виправити можна так: + Зазвичай це означає, що **провайдер MiniMax не налаштований** (немає відповідного запису провайдера і не знайдено профіль автентифікації/env key MiniMax). Виправлення для цього виявлення є в **2026.1.12**. Щоб виправити: - - Оновіть до **2026.1.12** (або запустіть із вихідного коду `main`), а потім перезапустіть Gateway. - - Запустіть `openclaw configure` і виберіть варіант автентифікації **MiniMax**, або + - Оновіться до **2026.1.12** (або запустіть із вихідного коду `main`), а потім перезапустіть Gateway. + - Виконайте `openclaw configure` і виберіть параметр автентифікації **MiniMax**, або - Додайте відповідний блок `models.providers.minimax` або `models.providers.minimax-portal` вручну, або - - Встановіть `MINIMAX_API_KEY`, `MINIMAX_OAUTH_TOKEN` або профіль автентифікації MiniMax, щоб можна було підставити відповідний провайдер. + - Встановіть `MINIMAX_API_KEY`, `MINIMAX_OAUTH_TOKEN` або профіль автентифікації MiniMax, щоб можна було додати відповідний провайдер. - Переконайтеся, що ID моделі **чутливий до регістру**: + Переконайтеся, що ідентифікатор моделі **чутливий до регістру**: - Шлях API key: `minimax/MiniMax-M2.7` або `minimax/MiniMax-M2.7-highspeed` - Шлях OAuth: `minimax-portal/MiniMax-M2.7` або `minimax-portal/MiniMax-M2.7-highspeed` @@ -463,28 +473,28 @@ Plugin MiniMax також реєструє `web_search` через API пошу -Більше допомоги: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq). +Більше довідки: [Усунення проблем](/uk/help/troubleshooting) і [FAQ](/uk/help/faq). ## Пов’язане - Вибір провайдерів, посилань на моделі та поведінки failover. + Вибір провайдерів, посилань на моделі та поведінки резервного перемикання. Спільні параметри інструмента зображень і вибір провайдера. - Спільні параметри інструмента музики і вибір провайдера. + Спільні параметри музичного інструмента і вибір провайдера. - Спільні параметри інструмента відео і вибір провайдера. + Спільні параметри відеоінструмента і вибір провайдера. - + Конфігурація вебпошуку через MiniMax Coding Plan. - - Загальне усунення несправностей і FAQ. + + Загальне усунення проблем і FAQ. diff --git a/docs/uk/tools/slash-commands.md b/docs/uk/tools/slash-commands.md index 392d1f330..35d168493 100644 --- a/docs/uk/tools/slash-commands.md +++ b/docs/uk/tools/slash-commands.md @@ -2,33 +2,33 @@ read_when: - Використання або налаштування команд чату - Налагодження маршрутизації команд або дозволів -summary: 'Слеш-команди: текстові чи нативні, конфігурація та підтримувані команди' +summary: 'Слеш-команди: текстові та нативні, конфігурація і підтримувані команди' title: Слеш-команди x-i18n: - generated_at: "2026-04-25T08:04:09Z" + generated_at: "2026-04-25T09:41:24Z" model: gpt-5.4 provider: openai - source_hash: bab969a72f10880b88a75a7a0cc7870989c826fbf7e9b8637a558cc29cfcc417 + source_hash: 55cac54aa58d04ebae9b0899d323438fa8a16db3d417147f281056157534644b source_path: tools/slash-commands.md workflow: 15 --- -Команди обробляє Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, яке починається з `/`. +Команди обробляються Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`. Команда чату bash лише для хоста використовує `! ` (із псевдонімом `/bash `). -Є дві пов’язані системи: +Існують дві пов’язані системи: - **Команди**: окремі повідомлення `/...`. - **Директиви**: `/think`, `/fast`, `/verbose`, `/trace`, `/reasoning`, `/elevated`, `/exec`, `/model`, `/queue`. - - Директиви вилучаються з повідомлення до того, як його побачить модель. - - У звичайних повідомленнях чату (не лише з директив) вони трактуються як «вбудовані підказки» і **не** зберігають налаштування сесії. - - У повідомленнях лише з директивами (повідомлення містить тільки директиви) вони зберігаються в сесії та повертають підтвердження. + - Директиви прибираються з повідомлення до того, як його побачить модель. + - У звичайних повідомленнях чату (не лише з директивами) вони розглядаються як «вбудовані підказки» і **не** зберігають налаштування сесії. + - У повідомленнях лише з директивами (повідомлення містить тільки директиви) вони зберігаються в сесії та відповідають підтвердженням. - Директиви застосовуються лише для **авторизованих відправників**. Якщо задано `commands.allowFrom`, це єдиний - використовуваний список дозволених; інакше авторизація походить зі списків дозволених каналу/спарювання плюс `commands.useAccessGroups`. - Для неавторизованих відправників директиви обробляються як звичайний текст. + використовуваний список дозволених; інакше авторизація походить зі списків дозволених каналу/сполучення плюс `commands.useAccessGroups`. + Для неавторизованих відправників директиви розглядаються як звичайний текст. Також є кілька **вбудованих скорочень** (лише для відправників зі списку дозволених/авторизованих): `/help`, `/commands`, `/status`, `/whoami` (`/id`). -Вони виконуються негайно, вилучаються до того, як повідомлення побачить модель, а решта тексту проходить звичайний потік обробки. +Вони виконуються негайно, прибираються до того, як повідомлення побачить модель, а решта тексту продовжує проходити звичайним потоком. ## Конфігурація @@ -60,92 +60,93 @@ x-i18n: - `commands.text` (типово `true`) вмикає розбір `/...` у повідомленнях чату. - На поверхнях без нативних команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) текстові команди все одно працюють, навіть якщо встановити це значення в `false`. - `commands.native` (типово `"auto"`) реєструє нативні команди. - - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (поки ви не додасте slash-команди); ігнорується для провайдерів без нативної підтримки. - - Установіть `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native`, щоб перевизначити значення для окремого провайдера (bool або `"auto"`). + - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (доки ви не додасте слеш-команди); ігнорується для провайдерів без нативної підтримки. + - Щоб перевизначити це для конкретного провайдера, установіть `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native` (булеве значення або `"auto"`). - `false` очищає раніше зареєстровані команди в Discord/Telegram під час запуску. Команди Slack керуються в застосунку Slack і не видаляються автоматично. - `commands.nativeSkills` (типово `"auto"`) реєструє команди **Skills** нативно, якщо це підтримується. - - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (у Slack потрібно створити slash-команду для кожного skill). - - Установіть `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills`, щоб перевизначити значення для окремого провайдера (bool або `"auto"`). -- `commands.bash` (типово `false`) вмикає `! ` для запуску команд оболонки на хості (`/bash ` — псевдонім; потребує списків дозволених `tools.elevated`). -- `commands.bashForegroundMs` (типово `2000`) керує тим, як довго bash очікує перед переходом у фоновий режим (`0` одразу переводить у фон). -- `commands.config` (типово `false`) вмикає `/config` (читає/записує `openclaw.json`). -- `commands.mcp` (типово `false`) вмикає `/mcp` (читає/записує конфігурацію MCP, якою керує OpenClaw, у `mcp.servers`). -- `commands.plugins` (типово `false`) вмикає `/plugins` (виявлення/статус плагінів, а також елементи керування встановленням і вмиканням/вимиканням). -- `commands.debug` (типово `false`) вмикає `/debug` (лише перевизначення під час виконання). + - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (у Slack потрібно створювати окрему слеш-команду для кожного skill). + - Щоб перевизначити це для конкретного провайдера, установіть `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills` (булеве значення або `"auto"`). +- `commands.bash` (типово `false`) вмикає `! ` для виконання shell-команд хоста (`/bash ` — псевдонім; потребує списків дозволених `tools.elevated`). +- `commands.bashForegroundMs` (типово `2000`) керує тим, як довго bash чекає перед переходом у фоновий режим (`0` одразу переводить у фоновий режим). +- `commands.config` (типово `false`) вмикає `/config` (читання/запис `openclaw.json`). +- `commands.mcp` (типово `false`) вмикає `/mcp` (читання/запис конфігурації MCP, якою керує OpenClaw, у `mcp.servers`). +- `commands.plugins` (типово `false`) вмикає `/plugins` (виявлення/стан плагінів, а також елементи керування встановленням і вмиканням/вимиканням). +- `commands.debug` (типово `false`) вмикає `/debug` (перевизначення лише під час виконання). - `commands.restart` (типово `true`) вмикає `/restart`, а також дії інструментів перезапуску gateway. -- `commands.ownerAllowFrom` (необов’язково) задає явний список дозволених власників для поверхонь команд/інструментів лише для власника. Це окремо від `commands.allowFrom`. -- `channels..commands.enforceOwnerForCommands` для кожного каналу (необов’язково, типово `false`) змушує команди лише для власника вимагати **ідентичність власника** для виконання на цій поверхні. Якщо `true`, відправник має або збігатися з визначеним кандидатом власника (наприклад, записом у `commands.ownerAllowFrom` чи нативними метаданими власника провайдера), або мати внутрішню область доступу `operator.admin` на внутрішньому каналі повідомлень. Запис-шаблон у `allowFrom` каналу або порожній/невизначений список кандидатів власника **не** є достатнім — команди лише для власника на цьому каналі безумовно блокуються. Залиште це вимкненим, якщо хочете, щоб команди лише для власника обмежувалися лише `ownerAllowFrom` і стандартними списками дозволених команд. -- `commands.ownerDisplay` керує тим, як ідентифікатори власника відображаються в системному промпті: `raw` або `hash`. +- `commands.ownerAllowFrom` (необов’язково) задає явний список дозволених власника для поверхонь команд/інструментів, доступних лише власнику. Це окремо від `commands.allowFrom`. +- `channels..commands.enforceOwnerForCommands` для кожного каналу (необов’язково, типово `false`) змушує команди лише для власника вимагати **ідентичність власника** для виконання на цій поверхні. Якщо встановлено `true`, відправник має або відповідати визначеному кандидату власника (наприклад, запису в `commands.ownerAllowFrom` або нативним метаданим власника провайдера), або мати внутрішню область видимості `operator.admin` у внутрішньому каналі повідомлень. Запис-шаблон у `allowFrom` каналу або порожній/невизначений список кандидатів власника **не** є достатнім — команди лише для власника на цьому каналі закриваються за замовчуванням. Залиште це вимкненим, якщо хочете, щоб команди лише для власника обмежувалися тільки `ownerAllowFrom` і стандартними списками дозволених команд. +- `commands.ownerDisplay` керує тим, як ідентифікатори власника відображаються в системному prompt: `raw` або `hash`. - `commands.ownerDisplaySecret` необов’язково задає секрет HMAC, який використовується, коли `commands.ownerDisplay="hash"`. - `commands.allowFrom` (необов’язково) задає список дозволених для кожного провайдера для авторизації команд. Якщо налаштовано, це - єдине джерело авторизації для команд і директив (`commands.useAccessGroups` і списки дозволених каналу/спарювання ігноруються). Використовуйте `"*"` для глобального типового значення; ключі конкретних провайдерів його перевизначають. -- `commands.useAccessGroups` (типово `true`) застосовує списки дозволених/політики для команд, якщо `commands.allowFrom` не задано. + єдине джерело авторизації для команд і директив (списки дозволених каналу/сполучення та `commands.useAccessGroups` + ігноруються). Використовуйте `"*"` як глобальне значення за замовчуванням; ключі конкретних провайдерів мають вищий пріоритет. +- `commands.useAccessGroups` (типово `true`) застосовує списки дозволених/політики для команд, коли `commands.allowFrom` не задано. ## Список команд -Поточне джерело істини: +Поточне єдине джерело істини: -- вбудовані команди ядра надходять із `src/auto-reply/commands-registry.shared.ts` -- згенеровані команди dock надходять із `src/auto-reply/commands-registry.data.ts` -- команди плагінів надходять із викликів `registerCommand()` у плагінах +- вбудовані команди ядра походять із `src/auto-reply/commands-registry.shared.ts` +- згенеровані команди dock походять із `src/auto-reply/commands-registry.data.ts` +- команди плагінів походять із викликів `registerCommand()` у плагінах - фактична доступність на вашому gateway усе одно залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених плагінів ### Вбудовані команди ядра Вбудовані команди, доступні сьогодні: -- `/new [model]` починає нову сесію; `/reset` — це псевдонім для скидання. -- `/reset soft [message]` зберігає поточну стенограму, скидає повторно використані ідентифікатори сесій CLI backend і повторно запускає завантаження стартового/системного промпту на місці. +- `/new [model]` починає нову сесію; `/reset` — це псевдонім скидання. +- `/reset soft [message]` зберігає поточний transcript, скидає повторно використовувані ідентифікатори сесій бекенда CLI та повторно запускає завантаження startup/system-prompt на місці. - `/compact [instructions]` виконує Compaction контексту сесії. Див. [/concepts/compaction](/uk/concepts/compaction). - `/stop` перериває поточний запуск. - `/session idle ` і `/session max-age ` керують строком дії прив’язки до потоку. -- `/think ` задає рівень обмірковування. Варіанти надходять із профілю провайдера активної моделі; поширені рівні: `off`, `minimal`, `low`, `medium` і `high`, а також спеціальні рівні, як-от `xhigh`, `adaptive`, `max`, або двійкове `on` лише там, де це підтримується. Псевдоніми: `/thinking`, `/t`. +- `/think ` задає рівень thinking. Варіанти надходять із профілю провайдера активної моделі; поширені рівні — `off`, `minimal`, `low`, `medium` і `high`, а спеціальні рівні, як-от `xhigh`, `adaptive`, `max` або бінарне `on`, доступні лише там, де це підтримується. Псевдоніми: `/thinking`, `/t`. - `/verbose on|off|full` перемикає докладний вивід. Псевдонім: `/v`. -- `/trace on|off` перемикає вивід трасування Plugin для поточної сесії. +- `/trace on|off` перемикає вивід trace плагінів для поточної сесії. - `/fast [status|on|off]` показує або задає швидкий режим. -- `/reasoning [on|off|stream]` перемикає видимість міркування. Псевдонім: `/reason`. -- `/elevated [on|off|ask|full]` перемикає підвищений режим. Псевдонім: `/elev`. -- `/exec host= security= ask= node=` показує або задає типові значення exec. +- `/reasoning [on|off|stream]` перемикає видимість reasoning. Псевдонім: `/reason`. +- `/elevated [on|off|ask|full]` перемикає elevated mode. Псевдонім: `/elev`. +- `/exec host= security= ask= node=` показує або задає значення exec за замовчуванням. - `/model [name|#|status]` показує або задає модель. -- `/models [provider] [page] [limit=|size=|all]` показує список провайдерів або моделей для провайдера. +- `/models [provider] [page] [limit=|size=|all]` перелічує провайдерів або моделі для провайдера. - `/queue ` керує поведінкою черги (`steer`, `interrupt`, `followup`, `collect`, `steer-backlog`), а також параметрами на кшталт `debounce:2s cap:25 drop:summarize`. -- `/help` показує коротке резюме довідки. +- `/help` показує коротке зведення довідки. - `/commands` показує згенерований каталог команд. - `/tools [compact|verbose]` показує, що поточний агент може використовувати прямо зараз. -- `/status` показує статус виконання/середовища виконання, включно з мітками `Execution`/`Runtime` і використанням/квотою провайдера, якщо доступно. -- `/crestodian ` запускає помічник налаштування та відновлення Crestodian із приватного повідомлення власника. -- `/tasks` показує список активних/останніх фонових завдань для поточної сесії. +- `/status` показує статус виконання/середовища виконання, зокрема мітки `Execution`/`Runtime` та використання/квоту провайдера, якщо доступно. +- `/crestodian ` запускає помічник налаштування й відновлення Crestodian з DM власника. +- `/tasks` перелічує активні/нещодавні фонові завдання для поточної сесії. - `/context [list|detail|json]` пояснює, як збирається контекст. - `/export-session [path]` експортує поточну сесію в HTML. Псевдонім: `/export`. -- `/export-trajectory [path]` експортує JSONL [trajectory bundle](/uk/tools/trajectory) для поточної сесії. Псевдонім: `/trajectory`. +- `/export-trajectory [path]` експортує пакет [trajectory bundle](/uk/tools/trajectory) JSONL для поточної сесії. Псевдонім: `/trajectory`. - `/whoami` показує ваш ідентифікатор відправника. Псевдонім: `/id`. - `/skill [input]` запускає skill за назвою. -- `/allowlist [list|add|remove] ...` керує записами allowlist. Лише текстовий режим. -- `/approve ` вирішує запити на схвалення exec. +- `/allowlist [list|add|remove] ...` керує записами списку дозволених. Лише текстовий режим. +- `/approve ` вирішує запити на погодження exec. - `/btw ` ставить побічне запитання без зміни майбутнього контексту сесії. Див. [/tools/btw](/uk/tools/btw). - `/subagents list|kill|log|info|send|steer|spawn` керує запусками субагентів для поточної сесії. - `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` керує сесіями ACP і параметрами середовища виконання. -- `/focus ` прив’язує потік Discord або тему/розмову Telegram до цілі сесії. -- `/unfocus` знімає поточну прив’язку. -- `/agents` показує список агентів, прив’язаних до потоку, для поточної сесії. +- `/focus ` прив’язує поточний потік Discord або тему/розмову Telegram до цілі сесії. +- `/unfocus` прибирає поточну прив’язку. +- `/agents` перелічує агентів, прив’язаних до потоку, для поточної сесії. - `/kill ` перериває одного або всіх запущених субагентів. -- `/steer ` надсилає керувальне повідомлення запущеному субагенту. Псевдонім: `/tell`. +- `/steer ` надсилає керування запущеному субагенту. Псевдонім: `/tell`. - `/config show|get|set|unset` читає або записує `openclaw.json`. Лише для власника. Потребує `commands.config: true`. - `/mcp show|get|set|unset` читає або записує конфігурацію MCP-сервера, якою керує OpenClaw, у `mcp.servers`. Лише для власника. Потребує `commands.mcp: true`. -- `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан плагінів. `/plugin` — псевдонім. Запис — лише для власника. Потребує `commands.plugins: true`. +- `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан плагінів. `/plugin` — псевдонім. Запис лише для власника. Потребує `commands.plugins: true`. - `/debug show|set|unset|reset` керує перевизначеннями конфігурації лише під час виконання. Лише для власника. Потребує `commands.debug: true`. - `/usage off|tokens|full|cost` керує нижнім колонтитулом використання для кожної відповіді або виводить локальне зведення вартості. - `/tts on|off|status|provider|limit|summary|audio|help` керує TTS. Див. [/tools/tts](/uk/tools/tts). -- `/restart` перезапускає OpenClaw, коли це ввімкнено. Типово: увімкнено; установіть `commands.restart: false`, щоб вимкнути. +- `/restart` перезапускає OpenClaw, якщо це ввімкнено. Типово: увімкнено; установіть `commands.restart: false`, щоб вимкнути. - `/activation mention|always` задає режим активації групи. - `/send on|off|inherit` задає політику надсилання. Лише для власника. -- `/bash ` запускає команду оболонки на хості. Лише текстовий режим. Псевдонім: `! `. Потребує `commands.bash: true` і списків дозволених `tools.elevated`. +- `/bash ` виконує shell-команду хоста. Лише текстовий режим. Псевдонім: `! `. Потребує `commands.bash: true`, а також списків дозволених `tools.elevated`. - `!poll [sessionId]` перевіряє фонове bash-завдання. - `!stop [sessionId]` зупиняє фонове bash-завдання. ### Згенеровані dock-команди -Dock-команди генеруються з channel Plugins із підтримкою нативних команд. Поточний вбудований набір: +Dock-команди генеруються з channel-плагінів із підтримкою нативних команд. Поточний вбудований набір: - `/dock-discord` (псевдонім: `/dock_discord`) - `/dock-mattermost` (псевдонім: `/dock_mattermost`) @@ -154,14 +155,14 @@ Dock-команди генеруються з channel Plugins із підтри ### Команди вбудованих плагінів -Вбудовані плагіни можуть додавати більше slash-команд. Поточні вбудовані команди в цьому репозиторії: +Вбудовані плагіни можуть додавати більше слеш-команд. Поточні вбудовані команди в цьому репозиторії: - `/dreaming [on|off|status|help]` перемикає Dreaming пам’яті. Див. [Dreaming](/uk/concepts/dreaming). -- `/pair [qr|status|pending|approve|cleanup|notify]` керує потоком спарювання/налаштування пристрою. Див. [Спарювання](/uk/channels/pairing). -- `/phone status|arm [duration]|disarm` тимчасово активує високоризикові команди Node телефона. +- `/pair [qr|status|pending|approve|cleanup|notify]` керує процесом сполучення/налаштування пристрою. Див. [Pairing](/uk/channels/pairing). +- `/phone status|arm [duration]|disarm` тимчасово вмикає високоризикові команди phone node. - `/voice status|list [limit]|set ` керує конфігурацією голосу Talk. У Discord нативна назва команди — `/talkvoice`. -- `/card ...` надсилає заготовки багатих карток LINE. Див. [LINE](/uk/channels/line). -- `/codex status|models|threads|resume|compact|review|account|mcp|skills` перевіряє та керує вбудованим harness app-server Codex. Див. [Codex Harness](/uk/plugins/codex-harness). +- `/card ...` надсилає попередньо налаштовані rich card LINE. Див. [LINE](/uk/channels/line). +- `/codex status|models|threads|resume|compact|review|account|mcp|skills` перевіряє та керує вбудованим app-server harness Codex. Див. [Codex Harness](/uk/plugins/codex-harness). - Команди лише для QQBot: - `/bot-ping` - `/bot-version` @@ -171,51 +172,51 @@ Dock-команди генеруються з channel Plugins із підтри ### Динамічні команди Skills -Skills, які може викликати користувач, також доступні як slash-команди: +Skills, які може викликати користувач, також доступні як слеш-команди: - `/skill [input]` завжди працює як універсальна точка входу. -- skills також можуть з’являтися як прямі команди, наприклад `/prose`, коли їх реєструє skill/плагін. -- реєстрація нативних skill-команд керується через `commands.nativeSkills` і `channels..commands.nativeSkills`. +- skills також можуть з’являтися як прямі команди, наприклад `/prose`, коли skill/плагін їх реєструє. +- реєстрація нативних skill-команд керується `commands.nativeSkills` і `channels..commands.nativeSkills`. Примітки: - Команди приймають необов’язковий символ `:` між командою та аргументами (наприклад, `/think: high`, `/send: on`, `/help:`). -- `/new ` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст обробляється як тіло повідомлення. +- `/new ` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст розглядається як тіло повідомлення. - Для повного розподілу використання провайдера використовуйте `openclaw status --usage`. - `/allowlist add|remove` потребує `commands.config=true` і враховує `configWrites` каналу. -- У каналах із кількома обліковими записами `/allowlist --account ` для цільової конфігурації та `/config set channels..accounts....` також враховують `configWrites` цільового облікового запису. -- `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` виводить локальне зведення вартості з журналів сесії OpenClaw. +- У каналах із кількома обліковими записами `/allowlist --account `, націлений на конфігурацію, і `/config set channels..accounts....` також враховують `configWrites` цільового облікового запису. +- `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` виводить локальне зведення вартості з журналів сесій OpenClaw. - `/restart` увімкнено типово; установіть `commands.restart: false`, щоб вимкнути його. -- `/plugins install ` приймає ті самі специфікації плагінів, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:`. -- `/plugins enable|disable` оновлює конфігурацію плагіна й може запропонувати перезапуск. +- `/plugins install ` приймає ті самі специфікації плагінів, що й `openclaw plugins install`: локальний шлях/архів, npm-пакунок або `clawhub:`. +- `/plugins enable|disable` оновлює конфігурацію плагіна і може запропонувати перезапуск. - Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (потребує `channels.discord.voice` і нативних команд; недоступна як текстова). -- Команди прив’язки до потоку Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують, щоб ефективні прив’язки до потоку були увімкнені (`session.threadBindings.enabled` і/або `channels.discord.threadBindings.enabled`). -- Довідник команд ACP і поведінка середовища виконання: [ACP Agents](/uk/tools/acp-agents). +- Команди прив’язки потоку Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують, щоб ефективні прив’язки потоку були ввімкнені (`session.threadBindings.enabled` та/або `channels.discord.threadBindings.enabled`). +- Довідник команди ACP і поведінка середовища виконання: [ACP Agents](/uk/tools/acp-agents). - `/verbose` призначено для налагодження та додаткової видимості; у звичайному використанні тримайте його **вимкненим**. -- `/trace` вужчий за `/verbose`: він показує лише рядки трасування/налагодження, що належать плагінам, і не вмикає звичайну багатослівну балаканину інструментів. -- `/fast on|off` зберігає перевизначення сесії. Використовуйте параметр `inherit` в інтерфейсі Sessions, щоб очистити його та повернутися до типових значень конфігурації. -- `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` у нативних endpoint Responses, тоді як прямі публічні запити Anthropic, зокрема трафік з OAuth-аутентифікацією, надісланий до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic). -- Зведення про збої інструментів усе ще показуються, коли це доречно, але докладний текст помилок включається лише коли `/verbose` має значення `on` або `full`. -- `/reasoning`, `/verbose` і `/trace` ризиковані в групових середовищах: вони можуть розкрити внутрішнє міркування, вивід інструментів або діагностику плагінів, які ви не збиралися показувати. Краще залишати їх вимкненими, особливо в групових чатах. +- `/trace` вужчий за `/verbose`: він показує лише рядки trace/debug, що належать плагінам, і не вмикає звичайний докладний вивід інструментів. +- `/fast on|off` зберігає перевизначення сесії. Використовуйте опцію `inherit` в інтерфейсі Sessions, щоб очистити його й повернутися до значень конфігурації за замовчуванням. +- `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` у нативних ендпойнтах Responses, тоді як прямі публічні запити Anthropic, зокрема трафік з OAuth-автентифікацією, надісланий до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic). +- Зведення про збої інструментів усе ще показуються, коли це доречно, але докладний текст збоїв включається лише тоді, коли `/verbose` має значення `on` або `full`. +- `/reasoning`, `/verbose` і `/trace` ризиковані в групових налаштуваннях: вони можуть розкрити внутрішнє reasoning, вивід інструментів або діагностику плагінів, яку ви не мали наміру показувати. Краще залишати їх вимкненими, особливо в групових чатах. - `/model` негайно зберігає нову модель сесії. -- Якщо агент простоює, наступний запуск одразу її використовує. -- Якщо запуск уже активний, OpenClaw позначає перемикання наживо як таке, що очікує, і перезапускається в нову модель лише в чистій точці повторної спроби. -- Якщо активність інструментів або вивід відповіді вже почалися, відкладене перемикання може залишатися в черзі до наступної можливості повторної спроби або до наступного ходу користувача. +- Якщо агент простоює, наступний запуск використає її відразу. +- Якщо запуск уже активний, OpenClaw позначає перемикання наживо як очікуване і перезапускає на нову модель лише в чистій точці повторної спроби. +- Якщо активність інструментів або вивід відповіді вже почалися, очікуване перемикання може залишатися в черзі до пізнішої нагоди для повторної спроби або до наступного ходу користувача. - У локальному TUI `/crestodian [request]` повертає зі звичайного TUI агента до - Crestodian. Це окремо від аварійного режиму каналу повідомлень і не + Crestodian. Це окремо від режиму відновлення каналу повідомлень і не надає віддалених повноважень на зміну конфігурації. -- **Швидкий шлях:** повідомлення лише з командами від відправників зі списку дозволених обробляються негайно (обхід черги + моделі). -- **Обмеження згадуванням у групі:** повідомлення лише з командами від відправників зі списку дозволених обходять вимоги щодо згадування. -- **Вбудовані скорочення (лише для відправників зі списку дозволених):** деякі команди також працюють, коли вбудовані в звичайне повідомлення, і вилучаються до того, як модель побачить решту. - - Приклад: `hey /status` викликає відповідь зі статусом, а решта тексту продовжує проходити звичайний потік обробки. +- **Швидкий шлях:** повідомлення лише з командами від відправників зі списку дозволених обробляються негайно (в обхід черги й моделі). +- **Фільтрація згадок у групі:** повідомлення лише з командами від відправників зі списку дозволених обходять вимоги до згадок. +- **Вбудовані скорочення (лише для відправників зі списку дозволених):** деякі команди також працюють, коли вбудовані у звичайне повідомлення, і прибираються до того, як модель побачить решту тексту. + - Приклад: `hey /status` запускає відповідь зі статусом, а решта тексту продовжує проходити звичайним потоком. - Наразі: `/help`, `/commands`, `/status`, `/whoami` (`/id`). -- Неавторизовані повідомлення лише з командами мовчки ігноруються, а вбудовані токени `/...` обробляються як звичайний текст. -- **Команди Skills:** skills із типом `user-invocable` також доступні як slash-команди. Назви очищуються до `a-z0-9_` (максимум 32 символи); у разі колізій додаються числові суфікси (наприклад, `_2`). - - `/skill [input]` запускає skill за назвою (це корисно, коли обмеження нативних команд не дають створити команду для кожного skill окремо). - - Типово команди skill пересилаються моделі як звичайний запит. - - Skills можуть необов’язково оголошувати `command-dispatch: tool`, щоб маршрутизувати команду безпосередньо до інструмента (детерміновано, без моделі). +- Неавторизовані повідомлення лише з командами тихо ігноруються, а вбудовані токени `/...` розглядаються як звичайний текст. +- **Команди Skills:** skills із `user-invocable` також доступні як слеш-команди. Назви санітизуються до `a-z0-9_` (макс. 32 символи); у разі колізій додаються числові суфікси (наприклад, `_2`). + - `/skill [input]` запускає skill за назвою (це корисно, коли обмеження нативних команд не дають мати окремі команди для кожного skill). + - Типово skill-команди пересилаються моделі як звичайний запит. + - Skills можуть необов’язково оголошувати `command-dispatch: tool`, щоб спрямовувати команду безпосередньо до інструмента (детерміновано, без моделі). - Приклад: `/prose` (плагін OpenProse) — див. [OpenProse](/uk/prose). -- **Аргументи нативних команд:** Discord використовує автодоповнення для динамічних параметрів (і меню кнопок, якщо пропущено обов’язкові аргументи). Telegram і Slack показують меню кнопок, коли команда підтримує вибір значень, а аргумент пропущено. +- **Аргументи нативних команд:** Discord використовує автодоповнення для динамічних параметрів (і кнопкові меню, якщо ви пропускаєте обов’язкові аргументи). Telegram і Slack показують кнопкове меню, коли команда підтримує вибір значень, а ви пропускаєте аргумент. Динамічні варіанти визначаються відносно моделі цільової сесії, тому специфічні для моделі параметри, як-от рівні `/think`, дотримуються перевизначення `/model` цієї сесії. ## `/tools` @@ -224,22 +225,22 @@ Skills, які може викликати користувач, також до - Типовий `/tools` компактний і оптимізований для швидкого перегляду. - `/tools verbose` додає короткі описи. -- Поверхні нативних команд, що підтримують аргументи, надають той самий перемикач режиму `compact|verbose`. -- Результати мають межі сесії, тому зміна агента, каналу, потоку, авторизації відправника або моделі може +- Поверхні нативних команд, які підтримують аргументи, надають той самий перемикач режиму як `compact|verbose`. +- Результати прив’язані до сесії, тому зміна агента, каналу, потоку, авторизації відправника або моделі може змінити вивід. -- `/tools` включає інструменти, які справді досяжні під час виконання, зокрема базові інструменти, підключені +- `/tools` містить інструменти, які справді доступні під час виконання, зокрема основні інструменти, підключені інструменти плагінів і інструменти, що належать каналу. -Для редагування профілів і перевизначень використовуйте панель Tools в інтерфейсі керування або поверхні конфігурації/каталогу, -а не ставтеся до `/tools` як до статичного каталогу. +Для редагування профілів і перевизначень використовуйте панель Tools в інтерфейсі Control UI або поверхні конфігурації/каталогу +замість того, щоб розглядати `/tools` як статичний каталог. ## Поверхні використання (що де показується) -- **Використання/квота провайдера** (приклад: «Claude 80% left») відображається в `/status` для провайдера поточної моделі, якщо ввімкнено відстеження використання. OpenClaw нормалізує вікна провайдера до `% left`; для MiniMax поля відсотка лише залишку інвертуються перед показом, а відповіді `model_remains` віддають перевагу запису моделі чату разом із міткою плану, прив’язаною до моделі. -- **Рядки токенів/кешу** в `/status` можуть повертатися до останнього запису використання зі стенограми, якщо поточний знімок сесії бідний на дані. Наявні ненульові значення в реальному часі все одно мають пріоритет, а резервний варіант зі стенограми також може відновити мітку активної моделі середовища виконання разом із більшим загальним значенням, орієнтованим на промпт, коли збережені підсумки відсутні або менші. -- **Execution проти runtime:** `/status` повідомляє `Execution` для ефективного шляху sandbox і `Runtime` для того, хто фактично виконує сесію: `OpenClaw Pi Default`, `OpenAI Codex`, CLI backend або ACP backend. +- **Використання/квота провайдера** (приклад: “Claude 80% left”) з’являється в `/status` для поточного провайдера моделі, коли відстеження використання ввімкнено. OpenClaw нормалізує вікна провайдера до `% left`; для MiniMax поля відсотка лише залишку інвертуються перед показом, а відповіді `model_remains` віддають перевагу запису моделі чату плюс мітці плану з тегом моделі. +- **Рядки токенів/кешу** в `/status` можуть повертатися до останнього запису використання в transcript, коли живий знімок сесії є неповним. Наявні ненульові живі значення все одно мають пріоритет, а резервний варіант із transcript також може відновити мітку активної моделі середовища виконання плюс більший загальний підсумок, орієнтований на prompt, коли збережені підсумки відсутні або менші. +- **Execution проти runtime:** `/status` повідомляє `Execution` для ефективного шляху sandbox і `Runtime` для того, хто фактично виконує сесію: `OpenClaw Pi Default`, `OpenAI Codex`, бекенд CLI або бекенд ACP. - **Токени/вартість для кожної відповіді** керуються через `/usage off|tokens|full` (додаються до звичайних відповідей). -- `/model status` стосується **моделей/автентифікації/endpoint**, а не використання. +- `/model status` стосується **моделей/автентифікації/ендпойнтів**, а не використання. ## Вибір моделі (`/model`) @@ -258,14 +259,14 @@ Skills, які може викликати користувач, також до Примітки: -- `/model` і `/model list` показують компактний, пронумерований вибір (сімейство моделей + доступні провайдери). -- У Discord `/model` і `/models` відкривають інтерактивний вибір із випадними списками провайдера та моделі, а також кроком Submit. -- `/model <#>` вибирає зі цього списку (і за можливості віддає перевагу поточному провайдеру). -- `/model status` показує докладний вигляд, зокрема налаштований endpoint провайдера (`baseUrl`) і режим API (`api`), якщо доступно. +- `/model` і `/model list` показують компактний нумерований вибір (сімейство моделей + доступні провайдери). +- У Discord `/model` і `/models` відкривають інтерактивний вибір зі списками провайдерів і моделей та кроком Submit. +- `/model <#>` вибирає з цього списку (і за можливості віддає перевагу поточному провайдеру). +- `/model status` показує докладний перегляд, зокрема налаштований ендпойнт провайдера (`baseUrl`) і режим API (`api`), якщо доступно. -## Перевизначення для налагодження +## Перевизначення налагодження -`/debug` дає змогу задавати перевизначення конфігурації **лише під час виконання** (пам’ять, не диск). Лише для власника. Типово вимкнено; увімкніть через `commands.debug: true`. +`/debug` дає змогу задавати **перевизначення конфігурації лише під час виконання** (у пам’яті, не на диску). Лише для власника. Типово вимкнено; увімкніть через `commands.debug: true`. Приклади: @@ -279,12 +280,12 @@ Skills, які може викликати користувач, також до Примітки: -- Перевизначення застосовуються негайно до нових читань конфігурації, але **не** записуються в `openclaw.json`. -- Використовуйте `/debug reset`, щоб очистити всі перевизначення та повернутися до конфігурації на диску. +- Перевизначення застосовуються негайно до нових читань конфігурації, але **не** записуються до `openclaw.json`. +- Використовуйте `/debug reset`, щоб очистити всі перевизначення і повернутися до конфігурації на диску. -## Вивід трасування плагіна +## Вивід trace плагінів -`/trace` дає змогу перемикати **рядки трасування/налагодження плагіна в межах сесії** без увімкнення повного багатослівного режиму. +`/trace` дає змогу перемикати **прив’язані до сесії рядки trace/debug плагінів** без увімкнення повного докладного режиму. Приклади: @@ -296,12 +297,12 @@ Skills, які може викликати користувач, також до Примітки: -- `/trace` без аргументу показує поточний стан трасування сесії. -- `/trace on` вмикає рядки трасування плагіна для поточної сесії. +- `/trace` без аргументів показує поточний стан trace для сесії. +- `/trace on` вмикає рядки trace плагінів для поточної сесії. - `/trace off` знову вимикає їх. -- Рядки трасування плагіна можуть з’являтися в `/status` і як додаткове діагностичне повідомлення після звичайної відповіді асистента. -- `/trace` не замінює `/debug`; `/debug` усе ще керує перевизначеннями конфігурації лише під час виконання. -- `/trace` не замінює `/verbose`; звичайний багатослівний вивід інструментів/статусу й далі належить `/verbose`. +- Рядки trace плагінів можуть з’являтися в `/status` і як додаткове діагностичне повідомлення після звичайної відповіді помічника. +- `/trace` не замінює `/debug`; `/debug` як і раніше керує перевизначеннями конфігурації лише під час виконання. +- `/trace` не замінює `/verbose`; звичайний докладний вивід інструментів/статусу все ще належить до `/verbose`. ## Оновлення конфігурації @@ -319,7 +320,7 @@ Skills, які може викликати користувач, також до Примітки: -- Перед записом конфігурація перевіряється; невалідні зміни відхиляються. +- Перед записом конфігурація проходить валідацію; невалідні зміни відхиляються. - Оновлення `/config` зберігаються після перезапусків. ## Оновлення MCP @@ -338,11 +339,11 @@ Skills, які може викликати користувач, також до Примітки: - `/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в налаштуваннях проєкту, що належать Pi. -- Адаптери середовища виконання вирішують, які саме транспорти реально можна виконувати. +- Адаптери середовища виконання вирішують, які транспорти справді можна виконувати. ## Оновлення плагінів -`/plugins` дає змогу операторам перевіряти знайдені плагіни та перемикати стан увімкнення в конфігурації. Потоки лише для читання можуть використовувати `/plugin` як псевдонім. Типово вимкнено; увімкніть через `commands.plugins: true`. +`/plugins` дає змогу операторам перевіряти знайдені плагіни й перемикати стан увімкнення в конфігурації. Для сценаріїв лише читання можна використовувати `/plugin` як псевдонім. Типово вимкнено; увімкніть через `commands.plugins: true`. Приклади: @@ -356,32 +357,32 @@ Skills, які може викликати користувач, також до Примітки: -- `/plugins list` і `/plugins show` використовують реальне виявлення плагінів у поточному робочому просторі разом із конфігурацією на диску. +- `/plugins list` і `/plugins show` використовують реальне виявлення плагінів у поточному робочому просторі плюс конфігурацію на диску. - `/plugins enable|disable` оновлює лише конфігурацію плагіна; він не встановлює й не видаляє плагіни. - Після змін `enable/disable` перезапустіть gateway, щоб застосувати їх. ## Примітки щодо поверхонь -- **Текстові команди** працюють у звичайній чат-сесії (приватні повідомлення використовують `main`, групи мають власну сесію). +- **Текстові команди** виконуються у звичайній сесії чату (DM використовують `main`, групи мають власну сесію). - **Нативні команди** використовують ізольовані сесії: - Discord: `agent::discord:slash:` - - Slack: `agent::slack:slash:` (префікс налаштовується через `channels.slack.slashCommand.sessionPrefix`) - - Telegram: `telegram:slash:` (спрямовується на чат-сесію через `CommandTargetSessionKey`) -- **`/stop`** націлюється на активну чат-сесію, щоб перервати поточний запуск. -- **Slack:** `channels.slack.slashCommand` усе ще підтримується для однієї команди стилю `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну slash-команду Slack для кожної вбудованої команди (з тими самими назвами, що й `/help`). Меню аргументів команд для Slack доставляються як ефемерні кнопки Block Kit. - - Виняток для нативних команд Slack: зареєструйте `/agentstatus` (а не `/status`), оскільки Slack резервує `/status`. Текстова `/status` у повідомленнях Slack усе одно працює. + - Slack: `agent::slack:slash:` (префікс можна налаштувати через `channels.slack.slashCommand.sessionPrefix`) + - Telegram: `telegram:slash:` (націлюється на сесію чату через `CommandTargetSessionKey`) +- **`/stop`** націлюється на активну сесію чату, щоб можна було перервати поточний запуск. +- **Slack:** `channels.slack.slashCommand` усе ще підтримується для однієї команди стилю `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну слеш-команду Slack для кожної вбудованої команди (з тими самими назвами, що й `/help`). Меню аргументів команд для Slack доставляються як ефемерні кнопки Block Kit. + - Нативний виняток Slack: зареєструйте `/agentstatus` (а не `/status`), оскільки Slack резервує `/status`. Текстова команда `/status` у повідомленнях Slack усе одно працює. ## Побічні запитання BTW -`/btw` — це швидке **побічне запитання** про поточну сесію. +`/btw` — це швидке **побічне запитання** щодо поточної сесії. На відміну від звичайного чату: - воно використовує поточну сесію як фоновий контекст, -- виконується як окремий одноразовий виклик **без інструментів**, -- не змінює майбутній контекст сесії, -- не записується в історію стенограми, -- доставляється як живий побічний результат, а не як звичайне повідомлення асистента. +- воно виконується як окремий **одноразовий** виклик **без інструментів**, +- воно не змінює майбутній контекст сесії, +- воно не записується в історію transcript, +- воно доставляється як живий побічний результат, а не як звичайне повідомлення помічника. Це робить `/btw` корисним, коли вам потрібне тимчасове уточнення, поки основне завдання триває. @@ -392,11 +393,11 @@ Skills, які може викликати користувач, також до /btw what are we doing right now? ``` -Див. [BTW Side Questions](/uk/tools/btw), щоб ознайомитися з повною поведінкою та -подробицями UX клієнта. +Див. [BTW Side Questions](/uk/tools/btw) для повного опису поведінки й деталей +UX клієнта. ## Пов’язане - [Skills](/uk/tools/skills) - [Конфігурація Skills](/uk/tools/skills-config) -- [Створення Skills](/uk/tools/creating-skills) +- [Створення skills](/uk/tools/creating-skills) diff --git a/docs/uk/tools/tts.md b/docs/uk/tools/tts.md index 3aa902b27..46af612b8 100644 --- a/docs/uk/tools/tts.md +++ b/docs/uk/tools/tts.md @@ -6,10 +6,10 @@ read_when: summary: Перетворення тексту на мовлення (TTS) для вихідних відповідей title: Перетворення тексту на мовлення x-i18n: - generated_at: "2026-04-25T08:51:54Z" + generated_at: "2026-04-25T09:41:28Z" model: gpt-5.4 provider: openai - source_hash: 14a2d014850395add532faef86659acae7fd6a8a5757f9dd7dac606c0780d278 + source_hash: 08d41c6d2179162508df8d856cb2d392b274f66abbbdbd3c5ee4f243ac389692 source_path: tools/tts.md workflow: 15 --- @@ -21,26 +21,27 @@ OpenClaw може перетворювати вихідні відповіді - **ElevenLabs** (основний або резервний постачальник) - **Google Gemini** (основний або резервний постачальник; використовує Gemini API TTS) -- **Gradium** (основний або резервний постачальник; підтримує вихід voice-note і telephony) +- **Gradium** (основний або резервний постачальник; підтримує вихід у форматі голосових нотаток і телефонії) - **Microsoft** (основний або резервний постачальник; поточна вбудована реалізація використовує `node-edge-tts`) - **MiniMax** (основний або резервний постачальник; використовує API T2A v2) - **OpenAI** (основний або резервний постачальник; також використовується для підсумків) - **Vydra** (основний або резервний постачальник; спільний постачальник зображень, відео та мовлення) - **xAI** (основний або резервний постачальник; використовує xAI TTS API) -- **Xiaomi MiMo** (основний або резервний постачальник; використовує MiMo TTS через chat completions Xiaomi) +- **Xiaomi MiMo** (основний або резервний постачальник; використовує MiMo TTS через чат-комплішни Xiaomi) ### Примітки щодо мовлення Microsoft -Поточний вбудований постачальник мовлення Microsoft використовує онлайн-сервіс -нейронного TTS Microsoft Edge через бібліотеку `node-edge-tts`. Це хостинговий сервіс (не -локальний), він використовує кінцеві точки Microsoft і не потребує API-ключа. -`node-edge-tts` надає параметри конфігурації мовлення та вихідні формати, але -сервіс підтримує не всі параметри. Застаріла конфігурація та вхідні директиви -з використанням `edge` усе ще працюють і нормалізуються до `microsoft`. +Наразі вбудований постачальник мовлення Microsoft використовує онлайновий +сервіс нейронного TTS Microsoft Edge через бібліотеку `node-edge-tts`. Це +хостингований сервіс (не локальний), який використовує кінцеві точки Microsoft +і не потребує API-ключа. `node-edge-tts` надає параметри конфігурації мовлення +та формати виводу, але не всі параметри підтримуються сервісом. Застаріла +конфігурація та вхідні директиви з використанням `edge` усе ще працюють і +нормалізуються до `microsoft`. -Оскільки цей шлях використовує загальнодоступний вебсервіс без опублікованих SLA або квот, -вважайте його best-effort. Якщо вам потрібні гарантовані ліміти та підтримка, використовуйте OpenAI -або ElevenLabs. +Оскільки цей шлях є публічним вебсервісом без опублікованого SLA або квоти, +розглядайте його як best-effort. Якщо вам потрібні гарантовані ліміти та +підтримка, використовуйте OpenAI або ElevenLabs. ## Необов’язкові ключі @@ -49,7 +50,9 @@ OpenClaw може перетворювати вихідні відповіді - `ELEVENLABS_API_KEY` (або `XI_API_KEY`) - `GEMINI_API_KEY` (або `GOOGLE_API_KEY`) - `GRADIUM_API_KEY` -- `MINIMAX_API_KEY` +- `MINIMAX_API_KEY`; MiniMax TTS також приймає автентифікацію Token Plan через + `MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY` або + `MINIMAX_CODING_API_KEY` - `OPENAI_API_KEY` - `VYDRA_API_KEY` - `XAI_API_KEY` @@ -57,9 +60,9 @@ OpenClaw може перетворювати вихідні відповіді Мовлення Microsoft **не** потребує API-ключа. -Якщо налаштовано кілька постачальників, спочатку використовується вибраний постачальник, а решта слугують резервними варіантами. -Автоматичний підсумок використовує налаштований `summaryModel` (або `agents.defaults.model.primary`), -тому якщо ви вмикаєте підсумки, цей постачальник також має бути автентифікований. +Якщо налаштовано кілька постачальників, спочатку використовується вибраний постачальник, а решта — як резервні варіанти. +Автопідсумок використовує налаштований `summaryModel` (або `agents.defaults.model.primary`), +тому цього постачальника також має бути автентифіковано, якщо ви вмикаєте підсумки. ## Посилання на сервіси @@ -68,24 +71,24 @@ OpenClaw може перетворювати вихідні відповіді - [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech) - [Автентифікація ElevenLabs](https://elevenlabs.io/docs/api-reference/authentication) - [Gradium](/uk/providers/gradium) -- [API MiniMax T2A v2](https://platform.minimaxi.com/document/T2A%20V2) +- [MiniMax T2A v2 API](https://platform.minimaxi.com/document/T2A%20V2) - [Синтез мовлення Xiaomi MiMo](/uk/providers/xiaomi#text-to-speech) - [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts) -- [Вихідні формати Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs) +- [Формати виводу Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs) - [xAI Text to Speech](https://docs.x.ai/developers/rest-api-reference/inference/voice#text-to-speech-rest) ## Чи ввімкнено це за замовчуванням? -Ні. Автоматичний TTS **вимкнено** за замовчуванням. Увімкніть його в конфігурації через -`messages.tts.auto` або локально через `/tts on`. +Ні. Авто-TTS **вимкнено** за замовчуванням. Увімкніть його в конфігурації за допомогою +`messages.tts.auto` або локально за допомогою `/tts on`. Коли `messages.tts.provider` не задано, OpenClaw вибирає першого налаштованого постачальника мовлення в порядку автоматичного вибору реєстру. ## Конфігурація -Конфігурація TTS розміщується в `messages.tts` у `openclaw.json`. -Повна схема наведена в [Конфігурація Gateway](/uk/gateway/configuration). +Конфігурація TTS розташована в `messages.tts` у `openclaw.json`. +Повну схему наведено в [Конфігурація Gateway](/uk/gateway/configuration). ### Мінімальна конфігурація (увімкнення + постачальник) @@ -100,7 +103,7 @@ OpenClaw може перетворювати вихідні відповіді } ``` -### OpenAI як основний з ElevenLabs як резервним +### OpenAI як основний із резервним ElevenLabs ```json5 { @@ -188,6 +191,13 @@ OpenClaw може перетворювати вихідні відповіді } ``` +Порядок визначення автентифікації MiniMax TTS такий: `messages.tts.providers.minimax.apiKey`, далі +збережені профілі OAuth/токенів `minimax-portal`, потім ключі середовища Token Plan +(`MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, +`MINIMAX_CODING_API_KEY`), а потім `MINIMAX_API_KEY`. Якщо явний TTS +`baseUrl` не задано, OpenClaw може повторно використовувати налаштований OAuth-хост +`minimax-portal` для мовлення Token Plan. + ### Google Gemini як основний ```json5 @@ -208,8 +218,8 @@ OpenClaw може перетворювати вихідні відповіді } ``` -Google Gemini TTS використовує шлях API-ключа Gemini. Тут дійсний API-ключ Google Cloud Console, -обмежений Gemini API, і це той самий тип ключа, який використовується +Google Gemini TTS використовує шлях API-ключа Gemini. Ключ API Google Cloud Console, +обмежений Gemini API, тут є дійсним, і це той самий тип ключа, що використовується вбудованим постачальником генерації зображень Google. Порядок визначення: `messages.tts.providers.google.apiKey` -> `models.providers.google.apiKey` -> `GEMINI_API_KEY` -> `GOOGLE_API_KEY`. @@ -239,7 +249,7 @@ Google Gemini TTS використовує шлях API-ключа Gemini. Ту xAI TTS використовує той самий шлях `XAI_API_KEY`, що й вбудований постачальник моделей Grok. Порядок визначення: `messages.tts.providers.xai.apiKey` -> `XAI_API_KEY`. Поточні доступні голоси: `ara`, `eve`, `leo`, `rex`, `sal` і `una`; `eve` — -значення за замовчуванням. `language` приймає тег BCP-47 або `auto`. +голос за замовчуванням. `language` приймає тег BCP-47 або `auto`. ### Xiaomi MiMo як основний @@ -266,7 +276,7 @@ xAI TTS використовує той самий шлях `XAI_API_KEY`, що Xiaomi MiMo TTS використовує той самий шлях `XIAOMI_API_KEY`, що й вбудований постачальник моделей Xiaomi. Ідентифікатор постачальника мовлення — `xiaomi`; `mimo` також приймається як псевдонім. -Цільовий текст надсилається як повідомлення асистента відповідно до контракту TTS Xiaomi. +Цільовий текст надсилається як повідомлення асистента, що відповідає контракту TTS Xiaomi. Необов’язковий `style` надсилається як інструкція користувача і не озвучується. ### OpenRouter як основний @@ -331,7 +341,7 @@ OpenRouter TTS використовує той самий шлях `OPENROUTER_A } ``` -### Власні ліміти + шлях до prefs +### Власні ліміти + шлях до налаштувань ```json5 { @@ -358,7 +368,7 @@ OpenRouter TTS використовує той самий шлях `OPENROUTER_A } ``` -### Вимкнення автоматичного підсумку для довгих відповідей +### Вимкнення автопідсумку для довгих відповідей ```json5 { @@ -378,100 +388,100 @@ OpenRouter TTS використовує той самий шлях `OPENROUTER_A ### Примітки щодо полів -- `auto`: режим автоматичного TTS (`off`, `always`, `inbound`, `tagged`). +- `auto`: режим авто-TTS (`off`, `always`, `inbound`, `tagged`). - `inbound` надсилає аудіо лише після вхідного голосового повідомлення. - `tagged` надсилає аудіо лише тоді, коли відповідь містить директиви `[[tts:key=value]]` або блок `[[tts:text]]...[[/tts:text]]`. -- `enabled`: застарілий перемикач (doctor мігрує його до `auto`). -- `mode`: `"final"` (за замовчуванням) або `"all"` (включає відповіді інструментів/блоків). -- `provider`: ідентифікатор постачальника мовлення, наприклад `"elevenlabs"`, `"google"`, `"gradium"`, `"microsoft"`, `"minimax"`, `"openai"`, `"vydra"`, `"xai"` або `"xiaomi"` (резервне перемикання відбувається автоматично). +- `enabled`: застарілий перемикач (doctor переносить це до `auto`). +- `mode`: `"final"` (типово) або `"all"` (включає відповіді інструментів/блоків). +- `provider`: ідентифікатор постачальника мовлення, наприклад `"elevenlabs"`, `"google"`, `"gradium"`, `"microsoft"`, `"minimax"`, `"openai"`, `"vydra"`, `"xai"` або `"xiaomi"` (резервний варіант обирається автоматично). - Якщо `provider` **не задано**, OpenClaw використовує першого налаштованого постачальника мовлення в порядку автоматичного вибору реєстру. - Застаріла конфігурація `provider: "edge"` виправляється командою `openclaw doctor --fix` і переписується на `provider: "microsoft"`. -- `summaryModel`: необов’язкова недорога модель для автоматичного підсумку; за замовчуванням використовується `agents.defaults.model.primary`. +- `summaryModel`: необов’язкова недорога модель для автопідсумку; типово використовується `agents.defaults.model.primary`. - Приймає `provider/model` або псевдонім налаштованої моделі. -- `modelOverrides`: дозволяє моделі виводити директиви TTS (увімкнено за замовчуванням). - - `allowProvider` за замовчуванням має значення `false` (перемикання постачальника вмикається явно). -- `providers.`: налаштування, що належать постачальнику, із ключем за ідентифікатором постачальника мовлення. +- `modelOverrides`: дозволяє моделі генерувати TTS-директиви (увімкнено за замовчуванням). + - `allowProvider` типово має значення `false` (перемикання постачальника вмикається явно). +- `providers.`: налаштування, що належать постачальнику, з ключем за ідентифікатором постачальника мовлення. - Застарілі прямі блоки постачальників (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) виправляються командою `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.`. - Застарілий `messages.tts.providers.edge` також виправляється командою `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.microsoft`. -- `maxTextLength`: жорстке обмеження для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо ліміт перевищено. +- `maxTextLength`: жорстке обмеження для вхідного TTS-тексту (символи). `/tts audio` завершиться помилкою, якщо обмеження перевищено. - `timeoutMs`: тайм-аут запиту (мс). -- `prefsPath`: перевизначає локальний шлях до JSON-файлу prefs (постачальник/ліміт/підсумок). -- Значення `apiKey` беруться з env vars (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `GRADIUM_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`, `VYDRA_API_KEY`, `XAI_API_KEY`, `XIAOMI_API_KEY`), якщо не задані явно. -- `providers.elevenlabs.baseUrl`: перевизначає базовий URL API ElevenLabs. +- `prefsPath`: перевизначає локальний шлях до JSON-файлу налаштувань (постачальник/ліміт/підсумок). +- Значення `apiKey` резервно беруться зі змінних середовища (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `GRADIUM_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`, `VYDRA_API_KEY`, `XAI_API_KEY`, `XIAOMI_API_KEY`). +- `providers.elevenlabs.baseUrl`: перевизначає базову URL-адресу API ElevenLabs. - `providers.openai.baseUrl`: перевизначає кінцеву точку OpenAI TTS. - Порядок визначення: `messages.tts.providers.openai.baseUrl` -> `OPENAI_TTS_BASE_URL` -> `https://api.openai.com/v1` - - Значення, відмінні від типових, розглядаються як OpenAI-сумісні кінцеві точки TTS, тому допускаються власні назви моделей і голосів. + - Значення, відмінні від типових, розглядаються як TTS-кінцеві точки, сумісні з OpenAI, тому допускаються власні назви моделей і голосів. - `providers.elevenlabs.voiceSettings`: - `stability`, `similarityBoost`, `style`: `0..1` - `useSpeakerBoost`: `true|false` - - `speed`: `0.5..2.0` (1.0 = нормально) + - `speed`: `0.5..2.0` (1.0 = звичайна швидкість) - `providers.elevenlabs.applyTextNormalization`: `auto|on|off` - `providers.elevenlabs.languageCode`: 2-літерний ISO 639-1 (наприклад, `en`, `de`) -- `providers.elevenlabs.seed`: ціле число `0..4294967295` (best-effort determinism) -- `providers.minimax.baseUrl`: перевизначає базовий URL API MiniMax (за замовчуванням `https://api.minimax.io`, env: `MINIMAX_API_HOST`). -- `providers.minimax.model`: модель TTS (за замовчуванням `speech-2.8-hd`, env: `MINIMAX_TTS_MODEL`). -- `providers.minimax.voiceId`: ідентифікатор голосу (за замовчуванням `English_expressive_narrator`, env: `MINIMAX_TTS_VOICE_ID`). -- `providers.minimax.speed`: швидкість відтворення `0.5..2.0` (за замовчуванням 1.0). -- `providers.minimax.vol`: гучність `(0, 10]` (за замовчуванням 1.0; має бути більшою за 0). -- `providers.minimax.pitch`: цілочисельне зміщення тону `-12..12` (за замовчуванням 0). Дробові значення відкидаються перед викликом MiniMax T2A, оскільки API не приймає нецілі значення тону. -- `providers.google.model`: модель Gemini TTS (за замовчуванням `gemini-3.1-flash-tts-preview`). -- `providers.google.voiceName`: назва вбудованого голосу Gemini (за замовчуванням `Kore`; також приймається `voice`). -- `providers.google.audioProfile`: підказка зі стилем природною мовою, що додається перед озвучуваним текстом. -- `providers.google.speakerName`: необов’язкова мітка мовця, що додається перед озвучуваним текстом, коли ваш TTS prompt використовує іменованого мовця. -- `providers.google.baseUrl`: перевизначає базовий URL Gemini API. Приймається лише `https://generativelanguage.googleapis.com`. - - Якщо `messages.tts.providers.google.apiKey` пропущено, TTS може повторно використати `models.providers.google.apiKey` перед переходом до env. -- `providers.gradium.baseUrl`: перевизначає базовий URL API Gradium (за замовчуванням `https://api.gradium.ai`). -- `providers.gradium.voiceId`: ідентифікатор голосу Gradium (за замовчуванням Emma, `YTpq7expH9539ERJ`). -- `providers.xai.apiKey`: API-ключ xAI TTS (env: `XAI_API_KEY`). -- `providers.xai.baseUrl`: перевизначає базовий URL xAI TTS (за замовчуванням `https://api.x.ai/v1`, env: `XAI_BASE_URL`). -- `providers.xai.voiceId`: ідентифікатор голосу xAI (за замовчуванням `eve`; поточні доступні голоси: `ara`, `eve`, `leo`, `rex`, `sal`, `una`). -- `providers.xai.language`: код мови BCP-47 або `auto` (за замовчуванням `en`). -- `providers.xai.responseFormat`: `mp3`, `wav`, `pcm`, `mulaw` або `alaw` (за замовчуванням `mp3`). +- `providers.elevenlabs.seed`: ціле число `0..4294967295` (best-effort детермінованість) +- `providers.minimax.baseUrl`: перевизначає базову URL-адресу API MiniMax (типово `https://api.minimax.io`, змінна середовища: `MINIMAX_API_HOST`). +- `providers.minimax.model`: TTS-модель (типово `speech-2.8-hd`, змінна середовища: `MINIMAX_TTS_MODEL`). +- `providers.minimax.voiceId`: ідентифікатор голосу (типово `English_expressive_narrator`, змінна середовища: `MINIMAX_TTS_VOICE_ID`). +- `providers.minimax.speed`: швидкість відтворення `0.5..2.0` (типово 1.0). +- `providers.minimax.vol`: гучність `(0, 10]` (типово 1.0; має бути більшою за 0). +- `providers.minimax.pitch`: цілий зсув тону `-12..12` (типово 0). Дробові значення обрізаються перед викликом MiniMax T2A, оскільки API не приймає нецілі значення тону. +- `providers.google.model`: модель Gemini TTS (типово `gemini-3.1-flash-tts-preview`). +- `providers.google.voiceName`: назва вбудованого голосу Gemini (типово `Kore`; також приймається `voice`). +- `providers.google.audioProfile`: підказка стилю природною мовою, що додається перед озвучуваним текстом. +- `providers.google.speakerName`: необов’язкова мітка мовця, що додається перед озвучуваним текстом, коли ваш TTS-запит використовує іменованого мовця. +- `providers.google.baseUrl`: перевизначає базову URL-адресу Gemini API. Допускається лише `https://generativelanguage.googleapis.com`. + - Якщо `messages.tts.providers.google.apiKey` пропущено, TTS може повторно використовувати `models.providers.google.apiKey` перед резервним переходом до змінних середовища. +- `providers.gradium.baseUrl`: перевизначає базову URL-адресу API Gradium (типово `https://api.gradium.ai`). +- `providers.gradium.voiceId`: ідентифікатор голосу Gradium (типово Emma, `YTpq7expH9539ERJ`). +- `providers.xai.apiKey`: API-ключ xAI TTS (змінна середовища: `XAI_API_KEY`). +- `providers.xai.baseUrl`: перевизначає базову URL-адресу xAI TTS (типово `https://api.x.ai/v1`, змінна середовища: `XAI_BASE_URL`). +- `providers.xai.voiceId`: ідентифікатор голосу xAI (типово `eve`; поточні доступні голоси: `ara`, `eve`, `leo`, `rex`, `sal`, `una`). +- `providers.xai.language`: код мови BCP-47 або `auto` (типово `en`). +- `providers.xai.responseFormat`: `mp3`, `wav`, `pcm`, `mulaw` або `alaw` (типово `mp3`). - `providers.xai.speed`: перевизначення швидкості на рівні постачальника. -- `providers.xiaomi.apiKey`: API-ключ Xiaomi MiMo (env: `XIAOMI_API_KEY`). -- `providers.xiaomi.baseUrl`: перевизначає базовий URL API Xiaomi MiMo (за замовчуванням `https://api.xiaomimimo.com/v1`, env: `XIAOMI_BASE_URL`). -- `providers.xiaomi.model`: модель TTS (за замовчуванням `mimo-v2.5-tts`, env: `XIAOMI_TTS_MODEL`; також підтримується `mimo-v2-tts`). -- `providers.xiaomi.voice`: ідентифікатор голосу MiMo (за замовчуванням `mimo_default`, env: `XIAOMI_TTS_VOICE`). -- `providers.xiaomi.format`: `mp3` або `wav` (за замовчуванням `mp3`, env: `XIAOMI_TTS_FORMAT`). -- `providers.xiaomi.style`: необов’язкова інструкція щодо стилю природною мовою, яка надсилається як повідомлення користувача; вона не озвучується. -- `providers.openrouter.apiKey`: API-ключ OpenRouter (env: `OPENROUTER_API_KEY`; може повторно використовувати `models.providers.openrouter.apiKey`). -- `providers.openrouter.baseUrl`: перевизначає базовий URL OpenRouter TTS (за замовчуванням `https://openrouter.ai/api/v1`; застарілий `https://openrouter.ai/v1` нормалізується). -- `providers.openrouter.model`: ідентифікатор моделі OpenRouter TTS (за замовчуванням `hexgrad/kokoro-82m`; також приймається `modelId`). -- `providers.openrouter.voice`: ідентифікатор голосу, специфічний для постачальника (за замовчуванням `af_alloy`; також приймається `voiceId`). -- `providers.openrouter.responseFormat`: `mp3` або `pcm` (за замовчуванням `mp3`). +- `providers.xiaomi.apiKey`: API-ключ Xiaomi MiMo (змінна середовища: `XIAOMI_API_KEY`). +- `providers.xiaomi.baseUrl`: перевизначає базову URL-адресу API Xiaomi MiMo (типово `https://api.xiaomimimo.com/v1`, змінна середовища: `XIAOMI_BASE_URL`). +- `providers.xiaomi.model`: TTS-модель (типово `mimo-v2.5-tts`, змінна середовища: `XIAOMI_TTS_MODEL`; також підтримується `mimo-v2-tts`). +- `providers.xiaomi.voice`: ідентифікатор голосу MiMo (типово `mimo_default`, змінна середовища: `XIAOMI_TTS_VOICE`). +- `providers.xiaomi.format`: `mp3` або `wav` (типово `mp3`, змінна середовища: `XIAOMI_TTS_FORMAT`). +- `providers.xiaomi.style`: необов’язкова інструкція стилю природною мовою, що надсилається як повідомлення користувача; вона не озвучується. +- `providers.openrouter.apiKey`: API-ключ OpenRouter (змінна середовища: `OPENROUTER_API_KEY`; може повторно використовувати `models.providers.openrouter.apiKey`). +- `providers.openrouter.baseUrl`: перевизначає базову URL-адресу OpenRouter TTS (типово `https://openrouter.ai/api/v1`; застаріле `https://openrouter.ai/v1` нормалізується). +- `providers.openrouter.model`: ідентифікатор моделі OpenRouter TTS (типово `hexgrad/kokoro-82m`; також приймається `modelId`). +- `providers.openrouter.voice`: специфічний для постачальника ідентифікатор голосу (типово `af_alloy`; також приймається `voiceId`). +- `providers.openrouter.responseFormat`: `mp3` або `pcm` (типово `mp3`). - `providers.openrouter.speed`: перевизначення швидкості на рівні постачальника. -- `providers.microsoft.enabled`: дозволяє використання мовлення Microsoft (за замовчуванням `true`; без API-ключа). +- `providers.microsoft.enabled`: дозволяє використання мовлення Microsoft (типово `true`; без API-ключа). - `providers.microsoft.voice`: назва нейронного голосу Microsoft (наприклад, `en-US-MichelleNeural`). - `providers.microsoft.lang`: код мови (наприклад, `en-US`). -- `providers.microsoft.outputFormat`: вихідний формат Microsoft (наприклад, `audio-24khz-48kbitrate-mono-mp3`). - - Дійсні значення див. у Microsoft Speech output formats; не всі формати підтримуються вбудованим транспортом на базі Edge. -- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: рядки у відсотках (наприклад, `+10%`, `-5%`). +- `providers.microsoft.outputFormat`: формат виводу Microsoft (наприклад, `audio-24khz-48kbitrate-mono-mp3`). + - Дійсні значення див. у форматах виводу Microsoft Speech; не всі формати підтримуються вбудованим транспортом на базі Edge. +- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: рядки відсотків (наприклад, `+10%`, `-5%`). - `providers.microsoft.saveSubtitles`: записує JSON-субтитри поруч з аудіофайлом. -- `providers.microsoft.proxy`: URL проксі для запитів до мовлення Microsoft. +- `providers.microsoft.proxy`: URL-адреса проксі для запитів до мовлення Microsoft. - `providers.microsoft.timeoutMs`: перевизначення тайм-ауту запиту (мс). - `edge.*`: застарілий псевдонім для тих самих налаштувань Microsoft. Виконайте `openclaw doctor --fix`, щоб переписати збережену конфігурацію на `providers.microsoft`. ## Перевизначення, керовані моделлю (увімкнено за замовчуванням) -За замовчуванням модель **може** виводити директиви TTS для однієї відповіді. +За замовчуванням модель **може** генерувати TTS-директиви для однієї відповіді. Коли `messages.tts.auto` має значення `tagged`, ці директиви потрібні для запуску аудіо. -Коли цю функцію ввімкнено, модель може виводити директиви `[[tts:...]]` для перевизначення голосу +Коли це ввімкнено, модель може генерувати директиви `[[tts:...]]`, щоб перевизначити голос для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]`, щоб -додати виразні теги (сміх, підказки для співу тощо), які мають з’являтися лише в -аудіо. +додати виразні теги (сміх, підказки для співу тощо), які мають з’являтися лише +в аудіо. -Директиви `provider=...` ігноруються, якщо `modelOverrides.allowProvider: true` не встановлено. +Директиви `provider=...` ігноруються, якщо не задано `modelOverrides.allowProvider: true`. -Приклад payload відповіді: +Приклад вмісту відповіді: ``` -Here you go. +Ось, будь ласка. [[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]] -[[tts:text]](laughs) Read the song once more.[[/tts:text]] +[[tts:text]](сміється) Прочитай пісню ще раз.[[/tts:text]] ``` Доступні ключі директив (коли ввімкнено): @@ -481,12 +491,12 @@ Here you go. - `model` (модель OpenAI TTS, ідентифікатор моделі ElevenLabs, модель MiniMax або модель Xiaomi MiMo TTS) або `google_model` (модель Google TTS) - `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost` - `vol` / `volume` (гучність MiniMax, 0-10) -- `pitch` (цілочисельний тон MiniMax, від -12 до 12; дробові значення відкидаються перед запитом MiniMax) +- `pitch` (цілий тон MiniMax, -12 до 12; дробові значення обрізаються перед запитом до MiniMax) - `applyTextNormalization` (`auto|on|off`) - `languageCode` (ISO 639-1) - `seed` -Вимкнути всі перевизначення моделі: +Вимкнення всіх перевизначень моделі: ```json5 { @@ -500,7 +510,7 @@ Here you go. } ``` -Необов’язковий allowlist (увімкнути перемикання постачальника, зберігши можливість налаштовувати інші параметри): +Необов’язковий список дозволів (увімкнути перемикання постачальника, залишивши інші параметри доступними для налаштування): ```json5 { @@ -516,52 +526,52 @@ Here you go. } ``` -## Налаштування для окремих користувачів +## Налаштування для окремого користувача -Команди зі слешем записують локальні перевизначення до `prefsPath` (за замовчуванням: +Слеш-команди записують локальні перевизначення до `prefsPath` (типово: `~/.openclaw/settings/tts.json`, можна перевизначити через `OPENCLAW_TTS_PREFS` або `messages.tts.prefsPath`). -Поля, що зберігаються: +Збережені поля: - `enabled` - `provider` -- `maxLength` (поріг підсумку; за замовчуванням 1500 символів) -- `summarize` (за замовчуванням `true`) +- `maxLength` (поріг підсумку; типово 1500 символів) +- `summarize` (типово `true`) Вони перевизначають `messages.tts.*` для цього хоста. -## Вихідні формати (фіксовані) +## Формати виводу (фіксовані) -- **Feishu / Matrix / Telegram / WhatsApp**: для відповідей voice-note перевага надається Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI). +- **Feishu / Matrix / Telegram / WhatsApp**: відповіді у форматі голосових нотаток віддають перевагу Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI). - 48 кГц / 64 кбіт/с — хороший компроміс для голосових повідомлень. -- **Feishu**: коли відповідь voice-note створюється як MP3/WAV/M4A або інший +- **Feishu**: коли відповідь у форматі голосової нотатки створюється як MP3/WAV/M4A або інший імовірний аудіофайл, плагін Feishu перекодовує її в 48 кГц Ogg/Opus за допомогою `ffmpeg` перед надсиланням нативної бульбашки `audio`. Якщо перетворення не вдається, Feishu отримує оригінальний файл як вкладення. - **Інші канали**: MP3 (`mp3_44100_128` від ElevenLabs, `mp3` від OpenAI). - 44,1 кГц / 128 кбіт/с — типовий баланс для чіткості мовлення. -- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц) для звичайних аудіовкладень. Для цілей voice-note, таких як Feishu і Telegram, OpenClaw перекодовує MP3 від MiniMax у 48 кГц Opus за допомогою `ffmpeg` перед доставленням. -- **Xiaomi MiMo**: MP3 за замовчуванням або WAV, якщо налаштовано. Для цілей voice-note, таких як Feishu і Telegram, OpenClaw перекодовує вихід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставленням. -- **Google Gemini**: Gemini API TTS повертає необроблений PCM 24 кГц. OpenClaw обгортає його у WAV для аудіовкладень і повертає PCM безпосередньо для Talk/telephony. Нативний формат voice-note Opus цим шляхом не підтримується. -- **Gradium**: WAV для аудіовкладень, Opus для цілей voice-note і `ulaw_8000` на 8 кГц для telephony. -- **xAI**: MP3 за замовчуванням; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує пакетну REST-кінцеву точку TTS від xAI і повертає завершене аудіовкладення; потоковий TTS WebSocket від xAI не використовується цим шляхом постачальника. Нативний формат voice-note Opus цим шляхом не підтримується. -- **Microsoft**: використовує `microsoft.outputFormat` (за замовчуванням `audio-24khz-48kbitrate-mono-mp3`). - - Вбудований транспорт приймає `outputFormat`, але сервіс підтримує не всі формати. - - Значення вихідного формату відповідають Microsoft Speech output formats (включно з Ogg/WebM Opus). - - Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам - потрібні гарантовані голосові повідомлення Opus. - - Якщо налаштований вихідний формат Microsoft не спрацьовує, OpenClaw повторює спробу з MP3. +- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц) для звичайних аудіовкладень. Для цілей голосових нотаток, таких як Feishu і Telegram, OpenClaw перекодовує MiniMax MP3 у 48 кГц Opus за допомогою `ffmpeg` перед доставкою. +- **Xiaomi MiMo**: MP3 за замовчуванням або WAV, якщо налаштовано. Для цілей голосових нотаток, таких як Feishu і Telegram, OpenClaw перекодовує вивід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставкою. +- **Google Gemini**: Gemini API TTS повертає сирий PCM 24 кГц. OpenClaw обгортає його у WAV для аудіовкладень і повертає PCM напряму для Talk/телефонії. Нативний формат голосових нотаток Opus цим шляхом не підтримується. +- **Gradium**: WAV для аудіовкладень, Opus для цілей голосових нотаток і `ulaw_8000` на 8 кГц для телефонії. +- **xAI**: MP3 за замовчуванням; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує пакетну REST TTS-кінцеву точку xAI і повертає повне аудіовкладення; WebSocket потокового TTS xAI цим шляхом постачальника не використовується. Нативний формат голосових нотаток Opus цим шляхом не підтримується. +- **Microsoft**: використовує `microsoft.outputFormat` (типово `audio-24khz-48kbitrate-mono-mp3`). + - Вбудований транспорт приймає `outputFormat`, але не всі формати доступні в сервісі. + - Значення формату виводу відповідають форматам виводу Microsoft Speech (включно з Ogg/WebM Opus). + - Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні + гарантовані голосові повідомлення у форматі Opus. + - Якщо налаштований формат виводу Microsoft не спрацьовує, OpenClaw повторює спробу з MP3. -Вихідні формати OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище). +Формати виводу OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище). -## Поведінка автоматичного TTS +## Поведінка авто-TTS -Коли функцію ввімкнено, OpenClaw: +Коли цю функцію ввімкнено, OpenClaw: - пропускає TTS, якщо відповідь уже містить медіа або директиву `MEDIA:`. - пропускає дуже короткі відповіді (< 10 символів). -- підсумовує довгі відповіді, коли це ввімкнено, за допомогою `agents.defaults.model.primary` (або `summaryModel`). +- підсумовує довгі відповіді, якщо це ввімкнено, за допомогою `agents.defaults.model.primary` (або `summaryModel`). - додає згенероване аудіо до відповіді. Якщо відповідь перевищує `maxLength`, а підсумок вимкнено (або немає API-ключа для @@ -573,22 +583,22 @@ Here you go. ``` Відповідь -> TTS увімкнено? ні -> надіслати текст - так -> є медіа / MEDIA: / коротко? - так -> надіслати текст - ні -> довжина > ліміт? - ні -> TTS -> прикріпити аудіо - так -> підсумок увімкнено? - ні -> надіслати текст - так -> підсумувати (`summaryModel` або `agents.defaults.model.primary`) - -> TTS -> прикріпити аудіо + так -> є медіа / MEDIA: / коротка? + так -> надіслати текст + ні -> довжина > ліміт? + ні -> TTS -> додати аудіо + так -> підсумок увімкнено? + ні -> надіслати текст + так -> підсумувати (`summaryModel` або `agents.defaults.model.primary`) + -> TTS -> додати аудіо ``` -## Використання команд зі слешем +## Використання слеш-команд Є одна команда: `/tts`. -Деталі ввімкнення див. у [Команди зі слешем](/uk/tools/slash-commands). +Докладніше про ввімкнення див. у [Слеш-команди](/uk/tools/slash-commands). -Примітка щодо Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє +Примітка для Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє там `/voice` як нативну команду. Текстова команда `/tts ...` усе одно працює. ``` @@ -603,28 +613,28 @@ Here you go. Примітки: -- Команди потребують авторизованого відправника (правила allowlist/owner також застосовуються). +- Команди потребують авторизованого відправника (правила allowlist/owner як і раніше застосовуються). - Має бути ввімкнено `commands.text` або реєстрацію нативних команд. - Конфігурація `messages.tts.auto` приймає `off|always|inbound|tagged`. - `/tts on` записує локальне налаштування TTS як `always`; `/tts off` записує його як `off`. -- Використовуйте конфігурацію, якщо потрібні типові значення `inbound` або `tagged`. -- `limit` і `summary` зберігаються в локальних prefs, а не в основній конфігурації. +- Використовуйте конфігурацію, якщо вам потрібні типові значення `inbound` або `tagged`. +- `limit` і `summary` зберігаються в локальних налаштуваннях, а не в основній конфігурації. - `/tts audio` генерує одноразову аудіовідповідь (не вмикає TTS). -- `/tts status` містить видимість резервного перемикання для останньої спроби: - - успішне резервне перемикання: `Fallback: -> ` плюс `Attempts: ...` +- `/tts status` включає видимість резервного переходу для останньої спроби: + - успішний резервний перехід: `Fallback: -> ` плюс `Attempts: ...` - помилка: `Error: ...` плюс `Attempts: ...` - детальна діагностика: `Attempt details: provider:outcome(reasonCode) latency` -- Збої API OpenAI і ElevenLabs тепер включають розібрані деталі помилки постачальника та request id (коли постачальник його повертає), які відображаються в помилках/журналах TTS. +- Збої API OpenAI та ElevenLabs тепер включають розібрані відомості про помилку постачальника та ідентифікатор запиту (коли його повертає постачальник), які відображаються в помилках/журналах TTS. ## Інструмент агента Інструмент `tts` перетворює текст на мовлення та повертає аудіовкладення для -доставлення у відповіді. Коли каналом є Feishu, Matrix, Telegram або WhatsApp, -аудіо доставляється як голосове повідомлення, а не як файлове вкладення. -Feishu може перекодовувати не-Opus вихід TTS на цьому шляху, коли доступний +доставки у відповіді. Коли канал — Feishu, Matrix, Telegram або WhatsApp, +аудіо доставляється як голосове повідомлення, а не як вкладений файл. +Feishu може перекодовувати вивід TTS не у форматі Opus на цьому шляху, якщо доступний `ffmpeg`. -Він приймає необов’язкові поля `channel` і `timeoutMs`; `timeoutMs` — це -тайм-аут запиту до постачальника для окремого виклику в мілісекундах. +Він приймає необов’язкові поля `channel` і `timeoutMs`; `timeoutMs` — +це тайм-аут запиту постачальника для окремого виклику в мілісекундах. ## Gateway RPC