diff --git a/docs/uk/gateway/configuration-reference.md b/docs/uk/gateway/configuration-reference.md
index 666448409..3df105bbc 100644
--- a/docs/uk/gateway/configuration-reference.md
+++ b/docs/uk/gateway/configuration-reference.md
@@ -1,68 +1,68 @@
---
read_when:
- - Вам потрібні точні семантики конфігурації на рівні полів або значення за замовчуванням
+ - Вам потрібні точні семантики полів конфігурації або значення за замовчуванням
- Ви перевіряєте блоки конфігурації каналу, моделі, Gateway або інструмента
-summary: Довідник конфігурації Gateway для основних ключів OpenClaw, значень за замовчуванням і посилань на окремі довідники підсистем
-title: Довідник конфігурації
+summary: Довідник з конфігурації Gateway для основних ключів OpenClaw, значень за замовчуванням і посилань на окремі довідники підсистем
+title: Довідник із конфігурації
x-i18n:
- generated_at: "2026-04-23T23:27:46Z"
+ generated_at: "2026-04-24T02:21:50Z"
model: gpt-5.4
provider: openai
- source_hash: 8d5bcafbb701c326c027059de03c647eb9b2cf2bb1a543bc91c42b5deafa4378
+ source_hash: 7014d49347f3fbcf941693c5c8776f65c9b6ac02582af94349fbd11d14233761
source_path: gateway/configuration-reference.md
workflow: 15
---
-Основний довідник конфігурації для `~/.openclaw/openclaw.json`. Для огляду, орієнтованого на завдання, див. [Configuration](/uk/gateway/configuration).
+Довідник з основної конфігурації для `~/.openclaw/openclaw.json`. Для огляду, орієнтованого на завдання, див. [Configuration](/uk/gateway/configuration).
-Ця сторінка охоплює основні поверхні конфігурації OpenClaw і містить посилання назовні, коли підсистема має власний глибший довідник. Вона **не** намагається вбудувати на одній сторінці кожен каталог команд, що належить каналу/Plugin, або кожен глибокий параметр memory/QMD.
+Ця сторінка охоплює основні поверхні конфігурації OpenClaw і містить посилання назовні, коли підсистема має власний докладніший довідник. Вона **не** намагається вбудувати в одну сторінку кожен каталог команд, що належить каналу/Plugin, або кожен глибокий параметр пам’яті/QMD.
Джерело істини в коді:
-- `openclaw config schema` виводить актуальну JSON Schema, яка використовується для валідації та UI керування, із злитими метаданими bundled/Plugin/channel, якщо вони доступні
-- `config.schema.lookup` повертає один вузол схеми з прив’язкою до шляху для інструментів деталізованого перегляду
-- `pnpm config:docs:check` / `pnpm config:docs:gen` перевіряють базовий хеш config-doc щодо поточної поверхні схеми
+- `openclaw config schema` виводить актуальну JSON Schema, яка використовується для валідації та Control UI, із метаданими bundled/Plugin/channel, об’єднаними за наявності
+- `config.schema.lookup` повертає один вузол схеми, обмежений шляхом, для інструментів деталізації
+- `pnpm config:docs:check` / `pnpm config:docs:gen` перевіряють базовий хеш документації конфігурації щодо поточної поверхні схеми
-Окремі поглиблені довідники:
+Окремі докладні довідники:
-- [Довідник конфігурації пам’яті](/uk/reference/memory-config) для `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` і конфігурації Dreaming у `plugins.entries.memory-core.config.dreaming`
-- [Slash Commands](/uk/tools/slash-commands) для поточного вбудованого + bundled каталогу команд
-- сторінки відповідних каналів/Plugin для поверхонь команд, специфічних для каналів
+- [Memory configuration reference](/uk/reference/memory-config) для `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` і конфігурації Dreaming у `plugins.entries.memory-core.config.dreaming`
+- [Slash Commands](/uk/tools/slash-commands) для поточного каталогу вбудованих і bundled команд
+- сторінки відповідного каналу/Plugin для поверхонь команд, специфічних для каналу
-Формат конфігурації — **JSON5** (дозволені коментарі + кінцеві коми). Усі поля необов’язкові — OpenClaw використовує безпечні значення за замовчуванням, якщо їх не вказано.
+Формат конфігурації — **JSON5** (дозволені коментарі та кінцеві коми). Усі поля необов’язкові — OpenClaw використовує безпечні значення за замовчуванням, якщо їх не вказано.
---
## Канали
-Кожен канал запускається автоматично, коли існує його секція конфігурації (якщо не встановлено `enabled: false`).
+Кожен канал запускається автоматично, коли його секція конфігурації існує (якщо не вказано `enabled: false`).
### Доступ до DM і груп
Усі канали підтримують політики DM і політики груп:
-| Політика DM | Поведінка |
-| ------------------- | -------------------------------------------------------------- |
-| `pairing` (типово) | Невідомі відправники отримують одноразовий код сполучення; власник має підтвердити |
-| `allowlist` | Лише відправники з `allowFrom` (або зі сховища дозволів для сполучених) |
-| `open` | Дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`) |
-| `disabled` | Ігнорувати всі вхідні DM |
+| Політика DM | Поведінка |
+| -------------------- | -------------------------------------------------------------- |
+| `pairing` (типово) | Невідомі відправники отримують одноразовий код сполучення; власник має схвалити |
+| `allowlist` | Лише відправники з `allowFrom` (або зі сховища дозволів сполучених) |
+| `open` | Дозволити всі вхідні DM (потрібне `allowFrom: ["*"]`) |
+| `disabled` | Ігнорувати всі вхідні DM |
-| Політика груп | Поведінка |
-| --------------------- | ------------------------------------------------------ |
-| `allowlist` (типово) | Лише групи, що відповідають налаштованому списку дозволів |
-| `open` | Обійти списки дозволів груп (обмеження за згадуванням усе ще застосовується) |
-| `disabled` | Блокувати всі повідомлення груп/кімнат |
+| Політика груп | Поведінка |
+| --------------------- | ----------------------------------------------------- |
+| `allowlist` (типово) | Лише групи, що відповідають налаштованому списку дозволених |
+| `open` | Обійти списки дозволених груп (обмеження за згадками все одно застосовується) |
+| `disabled` | Блокувати всі повідомлення груп/кімнат |
-`channels.defaults.groupPolicy` задає значення за замовчуванням, коли `groupPolicy` провайдера не встановлено.
-Коди сполучення спливають через 1 годину. Кількість очікуваних запитів на сполучення DM обмежена **3 на канал**.
-Якщо блок провайдера повністю відсутній (`channels.` відсутній), політика груп під час виконання повертається до `allowlist` (fail-closed) із попередженням під час запуску.
+`channels.defaults.groupPolicy` задає значення за замовчуванням, коли `groupPolicy` постачальника не встановлено.
+Коди сполучення спливають через 1 годину. Кількість очікувальних запитів на сполучення DM обмежена **3 на канал**.
+Якщо блок постачальника відсутній повністю (`channels.` відсутній), політика груп під час виконання повертається до `allowlist` (fail-closed) із попередженням під час запуску.
-### Перевизначення моделей для каналів
+### Перевизначення моделі каналу
-Використовуйте `channels.modelByChannel`, щоб закріпити конкретні ID каналів за моделлю. Значення приймають `provider/model` або налаштовані псевдоніми моделей. Відображення каналу застосовується, коли сеанс ще не має перевизначення моделі (наприклад, встановленого через `/model`).
+Використовуйте `channels.modelByChannel`, щоб закріпити конкретні ID каналів за моделлю. Значення приймають `provider/model` або налаштовані псевдоніми моделей. Відображення каналу застосовується, коли сесія ще не має перевизначення моделі (наприклад, заданого через `/model`).
```json5
{
@@ -83,9 +83,9 @@ x-i18n:
}
```
-### Значення за замовчуванням для каналів і Heartbeat
+### Значення каналів за замовчуванням і Heartbeat
-Використовуйте `channels.defaults` для спільної поведінки політики груп і Heartbeat у провайдерів:
+Використовуйте `channels.defaults` для спільної поведінки політики груп і Heartbeat у всіх постачальників:
```json5
{
@@ -103,15 +103,15 @@ x-i18n:
}
```
-- `channels.defaults.groupPolicy`: резервна політика груп, коли `groupPolicy` на рівні провайдера не встановлено.
-- `channels.defaults.contextVisibility`: типовий режим видимості додаткового контексту для всіх каналів. Значення: `all` (типово, включати весь контекст із цитат/тредів/історії), `allowlist` (включати контекст лише від відправників зі списку дозволів), `allowlist_quote` (те саме, що й allowlist, але зберігати явний контекст цитати/відповіді). Перевизначення на рівні каналу: `channels..contextVisibility`.
+- `channels.defaults.groupPolicy`: резервна політика груп, коли `groupPolicy` на рівні постачальника не встановлено.
+- `channels.defaults.contextVisibility`: типовий режим видимості додаткового контексту для всіх каналів. Значення: `all` (типово, включати весь контекст цитат/гілок/історії), `allowlist` (включати контекст лише від відправників зі списку дозволених), `allowlist_quote` (те саме, що `allowlist`, але зберігати явний контекст цитати/відповіді). Перевизначення на рівні каналу: `channels..contextVisibility`.
- `channels.defaults.heartbeat.showOk`: включати стани справних каналів у вивід Heartbeat.
-- `channels.defaults.heartbeat.showAlerts`: включати стани погіршення/помилок у вивід Heartbeat.
+- `channels.defaults.heartbeat.showAlerts`: включати стани деградації/помилок у вивід Heartbeat.
- `channels.defaults.heartbeat.useIndicator`: відображати компактний вивід Heartbeat у стилі індикатора.
### WhatsApp
-WhatsApp працює через web-канал gateway (Baileys Web). Він запускається автоматично, коли існує прив’язаний сеанс.
+WhatsApp працює через web-канал Gateway (Baileys Web). Він запускається автоматично, коли існує прив’язана сесія.
```json5
{
@@ -122,7 +122,7 @@ WhatsApp працює через web-канал gateway (Baileys Web). Він з
textChunkLimit: 4000,
chunkMode: "length", // length | newline
mediaMaxMb: 50,
- sendReadReceipts: true, // сині галочки (false у режимі чату з собою)
+ sendReadReceipts: true, // сині галочки (false у режимі self-chat)
groups: {
"*": { requireMention: true },
},
@@ -163,9 +163,9 @@ WhatsApp працює через web-канал gateway (Baileys Web). Він з
```
- Вихідні команди типово використовують обліковий запис `default`, якщо він присутній; інакше — перший налаштований ID облікового запису (після сортування).
-- Необов’язковий `channels.whatsapp.defaultAccount` перевизначає цей резервний вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
-- Застарілий каталог автентифікації Baileys для одного облікового запису мігрується командою `openclaw doctor` у `whatsapp/default`.
-- Перевизначення на рівні облікового запису: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`.
+- Необов’язковий `channels.whatsapp.defaultAccount` перевизначає цей резервний вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
+- Застарілий каталог автентифікації Baileys для одного облікового запису мігрується командою `openclaw doctor` до `whatsapp/default`.
+- Перевизначення для окремого облікового запису: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`.
@@ -223,13 +223,13 @@ WhatsApp працює через web-канал gateway (Baileys Web). Він з
}
```
-- Токен бота: `channels.telegram.botToken` або `channels.telegram.tokenFile` (лише звичайний файл; symlink відхиляються), із `TELEGRAM_BOT_TOKEN` як резервним варіантом для типового облікового запису.
-- Необов’язковий `channels.telegram.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
-- У конфігураціях із кількома обліковими записами (2+ ID облікових записів) установіть явний типовий (`channels.telegram.defaultAccount` або `channels.telegram.accounts.default`), щоб уникнути резервної маршрутизації; `openclaw doctor` попереджає, коли це відсутнє або некоректне.
-- `configWrites: false` блокує записи конфігурації, ініційовані з Telegram (міграції ID супергруп, `/config set|unset`).
+- Токен бота: `channels.telegram.botToken` або `channels.telegram.tokenFile` (лише звичайний файл; символьні посилання відхиляються), з `TELEGRAM_BOT_TOKEN` як резервним варіантом для типового облікового запису.
+- Необов’язковий `channels.telegram.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
+- У багатооблікових конфігураціях (2+ ID облікових записів) задайте явний типовий обліковий запис (`channels.telegram.defaultAccount` або `channels.telegram.accounts.default`), щоб уникнути резервної маршрутизації; `openclaw doctor` попереджає, якщо цього немає або значення некоректне.
+- `configWrites: false` блокує ініційовані з Telegram записи конфігурації (міграції ID супергруп, `/config set|unset`).
- Записи верхнього рівня `bindings[]` з `type: "acp"` налаштовують постійні прив’язки ACP для тем форуму (використовуйте канонічний `chatId:topic:topicId` у `match.peer.id`). Семантика полів спільна з [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
-- Попередній перегляд потоків у Telegram використовує `sendMessage` + `editMessageText` (працює в особистих і групових чатах).
-- Політика повторних спроб: див. [Політика повторних спроб](/uk/concepts/retry).
+- Попередній перегляд потоків Telegram використовує `sendMessage` + `editMessageText` (працює в особистих і групових чатах).
+- Політика повторних спроб: див. [Retry policy](/uk/concepts/retry).
### Discord
@@ -332,35 +332,35 @@ WhatsApp працює через web-канал gateway (Baileys Web). Він з
```
- Токен: `channels.discord.token`, з `DISCORD_BOT_TOKEN` як резервним варіантом для типового облікового запису.
-- Прямі вихідні виклики, які передають явний Discord `token`, використовують цей токен для виклику; налаштування повторних спроб/політик облікового запису все одно беруться з вибраного облікового запису в активному знімку runtime.
-- Необов’язковий `channels.discord.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
-- Використовуйте `user:` (DM) або `channel:` (канал guild) для цілей доставки; прості числові ID відхиляються.
-- Slug-и guild — у нижньому регістрі із заміною пробілів на `-`; ключі каналів використовують slug-ім’я (без `#`). Надавайте перевагу ID guild.
+- Прямі вихідні виклики, які передають явний Discord `token`, використовують цей токен для виклику; налаштування повторних спроб/політики облікового запису все одно беруться з вибраного облікового запису в активному знімку runtime.
+- Необов’язковий `channels.discord.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
+- Використовуйте `user:` (DM) або `channel:` (канал guild) як цілі доставки; прості числові ID відхиляються.
+- Slug для guild задається в нижньому регістрі, а пробіли замінюються на `-`; ключі каналів використовують slug-ім’я (без `#`). Надавайте перевагу ID guild.
- Повідомлення, створені ботом, типово ігноруються. `allowBots: true` вмикає їх; використовуйте `allowBots: "mentions"`, щоб приймати лише повідомлення ботів, які згадують бота (власні повідомлення все одно фільтруються).
- `channels.discord.guilds..ignoreOtherMentions` (і перевизначення на рівні каналу) відкидає повідомлення, які згадують іншого користувача або роль, але не бота (за винятком @everyone/@here).
-- `maxLinesPerMessage` (типово 17) розбиває високі повідомлення, навіть якщо вони не перевищують 2000 символів.
-- `channels.discord.threadBindings` керує маршрутизацією, прив’язаною до Discord thread:
- - `enabled`: перевизначення Discord для функцій сеансів, прив’язаних до thread (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`, а також прив’язана доставка/маршрутизація)
+- `maxLinesPerMessage` (типово 17) розбиває довгі по висоті повідомлення, навіть якщо вони коротші за 2000 символів.
+- `channels.discord.threadBindings` керує маршрутизацією, прив’язаною до потоків Discord:
+ - `enabled`: перевизначення Discord для функцій сесій, прив’язаних до потоків (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язана доставка/маршрутизація)
- `idleHours`: перевизначення Discord для автоматичного зняття фокуса через неактивність у годинах (`0` вимикає)
- `maxAgeHours`: перевизначення Discord для жорсткого максимального віку в годинах (`0` вимикає)
- - `spawnSubagentSessions`: перемикач opt-in для автоматичного створення/прив’язки thread через `sessions_spawn({ thread: true })`
-- Записи верхнього рівня `bindings[]` з `type: "acp"` налаштовують постійні прив’язки ACP для каналів і thread (використовуйте id каналу/thread у `match.peer.id`). Семантика полів спільна з [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
-- `channels.discord.ui.components.accentColor` встановлює колір акценту для контейнерів Discord components v2.
-- `channels.discord.voice` вмикає розмови у голосових каналах Discord і необов’язкові перевизначення auto-join + TTS.
-- `channels.discord.voice.daveEncryption` і `channels.discord.voice.decryptionFailureTolerance` напряму передаються до параметрів DAVE у `@discordjs/voice` (`true` і `24` типово).
-- OpenClaw також додатково намагається відновити прийом голосу, виходячи та повторно приєднуючись до голосового сеансу після повторних збоїв дешифрування.
-- `channels.discord.streaming` — канонічний ключ режиму потокової передачі. Застарілі значення `streamMode` і булеві значення `streaming` мігруються автоматично.
-- `channels.discord.autoPresence` зіставляє доступність runtime зі статусом присутності бота (healthy => online, degraded => idle, exhausted => dnd) і дозволяє необов’язкові перевизначення тексту статусу.
-- `channels.discord.dangerouslyAllowNameMatching` повторно вмикає зіставлення за змінюваними іменами/тегами (режим сумісності break-glass).
-- `channels.discord.execApprovals`: доставка підтверджень exec, нативна для Discord, і авторизація схвалювачів.
- - `enabled`: `true`, `false` або `"auto"` (типово). В auto-режимі підтвердження exec активуються, коли схвалювачів можна визначити з `approvers` або `commands.ownerAllowFrom`.
- - `approvers`: ID користувачів Discord, яким дозволено схвалювати запити exec. Якщо не вказано, використовується `commands.ownerAllowFrom`.
- - `agentFilter`: необов’язковий allowlist ID агентів. Якщо пропущено, підтвердження пересилаються для всіх агентів.
- - `sessionFilter`: необов’язкові шаблони ключів сеансів (підрядок або regex).
- - `target`: куди надсилати запити на схвалення. `"dm"` (типово) надсилає в DM схвалювачам, `"channel"` надсилає в початковий канал, `"both"` надсилає в обидва місця. Коли target включає `"channel"`, кнопками можуть користуватися лише визначені схвалювачі.
- - `cleanupAfterResolve`: коли `true`, видаляє DM із підтвердженнями після схвалення, відхилення або тайм-ауту.
+ - `spawnSubagentSessions`: перемикач opt-in для автоматичного створення/прив’язки потоку `sessions_spawn({ thread: true })`
+- Записи верхнього рівня `bindings[]` з `type: "acp"` налаштовують постійні прив’язки ACP для каналів і потоків (використовуйте id каналу/потоку в `match.peer.id`). Семантика полів спільна з [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
+- `channels.discord.ui.components.accentColor` задає колір акценту для контейнерів Discord components v2.
+- `channels.discord.voice` вмикає розмови в голосових каналах Discord і необов’язкові перевизначення auto-join + TTS.
+- `channels.discord.voice.daveEncryption` і `channels.discord.voice.decryptionFailureTolerance` наскрізно передаються в параметри DAVE `@discordjs/voice` (типово `true` і `24`).
+- OpenClaw додатково намагається відновити голосовий прийом, виходячи й повторно входячи в голосову сесію після повторних помилок дешифрування.
+- `channels.discord.streaming` — канонічний ключ режиму потоку. Застарілі `streamMode` і булеві значення `streaming` мігруються автоматично.
+- `channels.discord.autoPresence` відображає доступність runtime у присутність бота (healthy => online, degraded => idle, exhausted => dnd) і дозволяє необов’язкові перевизначення тексту статусу.
+- `channels.discord.dangerouslyAllowNameMatching` знову вмикає зіставлення за змінюваними іменами/тегами (режим сумісності break-glass).
+- `channels.discord.execApprovals`: нативна для Discord доставка погоджень exec і авторизація погоджувачів.
+ - `enabled`: `true`, `false` або `"auto"` (типово). У режимі auto погодження exec активуються, коли погоджувачів можна визначити з `approvers` або `commands.ownerAllowFrom`.
+ - `approvers`: ID користувачів Discord, яким дозволено погоджувати exec-запити. Якщо не вказано, використовується `commands.ownerAllowFrom`.
+ - `agentFilter`: необов’язковий список дозволених ID агентів. Не вказуйте, щоб пересилати погодження для всіх агентів.
+ - `sessionFilter`: необов’язкові шаблони ключів сесії (підрядок або regex).
+ - `target`: куди надсилати запити на погодження. `"dm"` (типово) надсилає в DM погоджувачів, `"channel"` надсилає у вихідний канал, `"both"` надсилає в обидва місця. Коли ціль включає `"channel"`, кнопками можуть користуватися лише визначені погоджувачі.
+ - `cleanupAfterResolve`: коли `true`, видаляє DM із погодженнями після погодження, відхилення або тайм-ауту.
-**Режими сповіщень про реакції:** `off` (немає), `own` (повідомлення бота, типово), `all` (усі повідомлення), `allowlist` (від `guilds..users` для всіх повідомлень).
+**Режими сповіщень про реакції:** `off` (немає), `own` (повідомлення бота, типово), `all` (усі повідомлення), `allowlist` (із `guilds..users` для всіх повідомлень).
### Google Chat
@@ -391,11 +391,11 @@ WhatsApp працює через web-канал gateway (Baileys Web). Він з
}
```
-- JSON облікового запису служби: вбудований (`serviceAccount`) або на основі файла (`serviceAccountFile`).
-- Також підтримується SecretRef облікового запису служби (`serviceAccountRef`).
+- JSON облікового запису сервісу: вбудований (`serviceAccount`) або на основі файлу (`serviceAccountFile`).
+- Також підтримується SecretRef облікового запису сервісу (`serviceAccountRef`).
- Резервні змінні середовища: `GOOGLE_CHAT_SERVICE_ACCOUNT` або `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`.
-- Використовуйте `spaces/` або `users/` для цілей доставки.
-- `channels.googlechat.dangerouslyAllowNameMatching` повторно вмикає зіставлення за змінюваним email principal (режим сумісності break-glass).
+- Використовуйте `spaces/` або `users/` як цілі доставки.
+- `channels.googlechat.dangerouslyAllowNameMatching` знову вмикає зіставлення за змінюваним email-principal (режим сумісності break-glass).
### Slack
@@ -462,35 +462,35 @@ WhatsApp працює через web-канал gateway (Baileys Web). Він з
}
```
-- **Режим socket** вимагає і `botToken`, і `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` як резервні змінні середовища для типового облікового запису).
-- **HTTP mode** вимагає `botToken` плюс `signingSecret` (на корені або для кожного облікового запису окремо).
-- `botToken`, `appToken`, `signingSecret` і `userToken` приймають відкриті
+- **Режим Socket** вимагає і `botToken`, і `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` для резервного варіанта через змінні середовища типового облікового запису).
+- **Режим HTTP** вимагає `botToken` разом із `signingSecret` (у корені або для окремого облікового запису).
+- `botToken`, `appToken`, `signingSecret` і `userToken` приймають звичайні текстові
рядки або об’єкти SecretRef.
-- Знімки облікових записів Slack показують поля джерела/статусу для кожного облікового запису, такі як
- `botTokenSource`, `botTokenStatus`, `appTokenStatus` і, у HTTP mode,
+- Знімки облікових записів Slack показують поля джерела/статусу для кожного облікового даного, такі як
+ `botTokenSource`, `botTokenStatus`, `appTokenStatus` і, у режимі HTTP,
`signingSecretStatus`. `configured_unavailable` означає, що обліковий запис
- налаштовано через SecretRef, але поточний шлях команди/runtime не зміг
+ налаштований через SecretRef, але поточний шлях команди/runtime не зміг
визначити значення секрету.
-- `configWrites: false` блокує записи конфігурації, ініційовані зі Slack.
-- Необов’язковий `channels.slack.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
-- `channels.slack.streaming.mode` — канонічний ключ режиму потокової передачі Slack. `channels.slack.streaming.nativeTransport` керує нативним транспортом потокової передачі Slack. Застарілі значення `streamMode`, булеві значення `streaming` і `nativeStreaming` мігруються автоматично.
-- Використовуйте `user:` (DM) або `channel:` для цілей доставки.
+- `configWrites: false` блокує ініційовані зі Slack записи конфігурації.
+- Необов’язковий `channels.slack.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
+- `channels.slack.streaming.mode` — канонічний ключ режиму потоку Slack. `channels.slack.streaming.nativeTransport` керує нативним транспортом потоків Slack. Застарілі `streamMode`, булеві значення `streaming` і `nativeStreaming` мігруються автоматично.
+- Використовуйте `user:` (DM) або `channel:` як цілі доставки.
-**Режими сповіщень про реакції:** `off`, `own` (типово), `all`, `allowlist` (з `reactionAllowlist`).
+**Режими сповіщень про реакції:** `off`, `own` (типово), `all`, `allowlist` (із `reactionAllowlist`).
-**Ізоляція сеансів thread:** `thread.historyScope` — для кожного thread окремо (типово) або спільно для каналу. `thread.inheritParent` копіює transcript батьківського каналу в нові thread.
+**Ізоляція сесій потоків:** `thread.historyScope` — окремо для кожного потоку (типово) або спільно для каналу. `thread.inheritParent` копіює транскрипт батьківського каналу в нові потоки.
-- Нативна потокова передача Slack плюс статус thread у стилі Slack assistant "is typing..." вимагають ціль відповіді у thread. Верхньорівневі DM типово залишаються поза thread, тому використовують `typingReaction` або звичайну доставку замість попереднього перегляду у стилі thread.
-- `typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack під час виконання відповіді, а потім видаляє її після завершення. Використовуйте shortcode emoji Slack, наприклад `"hourglass_flowing_sand"`.
-- `channels.slack.execApprovals`: доставка підтверджень exec, нативна для Slack, і авторизація схвалювачів. Та сама схема, що й у Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (ID користувачів Slack), `agentFilter`, `sessionFilter` і `target` (`"dm"`, `"channel"` або `"both"`).
+- Нативний потік Slack разом зі статусом потоку Slack у стилі асистента "is typing..." вимагають цільового потоку відповіді. DM верхнього рівня типово залишаються поза потоком, тому вони використовують `typingReaction` або звичайну доставку замість попереднього перегляду в стилі потоку.
+- `typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки виконується відповідь, а потім видаляє її після завершення. Використовуйте shortcode емодзі Slack, наприклад `"hourglass_flowing_sand"`.
+- `channels.slack.execApprovals`: нативна для Slack доставка погоджень exec і авторизація погоджувачів. Та сама схема, що й у Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (ID користувачів Slack), `agentFilter`, `sessionFilter` і `target` (`"dm"`, `"channel"` або `"both"`).
-| Група дій | Типово | Примітки |
-| ------------ | -------- | ---------------------- |
-| reactions | увімкнено | Реагування + список реакцій |
+| Група дій | Типово | Примітки |
+| ------------ | ------- | ----------------------- |
+| reactions | увімкнено | Реакції + список реакцій |
| messages | увімкнено | Читання/надсилання/редагування/видалення |
-| pins | увімкнено | Закріпити/відкріпити/перелічити |
+| pins | увімкнено | Закріплення/відкріплення/список |
| memberInfo | увімкнено | Інформація про учасника |
-| emojiList | увімкнено | Список користувацьких emoji |
+| emojiList | увімкнено | Список користувацьких емодзі |
### Mattermost
@@ -514,7 +514,7 @@ Mattermost постачається як Plugin: `openclaw plugins install @open
native: true, // opt-in
nativeSkills: true,
callbackPath: "/api/channels/mattermost/command",
- // Optional explicit URL for reverse-proxy/public deployments
+ // Необов’язкова явна URL-адреса для reverse-proxy/публічних розгортань
callbackUrl: "https://gateway.example.com/api/channels/mattermost/command",
},
textChunkLimit: 4000,
@@ -524,23 +524,23 @@ Mattermost постачається як Plugin: `openclaw plugins install @open
}
```
-Режими чату: `oncall` (відповідати на @-згадування, типово), `onmessage` (кожне повідомлення), `onchar` (повідомлення, що починаються з префікса тригера).
+Режими чату: `oncall` (відповідати на @-згадку, типово), `onmessage` (кожне повідомлення), `onchar` (повідомлення, що починаються з префікса-тригера).
-Коли нативні команди Mattermost увімкнено:
+Коли нативні команди Mattermost увімкнені:
-- `commands.callbackPath` має бути шляхом (наприклад `/api/channels/mattermost/command`), а не повним URL.
+- `commands.callbackPath` має бути шляхом (наприклад `/api/channels/mattermost/command`), а не повною URL-адресою.
- `commands.callbackUrl` має вказувати на endpoint Gateway OpenClaw і бути доступним із сервера Mattermost.
-- Нативні зворотні виклики slash автентифікуються за допомогою токенів
- для кожної команди, які Mattermost повертає під час реєстрації slash команд.
- Якщо реєстрація не вдається або жодні команди не активовані, OpenClaw відхиляє зворотні виклики з повідомленням
+- Нативні зворотні виклики slash-команд автентифікуються за допомогою токенів
+ для кожної команди, які Mattermost повертає під час реєстрації slash-команд. Якщо реєстрація не вдається або не
+ активовано жодної команди, OpenClaw відхиляє зворотні виклики з повідомленням
`Unauthorized: invalid command token.`
- Для приватних/tailnet/internal хостів зворотних викликів Mattermost може вимагати,
- щоб `ServiceSettings.AllowedUntrustedInternalConnections` включав хост/домен зворотного виклику.
- Використовуйте значення хоста/домену, а не повні URL.
-- `channels.mattermost.configWrites`: дозволити або заборонити записи конфігурації, ініційовані з Mattermost.
+ щоб `ServiceSettings.AllowedUntrustedInternalConnections` містив хост/домен зворотного виклику.
+ Використовуйте значення хоста/домену, а не повні URL-адреси.
+- `channels.mattermost.configWrites`: дозволити або заборонити ініційовані з Mattermost записи конфігурації.
- `channels.mattermost.requireMention`: вимагати `@mention` перед відповіддю в каналах.
-- `channels.mattermost.groups..requireMention`: перевизначення обмеження за згадуванням для окремого каналу (`"*"` для типового значення).
-- Необов’язковий `channels.mattermost.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
+- `channels.mattermost.groups..requireMention`: перевизначення обмеження за згадками для окремого каналу (`"*"` для типового значення).
+- Необов’язковий `channels.mattermost.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
### Signal
@@ -549,7 +549,7 @@ Mattermost постачається як Plugin: `openclaw plugins install @open
channels: {
signal: {
enabled: true,
- account: "+15555550123", // optional account binding
+ account: "+15555550123", // необов’язкова прив’язка облікового запису
dmPolicy: "pairing",
allowFrom: ["+15551234567", "uuid:123e4567-e89b-12d3-a456-426614174000"],
configWrites: true,
@@ -561,15 +561,15 @@ Mattermost постачається як Plugin: `openclaw plugins install @open
}
```
-**Режими сповіщень про реакції:** `off`, `own` (типово), `all`, `allowlist` (з `reactionAllowlist`).
+**Режими сповіщень про реакції:** `off`, `own` (типово), `all`, `allowlist` (із `reactionAllowlist`).
- `channels.signal.account`: закріпити запуск каналу за конкретною ідентичністю облікового запису Signal.
-- `channels.signal.configWrites`: дозволити або заборонити записи конфігурації, ініційовані із Signal.
-- Необов’язковий `channels.signal.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
+- `channels.signal.configWrites`: дозволити або заборонити ініційовані з Signal записи конфігурації.
+- Необов’язковий `channels.signal.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
### BlueBubbles
-BlueBubbles — рекомендований шлях для iMessage (на базі Plugin, налаштовується в `channels.bluebubbles`).
+BlueBubbles — рекомендований шлях для iMessage (із підтримкою через Plugin, налаштовується в `channels.bluebubbles`).
```json5
{
@@ -584,14 +584,14 @@ BlueBubbles — рекомендований шлях для iMessage (на ба
}
```
-- Основні шляхи ключів, що розглядаються тут: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
-- Необов’язковий `channels.bluebubbles.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
-- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови BlueBubbles до постійних сеансів ACP. Використовуйте handle BlueBubbles або рядок цілі (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Спільна семантика полів: [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
+- Основні шляхи ключів, охоплені тут: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
+- Необов’язковий `channels.bluebubbles.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
+- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови BlueBubbles до постійних сесій ACP. Використовуйте handle або цільовий рядок BlueBubbles (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Спільна семантика полів: [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
- Повну конфігурацію каналу BlueBubbles задокументовано в [BlueBubbles](/uk/channels/bluebubbles).
### iMessage
-OpenClaw запускає `imsg rpc` (JSON-RPC через stdio). Демон або порт не потрібні.
+OpenClaw запускає `imsg rpc` (JSON-RPC через stdio). Daemon або порт не потрібні.
```json5
{
@@ -615,15 +615,15 @@ OpenClaw запускає `imsg rpc` (JSON-RPC через stdio). Демон а
}
```
-- Необов’язковий `channels.imessage.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
+- Необов’язковий `channels.imessage.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
- Потрібен Full Disk Access до БД Messages.
-- Надавайте перевагу цілям `chat_id:`. Використовуйте `imsg chats --limit 20`, щоб переглянути список чатів.
-- `cliPath` може вказувати на SSH-обгортку; встановіть `remoteHost` (`host` або `user@host`) для отримання вкладень через SCP.
+- Надавайте перевагу цілям `chat_id:`. Використовуйте `imsg chats --limit 20`, щоб вивести список чатів.
+- `cliPath` може вказувати на SSH-обгортку; задайте `remoteHost` (`host` або `user@host`) для отримання вкладень через SCP.
- `attachmentRoots` і `remoteAttachmentRoots` обмежують шляхи вхідних вкладень (типово: `/Users/*/Library/Messages/Attachments`).
-- SCP використовує сувору перевірку host-key, тому переконайтеся, що ключ relay-хоста вже існує в `~/.ssh/known_hosts`.
-- `channels.imessage.configWrites`: дозволити або заборонити записи конфігурації, ініційовані з iMessage.
-- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови iMessage до постійних сеансів ACP. Використовуйте нормалізований handle або явну ціль чату (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Спільна семантика полів: [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
+- SCP використовує сувору перевірку ключів хоста, тож переконайтеся, що ключ хоста relay уже існує в `~/.ssh/known_hosts`.
+- `channels.imessage.configWrites`: дозволити або заборонити ініційовані з iMessage записи конфігурації.
+- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови iMessage до постійних сесій ACP. Використовуйте нормалізований handle або явну ціль чату (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Спільна семантика полів: [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
@@ -636,7 +636,7 @@ exec ssh -T gateway-host imsg "$@"
### Matrix
-Matrix працює через Plugin і налаштовується в `channels.matrix`.
+Matrix підтримується через Plugin і налаштовується в `channels.matrix`.
```json5
{
@@ -667,24 +667,24 @@ Matrix працює через Plugin і налаштовується в `channe
```
- Автентифікація за токеном використовує `accessToken`; автентифікація за паролем використовує `userId` + `password`.
-- `channels.matrix.proxy` маршрутизує HTTP-трафік Matrix через явний HTTP(S)-проксі. Іменовані облікові записи можуть перевизначати це через `channels.matrix.accounts..proxy`.
-- `channels.matrix.network.dangerouslyAllowPrivateNetwork` дозволяє приватні/internal homeserver. `proxy` і цей мережевий opt-in — незалежні механізми.
-- `channels.matrix.defaultAccount` вибирає бажаний обліковий запис у конфігураціях із кількома обліковими записами.
+- `channels.matrix.proxy` маршрутизує HTTP-трафік Matrix через явний HTTP(S)-proxy. Іменовані облікові записи можуть перевизначати це через `channels.matrix.accounts..proxy`.
+- `channels.matrix.network.dangerouslyAllowPrivateNetwork` дозволяє приватні/внутрішні homeserver. `proxy` і цей opt-in для мережі — незалежні механізми керування.
+- `channels.matrix.defaultAccount` вибирає пріоритетний обліковий запис у багатооблікових конфігураціях.
- `channels.matrix.autoJoin` типово має значення `off`, тому запрошені кімнати та нові запрошення у стилі DM ігноруються, доки ви не встановите `autoJoin: "allowlist"` із `autoJoinAllowlist` або `autoJoin: "always"`.
-- `channels.matrix.execApprovals`: доставка підтверджень exec, нативна для Matrix, і авторизація схвалювачів.
- - `enabled`: `true`, `false` або `"auto"` (типово). У режимі auto підтвердження exec активуються, коли схвалювачів можна визначити з `approvers` або `commands.ownerAllowFrom`.
- - `approvers`: ID користувачів Matrix (наприклад, `@owner:example.org`), яким дозволено схвалювати запити exec.
- - `agentFilter`: необов’язковий allowlist ID агентів. Якщо пропущено, підтвердження пересилаються для всіх агентів.
- - `sessionFilter`: необов’язкові шаблони ключів сеансів (підрядок або regex).
- - `target`: куди надсилати запити на схвалення. `"dm"` (типово), `"channel"` (початкова кімната) або `"both"`.
- - Перевизначення на рівні облікового запису: `channels.matrix.accounts..execApprovals`.
-- `channels.matrix.dm.sessionScope` керує тим, як DM Matrix групуються в сеанси: `per-user` (типово) спільний для маршрутизованого peer, тоді як `per-room` ізолює кожну DM-кімнату.
-- Перевірки статусу Matrix і live directory lookups використовують ту саму політику проксі, що й runtime-трафік.
-- Повну конфігурацію Matrix, правила націлювання та приклади налаштування задокументовано в [Matrix](/uk/channels/matrix).
+- `channels.matrix.execApprovals`: нативна для Matrix доставка погоджень exec і авторизація погоджувачів.
+ - `enabled`: `true`, `false` або `"auto"` (типово). У режимі auto погодження exec активуються, коли погоджувачів можна визначити з `approvers` або `commands.ownerAllowFrom`.
+ - `approvers`: ID користувачів Matrix (наприклад `@owner:example.org`), яким дозволено погоджувати exec-запити.
+ - `agentFilter`: необов’язковий список дозволених ID агентів. Не вказуйте, щоб пересилати погодження для всіх агентів.
+ - `sessionFilter`: необов’язкові шаблони ключів сесії (підрядок або regex).
+ - `target`: куди надсилати запити на погодження. `"dm"` (типово), `"channel"` (вихідна кімната) або `"both"`.
+ - Перевизначення для окремого облікового запису: `channels.matrix.accounts..execApprovals`.
+- `channels.matrix.dm.sessionScope` керує тим, як Matrix DM групуються в сесії: `per-user` (типово) спільно використовує сесії за маршрутизованим peer, тоді як `per-room` ізолює кожну DM-кімнату.
+- Перевірки статусу Matrix і пошук у live directory використовують ту саму політику proxy, що й трафік runtime.
+- Повну конфігурацію Matrix, правила адресації й приклади налаштування задокументовано в [Matrix](/uk/channels/matrix).
### Microsoft Teams
-Microsoft Teams працює через Plugin і налаштовується в `channels.msteams`.
+Microsoft Teams підтримується через Plugin і налаштовується в `channels.msteams`.
```json5
{
@@ -699,12 +699,12 @@ Microsoft Teams працює через Plugin і налаштовується
}
```
-- Основні шляхи ключів, що розглядаються тут: `channels.msteams`, `channels.msteams.configWrites`.
-- Повну конфігурацію Teams (облікові дані, webhook, політика DM/груп, перевизначення для окремих team/channel) задокументовано в [Microsoft Teams](/uk/channels/msteams).
+- Основні шляхи ключів, охоплені тут: `channels.msteams`, `channels.msteams.configWrites`.
+- Повну конфігурацію Teams (облікові дані, Webhook, політику DM/груп, перевизначення для окремих team/channel) задокументовано в [Microsoft Teams](/uk/channels/msteams).
### IRC
-IRC працює через Plugin і налаштовується в `channels.irc`.
+IRC підтримується через Plugin і налаштовується в `channels.irc`.
```json5
{
@@ -725,9 +725,9 @@ IRC працює через Plugin і налаштовується в `channels.
}
```
-- Основні шляхи ключів, що розглядаються тут: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
-- Необов’язковий `channels.irc.defaultAccount` перевизначає вибір типового облікового запису, якщо він збігається з налаштованим ID облікового запису.
-- Повну конфігурацію IRC-каналу (host/port/TLS/channels/allowlists/обмеження за згадуванням) задокументовано в [IRC](/uk/channels/irc).
+- Основні шляхи ключів, охоплені тут: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
+- Необов’язковий `channels.irc.defaultAccount` перевизначає вибір типового облікового запису, якщо він відповідає налаштованому ID облікового запису.
+- Повну конфігурацію каналу IRC (host/port/TLS/channels/allowlists/обмеження за згадками) задокументовано в [IRC](/uk/channels/irc).
### Багатообліковість (усі канали)
@@ -752,28 +752,28 @@ IRC працює через Plugin і налаштовується в `channels.
}
```
-- `default` використовується, коли `accountId` пропущено (CLI + маршрутизація).
-- Токени змінних середовища застосовуються лише до **типового** облікового запису.
-- Базові налаштування каналу застосовуються до всіх облікових записів, якщо не перевизначені для конкретного облікового запису.
+- `default` використовується, коли `accountId` не вказано (CLI + маршрутизація).
+- Токени зі змінних середовища застосовуються лише до облікового запису **default**.
+- Базові налаштування каналу застосовуються до всіх облікових записів, якщо їх не перевизначено для окремого облікового запису.
- Використовуйте `bindings[].match.accountId`, щоб маршрутизувати кожен обліковий запис до іншого агента.
-- Якщо ви додаєте нетиповий обліковий запис через `openclaw channels add` (або онбординг каналу), залишаючись у верхньорівневій конфігурації каналу для одного облікового запису, OpenClaw спочатку переносить значення верхнього рівня для одного облікового запису, прив’язані до конкретного облікового запису, у карту облікових записів каналу, щоб початковий обліковий запис продовжив працювати. Більшість каналів переносять їх у `channels..accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/типову ціль.
-- Наявні прив’язки лише на рівні каналу (без `accountId`) продовжують відповідати типовому обліковому запису; прив’язки з областю облікового запису залишаються необов’язковими.
-- `openclaw doctor --fix` також виправляє змішані форми, переміщуючи значення верхнього рівня для одного облікового запису, прив’язані до конкретного облікового запису, у підвищений обліковий запис, вибраний для цього каналу. Більшість каналів використовують `accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/типову ціль.
+- Якщо ви додаєте обліковий запис, відмінний від default, через `openclaw channels add` (або onboarding каналу), поки ще використовуєте однорівневу однооблікову конфігурацію каналу, OpenClaw спочатку переносить значення верхнього рівня, специфічні для облікового запису, у мапу облікових записів каналу, щоб початковий обліковий запис продовжив працювати. Для більшості каналів вони переносяться в `channels..accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/default-ціль.
+- Наявні прив’язки лише для каналу (без `accountId`) і далі відповідатимуть типовому обліковому запису; прив’язки з областю облікового запису залишаються необов’язковими.
+- `openclaw doctor --fix` також виправляє змішані форми, переміщуючи значення верхнього рівня для одного облікового запису, специфічні для облікового запису, у просунутий обліковий запис, вибраний для цього каналу. Для більшості каналів використовується `accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/default-ціль.
### Інші канали Plugin
-Багато каналів Plugin налаштовуються як `channels.` і задокументовані на їхніх окремих сторінках каналів (наприклад, Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat і Twitch).
-Див. повний індекс каналів: [Channels](/uk/channels).
+Багато каналів Plugin налаштовуються як `channels.` і задокументовані на окремих сторінках каналів (наприклад, Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat і Twitch).
+Повний покажчик каналів: [Channels](/uk/channels).
-### Обмеження за згадуванням у групових чатах
+### Обмеження за згадками в груповому чаті
-Для групових повідомлень типово **потрібне згадування** (метадані згадування або безпечні regex-шаблони). Це застосовується до групових чатів WhatsApp, Telegram, Discord, Google Chat і iMessage.
+Для повідомлень у групах типово **потрібна згадка** (згадка в метаданих або безпечні regex-шаблони). Застосовується до групових чатів WhatsApp, Telegram, Discord, Google Chat і iMessage.
-**Типи згадувань:**
+**Типи згадок:**
-- **Згадування в метаданих**: Нативні @-згадування платформи. Ігноруються в режимі чату з собою WhatsApp.
-- **Текстові шаблони**: Безпечні regex-шаблони в `agents.list[].groupChat.mentionPatterns`. Некоректні шаблони та небезпечні вкладені повторення ігноруються.
-- Обмеження за згадуванням застосовується лише тоді, коли виявлення можливе (нативні згадування або принаймні один шаблон).
+- **Згадки в метаданих**: Нативні @-згадки платформи. Ігноруються в режимі self-chat WhatsApp.
+- **Текстові шаблони**: Безпечні regex-шаблони в `agents.list[].groupChat.mentionPatterns`. Некоректні шаблони й небезпечні вкладені повтори ігноруються.
+- Обмеження за згадками застосовується лише тоді, коли виявлення можливе (нативні згадки або принаймні один шаблон).
```json5
{
@@ -786,7 +786,7 @@ IRC працює через Plugin і налаштовується в `channels.
}
```
-`messages.groupChat.historyLimit` встановлює глобальне типове значення. Канали можуть перевизначати його через `channels..historyLimit` (або для конкретного облікового запису). Установіть `0`, щоб вимкнути.
+`messages.groupChat.historyLimit` задає глобальне значення за замовчуванням. Канали можуть перевизначати його через `channels..historyLimit` (або на рівні окремого облікового запису). Установіть `0`, щоб вимкнути.
#### Ліміти історії DM
@@ -803,13 +803,13 @@ IRC працює через Plugin і налаштовується в `channels.
}
```
-Порядок визначення: перевизначення для конкретного DM → типове значення провайдера → без обмеження (зберігається все).
+Порядок визначення: перевизначення для окремого DM → типове значення постачальника → без ліміту (зберігається все).
-Підтримується: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`.
+Підтримуються: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`.
-#### Режим чату з собою
+#### Режим self-chat
-Додайте власний номер до `allowFrom`, щоб увімкнути режим чату з собою (ігнорує нативні @-згадування, відповідає лише на текстові шаблони):
+Додайте власний номер до `allowFrom`, щоб увімкнути режим self-chat (ігнорує нативні @-згадки, відповідає лише на текстові шаблони):
```json5
{
@@ -830,7 +830,7 @@ IRC працює через Plugin і налаштовується в `channels.
}
```
-### Команди (обробка команд чату)
+### Команди (обробка команд у чаті)
```json5
{
@@ -859,28 +859,28 @@ IRC працює через Plugin і налаштовується в `channels.
-- Цей блок налаштовує поверхні команд. Для поточного вбудованого + bundled каталогу команд див. [Slash Commands](/uk/tools/slash-commands).
-- Ця сторінка — **довідник ключів конфігурації**, а не повний каталог команд. Команди, що належать каналу/Plugin, такі як QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` і Talk `/voice`, задокументовані на сторінках їхніх каналів/Plugin, а також у [Slash Commands](/uk/tools/slash-commands).
+- Цей блок налаштовує поверхні команд. Поточний каталог вбудованих і bundled команд див. у [Slash Commands](/uk/tools/slash-commands).
+- Ця сторінка — це **довідник ключів конфігурації**, а не повний каталог команд. Команди, що належать каналу/Plugin, як-от QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` і Talk `/voice`, задокументовані на сторінках відповідного каналу/Plugin, а також у [Slash Commands](/uk/tools/slash-commands).
- Текстові команди мають бути **окремими** повідомленнями з початковим `/`.
- `native: "auto"` вмикає нативні команди для Discord/Telegram, залишає Slack вимкненим.
- `nativeSkills: "auto"` вмикає нативні команди Skills для Discord/Telegram, залишає Slack вимкненим.
-- Перевизначення для кожного каналу: `channels.discord.commands.native` (bool або `"auto"`). `false` очищає раніше зареєстровані команди.
-- Перевизначуйте реєстрацію нативних команд Skills для кожного каналу через `channels..commands.nativeSkills`.
+- Перевизначення для окремого каналу: `channels.discord.commands.native` (bool або `"auto"`). `false` очищає раніше зареєстровані команди.
+- Перевизначуйте реєстрацію нативних команд Skills для окремого каналу через `channels..commands.nativeSkills`.
- `channels.telegram.customCommands` додає додаткові записи меню бота Telegram.
- `bash: true` вмикає `! ` для shell хоста. Потрібні `tools.elevated.enabled` і відправник у `tools.elevated.allowFrom.`.
-- `config: true` вмикає `/config` (читання/запис `openclaw.json`). Для клієнтів Gateway `chat.send` постійні записи `/config set|unset` також вимагають `operator.admin`; доступний лише для читання `/config show` залишається доступним для звичайних операторських клієнтів з областю запису.
-- `mcp: true` вмикає `/mcp` для конфігурації MCP-сервера під керуванням OpenClaw у `mcp.servers`.
-- `plugins: true` вмикає `/plugins` для виявлення Plugin, встановлення та елементів керування вмиканням/вимиканням.
-- `channels..configWrites` керує мутаціями конфігурації для кожного каналу (типово: true).
-- Для каналів із кількома обліковими записами `channels..accounts..configWrites` також керує записами, націленими на цей обліковий запис (наприклад, `/allowlist --config --account ` або `/config set channels..accounts....`).
-- `restart: false` вимикає `/restart` і дії інструмента перезапуску gateway. Типово: `true`.
-- `ownerAllowFrom` — явний список дозволів власника для команд/інструментів лише для власника. Він відокремлений від `allowFrom`.
-- `ownerDisplay: "hash"` хешує ID власників у системному prompt. Установіть `ownerDisplaySecret`, щоб керувати хешуванням.
-- `allowFrom` — для кожного провайдера окремо. Якщо встановлено, це **єдине** джерело авторизації (списки дозволів/сполучення каналу і `useAccessGroups` ігноруються).
+- `config: true` вмикає `/config` (читання/запис `openclaw.json`). Для клієнтів gateway `chat.send` постійні записи `/config set|unset` також вимагають `operator.admin`; доступний лише для читання `/config show` залишається доступним для звичайних операторських клієнтів з областю запису.
+- `mcp: true` вмикає `/mcp` для конфігурації MCP-сервера, керованого OpenClaw, у `mcp.servers`.
+- `plugins: true` вмикає `/plugins` для виявлення Plugin, встановлення та керування вмиканням/вимиканням.
+- `channels..configWrites` керує мутаціями конфігурації для окремого каналу (типово: true).
+- Для багатооблікових каналів `channels..accounts..configWrites` також керує записами, націленими на цей обліковий запис (наприклад `/allowlist --config --account ` або `/config set channels..accounts....`).
+- `restart: false` вимикає `/restart` і дії інструмента перезапуску gateway. Типове значення: `true`.
+- `ownerAllowFrom` — це явний список дозволених власників для команд/інструментів лише для власника. Він відокремлений від `allowFrom`.
+- `ownerDisplay: "hash"` хешує ID власників у системному запиті. Установіть `ownerDisplaySecret`, щоб керувати хешуванням.
+- `allowFrom` задається для кожного постачальника. Якщо встановлено, це **єдине** джерело авторизації (списки дозволених каналів/сполучення та `useAccessGroups` ігноруються).
- `useAccessGroups: false` дозволяє командам обходити політики груп доступу, коли `allowFrom` не встановлено.
- Карта документації команд:
- - вбудований + bundled каталог: [Slash Commands](/uk/tools/slash-commands)
- - поверхні команд, специфічні для каналів: [Channels](/uk/channels)
+ - каталог вбудованих і bundled: [Slash Commands](/uk/tools/slash-commands)
+ - поверхні команд, специфічні для каналу: [Channels](/uk/channels)
- команди QQ Bot: [QQ Bot](/uk/channels/qqbot)
- команди сполучення: [Pairing](/uk/channels/pairing)
- команда картки LINE: [LINE](/uk/channels/line)
@@ -890,7 +890,7 @@ IRC працює через Plugin і налаштовується в `channels.
---
-## Значення за замовчуванням для агентів
+## Типові значення агента
### `agents.defaults.workspace`
@@ -904,7 +904,7 @@ IRC працює через Plugin і налаштовується в `channels.
### `agents.defaults.repoRoot`
-Необов’язковий корінь репозиторію, який відображається в рядку Runtime системного prompt. Якщо не встановлено, OpenClaw автоматично визначає його, піднімаючись вгору від workspace.
+Необов’язковий корінь репозиторію, що показується в рядку Runtime системного запиту. Якщо не встановлено, OpenClaw автоматично визначає його, піднімаючись вгору від workspace.
```json5
{
@@ -914,7 +914,7 @@ IRC працює через Plugin і налаштовується в `channels.
### `agents.defaults.skills`
-Необов’язковий типовий allowlist Skills для агентів, які не задають
+Необов’язковий список дозволених Skills за замовчуванням для агентів, які не задають
`agents.list[].skills`.
```json5
@@ -922,18 +922,18 @@ IRC працює через Plugin і налаштовується в `channels.
agents: {
defaults: { skills: ["github", "weather"] },
list: [
- { id: "writer" }, // успадковує github, weather
- { id: "docs", skills: ["docs-search"] }, // замінює типові значення
- { id: "locked-down", skills: [] }, // без Skills
+ { id: "writer" }, // inherits github, weather
+ { id: "docs", skills: ["docs-search"] }, // replaces defaults
+ { id: "locked-down", skills: [] }, // no skills
],
},
}
```
-- Пропустіть `agents.defaults.skills`, щоб типово дозволити необмежені Skills.
-- Пропустіть `agents.list[].skills`, щоб успадкувати типові значення.
-- Установіть `agents.list[].skills: []`, щоб не мати Skills.
-- Непорожній список `agents.list[].skills` є фінальним набором для цього агента; він
+- Не вказуйте `agents.defaults.skills`, щоб типово не обмежувати Skills.
+- Не вказуйте `agents.list[].skills`, щоб успадкувати типові значення.
+- Установіть `agents.list[].skills: []`, щоб не використовувати жодних Skills.
+- Непорожній список `agents.list[].skills` є остаточним набором для цього агента; він
не об’єднується з типовими значеннями.
### `agents.defaults.skipBootstrap`
@@ -948,9 +948,9 @@ IRC працює через Plugin і налаштовується в `channels.
### `agents.defaults.contextInjection`
-Керує тим, коли bootstrap-файли workspace вставляються в системний prompt. Типове значення: `"always"`.
+Керує тим, коли bootstrap-файли workspace інжектуються в системний запит. Типове значення: `"always"`.
-- `"continuation-skip"`: безпечні continuation-ходи (після завершеної відповіді асистента) пропускають повторну вставку bootstrap workspace, зменшуючи розмір prompt. Запуски Heartbeat і повторні спроби після Compaction все одно перебудовують контекст.
+- `"continuation-skip"`: безпечні ходи продовження (після завершеної відповіді асистента) пропускають повторну ін’єкцію bootstrap workspace, зменшуючи розмір запиту. Запуски Heartbeat і повторні спроби після Compaction все одно перебудовують контекст.
```json5
{
@@ -960,7 +960,7 @@ IRC працює через Plugin і налаштовується в `channels.
### `agents.defaults.bootstrapMaxChars`
-Максимальна кількість символів на bootstrap-файл workspace до обрізання. Типове значення: `12000`.
+Максимальна кількість символів для кожного bootstrap-файлу workspace до обрізання. Типове значення: `12000`.
```json5
{
@@ -970,7 +970,7 @@ IRC працює через Plugin і налаштовується в `channels.
### `agents.defaults.bootstrapTotalMaxChars`
-Максимальна загальна кількість символів, що вставляються з усіх bootstrap-файлів workspace. Типове значення: `60000`.
+Максимальна загальна кількість символів, інжектованих у всіх bootstrap-файлах workspace. Типове значення: `60000`.
```json5
{
@@ -980,12 +980,12 @@ IRC працює через Plugin і налаштовується в `channels.
### `agents.defaults.bootstrapPromptTruncationWarning`
-Керує видимим для агента текстом попередження, коли bootstrap-контекст обрізано.
+Керує видимим для агента текстом попередження, коли bootstrap-контекст обрізається.
Типове значення: `"once"`.
-- `"off"`: ніколи не вставляти текст попередження в системний prompt.
-- `"once"`: вставляти попередження один раз для кожного унікального сигнатурного варіанта обрізання (рекомендовано).
-- `"always"`: вставляти попередження під час кожного запуску, коли існує обрізання.
+- `"off"`: ніколи не інжектувати текст попередження в системний запит.
+- `"once"`: інжектувати попередження один раз для кожного унікального підпису обрізання (рекомендовано).
+- `"always"`: інжектувати попередження на кожному запуску, коли існує обрізання.
```json5
{
@@ -993,26 +993,26 @@ IRC працює через Plugin і налаштовується в `channels.
}
```
-### Карта відповідальності за бюджет контексту
+### Карта власності бюджетів контексту
-OpenClaw має кілька великих бюджетів prompt/контексту, і вони
+OpenClaw має кілька бюджетів запиту/контексту з великим обсягом, і вони
навмисно розділені за підсистемами, а не проходять через один загальний
перемикач.
- `agents.defaults.bootstrapMaxChars` /
`agents.defaults.bootstrapTotalMaxChars`:
- звичайна вставка bootstrap workspace.
+ звичайна ін’єкція bootstrap workspace.
- `agents.defaults.startupContext.*`:
- одноразовий стартовий пролог для `/new` і `/reset`, включно з нещодавніми щоденними
+ одноразова стартова преамбула для `/new` і `/reset`, включно з останніми щоденними
файлами `memory/*.md`.
- `skills.limits.*`:
- компактний список Skills, що вставляється в системний prompt.
+ компактний список Skills, інжектований у системний запит.
- `agents.defaults.contextLimits.*`:
- обмежені runtime-уривки та вставлені блоки, що належать runtime.
+ обмежені runtime-витяги й інжектовані блоки, що належать runtime.
- `memory.qmd.limits.*`:
- розмір фрагментів і вставок для індексованого пошуку в пам’яті.
+ розмір фрагментів індексованого пошуку пам’яті та ін’єкції.
-Використовуйте відповідне перевизначення для конкретного агента лише тоді, коли одному агенту потрібен інший
+Використовуйте відповідне перевизначення для окремого агента лише тоді, коли одному агенту потрібен інший
бюджет:
- `agents.list[].skillsLimits.maxSkillsPromptChars`
@@ -1020,7 +1020,7 @@ OpenClaw має кілька великих бюджетів prompt/контек
#### `agents.defaults.startupContext`
-Керує стартовим прологом першого ходу, який вставляється в базові запуски `/new` і `/reset`.
+Керує стартовою преамбулою першого ходу, яка інжектується під час запусків без аргументів `/new` і `/reset`.
```json5
{
@@ -1058,18 +1058,18 @@ OpenClaw має кілька великих бюджетів prompt/контек
}
```
-- `memoryGetMaxChars`: типове обмеження уривка `memory_get` перед додаванням
- метаданих обрізання і повідомлення про продовження.
+- `memoryGetMaxChars`: типовий ліміт витягу `memory_get` перед додаванням
+ метаданих обрізання та повідомлення про продовження.
- `memoryGetDefaultLines`: типове вікно рядків `memory_get`, коли `lines`
пропущено.
-- `toolResultMaxChars`: актуальне обмеження результату інструмента, яке використовується для збережених результатів і
- відновлення після переповнення.
-- `postCompactionMaxChars`: обмеження уривка AGENTS.md, що використовується під час вставки
+- `toolResultMaxChars`: ліміт результату інструмента в live-режимі, що використовується для збережених результатів і
+ відновлення переповнення.
+- `postCompactionMaxChars`: ліміт витягу AGENTS.md, що використовується під час ін’єкції
оновлення після Compaction.
#### `agents.list[].contextLimits`
-Перевизначення для конкретного агента для спільних перемикачів `contextLimits`. Пропущені поля успадковуються
+Перевизначення для окремого агента для спільних перемикачів `contextLimits`. Пропущені поля успадковуються
з `agents.defaults.contextLimits`.
```json5
@@ -1096,8 +1096,8 @@ OpenClaw має кілька великих бюджетів prompt/контек
#### `skills.limits.maxSkillsPromptChars`
-Глобальне обмеження для компактного списку Skills, що вставляється в системний prompt. Це
-не впливає на читання файлів `SKILL.md` на вимогу.
+Глобальний ліміт для компактного списку Skills, інжектованого в системний запит. Це
+не впливає на читання файлів `SKILL.md` за потреби.
```json5
{
@@ -1111,7 +1111,7 @@ OpenClaw має кілька великих бюджетів prompt/контек
#### `agents.list[].skillsLimits.maxSkillsPromptChars`
-Перевизначення бюджету prompt для Skills для конкретного агента.
+Перевизначення для окремого агента для бюджету запиту Skills.
```json5
{
@@ -1130,11 +1130,11 @@ OpenClaw має кілька великих бюджетів prompt/контек
### `agents.defaults.imageMaxDimensionPx`
-Максимальний розмір у пікселях для довшої сторони зображення в блоках зображень transcript/tool перед викликами провайдера.
+Максимальний розмір у пікселях для найдовшої сторони зображення в блоках зображень transcript/tool перед викликами постачальника.
Типове значення: `1200`.
-Нижчі значення зазвичай зменшують використання vision-token і розмір корисного навантаження запиту в запусках із великою кількістю скриншотів.
-Вищі значення зберігають більше візуальних деталей.
+Менші значення зазвичай зменшують використання vision-token і розмір корисного навантаження запиту для сценаріїв із великою кількістю скриншотів.
+Більші значення зберігають більше візуальних деталей.
```json5
{
@@ -1144,7 +1144,7 @@ OpenClaw має кілька великих бюджетів prompt/контек
### `agents.defaults.userTimezone`
-Часовий пояс для контексту системного prompt (не для міток часу повідомлень). Якщо не задано, використовується часовий пояс хоста.
+Часовий пояс для контексту системного запиту (не для часових міток повідомлень). Якщо не вказано, використовується часовий пояс хоста.
```json5
{
@@ -1154,7 +1154,7 @@ OpenClaw має кілька великих бюджетів prompt/контек
### `agents.defaults.timeFormat`
-Формат часу в системному prompt. Типове значення: `auto` (налаштування ОС).
+Формат часу в системному запиті. Типове значення: `auto` (налаштування ОС).
```json5
{
@@ -1213,48 +1213,49 @@ OpenClaw має кілька великих бюджетів prompt/контек
- `model`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Форма рядка задає лише основну модель.
- - Форма об’єкта задає основну модель плюс впорядковані failover-моделі.
+ - Форма об’єкта задає основну модель і впорядковані моделі для failover.
- `imageModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Використовується шляхом інструмента `image` як його конфігурація vision-моделі.
- Також використовується як резервна маршрутизація, коли вибрана/типова модель не може приймати вхідні зображення.
- `imageGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- - Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею tool/Plugin, що генерує зображення.
+ - Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею інструмента/Plugin, що генерує зображення.
- Типові значення: `google/gemini-3.1-flash-image-preview` для нативної генерації зображень Gemini, `fal/fal-ai/flux/dev` для fal або `openai/gpt-image-2` для OpenAI Images.
- - Якщо ви напряму вибираєте provider/model, також налаштуйте відповідну автентифікацію провайдера (наприклад, `GEMINI_API_KEY` або `GOOGLE_API_KEY` для `google/*`, `OPENAI_API_KEY` або OpenAI Codex OAuth для `openai/gpt-image-2`, `FAL_KEY` для `fal/*`).
- - Якщо пропущено, `image_generate` все одно може визначити типове значення провайдера з автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації зображень у порядку provider-id.
+ - Якщо ви напряму вибираєте `provider/model`, також налаштуйте відповідну автентифікацію постачальника (наприклад, `GEMINI_API_KEY` або `GOOGLE_API_KEY` для `google/*`, `OPENAI_API_KEY` або OpenAI Codex OAuth для `openai/gpt-image-2`, `FAL_KEY` для `fal/*`).
+ - Якщо поле пропущено, `image_generate` усе одно може визначити типове значення постачальника з автентифікацією. Спочатку він пробує поточного типового постачальника, потім інших зареєстрованих постачальників генерації зображень у порядку ID постачальника.
- `musicGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Використовується спільною можливістю генерації музики та вбудованим інструментом `music_generate`.
- Типові значення: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` або `minimax/music-2.5+`.
- - Якщо пропущено, `music_generate` все одно може визначити типове значення провайдера з автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації музики у порядку provider-id.
- - Якщо ви напряму вибираєте provider/model, також налаштуйте відповідну автентифікацію/API key провайдера.
+ - Якщо поле пропущено, `music_generate` усе одно може визначити типове значення постачальника з автентифікацією. Спочатку він пробує поточного типового постачальника, потім інших зареєстрованих постачальників генерації музики в порядку ID постачальника.
+ - Якщо ви напряму вибираєте `provider/model`, також налаштуйте відповідну автентифікацію постачальника/API key.
- `videoGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Використовується спільною можливістю генерації відео та вбудованим інструментом `video_generate`.
- Типові значення: `qwen/wan2.6-t2v`, `qwen/wan2.6-i2v`, `qwen/wan2.6-r2v`, `qwen/wan2.6-r2v-flash` або `qwen/wan2.7-r2v`.
- - Якщо пропущено, `video_generate` все одно може визначити типове значення провайдера з автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації відео у порядку provider-id.
- - Якщо ви напряму вибираєте provider/model, також налаштуйте відповідну автентифікацію/API key провайдера.
- - Вбудований провайдер генерації відео Qwen підтримує до 1 вихідного відео, 1 вхідного зображення, 4 вхідних відео, тривалість 10 секунд і параметри рівня провайдера `size`, `aspectRatio`, `resolution`, `audio` та `watermark`.
+ - Якщо поле пропущено, `video_generate` усе одно може визначити типове значення постачальника з автентифікацією. Спочатку він пробує поточного типового постачальника, потім інших зареєстрованих постачальників генерації відео в порядку ID постачальника.
+ - Якщо ви напряму вибираєте `provider/model`, також налаштуйте відповідну автентифікацію постачальника/API key.
+ - Bundled-постачальник генерації відео Qwen підтримує не більше 1 вихідного відео, 1 вхідного зображення, 4 вхідних відео, тривалість до 10 секунд і параметри рівня постачальника `size`, `aspectRatio`, `resolution`, `audio` і `watermark`.
- `pdfModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Використовується інструментом `pdf` для маршрутизації моделі.
- - Якщо пропущено, інструмент PDF використовує `imageModel` як резервне значення, а потім визначену модель сеансу/типову модель.
-- `pdfMaxBytesMb`: типове обмеження розміру PDF для інструмента `pdf`, коли `maxBytesMb` не передано під час виклику.
-- `pdfMaxPages`: типова максимальна кількість сторінок, що враховуються в режимі резервного вилучення інструмента `pdf`.
-- `verboseDefault`: типовий рівень verbose для агентів. Значення: `"off"`, `"on"`, `"full"`. Типово: `"off"`.
-- `elevatedDefault`: типовий рівень elevated-output для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Типово: `"on"`.
-- `model.primary`: формат `provider/model` (наприклад, `openai/gpt-5.4` для доступу через API key або `openai-codex/gpt-5.5` для Codex OAuth). Якщо пропустити провайдера, OpenClaw спочатку пробує псевдонім, потім унікальний збіг точного model id серед налаштованих провайдерів, і лише потім повертається до налаштованого типового провайдера (застаріла сумісна поведінка, тому краще вказувати явний `provider/model`). Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw повертається до першого налаштованого provider/model замість того, щоб показувати застаріле типове значення від видаленого провайдера.
-- `models`: налаштований каталог моделей і allowlist для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для провайдера, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`).
- - Безпечні редагування: використовуйте `openclaw config set agents.defaults.models '' --strict-json --merge`, щоб додавати записи. `config set` відмовляється від замін, які видалили б наявні записи allowlist, якщо не передано `--replace`.
- - Потоки configure/onboarding з областю провайдера зливають вибрані моделі провайдера в цю мапу й зберігають уже налаштованих не пов’язаних провайдерів.
-- `params`: глобальні типові параметри провайдера, що застосовуються до всіх моделей. Задаються в `agents.defaults.params` (наприклад, `{ cacheRetention: "long" }`).
-- Пріоритет злиття `params` (конфігурація): `agents.defaults.params` (глобальна база) перевизначається `agents.defaults.models["provider/model"].params` (для конкретної моделі), а потім `agents.list[].params` (для відповідного id агента) перевизначає за ключем. Подробиці див. у [Prompt Caching](/uk/reference/prompt-caching).
-- `embeddedHarness`: типова політика низькорівневого runtime вбудованого агента. Використовуйте `runtime: "auto"`, щоб зареєстровані harness Plugin могли перехоплювати підтримувані моделі, `runtime: "pi"` — щоб примусово використовувати вбудований harness PI, або зареєстрований id harness, наприклад `runtime: "codex"`. Установіть `fallback: "none"`, щоб вимкнути автоматичний резервний перехід на PI.
-- Засоби запису конфігурації, що змінюють ці поля (наприклад `/models set`, `/models set-image` і команди додавання/видалення fallback), зберігають канонічну форму об’єкта та за можливості зберігають наявні списки fallback.
-- `maxConcurrent`: максимальна кількість паралельних запусків агентів у різних сеансах (кожен сеанс усе одно серіалізований). Типово: 4.
+ - Якщо поле пропущено, інструмент PDF повертається до `imageModel`, а потім до визначеної моделі сесії/типової моделі.
+- `pdfMaxBytesMb`: типовий ліміт розміру PDF для інструмента `pdf`, коли `maxBytesMb` не передано під час виклику.
+- `pdfMaxPages`: типова максимальна кількість сторінок, що враховується режимом резервного витягування в інструменті `pdf`.
+- `verboseDefault`: типовий рівень verbose для агентів. Значення: `"off"`, `"on"`, `"full"`. Типове значення: `"off"`.
+- `elevatedDefault`: типовий рівень elevated-output для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Типове значення: `"on"`.
+- `model.primary`: формат `provider/model` (наприклад `openai/gpt-5.4` для доступу за API key або `openai-codex/gpt-5.5` для Codex OAuth). Якщо постачальника пропущено, OpenClaw спочатку пробує alias, потім — унікальний збіг серед налаштованих постачальників для цього точного ID моделі, і лише після цього повертається до налаштованого типового постачальника (застаріла поведінка сумісності, тому надавайте перевагу явному `provider/model`). Якщо цей постачальник більше не надає налаштовану типову модель, OpenClaw повертається до першого налаштованого постачальника/моделі замість того, щоб показувати застаріле типове значення для видаленого постачальника.
+- `models`: налаштований каталог моделей і список дозволених для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для постачальника, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`, `responsesServerCompaction`, `responsesCompactThreshold`).
+ - Безпечні зміни: використовуйте `openclaw config set agents.defaults.models '' --strict-json --merge`, щоб додати записи. `config set` відмовляється від замін, які вилучили б наявні записи зі списку дозволених, якщо не передати `--replace`.
+ - Потоки configure/onboarding на рівні постачальника зливають вибрані моделі постачальника в цю мапу та зберігають уже налаштованих, але не пов’язаних постачальників.
+ - Для прямих моделей OpenAI Responses compaction на стороні сервера вмикається автоматично. Використовуйте `params.responsesServerCompaction: false`, щоб припинити ін’єкцію `context_management`, або `params.responsesCompactThreshold`, щоб перевизначити поріг. Див. [OpenAI server-side compaction](/uk/providers/openai#server-side-compaction-responses-api).
+- `params`: глобальні типові параметри постачальника, що застосовуються до всіх моделей. Встановлюються в `agents.defaults.params` (наприклад `{ cacheRetention: "long" }`).
+- Пріоритет злиття `params` (конфігурація): `agents.defaults.params` (глобальна база) перевизначається `agents.defaults.models["provider/model"].params` (для окремої моделі), далі `agents.list[].params` (для відповідного ID агента) перевизначає за ключем. Подробиці див. у [Prompt Caching](/uk/reference/prompt-caching).
+- `embeddedHarness`: типова політика низькорівневого runtime вбудованого агента. Використовуйте `runtime: "auto"`, щоб зареєстровані harness Plugin могли підхоплювати підтримувані моделі, `runtime: "pi"` — щоб примусово використовувати вбудований harness PI, або зареєстрований ID harness, наприклад `runtime: "codex"`. Установіть `fallback: "none"`, щоб вимкнути автоматичний резервний перехід до PI.
+- Засоби запису конфігурації, які змінюють ці поля (наприклад `/models set`, `/models set-image` і команди додавання/видалення fallback), зберігають канонічну форму об’єкта та за можливості зберігають наявні списки fallback.
+- `maxConcurrent`: максимальна кількість паралельних запусків агентів між сесіями (кожна сесія все одно серіалізується). Типове значення: 4.
### `agents.defaults.embeddedHarness`
`embeddedHarness` керує тим, який низькорівневий виконавець запускає ходи вбудованого агента.
-У більшості розгортань слід залишити типове значення `{ runtime: "auto", fallback: "pi" }`.
-Використовуйте це, коли довірений Plugin надає нативний harness, наприклад вбудований
+У більшості розгортань слід зберігати типове значення `{ runtime: "auto", fallback: "pi" }`.
+Використовуйте це, коли довірений Plugin надає нативний harness, наприклад bundled
harness app-server Codex.
```json5
@@ -1271,12 +1272,12 @@ harness app-server Codex.
}
```
-- `runtime`: `"auto"`, `"pi"` або id зареєстрованого harness Plugin. Вбудований Plugin Codex реєструє `codex`.
-- `fallback`: `"pi"` або `"none"`. `"pi"` зберігає вбудований harness PI як сумісний резервний варіант, коли не вибрано жодного harness Plugin. `"none"` призводить до помилки, якщо вибір harness Plugin відсутній або не підтримується, замість тихого використання PI. Збої вибраного harness Plugin завжди показуються безпосередньо.
-- Перевизначення через середовище: `OPENCLAW_AGENT_RUNTIME=` перевизначає `runtime`; `OPENCLAW_AGENT_HARNESS_FALLBACK=none` вимикає резервний перехід на PI для цього процесу.
+- `runtime`: `"auto"`, `"pi"` або ID зареєстрованого harness Plugin. Bundled Plugin Codex реєструє `codex`.
+- `fallback`: `"pi"` або `"none"`. `"pi"` зберігає вбудований harness PI як сумісний резервний варіант, коли не вибрано жодного harness Plugin. `"none"` робить так, що відсутній або непідтримуваний вибір harness Plugin завершується помилкою замість тихого використання PI. Помилки вибраного harness Plugin завжди показуються напряму.
+- Перевизначення через змінні середовища: `OPENCLAW_AGENT_RUNTIME=` перевизначає `runtime`; `OPENCLAW_AGENT_HARNESS_FALLBACK=none` вимикає резервний перехід до PI для цього процесу.
- Для розгортань лише з Codex установіть `model: "openai/gpt-5.5"`, `embeddedHarness.runtime: "codex"` і `embeddedHarness.fallback: "none"`.
-- Вибір harness закріплюється за кожним id сеансу після першого вбудованого запуску. Зміни конфігурації/середовища впливають на нові або скинуті сеанси, а не на наявний transcript. Застарілі сеанси з історією transcript, але без записаного закріплення, вважаються закріпленими за PI. `/status` показує id harness, відмінні від PI, наприклад `codex`, поруч із `Fast`.
-- Це керує лише harness вбудованого чату. Генерація медіа, vision, PDF, музика, відео та TTS і далі використовують свої налаштування provider/model.
+- Вибір harness закріплюється за ID сесії після першого вбудованого запуску. Зміни конфігурації/змінних середовища впливають на нові або скинуті сесії, але не на наявний transcript. Застарілі сесії з історією transcript, але без записаного закріплення, вважаються закріпленими за PI. `/status` показує ID harness, відмінні від PI, наприклад `codex`, поруч із `Fast`.
+- Це керує лише вбудованим chat-harness. Генерація медіа, vision, PDF, музика, відео й TTS усе ще використовують свої налаштування постачальника/моделі.
**Вбудовані скорочення alias** (застосовуються лише тоді, коли модель є в `agents.defaults.models`):
@@ -1284,7 +1285,7 @@ harness app-server Codex.
| ------------------- | -------------------------------------------------- |
| `opus` | `anthropic/claude-opus-4-6` |
| `sonnet` | `anthropic/claude-sonnet-4-6` |
-| `gpt` | `openai/gpt-5.4` або налаштований Codex OAuth GPT-5.5 |
+| `gpt` | `openai/gpt-5.4` або налаштована Codex OAuth GPT-5.5 |
| `gpt-mini` | `openai/gpt-5.4-mini` |
| `gpt-nano` | `openai/gpt-5.4-nano` |
| `gemini` | `google/gemini-3.1-pro-preview` |
@@ -1293,13 +1294,13 @@ harness app-server Codex.
Ваші налаштовані alias завжди мають пріоритет над типовими.
-Моделі Z.AI GLM-4.x автоматично вмикають режим thinking, якщо ви не встановите `--thinking off` або самостійно не визначите `agents.defaults.models["zai/"].params.thinking`.
-Моделі Z.AI типово вмикають `tool_stream` для потокової передачі викликів інструментів. Установіть `agents.defaults.models["zai/"].params.tool_stream` у `false`, щоб вимкнути це.
-Моделі Anthropic Claude 4.6 типово використовують `adaptive` thinking, коли не задано явного рівня thinking.
+Для моделей Z.AI GLM-4.x thinking mode вмикається автоматично, якщо ви не встановите `--thinking off` або не визначите `agents.defaults.models["zai/"].params.thinking` самостійно.
+Для моделей Z.AI типово вмикається `tool_stream` для потокової передачі викликів інструментів. Установіть `agents.defaults.models["zai/"].params.tool_stream` у `false`, щоб вимкнути його.
+Для моделей Anthropic Claude 4.6 типово використовується thinking `adaptive`, якщо явно не задано рівень thinking.
### `agents.defaults.cliBackends`
-Необов’язкові CLI-бекенди для резервних запусків лише з текстом (без викликів інструментів). Корисно як запасний варіант, коли API-провайдери не працюють.
+Необов’язкові CLI-бекенди для резервних текстових запусків (без викликів інструментів). Корисно як запасний варіант, коли постачальники API недоступні.
```json5
{
@@ -1327,13 +1328,13 @@ harness app-server Codex.
}
```
-- CLI-бекенди орієнтовані насамперед на текст; інструменти завжди вимкнені.
-- Сеанси підтримуються, коли задано `sessionArg`.
-- Передавання зображень підтримується, коли `imageArg` приймає шляхи до файлів.
+- CLI-бекенди орієнтовані на текст; інструменти завжди вимкнені.
+- Сесії підтримуються, якщо задано `sessionArg`.
+- Наскрізна передача зображень підтримується, коли `imageArg` приймає шляхи до файлів.
### `agents.defaults.systemPromptOverride`
-Замінює весь системний prompt, зібраний OpenClaw, фіксованим рядком. Задається на типовому рівні (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають пріоритет; порожнє значення або значення лише з пробілів ігнорується. Корисно для контрольованих експериментів із prompt.
+Замінює весь системний запит, зібраний OpenClaw, фіксованим рядком. Встановлюється на рівні типових значень (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають пріоритет; порожнє значення або значення лише з пробілів ігнорується. Корисно для контрольованих експериментів із запитами.
```json5
{
@@ -1347,7 +1348,7 @@ harness app-server Codex.
### `agents.defaults.promptOverlays`
-Незалежні від провайдера накладки prompt, що застосовуються за сімейством моделей. ID моделей сімейства GPT-5 отримують спільний контракт поведінки в усіх провайдерів; `personality` керує лише шаром дружнього стилю взаємодії.
+Незалежні від постачальника накладання запиту, що застосовуються за сімейством моделей. ID моделей сімейства GPT-5 отримують спільний поведінковий контракт між постачальниками; `personality` керує лише шаром дружнього стилю взаємодії.
```json5
{
@@ -1364,8 +1365,8 @@ harness app-server Codex.
```
- `"friendly"` (типово) і `"on"` вмикають шар дружнього стилю взаємодії.
-- `"off"` вимикає лише дружній шар; тегований контракт поведінки GPT-5 залишається увімкненим.
-- Застарілий `plugins.entries.openai.config.personality` і далі зчитується, якщо це спільне налаштування не задано.
+- `"off"` вимикає лише дружній шар; тегований поведінковий контракт GPT-5 залишається увімкненим.
+- Застаріле `plugins.entries.openai.config.personality` усе ще читається, коли це спільне налаштування не задано.
### `agents.defaults.heartbeat`
@@ -1397,14 +1398,14 @@ harness app-server Codex.
```
- `every`: рядок тривалості (ms/s/m/h). Типове значення: `30m` (автентифікація через API key) або `1h` (автентифікація через OAuth). Установіть `0m`, щоб вимкнути.
-- `includeSystemPromptSection`: якщо false, прибирає секцію Heartbeat із системного prompt і пропускає вставку `HEARTBEAT.md` у bootstrap-контекст. Типове значення: `true`.
-- `suppressToolErrorWarnings`: якщо true, пригнічує корисні навантаження попереджень про помилки інструментів під час запусків Heartbeat.
-- `timeoutSeconds`: максимальний час у секундах, дозволений для одного ходу агента Heartbeat, після чого його буде перервано. Якщо не задано, використовується `agents.defaults.timeoutSeconds`.
-- `directPolicy`: політика прямої доставки/доставки в DM. `allow` (типово) дозволяє доставку до прямої цілі. `block` пригнічує доставку до прямої цілі та виводить `reason=dm-blocked`.
-- `lightContext`: якщо true, запуски Heartbeat використовують полегшений bootstrap-контекст і зберігають лише `HEARTBEAT.md` із bootstrap-файлів workspace.
-- `isolatedSession`: якщо true, кожен запуск Heartbeat виконується в новому сеансі без попередньої історії розмови. Такий самий шаблон ізоляції, як у Cron `sessionTarget: "isolated"`. Зменшує вартість токенів на один Heartbeat приблизно зі 100K до 2–5K токенів.
-- Для окремого агента: задайте `agents.list[].heartbeat`. Якщо будь-який агент визначає `heartbeat`, Heartbeat запускається **лише для цих агентів**.
-- Heartbeat виконує повні ходи агента — коротші інтервали витрачають більше токенів.
+- `includeSystemPromptSection`: коли `false`, прибирає секцію Heartbeat із системного запиту й пропускає ін’єкцію `HEARTBEAT.md` у bootstrap-контекст. Типове значення: `true`.
+- `suppressToolErrorWarnings`: коли `true`, пригнічує корисні навантаження попереджень про помилки інструментів під час запусків Heartbeat.
+- `timeoutSeconds`: максимальний час у секундах, дозволений для одного ходу агента Heartbeat перед примусовим перериванням. Залиште невстановленим, щоб використовувати `agents.defaults.timeoutSeconds`.
+- `directPolicy`: політика прямої доставки/DM. `allow` (типово) дозволяє доставку на пряму ціль. `block` пригнічує доставку на пряму ціль і виводить `reason=dm-blocked`.
+- `lightContext`: коли `true`, запуски Heartbeat використовують полегшений bootstrap-контекст і зберігають лише `HEARTBEAT.md` із bootstrap-файлів workspace.
+- `isolatedSession`: коли `true`, кожен Heartbeat запускається в новій сесії без попередньої історії розмов. Той самий шаблон ізоляції, що й у Cron `sessionTarget: "isolated"`. Зменшує витрати токенів на один Heartbeat приблизно зі ~100K до ~2-5K токенів.
+- Для окремого агента: задайте `agents.list[].heartbeat`. Коли будь-який агент визначає `heartbeat`, Heartbeat запускаються **лише для цих агентів**.
+- Heartbeat виконують повні ходи агента — коротші інтервали спалюють більше токенів.
### `agents.defaults.compaction`
@@ -1434,19 +1435,19 @@ harness app-server Codex.
}
```
-- `mode`: `default` або `safeguard` (підсумовування довгих історій частинами). Див. [Compaction](/uk/concepts/compaction).
-- `provider`: id зареєстрованого Plugin провайдера Compaction. Якщо задано, замість вбудованого підсумовування LLM викликається `summarize()` провайдера. У разі збою виконується повернення до вбудованого варіанта. Установлення провайдера примусово задає `mode: "safeguard"`. Див. [Compaction](/uk/concepts/compaction).
+- `mode`: `default` або `safeguard` (підсумовування довгої історії частинами). Див. [Compaction](/uk/concepts/compaction).
+- `provider`: id зареєстрованого Plugin постачальника Compaction. Якщо встановлено, замість вбудованого LLM-підсумовування викликається `summarize()` цього постачальника. У разі збою виконується повернення до вбудованого механізму. Установлення постачальника примусово задає `mode: "safeguard"`. Див. [Compaction](/uk/concepts/compaction).
- `timeoutSeconds`: максимальна кількість секунд, дозволена для однієї операції Compaction, після чого OpenClaw її перериває. Типове значення: `900`.
-- `identifierPolicy`: `strict` (типово), `off` або `custom`. `strict` додає вбудовані вказівки щодо збереження непрозорих ідентифікаторів перед підсумовуванням Compaction.
-- `identifierInstructions`: необов’язковий текст користувацьких інструкцій щодо збереження ідентифікаторів, який використовується, коли `identifierPolicy=custom`.
-- `postCompactionSections`: необов’язкові назви секцій H2/H3 з AGENTS.md, які потрібно повторно вставити після Compaction. Типове значення — `["Session Startup", "Red Lines"]`; установіть `[]`, щоб вимкнути повторну вставку. Якщо не задано або явно задано цю типову пару, старіші заголовки `Every Session`/`Safety` також приймаються як застарілий резервний варіант.
-- `model`: необов’язкове перевизначення `provider/model-id` лише для підсумовування Compaction. Використовуйте це, коли основний сеанс має залишатися на одній моделі, а підсумки Compaction — виконуватися на іншій; якщо не задано, Compaction використовує основну модель сеансу.
-- `notifyUser`: якщо `true`, надсилає користувачу короткі сповіщення, коли Compaction починається і коли завершується (наприклад, "Compacting context..." і "Compaction complete"). Типово вимкнено, щоб Compaction залишався безшумним.
-- `memoryFlush`: тихий агентний хід перед автоматичним Compaction для збереження довготривалих записів у пам’ять. Пропускається, якщо workspace доступний лише для читання.
+- `identifierPolicy`: `strict` (типово), `off` або `custom`. `strict` додає вбудовані вказівки щодо збереження непрозорих ідентифікаторів під час підсумовування Compaction.
+- `identifierInstructions`: необов’язковий власний текст інструкцій щодо збереження ідентифікаторів, який використовується, коли `identifierPolicy=custom`.
+- `postCompactionSections`: необов’язкові назви секцій H2/H3 з AGENTS.md, які потрібно повторно інжектувати після Compaction. Типово `["Session Startup", "Red Lines"]`; установіть `[]`, щоб вимкнути повторну ін’єкцію. Якщо поле не встановлено або явно встановлено в цю типову пару, старі заголовки `Every Session`/`Safety` також приймаються як застарілий резервний варіант.
+- `model`: необов’язкове перевизначення `provider/model-id` лише для підсумовування Compaction. Використовуйте це, коли основна сесія має залишатися на одній моделі, а підсумки Compaction мають виконуватися на іншій; якщо не встановлено, Compaction використовує основну модель сесії.
+- `notifyUser`: коли `true`, надсилає короткі сповіщення користувачу на початку та після завершення Compaction (наприклад, "Compacting context..." і "Compaction complete"). Типово вимкнено, щоб Compaction залишався безшумним.
+- `memoryFlush`: тихий агентний хід перед автоматичною Compaction для збереження довготривалих записів у пам’яті. Пропускається, коли workspace доступний лише для читання.
### `agents.defaults.contextPruning`
-Обрізає **старі результати інструментів** із контексту в пам’яті перед надсиланням до LLM. **Не** змінює історію сеансу на диску.
+Обрізає **старі результати інструментів** із контексту в пам’яті перед надсиланням до LLM. **Не** змінює історію сесії на диску.
```json5
{
@@ -1472,23 +1473,23 @@ harness app-server Codex.
- `mode: "cache-ttl"` вмикає проходи обрізання.
- `ttl` керує тим, як часто обрізання може запускатися знову (після останнього торкання кешу).
-- Обрізання спочатку м’яко скорочує завеликі результати інструментів, а потім за потреби повністю очищає старіші результати інструментів.
+- Обрізання спочатку м’яко скорочує надто великі результати інструментів, а потім за потреби повністю очищає старіші результати інструментів.
-**М’яке обрізання** зберігає початок і кінець та вставляє `...` посередині.
+**М’яке обрізання** зберігає початок і кінець та вставляє посередині `...`.
-**Повне очищення** замінює весь результат інструмента заповнювачем.
+**Жорстке очищення** замінює весь результат інструмента заповнювачем.
Примітки:
- Блоки зображень ніколи не обрізаються й не очищаються.
-- Співвідношення базуються на символах (приблизно), а не на точній кількості токенів.
+- Співвідношення рахуються за символами (приблизно), а не за точною кількістю токенів.
- Якщо існує менше ніж `keepLastAssistants` повідомлень асистента, обрізання пропускається.
Подробиці поведінки див. у [Session Pruning](/uk/concepts/session-pruning).
-### Блокова потокова передача
+### Блокове потокове передавання
```json5
{
@@ -1504,13 +1505,13 @@ harness app-server Codex.
}
```
-- Канали, крім Telegram, вимагають явного `*.blockStreaming: true`, щоб увімкнути блокові відповіді.
-- Перевизначення для каналу: `channels..blockStreamingCoalesce` (і варіанти для окремих облікових записів). Для Signal/Slack/Discord/Google Chat типово `minChars: 1500`.
-- `humanDelay`: випадкова пауза між блоковими відповідями. `natural` = 800–2500 мс. Перевизначення для окремого агента: `agents.list[].humanDelay`.
+- Для каналів, відмінних від Telegram, потрібно явно вказати `*.blockStreaming: true`, щоб увімкнути блокові відповіді.
+- Перевизначення для каналів: `channels..blockStreamingCoalesce` (і варіанти для окремих облікових записів). Для Signal/Slack/Discord/Google Chat типово `minChars: 1500`.
+- `humanDelay`: випадкова пауза між блоковими відповідями. `natural` = 800–2500ms. Перевизначення для окремого агента: `agents.list[].humanDelay`.
-Подробиці поведінки й розбиття на частини див. у [Streaming](/uk/concepts/streaming).
+Подробиці поведінки та поділу на частини див. у [Streaming](/uk/concepts/streaming).
-### Індикатори набору тексту
+### Індикатори набору
```json5
{
@@ -1523,8 +1524,8 @@ harness app-server Codex.
}
```
-- Типові значення: `instant` для прямих чатів/згадувань, `message` для групових чатів без згадування.
-- Перевизначення для сеансу: `session.typingMode`, `session.typingIntervalSeconds`.
+- Типові значення: `instant` для прямих чатів/згадок, `message` для групових чатів без згадки.
+- Перевизначення для окремої сесії: `session.typingMode`, `session.typingIntervalSeconds`.
Див. [Typing Indicators](/uk/concepts/typing-indicators).
@@ -1532,7 +1533,7 @@ harness app-server Codex.
### `agents.defaults.sandbox`
-Необов’язковий sandbox для вбудованого агента. Повний посібник див. у [Sandboxing](/uk/gateway/sandboxing).
+Необов’язкова ізоляція для вбудованого агента. Повний посібник див. у [Sandboxing](/uk/gateway/sandboxing).
```json5
{
@@ -1627,9 +1628,9 @@ harness app-server Codex.
}
```
-
+
-**Бекенд:**
+**Backend:**
- `docker`: локальний runtime Docker (типово)
- `ssh`: загальний віддалений runtime на основі SSH
@@ -1638,41 +1639,41 @@ harness app-server Codex.
Коли вибрано `backend: "openshell"`, налаштування, специфічні для runtime, переносяться до
`plugins.entries.openshell.config`.
-**Конфігурація SSH-бекенда:**
+**Конфігурація backend SSH:**
- `target`: SSH-ціль у форматі `user@host[:port]`
- `command`: команда SSH-клієнта (типово: `ssh`)
-- `workspaceRoot`: абсолютний віддалений корінь, що використовується для workspace за областями
-- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, що передаються в OpenSSH
-- `identityData` / `certificateData` / `knownHostsData`: вбудований вміст або SecretRef, які OpenClaw матеріалізує в тимчасові файли під час runtime
-- `strictHostKeyChecking` / `updateHostKeys`: перемикачі політики host-key OpenSSH
+- `workspaceRoot`: абсолютний віддалений корінь, який використовується для workspace за кожною областю
+- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, які передаються в OpenSSH
+- `identityData` / `certificateData` / `knownHostsData`: вбудований вміст або SecretRef, який OpenClaw матеріалізує у тимчасові файли під час runtime
+- `strictHostKeyChecking` / `updateHostKeys`: перемикачі політики ключів хоста OpenSSH
**Пріоритет автентифікації SSH:**
- `identityData` має пріоритет над `identityFile`
- `certificateData` має пріоритет над `certificateFile`
- `knownHostsData` має пріоритет над `knownHostsFile`
-- Значення `*Data` на основі SecretRef визначаються з активного знімка runtime секретів перед початком сеансу sandbox
+- Значення `*Data` на основі SecretRef визначаються з активного знімка runtime секретів перед початком сесії sandbox
-**Поведінка SSH-бекенда:**
+**Поведінка backend SSH:**
- один раз ініціалізує віддалений workspace після створення або перевідтворення
-- далі підтримує віддалений SSH-workspace як канонічний
-- маршрутизує `exec`, файлові інструменти та медіашляхи через SSH
+- потім підтримує віддалений SSH-workspace як канонічний
+- маршрутизує `exec`, файлові інструменти та шляхи медіа через SSH
- не синхронізує віддалені зміни назад на хост автоматично
-- не підтримує контейнери браузера sandbox
+- не підтримує browser-контейнери sandbox
**Доступ до workspace:**
-- `none`: sandbox-workspace за областю в `~/.openclaw/sandboxes`
-- `ro`: sandbox-workspace в `/workspace`, workspace агента монтується лише для читання в `/agent`
+- `none`: workspace sandbox за кожною областю в `~/.openclaw/sandboxes`
+- `ro`: workspace sandbox у `/workspace`, workspace агента монтується лише для читання в `/agent`
- `rw`: workspace агента монтується для читання/запису в `/workspace`
**Область:**
-- `session`: окремий контейнер + workspace для кожного сеансу
-- `agent`: один контейнер + workspace на агента (типово)
-- `shared`: спільний контейнер і workspace (без ізоляції між сеансами)
+- `session`: окремий контейнер + workspace для кожної сесії
+- `agent`: один контейнер + workspace для кожного агента (типово)
+- `shared`: спільний контейнер і workspace (без ізоляції між сесіями)
**Конфігурація Plugin OpenShell:**
@@ -1702,30 +1703,30 @@ harness app-server Codex.
**Режим OpenShell:**
-- `mirror`: перед `exec` засіває віддалений простір із локального, після `exec` синхронізує назад; локальний workspace залишається канонічним
-- `remote`: один раз засіває віддалений простір під час створення sandbox, після чого канонічним залишається віддалений workspace
+- `mirror`: перед `exec` заповнює віддалене середовище з локального, після `exec` синхронізує назад; локальний workspace залишається канонічним
+- `remote`: один раз заповнює віддалене середовище під час створення sandbox, після чого канонічним залишається віддалений workspace
-У режимі `remote` редагування на локальному хості, зроблені поза OpenClaw, не синхронізуються в sandbox автоматично після етапу засівання.
-Транспортом є SSH до sandbox OpenShell, але Plugin керує життєвим циклом sandbox і необов’язковою синхронізацією mirror.
+У режимі `remote` зміни на локальному хості, зроблені поза OpenClaw, автоматично не синхронізуються в sandbox після етапу початкового заповнення.
+Транспортом є SSH до sandbox OpenShell, але Plugin керує життєвим циклом sandbox і необов’язковою дзеркальною синхронізацією.
-**`setupCommand`** виконується один раз після створення контейнера (через `sh -lc`). Потребує виходу в мережу, кореня з можливістю запису та користувача root.
+**`setupCommand`** виконується один раз після створення контейнера (через `sh -lc`). Потрібні вихід у мережу, доступний для запису root і користувач root.
-**Контейнери типово використовують `network: "none"`** — установіть `"bridge"` (або користувацьку bridge-мережу), якщо агенту потрібен вихідний доступ.
+**Для контейнерів типово встановлено `network: "none"`** — задайте `"bridge"` (або власну bridge-мережу), якщо агенту потрібен вихідний доступ.
`"host"` заблоковано. `"container:"` типово заблоковано, якщо ви явно не встановите
`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` (режим break-glass).
-**Вхідні вкладення** тимчасово розміщуються в `media/inbound/*` активного workspace.
+**Вхідні вкладення** розміщуються в `media/inbound/*` в активному workspace.
-**`docker.binds`** монтує додаткові каталоги хоста; глобальні та для окремого агента `binds` об’єднуються.
+**`docker.binds`** монтує додаткові каталоги хоста; глобальні прив’язки та прив’язки для окремого агента об’єднуються.
-**Браузер у sandbox** (`sandbox.browser.enabled`): Chromium + CDP у контейнері. URL noVNC вставляється в системний prompt. Не потребує `browser.enabled` у `openclaw.json`.
-Доступ спостерігача noVNC типово використовує VNC-автентифікацію, а OpenClaw видає короткоживучий URL із токеном (замість розкриття пароля у спільному URL).
+**Ізольований browser** (`sandbox.browser.enabled`): Chromium + CDP у контейнері. URL noVNC інжектується в системний запит. Не потребує `browser.enabled` у `openclaw.json`.
+Доступ спостерігача через noVNC типово використовує автентифікацію VNC, а OpenClaw генерує URL із короткоживучим токеном (замість розкриття пароля в спільному URL).
-- `allowHostControl: false` (типово) блокує націлювання на браузер хоста із sandbox-сеансів.
-- `network` типово має значення `openclaw-sandbox-browser` (окрема bridge-мережа). Установлюйте `bridge` лише тоді, коли вам явно потрібна глобальна bridge-зв’язність.
-- `cdpSourceRange` за потреби обмежує вхід до CDP на межі контейнера до діапазону CIDR (наприклад `172.21.0.1/32`).
-- `sandbox.browser.binds` монтує додаткові каталоги хоста лише в контейнер браузера sandbox. Якщо задано (включно з `[]`), він замінює `docker.binds` для контейнера браузера.
-- Типові параметри запуску визначено в `scripts/sandbox-browser-entrypoint.sh` і налаштовано для хостів контейнерів:
+- `allowHostControl: false` (типово) блокує націлювання ізольованих сесій на browser хоста.
+- `network` типово має значення `openclaw-sandbox-browser` (окрема bridge-мережа). Установлюйте `bridge` лише тоді, коли вам явно потрібна глобальна зв’язність bridge.
+- `cdpSourceRange` за потреби обмежує вхідний CDP-трафік на межі контейнера до діапазону CIDR (наприклад `172.21.0.1/32`).
+- `sandbox.browser.binds` монтує додаткові каталоги хоста лише в контейнер browser sandbox. Якщо задано (включно з `[]`), воно замінює `docker.binds` для контейнера browser.
+- Типові параметри запуску визначені в `scripts/sandbox-browser-entrypoint.sh` і налаштовані для хостів контейнерів:
- `--remote-debugging-address=127.0.0.1`
- `--remote-debugging-port=`
- `--user-data-dir=${HOME}/.chrome`
@@ -1744,26 +1745,26 @@ harness app-server Codex.
- `--metrics-recording-only`
- `--disable-extensions` (типово увімкнено)
- `--disable-3d-apis`, `--disable-software-rasterizer` і `--disable-gpu`
- типово увімкнені та можуть бути вимкнені через
- `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0`, якщо для використання WebGL/3D це потрібно.
- - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` повторно вмикає розширення, якщо ваш workflow
+ типово увімкнені; їх можна вимкнути через
+ `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0`, якщо для WebGL/3D це потрібно.
+ - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` знову вмикає розширення, якщо ваш workflow
залежить від них.
- `--renderer-process-limit=2` можна змінити через
`OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=`; установіть `0`, щоб використовувати
типове обмеження процесів Chromium.
- - а також `--no-sandbox` і `--disable-setuid-sandbox`, коли ввімкнено `noSandbox`.
- - Типові значення є базовими для образу контейнера; використовуйте користувацький образ браузера з користувацьким
- entrypoint, щоб змінити типові значення контейнера.
+ - а також `--no-sandbox` і `--disable-setuid-sandbox`, коли увімкнено `noSandbox`.
+ - Типові значення є базовими для образу контейнера; щоб змінити типові параметри контейнера,
+ використовуйте власний образ browser із власним entrypoint.
-Ізоляція браузера в sandbox і `sandbox.docker.binds` доступні лише для Docker.
+Ізоляція browser і `sandbox.docker.binds` доступні лише для Docker.
-Збирання образів:
+Зібрати образи:
```bash
-scripts/sandbox-setup.sh # основний образ sandbox
-scripts/sandbox-browser-setup.sh # необов’язковий образ браузера
+scripts/sandbox-setup.sh # main sandbox image
+scripts/sandbox-browser-setup.sh # optional browser image
```
### `agents.list` (перевизначення для окремого агента)
@@ -1815,27 +1816,27 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
}
```
-- `id`: стабільний id агента (обов’язково).
-- `default`: якщо встановлено для кількох агентів, перемагає перший (реєструється попередження). Якщо не встановлено ні для кого, типовим є перший запис у списку.
-- `model`: форма рядка перевизначає лише `primary`; форма об’єкта `{ primary, fallbacks }` перевизначає обидва (`[]` вимикає глобальні fallback). Завдання Cron, які перевизначають лише `primary`, усе одно успадковують типові fallback, якщо ви не встановите `fallbacks: []`.
-- `params`: параметри потоку для окремого агента, що зливаються поверх вибраного запису моделі в `agents.defaults.models`. Використовуйте це для специфічних для агента перевизначень, як-от `cacheRetention`, `temperature` або `maxTokens`, не дублюючи весь каталог моделей.
-- `skills`: необов’язковий allowlist Skills для окремого агента. Якщо пропущено, агент успадковує `agents.defaults.skills`, коли воно задане; явний список замінює типові значення, а не зливається з ними, а `[]` означає відсутність Skills.
-- `thinkingDefault`: необов’язковий типовий рівень thinking для окремого агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, коли не встановлено перевизначення для повідомлення або сеансу.
-- `reasoningDefault`: необов’язкове типове значення видимості reasoning для окремого агента (`on | off | stream`). Застосовується, коли не встановлено перевизначення reasoning для повідомлення або сеансу.
-- `fastModeDefault`: необов’язкове типове значення fast mode для окремого агента (`true | false`). Застосовується, коли не встановлено перевизначення fast mode для повідомлення або сеансу.
-- `embeddedHarness`: необов’язкове перевизначення політики низькорівневого harness для окремого агента. Використовуйте `{ runtime: "codex", fallback: "none" }`, щоб зробити один агент лише Codex, тоді як інші агенти зберігатимуть типовий fallback на PI.
-- `runtime`: необов’язковий дескриптор runtime для окремого агента. Використовуйте `type: "acp"` із типовими значеннями `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має типово використовувати сеанси harness ACP.
+- `id`: стабільний ID агента (обов’язково).
+- `default`: якщо задано кілька, перемагає перший (виводиться попередження). Якщо не задано жодного, типовим стає перший запис у списку.
+- `model`: форма рядка перевизначає лише `primary`; форма об’єкта `{ primary, fallbacks }` перевизначає обидва (`[]` вимикає глобальні fallback). Завдання Cron, які перевизначають лише `primary`, усе одно успадковують типові fallback, якщо ви не задасте `fallbacks: []`.
+- `params`: параметри потоку для окремого агента, що зливаються поверх вибраного запису моделі в `agents.defaults.models`. Використовуйте це для специфічних перевизначень агента, як-от `cacheRetention`, `temperature` або `maxTokens`, не дублюючи весь каталог моделей.
+- `skills`: необов’язковий список дозволених Skills для окремого агента. Якщо пропущено, агент успадковує `agents.defaults.skills`, коли його задано; явний список замінює типові значення замість злиття, а `[]` означає відсутність Skills.
+- `thinkingDefault`: необов’язковий типовий рівень thinking для окремого агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, коли не задано перевизначення для окремого повідомлення або сесії.
+- `reasoningDefault`: необов’язкове типове значення видимості reasoning для окремого агента (`on | off | stream`). Застосовується, коли не задано перевизначення reasoning для окремого повідомлення або сесії.
+- `fastModeDefault`: необов’язкове типове значення fast mode для окремого агента (`true | false`). Застосовується, коли не задано перевизначення fast mode для окремого повідомлення або сесії.
+- `embeddedHarness`: необов’язкове перевизначення політики низькорівневого harness для окремого агента. Використовуйте `{ runtime: "codex", fallback: "none" }`, щоб зробити один агент лише Codex, тоді як інші агенти зберігатимуть типовий fallback до PI.
+- `runtime`: необов’язковий дескриптор runtime для окремого агента. Використовуйте `type: "acp"` разом із типовими значеннями `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має типово використовувати сесії harness ACP.
- `identity.avatar`: шлях відносно workspace, URL `http(s)` або URI `data:`.
- `identity` виводить типові значення: `ackReaction` з `emoji`, `mentionPatterns` з `name`/`emoji`.
-- `subagents.allowAgents`: allowlist id агентів для `sessions_spawn` (`["*"]` = будь-який; типово: лише той самий агент).
-- Захист успадкування sandbox: якщо сеанс-запитувач працює в sandbox, `sessions_spawn` відхиляє цілі, які працювали б без sandbox.
-- `subagents.requireAgentId`: якщо true, блокує виклики `sessions_spawn`, у яких пропущено `agentId` (примушує явний вибір профілю; типово: false).
+- `subagents.allowAgents`: список дозволених ID агентів для `sessions_spawn` (`["*"]` = будь-який; типово: лише той самий агент).
+- Захист успадкування sandbox: якщо сесія запитувача ізольована, `sessions_spawn` відхиляє цілі, які працювали б без sandbox.
+- `subagents.requireAgentId`: коли `true`, блокує виклики `sessions_spawn`, у яких пропущено `agentId` (примушує до явного вибору профілю; типово: false).
---
## Маршрутизація між кількома агентами
-Запускайте кілька ізольованих агентів усередині одного Gateway. Див. [Multi-Agent](/uk/concepts/multi-agent).
+Запускайте кількох ізольованих агентів в одному Gateway. Див. [Multi-Agent](/uk/concepts/multi-agent).
```json5
{
@@ -1852,29 +1853,29 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
}
```
-### Поля зіставлення прив’язок
+### Поля відповідності binding
- `type` (необов’язково): `route` для звичайної маршрутизації (якщо тип відсутній, типово використовується route), `acp` для постійних прив’язок розмов ACP.
- `match.channel` (обов’язково)
-- `match.accountId` (необов’язково; `*` = будь-який обліковий запис; пропущено = типовий обліковий запис)
+- `match.accountId` (необов’язково; `*` = будь-який обліковий запис; якщо пропущено = типовий обліковий запис)
- `match.peer` (необов’язково; `{ kind: direct|group|channel, id }`)
-- `match.guildId` / `match.teamId` (необов’язково; специфічно для каналу)
+- `match.guildId` / `match.teamId` (необов’язково; залежить від каналу)
- `acp` (необов’язково; лише для записів `type: "acp"`): `{ mode, label, cwd, backend }`
-**Детермінований порядок зіставлення:**
+**Детермінований порядок відповідності:**
1. `match.peer`
2. `match.guildId`
3. `match.teamId`
4. `match.accountId` (точний збіг, без peer/guild/team)
-5. `match.accountId: "*"` (для всього каналу)
+5. `match.accountId: "*"` (на весь канал)
6. Типовий агент
У межах кожного рівня перемагає перший відповідний запис `bindings`.
-Для записів `type: "acp"` OpenClaw визначає відповідність за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує наведений вище порядок рівнів route-прив’язок.
+Для записів `type: "acp"` OpenClaw виконує зіставлення за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує порядок рівнів маршрутизації вище.
-### Профілі доступу для окремих агентів
+### Профілі доступу для окремого агента
@@ -1894,7 +1895,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
-
+
```json5
{
@@ -1969,11 +1970,11 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
-Подробиці щодо пріоритетів див. у [Multi-Agent Sandbox & Tools](/uk/tools/multi-agent-sandbox-tools).
+Подробиці пріоритетів див. у [Multi-Agent Sandbox & Tools](/uk/tools/multi-agent-sandbox-tools).
---
-## Сеанс
+## Сесія
```json5
{
@@ -2020,37 +2021,37 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
}
```
-
+
-- **`scope`**: базова стратегія групування сеансів для контекстів групового чату.
- - `per-sender` (типово): кожен відправник отримує ізольований сеанс у межах контексту каналу.
- - `global`: усі учасники в контексті каналу спільно використовують один сеанс (використовуйте лише тоді, коли задумано спільний контекст).
+- **`scope`**: базова стратегія групування сесій для контекстів групового чату.
+ - `per-sender` (типово): кожен відправник отримує ізольовану сесію в межах контексту каналу.
+ - `global`: усі учасники в контексті каналу мають одну спільну сесію (використовуйте лише тоді, коли потрібен спільний контекст).
- **`dmScope`**: як групуються DM.
- - `main`: усі DM спільно використовують основний сеанс.
- - `per-peer`: ізоляція за id відправника між каналами.
- - `per-channel-peer`: ізоляція для кожної пари канал + відправник (рекомендовано для спільних inbox).
- - `per-account-channel-peer`: ізоляція для кожної трійки обліковий запис + канал + відправник (рекомендовано для багатообліковості).
-- **`identityLinks`**: мапа канонічних id до peer із префіксом провайдера для спільного використання сеансів між каналами.
-- **`reset`**: основна політика скидання. `daily` скидає о `atHour` за місцевим часом; `idle` скидає після `idleMinutes`. Якщо налаштовано обидва, спрацьовує той варіант, який завершується першим.
-- **`resetByType`**: перевизначення за типом (`direct`, `group`, `thread`). Застарілий `dm` приймається як alias для `direct`.
-- **`parentForkMaxTokens`**: максимальна кількість `totalTokens` у батьківському сеансі, дозволена під час створення розгалуженого сеансу thread (типово `100000`).
- - Якщо `totalTokens` батьківського сеансу перевищує це значення, OpenClaw запускає новий сеанс thread замість успадкування історії transcript батьківського сеансу.
- - Установіть `0`, щоб вимкнути цей захист і завжди дозволяти розгалуження від батьківського сеансу.
-- **`mainKey`**: застаріле поле. Runtime завжди використовує `"main"` для основного кошика прямого чату.
-- **`agentToAgent.maxPingPongTurns`**: максимальна кількість зворотних ходів між агентами під час обміну агент-агент (ціле число, діапазон: `0`–`5`). `0` вимикає ланцюжки ping-pong.
+ - `main`: усі DM використовують основну сесію.
+ - `per-peer`: ізоляція за ID відправника між каналами.
+ - `per-channel-peer`: ізоляція за каналом + відправником (рекомендовано для inbox із кількома користувачами).
+ - `per-account-channel-peer`: ізоляція за обліковим записом + каналом + відправником (рекомендовано для багатообліковості).
+- **`identityLinks`**: мапа канонічних ID до peer із префіксом постачальника для спільного використання сесій між каналами.
+- **`reset`**: основна політика скидання. `daily` скидає о `atHour` за місцевим часом; `idle` скидає після `idleMinutes`. Якщо налаштовано обидва, перемагає те, що сплине раніше.
+- **`resetByType`**: перевизначення за типом (`direct`, `group`, `thread`). Застаріле `dm` приймається як alias для `direct`.
+- **`parentForkMaxTokens`**: максимальний `totalTokens` батьківської сесії, дозволений під час створення відгалуженої сесії потоку (типово `100000`).
+ - Якщо `totalTokens` батьківської сесії перевищує це значення, OpenClaw запускає нову сесію потоку замість успадкування історії transcript батьківської сесії.
+ - Установіть `0`, щоб вимкнути цей захист і завжди дозволяти відгалуження від батьківської сесії.
+- **`mainKey`**: застаріле поле. Runtime завжди використовує `"main"` для основного bucket прямого чату.
+- **`agentToAgent.maxPingPongTurns`**: максимальна кількість зворотних ходів між агентами під час обмінів агент-агент (ціле число, діапазон: `0`–`5`). `0` вимикає ланцюжки ping-pong.
- **`sendPolicy`**: зіставлення за `channel`, `chatType` (`direct|group|channel`, із застарілим alias `dm`), `keyPrefix` або `rawKeyPrefix`. Перша заборона має пріоритет.
-- **`maintenance`**: елементи керування очищенням і збереженням сховища сеансів.
+- **`maintenance`**: параметри очищення сховища сесій + зберігання.
- `mode`: `warn` лише виводить попередження; `enforce` застосовує очищення.
- - `pruneAfter`: межа віку для застарілих записів (типово `30d`).
+ - `pruneAfter`: поріг давності для застарілих записів (типово `30d`).
- `maxEntries`: максимальна кількість записів у `sessions.json` (типово `500`).
- - `rotateBytes`: ротує `sessions.json`, коли він перевищує цей розмір (типово `10mb`).
- - `resetArchiveRetention`: термін збереження архівів transcript `*.reset.`. Типово дорівнює `pruneAfter`; установіть `false`, щоб вимкнути.
- - `maxDiskBytes`: необов’язковий жорсткий бюджет дискового простору для каталогу сеансів. У режимі `warn` реєструє попередження; у режимі `enforce` спочатку видаляє найстаріші артефакти/сеанси.
- - `highWaterBytes`: необов’язкова ціль після очищення бюджету. Типово дорівнює `80%` від `maxDiskBytes`.
-- **`threadBindings`**: глобальні типові значення для функцій сеансів, прив’язаних до thread.
- - `enabled`: головний типовий перемикач (провайдери можуть перевизначати; Discord використовує `channels.discord.threadBindings.enabled`)
- - `idleHours`: типове автоматичне зняття фокуса через неактивність у годинах (`0` вимикає; провайдери можуть перевизначати)
- - `maxAgeHours`: типовий жорсткий максимальний вік у годинах (`0` вимикає; провайдери можуть перевизначати)
+ - `rotateBytes`: ротує `sessions.json`, коли його розмір перевищує це значення (типово `10mb`).
+ - `resetArchiveRetention`: строк зберігання архівів transcript `*.reset.`. Типово дорівнює `pruneAfter`; установіть `false`, щоб вимкнути.
+ - `maxDiskBytes`: необов’язковий жорсткий бюджет дискового простору для каталогу сесій. У режимі `warn` виводить попередження; у режимі `enforce` спочатку видаляє найстаріші артефакти/сесії.
+ - `highWaterBytes`: необов’язкова ціль після очищення за бюджетом. Типово `80%` від `maxDiskBytes`.
+- **`threadBindings`**: глобальні типові значення для функцій сесій, прив’язаних до потоків.
+ - `enabled`: головний типовий перемикач (постачальники можуть перевизначати; Discord використовує `channels.discord.threadBindings.enabled`)
+ - `idleHours`: типове автоматичне зняття фокуса через неактивність у годинах (`0` вимикає; постачальники можуть перевизначати)
+ - `maxAgeHours`: типовий жорсткий максимальний вік у годинах (`0` вимикає; постачальники можуть перевизначати)
@@ -2090,17 +2091,17 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
Перевизначення для каналу/облікового запису: `channels..responsePrefix`, `channels..accounts..responsePrefix`.
-Порядок визначення (перемагає найбільш специфічний): обліковий запис → канал → глобальне. `""` вимикає й зупиняє каскад. `"auto"` формує `[{identity.name}]`.
+Порядок визначення (перемагає найбільш специфічне): обліковий запис → канал → глобальне значення. `""` вимикає і зупиняє каскад. `"auto"` виводить `[{identity.name}]`.
**Змінні шаблону:**
-| Змінна | Опис | Приклад |
-| ---------------- | ------------------------ | --------------------------- |
-| `{model}` | Коротка назва моделі | `claude-opus-4-6` |
-| `{modelFull}` | Повний ідентифікатор моделі | `anthropic/claude-opus-4-6` |
-| `{provider}` | Назва провайдера | `anthropic` |
-| `{thinkingLevel}`| Поточний рівень thinking | `high`, `low`, `off` |
-| `{identity.name}`| Назва ідентичності агента | (те саме, що й `"auto"`) |
+| Змінна | Опис | Приклад |
+| ----------------- | ------------------------ | --------------------------- |
+| `{model}` | Коротка назва моделі | `claude-opus-4-6` |
+| `{modelFull}` | Повний ідентифікатор моделі | `anthropic/claude-opus-4-6` |
+| `{provider}` | Назва постачальника | `anthropic` |
+| `{thinkingLevel}` | Поточний рівень thinking | `high`, `low`, `off` |
+| `{identity.name}` | Назва identity агента | (те саме, що `"auto"`) |
Змінні нечутливі до регістру. `{think}` — alias для `{thinkingLevel}`.
@@ -2108,16 +2109,16 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
- Типово використовується `identity.emoji` активного агента, інакше `"👀"`. Установіть `""`, щоб вимкнути.
- Перевизначення для каналу: `channels..ackReaction`, `channels..accounts..ackReaction`.
-- Порядок визначення: обліковий запис → канал → `messages.ackReaction` → резервне значення identity.
+- Порядок визначення: обліковий запис → канал → `messages.ackReaction` → резервне значення з identity.
- Область: `group-mentions` (типово), `group-all`, `direct`, `all`.
-- `removeAckAfterReply`: видаляє підтвердження після відповіді у Slack, Discord і Telegram.
+- `removeAckAfterReply`: прибирає ack після відповіді у Slack, Discord і Telegram.
- `messages.statusReactions.enabled`: вмикає реакції статусу життєвого циклу у Slack, Discord і Telegram.
- У Slack і Discord, якщо не задано, реакції статусу залишаються увімкненими, коли активні реакції підтвердження.
- У Telegram, щоб увімкнути реакції статусу життєвого циклу, явно встановіть це значення в `true`.
+ У Slack і Discord, якщо не задано, реакції статусу залишаються увімкненими, коли активні ack-реакції.
+ У Telegram, щоб увімкнути реакції статусу життєвого циклу, явно встановіть `true`.
-### Inbound debounce
+### Debounce для вхідних повідомлень
-Об’єднує швидкі текстові повідомлення від одного відправника в один хід агента. Медіа/вкладення скидаються негайно. Команди керування обходять debounce.
+Об’єднує швидкі текстові повідомлення від того самого відправника в один хід агента. Медіа/вкладення скидаються негайно. Керівні команди обходять debounce.
### TTS (text-to-speech)
@@ -2160,12 +2161,12 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
}
```
-- `auto` керує типовим режимом автоматичного TTS: `off`, `always`, `inbound` або `tagged`. `/tts on|off` може перевизначати локальні налаштування, а `/tts status` показує фактичний стан.
+- `auto` керує типовим режимом auto-TTS: `off`, `always`, `inbound` або `tagged`. `/tts on|off` може перевизначати локальні налаштування, а `/tts status` показує фактичний стан.
- `summaryModel` перевизначає `agents.defaults.model.primary` для автоматичного підсумку.
-- `modelOverrides` типово ввімкнено; `modelOverrides.allowProvider` типово має значення `false` (opt-in).
+- `modelOverrides` типово увімкнено; `modelOverrides.allowProvider` типово має значення `false` (opt-in).
- API key використовують резервні значення `ELEVENLABS_API_KEY`/`XI_API_KEY` і `OPENAI_API_KEY`.
-- `openai.baseUrl` перевизначає endpoint TTS OpenAI. Порядок визначення: конфігурація, потім `OPENAI_TTS_BASE_URL`, потім `https://api.openai.com/v1`.
-- Коли `openai.baseUrl` вказує на endpoint, що не належить OpenAI, OpenClaw розглядає його як TTS-сервер, сумісний з OpenAI, і послаблює перевірку моделі/голосу.
+- `openai.baseUrl` перевизначає endpoint OpenAI TTS. Порядок визначення: конфігурація, потім `OPENAI_TTS_BASE_URL`, потім `https://api.openai.com/v1`.
+- Коли `openai.baseUrl` вказує на endpoint, відмінний від OpenAI, OpenClaw розглядає його як OpenAI-сумісний TTS-сервер і послаблює валідацію моделі/голосу.
---
@@ -2195,13 +2196,13 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
}
```
-- `talk.provider` має відповідати ключу в `talk.providers`, коли налаштовано кілька провайдерів Talk.
-- Застарілі плоскі ключі Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності й автоматично мігруються в `talk.providers.`.
-- Voice ID використовують резервні значення `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
-- `providers.*.apiKey` приймає відкриті рядки або об’єкти SecretRef.
-- Резервне значення `ELEVENLABS_API_KEY` застосовується лише тоді, коли не налаштовано API key Talk.
-- `providers.*.voiceAliases` дозволяє директивам Talk використовувати дружні назви.
-- `silenceTimeoutMs` керує тим, як довго режим Talk чекає після тиші користувача, перш ніж надіслати transcript. Якщо не задано, використовується типове вікно паузи платформи (`700 ms на macOS і Android, 900 ms на iOS`).
+- `talk.provider` має відповідати ключу в `talk.providers`, коли налаштовано кількох постачальників Talk.
+- Застарілі плоскі ключі Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності та автоматично мігруються в `talk.providers.`.
+- ID голосів використовують резервні значення `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
+- `providers.*.apiKey` приймає звичайні текстові рядки або об’єкти SecretRef.
+- Резервне значення `ELEVENLABS_API_KEY` застосовується лише тоді, коли не налаштовано ключ API для Talk.
+- `providers.*.voiceAliases` дозволяє інструкціям Talk використовувати зручні імена.
+- `silenceTimeoutMs` визначає, скільки режим Talk очікує після тиші користувача, перш ніж надіслати transcript. Якщо не встановлено, зберігається типове для платформи вікно паузи (`700 ms на macOS і Android, 900 ms на iOS`).
---
@@ -2209,37 +2210,37 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
### Профілі інструментів
-`tools.profile` задає базовий allowlist перед `tools.allow`/`tools.deny`:
+`tools.profile` задає базовий список дозволених перед `tools.allow`/`tools.deny`:
-Локальний онбординг типово встановлює для нових локальних конфігурацій `tools.profile: "coding"`, якщо значення не задано (наявні явні профілі зберігаються).
+Локальний onboarding типово задає для нових локальних конфігурацій `tools.profile: "coding"`, якщо значення не встановлено (наявні явні профілі зберігаються).
-| Профіль | Містить |
-| ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| `minimal` | лише `session_status` |
+| Профіль | Включає |
+| ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
+| `minimal` | лише `session_status` |
| `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `video_generate` |
-| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` |
-| `full` | Без обмежень (те саме, що й без значення) |
+| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` |
+| `full` | Без обмежень (те саме, що не вказано) |
### Групи інструментів
-| Група | Інструменти |
-| ------------------ | ----------------------------------------------------------------------------------------------------------------------- |
-| `group:runtime` | `exec`, `process`, `code_execution` (`bash` приймається як alias для `exec`) |
-| `group:fs` | `read`, `write`, `edit`, `apply_patch` |
+| Група | Інструменти |
+| ------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `group:runtime` | `exec`, `process`, `code_execution` (`bash` приймається як alias для `exec`) |
+| `group:fs` | `read`, `write`, `edit`, `apply_patch` |
| `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` |
-| `group:memory` | `memory_search`, `memory_get` |
-| `group:web` | `web_search`, `x_search`, `web_fetch` |
-| `group:ui` | `browser`, `canvas` |
-| `group:automation` | `cron`, `gateway` |
-| `group:messaging` | `message` |
-| `group:nodes` | `nodes` |
-| `group:agents` | `agents_list` |
-| `group:media` | `image`, `image_generate`, `video_generate`, `tts` |
-| `group:openclaw` | Усі вбудовані інструменти (без Plugin провайдерів) |
+| `group:memory` | `memory_search`, `memory_get` |
+| `group:web` | `web_search`, `x_search`, `web_fetch` |
+| `group:ui` | `browser`, `canvas` |
+| `group:automation` | `cron`, `gateway` |
+| `group:messaging` | `message` |
+| `group:nodes` | `nodes` |
+| `group:agents` | `agents_list` |
+| `group:media` | `image`, `image_generate`, `video_generate`, `tts` |
+| `group:openclaw` | Усі вбудовані інструменти (крім Plugin постачальників) |
### `tools.allow` / `tools.deny`
-Глобальна політика дозволу/заборони інструментів (заборона має пріоритет). Нечутлива до регістру, підтримує wildcard `*`. Застосовується, навіть коли sandbox Docker вимкнено.
+Глобальна політика дозволу/заборони інструментів (заборона має пріоритет). Нечутлива до регістру, підтримує шаблони з `*`. Застосовується навіть тоді, коли Docker sandbox вимкнено.
```json5
{
@@ -2249,7 +2250,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
### `tools.byProvider`
-Додатково обмежує інструменти для конкретних провайдерів або моделей. Порядок: базовий профіль → профіль провайдера → allow/deny.
+Додатково обмежує інструменти для окремих постачальників або моделей. Порядок: базовий профіль → профіль постачальника → allow/deny.
```json5
{
@@ -2265,7 +2266,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
### `tools.elevated`
-Керує підвищеним доступом до exec поза sandbox:
+Керує доступом до elevated exec поза sandbox:
```json5
{
@@ -2282,8 +2283,8 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
```
- Перевизначення для окремого агента (`agents.list[].tools.elevated`) може лише додатково обмежувати.
-- `/elevated on|off|ask|full` зберігає стан для кожного сеансу; вбудовані директиви застосовуються до одного повідомлення.
-- Підвищений `exec` обходить sandbox і використовує налаштований шлях виходу (`gateway` типово або `node`, коли ціллю exec є `node`).
+- `/elevated on|off|ask|full` зберігає стан для кожної сесії; вбудовані директиви застосовуються до одного повідомлення.
+- Elevated `exec` обходить sandboxing і використовує налаштований шлях виходу (`gateway` типово або `node`, коли ціллю exec є `node`).
### `tools.exec`
@@ -2308,7 +2309,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
### `tools.loopDetection`
Перевірки безпеки циклів інструментів **типово вимкнені**. Установіть `enabled: true`, щоб увімкнути виявлення.
-Налаштування можна визначати глобально в `tools.loopDetection` і перевизначати для окремого агента в `agents.list[].tools.loopDetection`.
+Налаштування можна визначити глобально в `tools.loopDetection` і перевизначити для окремого агента в `agents.list[].tools.loopDetection`.
```json5
{
@@ -2332,10 +2333,10 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
- `historySize`: максимальна історія викликів інструментів, що зберігається для аналізу циклів.
- `warningThreshold`: поріг повторюваного шаблону без прогресу для попереджень.
- `criticalThreshold`: вищий поріг повторення для блокування критичних циклів.
-- `globalCircuitBreakerThreshold`: поріг жорсткої зупинки для будь-якого запуску без прогресу.
+- `globalCircuitBreakerThreshold`: жорсткий поріг зупинки для будь-якого запуску без прогресу.
- `detectors.genericRepeat`: попереджати про повторні виклики того самого інструмента з тими самими аргументами.
-- `detectors.knownPollNoProgress`: попереджати/блокувати відомі poll-інструменти (`process.poll`, `command_status` тощо).
-- `detectors.pingPong`: попереджати/блокувати чергування пар шаблонів без прогресу.
+- `detectors.knownPollNoProgress`: попереджати/блокувати відомі polling-інструменти (`process.poll`, `command_status` тощо).
+- `detectors.pingPong`: попереджати/блокувати чергування шаблонів пар без прогресу.
- Якщо `warningThreshold >= criticalThreshold` або `criticalThreshold >= globalCircuitBreakerThreshold`, валідація завершується помилкою.
### `tools.web`
@@ -2404,30 +2405,30 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
-**Запис провайдера** (`type: "provider"` або пропущено):
+**Запис постачальника** (`type: "provider"` або пропущено):
-- `provider`: id API-провайдера (`openai`, `anthropic`, `google`/`gemini`, `groq` тощо)
+- `provider`: id API-постачальника (`openai`, `anthropic`, `google`/`gemini`, `groq` тощо)
- `model`: перевизначення id моделі
-- `profile` / `preferredProfile`: вибір профілю `auth-profiles.json`
+- `profile` / `preferredProfile`: вибір профілю з `auth-profiles.json`
**Запис CLI** (`type: "cli"`):
- `command`: виконуваний файл для запуску
-- `args`: шаблонізовані аргументи (підтримує `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` тощо)
+- `args`: шаблонні аргументи (підтримуються `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` тощо)
**Спільні поля:**
- `capabilities`: необов’язковий список (`image`, `audio`, `video`). Типові значення: `openai`/`anthropic`/`minimax` → image, `google` → image+audio+video, `groq` → audio.
-- `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: перевизначення для конкретного запису.
-- У разі збоїв використовується наступний запис.
+- `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: перевизначення для окремого запису.
+- У разі помилки виконується перехід до наступного запису.
-Автентифікація провайдера дотримується стандартного порядку: `auth-profiles.json` → змінні середовища → `models.providers.*.apiKey`.
+Автентифікація постачальника використовує стандартний порядок: `auth-profiles.json` → змінні середовища → `models.providers.*.apiKey`.
**Поля async completion:**
- `asyncCompletion.directSend`: коли `true`, завершені асинхронні завдання `music_generate`
і `video_generate` спочатку намагаються доставити результат безпосередньо в канал. Типове значення: `false`
- (застарілий шлях пробудження requester-session/model-delivery).
+ (застарілий шлях пробудження сесії запитувача/доставки моделлю).
@@ -2446,9 +2447,9 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
### `tools.sessions`
-Керує тим, на які сеанси можна націлюватися інструментами сеансів (`sessions_list`, `sessions_history`, `sessions_send`).
+Керує тим, на які сесії можна націлюватися інструментами сесій (`sessions_list`, `sessions_history`, `sessions_send`).
-Типове значення: `tree` (поточний сеанс + сеанси, породжені ним, наприклад субагенти).
+Типове значення: `tree` (поточна сесія + сесії, породжені нею, наприклад subagents).
```json5
{
@@ -2463,11 +2464,11 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
Примітки:
-- `self`: лише ключ поточного сеансу.
-- `tree`: поточний сеанс + сеанси, породжені поточним сеансом (субагенти).
-- `agent`: будь-який сеанс, що належить поточному id агента (може включати інших користувачів, якщо ви запускаєте сеанси per-sender під тим самим id агента).
-- `all`: будь-який сеанс. Націлювання між агентами все одно вимагає `tools.agentToAgent`.
-- Обмеження sandbox: коли поточний сеанс працює в sandbox і `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, видимість примусово встановлюється в `tree`, навіть якщо `tools.sessions.visibility="all"`.
+- `self`: лише ключ поточної сесії.
+- `tree`: поточна сесія + сесії, породжені поточною сесією (subagents).
+- `agent`: будь-яка сесія, що належить поточному ID агента (може включати інших користувачів, якщо ви запускаєте сесії per-sender під тим самим ID агента).
+- `all`: будь-яка сесія. Націлювання між різними агентами все одно вимагає `tools.agentToAgent`.
+- Обмеження sandbox: коли поточна сесія ізольована і `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, видимість примусово встановлюється в `tree`, навіть якщо `tools.sessions.visibility="all"`.
### `tools.sessions_spawn`
@@ -2492,17 +2493,17 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
Примітки:
- Вкладення підтримуються лише для `runtime: "subagent"`. Runtime ACP їх відхиляє.
-- Файли матеріалізуються в дочірньому workspace у `.openclaw/attachments//` з `.manifest.json`.
-- Вміст вкладень автоматично редагується в збереженні transcript.
-- Входи Base64 перевіряються суворими перевірками алфавіту/доповнення та захистом розміру до декодування.
-- Дозволи файлів: `0700` для каталогів і `0600` для файлів.
-- Очищення виконується згідно з політикою `cleanup`: `delete` завжди видаляє вкладення; `keep` зберігає їх лише коли `retainOnSessionKeep: true`.
+- Файли матеріалізуються в дочірньому workspace у `.openclaw/attachments//` разом із `.manifest.json`.
+- Вміст вкладень автоматично редагується в збереженому transcript.
+- Вхідні дані Base64 перевіряються з суворою перевіркою алфавіту/падингу та захистом розміру до декодування.
+- Права доступу до файлів: `0700` для каталогів і `0600` для файлів.
+- Очищення виконується згідно з політикою `cleanup`: `delete` завжди видаляє вкладення; `keep` зберігає їх лише тоді, коли `retainOnSessionKeep: true`.
### `tools.experimental`
-Експериментальні прапорці вбудованих інструментів. Типово вимкнені, якщо не застосовується правило автоматичного вмикання strict-agentic GPT-5.
+Експериментальні прапорці вбудованих інструментів. Типово вимкнені, якщо не застосовується правило автоматичного ввімкнення strict-agentic GPT-5.
```json5
{
@@ -2517,8 +2518,8 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
Примітки:
- `planTool`: вмикає структурований інструмент `update_plan` для відстеження нетривіальної багатокрокової роботи.
-- Типове значення: `false`, якщо тільки `agents.defaults.embeddedPi.executionContract` (або перевизначення для окремого агента) не встановлено в `"strict-agentic"` для запуску OpenAI або OpenAI Codex сімейства GPT-5. Установіть `true`, щоб примусово ввімкнути інструмент поза цією областю, або `false`, щоб залишити його вимкненим навіть для strict-agentic запусків GPT-5.
-- Коли інструмент увімкнений, системний prompt також додає вказівки щодо використання, щоб модель застосовувала його лише для суттєвої роботи й тримала не більш як один крок у стані `in_progress`.
+- Типове значення: `false`, якщо тільки `agents.defaults.embeddedPi.executionContract` (або перевизначення для окремого агента) не встановлено в `"strict-agentic"` для запуску OpenAI або OpenAI Codex сімейства GPT-5. Установіть `true`, щоб примусово ввімкнути інструмент поза цією областю, або `false`, щоб залишити його вимкненим навіть для запусків strict-agentic GPT-5.
+- Коли інструмент увімкнено, системний запит також додає вказівки щодо використання, щоб модель застосовувала його лише для суттєвої роботи й підтримувала не більше одного кроку `in_progress`.
### `agents.defaults.subagents`
@@ -2538,16 +2539,16 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
}
```
-- `model`: типова модель для породжених субагентів. Якщо пропущено, субагенти успадковують модель викликача.
-- `allowAgents`: типовий allowlist цільових id агентів для `sessions_spawn`, коли агент-запитувач не задає власний `subagents.allowAgents` (`["*"]` = будь-який; типово: лише той самий агент).
-- `runTimeoutSeconds`: типовий тайм-аут (у секундах) для `sessions_spawn`, коли виклик інструмента не передає `runTimeoutSeconds`. `0` означає відсутність тайм-ауту.
+- `model`: типова модель для запущених субагентів. Якщо не вказано, субагенти успадковують модель викликача.
+- `allowAgents`: типовий список дозволених цільових ID агентів для `sessions_spawn`, коли агент-запитувач не задає власне `subagents.allowAgents` (`["*"]` = будь-який; типово: лише той самий агент).
+- `runTimeoutSeconds`: типовий тайм-аут (у секундах) для `sessions_spawn`, коли виклик інструмента не містить `runTimeoutSeconds`. `0` означає відсутність тайм-ауту.
- Політика інструментів для субагентів: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`.
---
-## Користувацькі провайдери й base URL
+## Користувацькі постачальники та base URL
-OpenClaw використовує вбудований каталог моделей. Додавайте користувацьких провайдерів через `models.providers` у конфігурації або `~/.openclaw/agents//agent/models.json`.
+OpenClaw використовує вбудований каталог моделей. Додавайте користувацьких постачальників через `models.providers` у конфігурації або `~/.openclaw/agents//agent/models.json`.
```json5
{
@@ -2576,51 +2577,51 @@ OpenClaw використовує вбудований каталог модел
}
```
-- Використовуйте `authHeader: true` + `headers` для користувацьких потреб автентифікації.
+- Використовуйте `authHeader: true` + `headers` для власних потреб автентифікації.
- Перевизначайте корінь конфігурації агента через `OPENCLAW_AGENT_DIR` (або `PI_CODING_AGENT_DIR`, застарілий alias змінної середовища).
-- Пріоритет злиття для однакових ID провайдерів:
- - Непорожні значення `baseUrl` з агентського `models.json` мають пріоритет.
- - Непорожні значення `apiKey` агента мають пріоритет лише тоді, коли цей провайдер не керується через SecretRef у поточному контексті config/auth-profile.
- - Значення `apiKey` провайдера, керовані через SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань) замість збереження визначених секретів.
- - Значення заголовків провайдера, керовані через SecretRef, оновлюються з маркерів джерела (`secretref-env:ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань).
+- Пріоритет злиття для відповідних ID постачальників:
+ - Непорожні значення `baseUrl` в агентському `models.json` мають пріоритет.
+ - Непорожні значення `apiKey` агента мають пріоритет лише тоді, коли цей постачальник не керується через SecretRef у поточному контексті config/auth-profile.
+ - Значення `apiKey` постачальника, керовані через SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань) замість збереження розгорнутих секретів.
+ - Значення заголовків постачальника, керовані через SecretRef, оновлюються з маркерів джерела (`secretref-env:ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань).
- Порожні або відсутні `apiKey`/`baseUrl` агента повертаються до `models.providers` у конфігурації.
- - Для однакових моделей `contextWindow`/`maxTokens` використовується вище значення між явною конфігурацією та неявними значеннями каталогу.
- - Для однакових моделей `contextTokens` зберігає явне обмеження runtime-контексту, якщо воно присутнє; використовуйте це, щоб обмежити фактичний контекст без зміни нативних метаданих моделі.
- - Використовуйте `models.mode: "replace"`, коли хочете, щоб конфігурація повністю перезаписувала `models.json`.
- - Збереження маркерів є джерельно-авторитетним: маркери записуються з активного знімка конфігурації джерела (до визначення), а не з визначених значень секретів runtime.
+ - Для відповідної моделі `contextWindow`/`maxTokens` використовується більше значення між явною конфігурацією та неявними значеннями каталогу.
+ - Для відповідної моделі `contextTokens` зберігає явне обмеження runtime-контексту, якщо воно задане; використовуйте це, щоб обмежити ефективний контекст без зміни нативних метаданих моделі.
+ - Використовуйте `models.mode: "replace"`, якщо хочете, щоб конфігурація повністю переписала `models.json`.
+ - Збереження маркерів є авторитетним щодо джерела: маркери записуються з активного знімка вихідної конфігурації (до розв’язання), а не з розв’язаних секретних значень runtime.
-### Подробиці полів провайдера
+### Докладно про поля постачальника
-- `models.mode`: поведінка каталогу провайдерів (`merge` або `replace`).
-- `models.providers`: мапа користувацьких провайдерів, ключована за id провайдера.
- - Безпечні редагування: використовуйте `openclaw config set models.providers. '' --strict-json --merge` або `openclaw config set models.providers..models '' --strict-json --merge` для додаткових оновлень. `config set` відмовляється від руйнівних замін, якщо не передано `--replace`.
+- `models.mode`: поведінка каталогу постачальників (`merge` або `replace`).
+- `models.providers`: мапа користувацьких постачальників з ключами у вигляді ID постачальника.
+ - Безпечні зміни: використовуйте `openclaw config set models.providers. '' --strict-json --merge` або `openclaw config set models.providers..models '' --strict-json --merge` для адитивних оновлень. `config set` відмовляється від руйнівних замін, якщо не передати `--replace`.
- `models.providers.*.api`: адаптер запитів (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` тощо).
-- `models.providers.*.apiKey`: облікові дані провайдера (краще використовувати SecretRef/підстановку через env).
+- `models.providers.*.apiKey`: облікові дані постачальника (надавайте перевагу SecretRef/підстановці env).
- `models.providers.*.auth`: стратегія автентифікації (`api-key`, `token`, `oauth`, `aws-sdk`).
-- `models.providers.*.injectNumCtxForOpenAICompat`: для Ollama + `openai-completions` вставляє `options.num_ctx` у запити (типово: `true`).
+- `models.providers.*.injectNumCtxForOpenAICompat`: для Ollama + `openai-completions` інжектує `options.num_ctx` у запити (типово: `true`).
- `models.providers.*.authHeader`: примусово передає облікові дані в заголовку `Authorization`, коли це потрібно.
-- `models.providers.*.baseUrl`: базовий URL API верхнього рівня.
-- `models.providers.*.headers`: додаткові статичні заголовки для маршрутизації proxy/tenant.
-- `models.providers.*.request`: перевизначення транспорту для HTTP-запитів провайдера моделей.
- - `request.headers`: додаткові заголовки (зливаються з типовими значеннями провайдера). Значення приймають SecretRef.
- - `request.auth`: перевизначення стратегії автентифікації. Режими: `"provider-default"` (використовувати вбудовану автентифікацію провайдера), `"authorization-bearer"` (із `token`), `"header"` (із `headerName`, `value`, необов’язковим `prefix`).
- - `request.proxy`: перевизначення HTTP-проксі. Режими: `"env-proxy"` (використовувати змінні середовища `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (із `url`). Обидва режими приймають необов’язковий підоб’єкт `tls`.
+- `models.providers.*.baseUrl`: базова URL-адреса upstream API.
+- `models.providers.*.headers`: додаткові статичні заголовки для маршрутизації через proxy/tenant.
+- `models.providers.*.request`: перевизначення транспорту для HTTP-запитів постачальника моделей.
+ - `request.headers`: додаткові заголовки (зливаються з типовими значеннями постачальника). Значення можуть бути SecretRef.
+ - `request.auth`: перевизначення стратегії автентифікації. Режими: `"provider-default"` (використовувати вбудовану автентифікацію постачальника), `"authorization-bearer"` (з `token`), `"header"` (з `headerName`, `value`, необов’язковим `prefix`).
+ - `request.proxy`: перевизначення HTTP-proxy. Режими: `"env-proxy"` (використовувати змінні середовища `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (з `url`). Обидва режими приймають необов’язковий вкладений об’єкт `tls`.
- `request.tls`: перевизначення TLS для прямих з’єднань. Поля: `ca`, `cert`, `key`, `passphrase` (усі приймають SecretRef), `serverName`, `insecureSkipVerify`.
- - `request.allowPrivateNetwork`: коли `true`, дозволяє HTTPS до `baseUrl`, якщо DNS визначається в приватні, CGNAT або подібні діапазони, через захист HTTP fetch провайдера (opt-in оператора для довірених саморозгорнутих endpoint OpenAI-compatible). WebSocket використовує той самий `request` для заголовків/TLS, але не цей SSRF-запобіжник fetch. Типово `false`.
-- `models.providers.*.models`: явні записи каталогу моделей провайдера.
+ - `request.allowPrivateNetwork`: коли `true`, дозволяє HTTPS до `baseUrl`, якщо DNS розв’язується в приватні, CGNAT або схожі діапазони, через захист HTTP fetch постачальника (opt-in оператора для довірених self-hosted OpenAI-сумісних endpoint). WebSocket використовує той самий `request` для заголовків/TLS, але не цей SSRF-захист fetch. Типове значення `false`.
+- `models.providers.*.models`: явні записи каталогу моделей постачальника.
- `models.providers.*.models.*.contextWindow`: метадані нативного контекстного вікна моделі.
-- `models.providers.*.models.*.contextTokens`: необов’язкове обмеження runtime-контексту. Використовуйте це, коли вам потрібен менший фактичний бюджет контексту, ніж нативний `contextWindow` моделі.
-- `models.providers.*.models.*.compat.supportsDeveloperRole`: необов’язкова підказка сумісності. Для `api: "openai-completions"` із непорожнім ненативним `baseUrl` (хост не `api.openai.com`) OpenClaw примусово встановлює це значення в `false` під час runtime. Порожній/пропущений `baseUrl` зберігає типову поведінку OpenAI.
-- `models.providers.*.models.*.compat.requiresStringContent`: необов’язкова підказка сумісності для OpenAI-compatible chat endpoint, які працюють лише з рядками. Коли `true`, OpenClaw згортає масиви `messages[].content`, що містять лише текст, у звичайні рядки перед надсиланням запиту.
-- `plugins.entries.amazon-bedrock.config.discovery`: корінь налаштувань автоматичного виявлення Bedrock.
+- `models.providers.*.models.*.contextTokens`: необов’язкове обмеження runtime-контексту. Використовуйте це, коли потрібен менший ефективний бюджет контексту, ніж нативне `contextWindow` моделі.
+- `models.providers.*.models.*.compat.supportsDeveloperRole`: необов’язкова підказка сумісності. Для `api: "openai-completions"` з непорожнім ненативним `baseUrl` (хост не `api.openai.com`) OpenClaw примусово встановлює це значення в `false` під час runtime. Порожній/пропущений `baseUrl` зберігає типову поведінку OpenAI.
+- `models.providers.*.models.*.compat.requiresStringContent`: необов’язкова підказка сумісності для OpenAI-сумісних chat-endpoint, які працюють лише з рядками. Коли `true`, OpenClaw перетворює масиви чисто текстового `messages[].content` у звичайні рядки перед надсиланням запиту.
+- `plugins.entries.amazon-bedrock.config.discovery`: корінь налаштувань автовиявлення Bedrock.
- `plugins.entries.amazon-bedrock.config.discovery.enabled`: увімкнути/вимкнути неявне виявлення.
- `plugins.entries.amazon-bedrock.config.discovery.region`: регіон AWS для виявлення.
-- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: необов’язковий фільтр provider-id для цільового виявлення.
+- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: необов’язковий фільтр ID постачальника для цільового виявлення.
- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: інтервал опитування для оновлення виявлення.
- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: резервне контекстне вікно для виявлених моделей.
- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: резервна максимальна кількість вихідних токенів для виявлених моделей.
-### Приклади провайдерів
+### Приклади постачальників
@@ -2690,11 +2691,11 @@ OpenClaw використовує вбудований каталог модел
}
```
-Установіть `ZAI_API_KEY`. `z.ai/*` і `z-ai/*` приймаються як alias. Скорочення: `openclaw onboard --auth-choice zai-api-key`.
+Установіть `ZAI_API_KEY`. `z.ai/*` і `z-ai/*` — допустимі alias. Скорочення: `openclaw onboard --auth-choice zai-api-key`.
- Загальний endpoint: `https://api.z.ai/api/paas/v4`
-- Endpoint для кодування (типово): `https://api.z.ai/api/coding/paas/v4`
-- Для загального endpoint визначте користувацького провайдера з перевизначенням base URL.
+- Coding endpoint (типовий): `https://api.z.ai/api/coding/paas/v4`
+- Для загального endpoint визначте користувацького постачальника з перевизначенням base URL.
@@ -2735,9 +2736,9 @@ OpenClaw використовує вбудований каталог модел
Для endpoint у Китаї: `baseUrl: "https://api.moonshot.cn/v1"` або `openclaw onboard --auth-choice moonshot-api-key-cn`.
-Нативні endpoint Moonshot повідомляють про сумісність використання потокової передачі на спільному
+Нативні endpoint Moonshot заявляють сумісність використання потокової передачі на спільному
транспорті `openai-completions`, і OpenClaw прив’язує це до можливостей endpoint,
-а не лише до вбудованого id провайдера.
+а не лише до вбудованого ID постачальника.
@@ -2755,11 +2756,11 @@ OpenClaw використовує вбудований каталог модел
}
```
-Сумісний з Anthropic, вбудований провайдер. Скорочення: `openclaw onboard --auth-choice kimi-code-api-key`.
+Сумісний з Anthropic, вбудований постачальник. Скорочення: `openclaw onboard --auth-choice kimi-code-api-key`.
-
+
```json5
{
@@ -2794,11 +2795,11 @@ OpenClaw використовує вбудований каталог модел
}
```
-Base URL має не містити `/v1` (клієнт Anthropic додає його). Скорочення: `openclaw onboard --auth-choice synthetic-api-key`.
+Base URL має не містити `/v1` (клієнт Anthropic додає його сам). Скорочення: `openclaw onboard --auth-choice synthetic-api-key`.
-
+
```json5
{
@@ -2838,7 +2839,7 @@ Base URL має не містити `/v1` (клієнт Anthropic додає й
`openclaw onboard --auth-choice minimax-global-api` або
`openclaw onboard --auth-choice minimax-cn-api`.
Каталог моделей типово містить лише M2.7.
-На Anthropic-compatible шляху потокової передачі OpenClaw типово вимикає thinking MiniMax,
+У Anthropic-сумісному шляху потокової передачі OpenClaw типово вимикає thinking MiniMax,
якщо ви явно не задасте `thinking` самостійно. `/fast on` або
`params.fastMode: true` переписує `MiniMax-M2.7` на
`MiniMax-M2.7-highspeed`.
@@ -2847,7 +2848,7 @@ Base URL має не містити `/v1` (клієнт Anthropic додає й
-Див. [Local Models](/uk/gateway/local-models). Коротко: запускайте велику локальну модель через LM Studio Responses API на серйозному обладнанні; для резервного варіанта залишайте злитими хостовані моделі.
+Див. [Local Models](/uk/gateway/local-models). Коротко: запускайте велику локальну модель через LM Studio Responses API на серйозному обладнанні; залишайте hosted-моделі злитими для резервного переходу.
@@ -2878,14 +2879,14 @@ Base URL має не містити `/v1` (клієнт Anthropic додає й
}
```
-- `allowBundled`: необов’язковий allowlist лише для bundled Skills (керовані/workspace Skills не зачіпаються).
+- `allowBundled`: необов’язковий список дозволених лише для bundled Skills (керовані/робочі Skills не зачіпаються).
- `load.extraDirs`: додаткові спільні корені Skills (найнижчий пріоритет).
-- `install.preferBrew`: коли true, віддає перевагу інсталяторам Homebrew, якщо `brew`
+- `install.preferBrew`: коли `true`, надавати перевагу інсталяторам Homebrew, якщо `brew`
доступний, перш ніж повертатися до інших типів інсталяторів.
-- `install.nodeManager`: пріоритет менеджера Node для специфікацій `metadata.openclaw.install`
+- `install.nodeManager`: пріоритет node-інсталятора для специфікацій `metadata.openclaw.install`
(`npm` | `pnpm` | `yarn` | `bun`).
- `entries..enabled: false` вимикає Skill, навіть якщо він bundled/встановлений.
-- `entries..apiKey`: зручне поле для Skills, які оголошують основну змінну середовища (відкритий рядок або об’єкт SecretRef).
+- `entries..apiKey`: зручне поле для Skills, які оголошують основну env-змінну (звичайний рядок або об’єкт SecretRef).
---
@@ -2913,41 +2914,41 @@ Base URL має не містити `/v1` (клієнт Anthropic додає й
}
```
-- Завантажуються з `~/.openclaw/extensions`, `/.openclaw/extensions`, а також `plugins.load.paths`.
-- Виявлення приймає нативні Plugins OpenClaw, а також сумісні bundles Codex і Claude, включно з bundles Claude без manifest із типовим layout.
-- **Зміни конфігурації потребують перезапуску gateway.**
-- `allow`: необов’язковий allowlist (завантажуються лише Plugins зі списку). `deny` має пріоритет.
-- `plugins.entries..apiKey`: зручне поле API key на рівні Plugin (коли це підтримує Plugin).
-- `plugins.entries..env`: мапа змінних середовища в області Plugin.
-- `plugins.entries..hooks.allowPromptInjection`: коли `false`, core блокує `before_prompt_build` і ігнорує поля legacy `before_agent_start`, що змінюють prompt, зберігаючи legacy `modelOverride` і `providerOverride`. Застосовується до нативних hooks Plugin і підтримуваних каталогів hooks, наданих bundle.
-- `plugins.entries..subagent.allowModelOverride`: явно довіряти цьому Plugin запитувати перевизначення `provider` і `model` для окремих запусків у фонових субагентах.
-- `plugins.entries..subagent.allowedModels`: необов’язковий allowlist канонічних цілей `provider/model` для довірених перевизначень субагентів. Використовуйте `"*"`, лише якщо ви навмисно хочете дозволити будь-яку модель.
-- `plugins.entries..config`: об’єкт конфігурації, визначений Plugin (валідується схемою нативного Plugin OpenClaw, якщо вона доступна).
-- `plugins.entries.firecrawl.config.webFetch`: налаштування провайдера web-fetch Firecrawl.
- - `apiKey`: API key Firecrawl (приймає SecretRef). Використовує резервне значення `plugins.entries.firecrawl.config.webSearch.apiKey`, legacy `tools.web.fetch.firecrawl.apiKey` або змінну середовища `FIRECRAWL_API_KEY`.
- - `baseUrl`: базовий URL API Firecrawl (типово: `https://api.firecrawl.dev`).
+- Завантажуються з `~/.openclaw/extensions`, `/.openclaw/extensions`, а також із `plugins.load.paths`.
+- Виявлення приймає нативні Plugins OpenClaw, а також сумісні bundlи Codex і Claude, включно з безманіфестними Claude-bundlами стандартного layout.
+- **Зміни конфігурації вимагають перезапуску gateway.**
+- `allow`: необов’язковий список дозволених (завантажуються лише перелічені Plugins). `deny` має пріоритет.
+- `plugins.entries..apiKey`: зручне поле API key на рівні Plugin (коли Plugin це підтримує).
+- `plugins.entries..env`: мапа env-змінних у межах Plugin.
+- `plugins.entries..hooks.allowPromptInjection`: коли `false`, core блокує `before_prompt_build` та ігнорує поля legacy `before_agent_start`, що змінюють prompt, зберігаючи при цьому legacy `modelOverride` і `providerOverride`. Застосовується до нативних hook Plugin і підтримуваних каталогів hook, що надаються bundle.
+- `plugins.entries..subagent.allowModelOverride`: явно довіряти цьому Plugin запитувати перевизначення `provider` і `model` для окремих запусків фонових субагентів.
+- `plugins.entries..subagent.allowedModels`: необов’язковий список дозволених канонічних цілей `provider/model` для довірених перевизначень субагента. Використовуйте `"*"` лише тоді, коли ви навмисно хочете дозволити будь-яку модель.
+- `plugins.entries..config`: об’єкт конфігурації, визначений Plugin (валідується нативною схемою Plugin OpenClaw, якщо вона доступна).
+- `plugins.entries.firecrawl.config.webFetch`: налаштування постачальника web-fetch Firecrawl.
+ - `apiKey`: API key Firecrawl (приймає SecretRef). Використовує резервне значення з `plugins.entries.firecrawl.config.webSearch.apiKey`, legacy `tools.web.fetch.firecrawl.apiKey` або env-змінної `FIRECRAWL_API_KEY`.
+ - `baseUrl`: базова URL-адреса API Firecrawl (типово: `https://api.firecrawl.dev`).
- `onlyMainContent`: витягувати лише основний вміст сторінок (типово: `true`).
- `maxAgeMs`: максимальний вік кешу в мілісекундах (типово: `172800000` / 2 дні).
- - `timeoutSeconds`: тайм-аут запиту scrape у секундах (типово: `60`).
-- `plugins.entries.xai.config.xSearch`: налаштування X Search xAI (вебпошук Grok).
- - `enabled`: увімкнути провайдера X Search.
- - `model`: модель Grok для пошуку (наприклад, `"grok-4-1-fast"`).
-- `plugins.entries.memory-core.config.dreaming`: налаштування memory dreaming. Фази й пороги див. у [Dreaming](/uk/concepts/dreaming).
+ - `timeoutSeconds`: тайм-аут scrape-запиту в секундах (типово: `60`).
+- `plugins.entries.xai.config.xSearch`: налаштування X Search xAI (веб-пошук Grok).
+ - `enabled`: увімкнути постачальника X Search.
+ - `model`: модель Grok для пошуку (наприклад `"grok-4-1-fast"`).
+- `plugins.entries.memory-core.config.dreaming`: налаштування dreaming пам’яті. Фази та пороги див. у [Dreaming](/uk/concepts/dreaming).
- `enabled`: головний перемикач dreaming (типово `false`).
- - `frequency`: Cron-каденс для кожного повного проходу dreaming (типово `"0 3 * * *"`).
- - політика фаз і пороги — це деталі реалізації (не користувацькі ключі конфігурації).
-- Повна конфігурація пам’яті знаходиться в [Memory configuration reference](/uk/reference/memory-config):
+ - `frequency`: частота Cron для кожного повного циклу dreaming (типово `"0 3 * * *"`).
+ - політика фаз і пороги є деталями реалізації (не ключами конфігурації для користувача).
+- Повна конфігурація пам’яті міститься в [Memory configuration reference](/uk/reference/memory-config):
- `agents.defaults.memorySearch.*`
- `memory.backend`
- `memory.citations`
- `memory.qmd.*`
- `plugins.entries.memory-core.config.dreaming`
-- Увімкнені Plugins bundle Claude також можуть додавати типові значення вбудованого Pi із `settings.json`; OpenClaw застосовує їх як санітизовані налаштування агента, а не як сирі patches конфігурації OpenClaw.
-- `plugins.slots.memory`: вибір id активного Plugin пам’яті або `"none"` для вимкнення Plugins пам’яті.
-- `plugins.slots.contextEngine`: вибір id активного Plugin контекстного рушія; типово `"legacy"`, якщо ви не встановили й не вибрали інший рушій.
-- `plugins.installs`: метадані встановлення під керуванням CLI, які використовуються `openclaw plugins update`.
+- Увімкнені Claude bundle Plugins також можуть додавати типові значення вбудованого Pi із `settings.json`; OpenClaw застосовує їх як очищені налаштування агента, а не як сирі патчі конфігурації OpenClaw.
+- `plugins.slots.memory`: вибрати ID активного Plugin пам’яті або `"none"`, щоб вимкнути Plugins пам’яті.
+- `plugins.slots.contextEngine`: вибрати ID активного Plugin рушія контексту; типово `"legacy"`, якщо ви не встановили й не вибрали інший рушій.
+- `plugins.installs`: метадані встановлення, керовані CLI, які використовує `openclaw plugins update`.
- Містить `source`, `spec`, `sourcePath`, `installPath`, `version`, `resolvedName`, `resolvedVersion`, `resolvedSpec`, `integrity`, `shasum`, `resolvedAt`, `installedAt`.
- - Розглядайте `plugins.installs.*` як керований стан; віддавайте перевагу командам CLI замість ручного редагування.
+ - Розглядайте `plugins.installs.*` як керований стан; надавайте перевагу командам CLI замість ручного редагування.
Див. [Plugins](/uk/tools/plugin).
@@ -2990,29 +2991,29 @@ Base URL має не містити `/v1` (клієнт Anthropic додає й
```
- `evaluateEnabled: false` вимикає `act:evaluate` і `wait --fn`.
-- `ssrfPolicy.dangerouslyAllowPrivateNetwork` вимкнено, якщо не задано, тому browser navigation типово залишається в строгому режимі.
-- Установлюйте `ssrfPolicy.dangerouslyAllowPrivateNetwork: true` лише тоді, коли ви навмисно довіряєте browser navigation у приватній мережі.
-- У строгому режимі endpoint віддалених профілів CDP (`profiles.*.cdpUrl`) підлягають тому самому блокуванню приватної мережі під час перевірок доступності/виявлення.
-- `ssrfPolicy.allowPrivateNetwork` і далі підтримується як legacy alias.
-- У строгому режимі використовуйте `ssrfPolicy.hostnameAllowlist` і `ssrfPolicy.allowedHostnames` для явних винятків.
-- Віддалені профілі працюють лише в режимі attach-only (start/stop/reset вимкнено).
+- `ssrfPolicy.dangerouslyAllowPrivateNetwork` вимкнено, якщо значення не задано, тому навігація browser типово залишається суворою.
+- Установлюйте `ssrfPolicy.dangerouslyAllowPrivateNetwork: true` лише тоді, коли ви свідомо довіряєте навігації browser у приватній мережі.
+- У суворому режимі endpoint віддалених CDP-профілів (`profiles.*.cdpUrl`) підлягають тому самому блокуванню приватної мережі під час перевірок доступності/виявлення.
+- `ssrfPolicy.allowPrivateNetwork` і далі підтримується як застарілий alias.
+- У суворому режимі використовуйте `ssrfPolicy.hostnameAllowlist` і `ssrfPolicy.allowedHostnames` для явних винятків.
+- Віддалені профілі працюють лише в режимі attach-only (start/stop/reset вимкнені).
- `profiles.*.cdpUrl` приймає `http://`, `https://`, `ws://` і `wss://`.
- Використовуйте HTTP(S), коли хочете, щоб OpenClaw визначав `/json/version`; використовуйте WS(S),
- коли ваш провайдер надає прямий DevTools WebSocket URL.
-- Профілі `existing-session` використовують Chrome MCP замість CDP і можуть приєднуватися
+ Використовуйте HTTP(S), якщо хочете, щоб OpenClaw виявив `/json/version`; використовуйте WS(S),
+ коли ваш постачальник надає прямий DevTools WebSocket URL.
+- Профілі `existing-session` використовують Chrome MCP замість CDP і можуть під’єднуватися
на вибраному хості або через підключений browser Node.
-- Профілі `existing-session` можуть задавати `userDataDir`, щоб націлитися на конкретний
- профіль браузера на основі Chromium, наприклад Brave або Edge.
+- Профілі `existing-session` можуть задавати `userDataDir`, щоб націлюватися на конкретний
+ профіль браузера на базі Chromium, наприклад Brave або Edge.
- Профілі `existing-session` зберігають поточні обмеження маршруту Chrome MCP:
- дії на основі snapshot/ref замість націлювання за CSS-selector, hooks завантаження
- одного файла, відсутність перевизначення тайм-аутів діалогів, відсутність `wait --load networkidle`,
- а також відсутність `responsebody`, експорту PDF, перехоплення завантажень або пакетних дій.
-- Локальні керовані профілі `openclaw` автоматично призначають `cdpPort` і `cdpUrl`; явно
+ дії на основі snapshot/ref замість націлювання на CSS-селектори, hooks
+ завантаження по одному файлу, без перевизначення тайм-аутів діалогів, без `wait --load networkidle`, а також без
+ `responsebody`, експорту PDF, перехоплення завантажень або пакетних дій.
+- Локально керовані профілі `openclaw` автоматично призначають `cdpPort` і `cdpUrl`; явно
задавайте `cdpUrl` лише для віддаленого CDP.
-- Порядок автоматичного виявлення: типовий браузер, якщо він на основі Chromium → Chrome → Brave → Edge → Chromium → Chrome Canary.
-- Служба керування: лише loopback (порт визначається з `gateway.port`, типово `18791`).
-- `extraArgs` додає додаткові прапорці запуску до локального запуску Chromium (наприклад
- `--disable-gpu`, розміри вікна або прапорці налагодження).
+- Порядок автовиявлення: типовий браузер, якщо він на базі Chromium → Chrome → Brave → Edge → Chromium → Chrome Canary.
+- Control service: лише local loopback (порт визначається з `gateway.port`, типово `18791`).
+- `extraArgs` додає додаткові прапорці запуску до локального старту Chromium (наприклад
+ `--disable-gpu`, розмір вікна або прапорці налагодження).
---
@@ -3030,8 +3031,8 @@ Base URL має не містити `/v1` (клієнт Anthropic додає й
}
```
-- `seamColor`: колір акценту для chrome нативного UI застосунку (відтінок бульбашки Talk Mode тощо).
-- `assistant`: перевизначення ідентичності UI керування. Якщо не задано, використовується identity активного агента.
+- `seamColor`: колір акценту для chrome нативного UI застосунку (тон бульбашки в режимі Talk тощо).
+- `assistant`: перевизначення identity для Control UI. Якщо не задано, використовується identity активного агента.
---
@@ -3098,64 +3099,64 @@ Base URL має не містити `/v1` (клієнт Anthropic додає й
}
```
-
+
-- `mode`: `local` (запустити gateway) або `remote` (підключитися до віддаленого gateway). Gateway відмовляється запускатися, якщо значення не `local`.
-- `port`: єдиний мультиплексований порт для WS + HTTP. Пріоритет: `--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > `18789`.
+- `mode`: `local` (запускати gateway) або `remote` (підключатися до віддаленого gateway). Gateway відмовляється запускатися, якщо значення не `local`.
+- `port`: один мультиплексований порт для WS + HTTP. Пріоритет: `--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > `18789`.
- `bind`: `auto`, `loopback` (типово), `lan` (`0.0.0.0`), `tailnet` (лише IP Tailscale) або `custom`.
-- **Застарілі alias для bind**: використовуйте значення режиму bind у `gateway.bind` (`auto`, `loopback`, `lan`, `tailnet`, `custom`), а не alias хостів (`0.0.0.0`, `127.0.0.1`, `localhost`, `::`, `::1`).
-- **Примітка щодо Docker**: типовий bind `loopback` слухає `127.0.0.1` всередині контейнера. За bridge-мережі Docker (`-p 18789:18789`) трафік надходить через `eth0`, тому gateway недоступний. Використовуйте `--network host` або встановіть `bind: "lan"` (або `bind: "custom"` із `customBindHost: "0.0.0.0"`), щоб слухати на всіх інтерфейсах.
-- **Автентифікація**: типово обов’язкова. Bind, відмінні від loopback, вимагають автентифікації gateway. На практиці це означає спільний token/password або reverse proxy з урахуванням ідентичності з `gateway.auth.mode: "trusted-proxy"`. Wizard онбордингу типово генерує token.
-- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password` (включно з SecretRef), явно встановіть `gateway.auth.mode` у `token` або `password`. Під час запуску й у потоках встановлення/відновлення сервісу виникає помилка, якщо налаштовано обидва значення, а mode не задано.
-- `gateway.auth.mode: "none"`: явний режим без автентифікації. Використовуйте лише для довірених локальних конфігурацій local loopback; цей варіант навмисно не пропонується в запитах онбордингу.
-- `gateway.auth.mode: "trusted-proxy"`: делегувати автентифікацію reverse proxy з урахуванням ідентичності та довіряти заголовкам ідентичності від `gateway.trustedProxies` (див. [Trusted Proxy Auth](/uk/gateway/trusted-proxy-auth)). Цей режим очікує джерело proxy **не loopback**; same-host reverse proxy через loopback не задовольняють автентифікацію trusted-proxy.
-- `gateway.auth.allowTailscale`: коли `true`, заголовки ідентичності Tailscale Serve можуть задовольняти автентифікацію UI керування/WebSocket (перевіряється через `tailscale whois`). Endpoint HTTP API **не** використовують цю автентифікацію заголовками Tailscale; натомість вони дотримуються звичайного режиму HTTP-автентифікації gateway. Цей безтокенний потік передбачає, що хост gateway є довіреним. Типово має значення `true`, коли `tailscale.mode = "serve"`.
-- `gateway.auth.rateLimit`: необов’язковий обмежувач невдалих спроб автентифікації. Застосовується для кожного IP клієнта й для кожної області автентифікації окремо (спільний секрет і device-token відстежуються незалежно). Заблоковані спроби повертають `429` + `Retry-After`.
- - На асинхронному шляху UI керування Tailscale Serve невдалі спроби для того самого `{scope, clientIp}` серіалізуються перед записом збою. Тому одночасні хибні спроби від того самого клієнта можуть спрацювати на обмежувач уже на другому запиті, замість того щоб обидві одночасно пройшли як звичайні невідповідності.
- - `gateway.auth.rateLimit.exemptLoopback` типово має значення `true`; встановіть `false`, якщо ви навмисно хочете обмежувати швидкість і для localhost-трафіку (для тестових конфігурацій або строгих розгортань proxy).
-- Спроби WS-автентифікації з browser-origin завжди обмежуються без винятку для loopback (додатковий захист від брутфорсу localhost через браузер).
-- На loopback такі блокування за browser-origin ізольовані для кожного нормалізованого
- значення `Origin`, тому повторні збої з одного localhost-origin не блокують
- автоматично інший origin.
-- `tailscale.mode`: `serve` (лише tailnet, bind на loopback) або `funnel` (публічно, потребує автентифікації).
-- `controlUi.allowedOrigins`: явний allowlist browser-origin для підключень Gateway WebSocket. Потрібний, коли очікуються browser-клієнти з origin, відмінних від loopback.
-- `controlUi.dangerouslyAllowHostHeaderOriginFallback`: небезпечний режим, що вмикає fallback origin за заголовком Host для розгортань, які навмисно покладаються на політику origin через заголовок Host.
+- **Застарілі alias для bind**: використовуйте значення режиму bind у `gateway.bind` (`auto`, `loopback`, `lan`, `tailnet`, `custom`), а не alias хоста (`0.0.0.0`, `127.0.0.1`, `localhost`, `::`, `::1`).
+- **Примітка для Docker**: типовий bind `loopback` слухає `127.0.0.1` усередині контейнера. За bridge-мережі Docker (`-p 18789:18789`) трафік надходить на `eth0`, тому gateway недоступний. Використовуйте `--network host` або встановіть `bind: "lan"` (або `bind: "custom"` із `customBindHost: "0.0.0.0"`), щоб слухати на всіх інтерфейсах.
+- **Auth**: типово обов’язкова. Для bind, відмінних від loopback, потрібна автентифікація gateway. На практиці це означає спільний token/password або reverse proxy з підтримкою identity із `gateway.auth.mode: "trusted-proxy"`. Wizard onboarding типово генерує token.
+- Якщо одночасно налаштовано і `gateway.auth.token`, і `gateway.auth.password` (включно з SecretRef), явно встановіть `gateway.auth.mode` у `token` або `password`. Запуск, встановлення сервісу й потоки repair завершуються помилкою, якщо налаштовано обидва значення, а mode не задано.
+- `gateway.auth.mode: "none"`: явний режим без автентифікації. Використовуйте лише для довірених локальних конфігурацій local loopback; цей варіант навмисно не пропонується в підказках onboarding.
+- `gateway.auth.mode: "trusted-proxy"`: делегує автентифікацію reverse proxy з підтримкою identity та довіряє заголовкам identity від `gateway.trustedProxies` (див. [Trusted Proxy Auth](/uk/gateway/trusted-proxy-auth)). Цей режим очікує **не-loopback** джерело proxy; reverse proxy на тому самому хості через loopback не задовольняють trusted-proxy auth.
+- `gateway.auth.allowTailscale`: коли `true`, заголовки identity Tailscale Serve можуть задовольняти автентифікацію Control UI/WebSocket (перевіряється через `tailscale whois`). HTTP API endpoint **не** використовують цю автентифікацію заголовками Tailscale; вони дотримуються звичайного HTTP-режиму auth gateway. Цей безтокеновий потік передбачає, що хост gateway є довіреним. Типово `true`, коли `tailscale.mode = "serve"`.
+- `gateway.auth.rateLimit`: необов’язковий обмежувач невдалих спроб автентифікації. Застосовується для кожного IP клієнта і для кожної області auth (shared-secret і device-token відстежуються незалежно). Заблоковані спроби повертають `429` + `Retry-After`.
+ - В асинхронному шляху Tailscale Serve Control UI невдалі спроби для одного й того ж `{scope, clientIp}` серіалізуються перед записом про невдачу. Тому одночасні хибні спроби від того самого клієнта можуть активувати ліміт на другому запиті, замість того щоб обидва просто одночасно пройти як звичайні невідповідності.
+ - `gateway.auth.rateLimit.exemptLoopback` типово має значення `true`; установіть `false`, коли свідомо хочете також обмежувати localhost-трафік (для тестових конфігурацій або суворих розгортань proxy).
+- Спроби WS-автентифікації з browser-origin завжди обмежуються без винятку для loopback (додатковий захист від browser-based brute force на localhost).
+- На loopback ці блокування для browser-origin ізолюються за нормалізованим значенням `Origin`,
+ тому повторні невдачі з одного localhost origin не блокують автоматично
+ інший origin.
+- `tailscale.mode`: `serve` (лише tailnet, bind loopback) або `funnel` (публічно, потребує auth).
+- `controlUi.allowedOrigins`: явний список дозволених browser-origin для підключень Gateway WebSocket. Обов’язковий, коли очікуються browser-клієнти з origin, відмінних від loopback.
+- `controlUi.dangerouslyAllowHostHeaderOriginFallback`: небезпечний режим, який вмикає резервне визначення origin через заголовок Host для розгортань, що свідомо покладаються на політику origin через заголовок Host.
- `remote.transport`: `ssh` (типово) або `direct` (ws/wss). Для `direct` значення `remote.url` має бути `ws://` або `wss://`.
-- `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1`: клієнтське перевизначення break-glass, яке дозволяє відкритий `ws://` до довірених IP приватної мережі; типове значення для відкритого протоколу все ще обмежене лише loopback.
-- `gateway.remote.token` / `.password` — це поля облікових даних віддаленого клієнта. Вони самі по собі не налаштовують автентифікацію gateway.
-- `gateway.push.apns.relay.baseUrl`: базовий HTTPS URL для зовнішнього APNs relay, який використовують офіційні/TestFlight збірки iOS після публікації relay-backed реєстрацій у gateway. Цей URL має збігатися з URL relay, зібраним у збірці iOS.
+- `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1`: клієнтське перевизначення break-glass, яке дозволяє відкритий `ws://` до довірених IP приватної мережі; типовим лишається підтримка відкритого тексту лише для loopback.
+- `gateway.remote.token` / `.password` — це поля облікових даних віддаленого клієнта. Вони самі по собі не налаштовують auth gateway.
+- `gateway.push.apns.relay.baseUrl`: базова HTTPS URL-адреса зовнішнього relay APNs, який використовують офіційні/TestFlight iOS-збірки після публікації relay-backed реєстрацій до gateway. Ця URL-адреса має збігатися з URL relay, зібраною в iOS-збірці.
- `gateway.push.apns.relay.timeoutMs`: тайм-аут надсилання gateway-to-relay у мілісекундах. Типово `10000`.
-- Реєстрації, підтримувані relay, делегуються конкретній ідентичності gateway. Підключений застосунок iOS викликає `gateway.identity.get`, включає цю ідентичність у реєстрацію relay і передає gateway дозвіл надсилання в межах реєстрації. Інший gateway не може повторно використати таку збережену реєстрацію.
-- `OPENCLAW_APNS_RELAY_BASE_URL` / `OPENCLAW_APNS_RELAY_TIMEOUT_MS`: тимчасові перевизначення через env для наведеної вище конфігурації relay.
-- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true`: лише для розробки, аварійний виняток для loopback HTTP relay URL. У production relay URL мають залишатися на HTTPS.
-- `gateway.channelHealthCheckMinutes`: інтервал health-monitor каналу в хвилинах. Установіть `0`, щоб глобально вимкнути перезапуски health-monitor. Типово: `5`.
-- `gateway.channelStaleEventThresholdMinutes`: поріг застарілого сокета в хвилинах. Це значення має бути більшим або рівним `gateway.channelHealthCheckMinutes`. Типово: `30`.
-- `gateway.channelMaxRestartsPerHour`: максимальна кількість перезапусків health-monitor на канал/обліковий запис протягом ковзної години. Типово: `10`.
-- `channels..healthMonitor.enabled`: відмова для окремого каналу від перезапусків health-monitor за збереження глобального монітора увімкненим.
-- `channels..accounts..healthMonitor.enabled`: перевизначення для окремого облікового запису в багатооблікових каналах. Якщо задано, воно має пріоритет над перевизначенням на рівні каналу.
-- Локальні шляхи виклику gateway можуть використовувати `gateway.remote.*` як резервне значення лише тоді, коли `gateway.auth.*` не задано.
-- Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і вони не можуть бути визначені, визначення завершується в fail-closed (без маскування резервним remote).
-- `trustedProxies`: IP reverse proxy, які завершують TLS або вставляють заголовки forwarded-client. Додавайте лише proxy, які ви контролюєте. Записи loopback усе ще припустимі для same-host proxy/local-detection конфігурацій (наприклад, Tailscale Serve або локальний reverse proxy), але вони **не** роблять loopback-запити придатними для `gateway.auth.mode: "trusted-proxy"`.
-- `allowRealIpFallback`: коли `true`, gateway приймає `X-Real-IP`, якщо `X-Forwarded-For` відсутній. Типово `false` для fail-closed-поведінки.
-- `gateway.tools.deny`: додаткові назви інструментів, заблоковані для HTTP `POST /tools/invoke` (розширює типовий список заборон).
-- `gateway.tools.allow`: прибрати назви інструментів із типового HTTP-списку заборон.
+- Реєстрації через relay делегуються конкретній identity gateway. Пов’язаний iOS-застосунок отримує `gateway.identity.get`, включає цю identity до relay-реєстрації та передає до gateway право надсилання, прив’язане до реєстрації. Інший gateway не може повторно використати цю збережену реєстрацію.
+- `OPENCLAW_APNS_RELAY_BASE_URL` / `OPENCLAW_APNS_RELAY_TIMEOUT_MS`: тимчасові env-перевизначення для наведеної вище конфігурації relay.
+- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true`: лише для розробки, аварійний виняток для loopback HTTP relay URL. Production URL relay мають залишатися на HTTPS.
+- `gateway.channelHealthCheckMinutes`: інтервал моніторингу здоров’я каналу в хвилинах. Установіть `0`, щоб глобально вимкнути перезапуски health-monitor. Типове значення: `5`.
+- `gateway.channelStaleEventThresholdMinutes`: поріг застарілого socket у хвилинах. Тримайте це значення більшим або рівним `gateway.channelHealthCheckMinutes`. Типове значення: `30`.
+- `gateway.channelMaxRestartsPerHour`: максимальна кількість перезапусків health-monitor на канал/обліковий запис за ковзну годину. Типове значення: `10`.
+- `channels..healthMonitor.enabled`: opt-out на рівні каналу для перезапусків health-monitor зі збереженням глобального монітора.
+- `channels..accounts..healthMonitor.enabled`: перевизначення для окремого облікового запису в багатооблікових каналах. Якщо задано, має пріоритет над перевизначенням на рівні каналу.
+- Локальні шляхи виклику gateway можуть використовувати `gateway.remote.*` як резервний варіант лише тоді, коли `gateway.auth.*` не задано.
+- Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і не розв’язано, розв’язання завершується в fail-closed режимі (без маскування резервним переходом до remote).
+- `trustedProxies`: IP reverse proxy, які завершують TLS або інжектують переслані клієнтські заголовки. Додавайте лише proxy, які ви контролюєте. Записи loopback усе ще дійсні для конфігурацій same-host proxy/local-detection (наприклад Tailscale Serve або локальний reverse proxy), але вони **не** роблять loopback-запити придатними для `gateway.auth.mode: "trusted-proxy"`.
+- `allowRealIpFallback`: коли `true`, gateway приймає `X-Real-IP`, якщо відсутній `X-Forwarded-For`. Типово `false` для fail-closed поведінки.
+- `gateway.tools.deny`: додаткові назви інструментів, заблоковані для HTTP `POST /tools/invoke` (розширює типовий список заборони).
+- `gateway.tools.allow`: прибирає назви інструментів із типового HTTP-списку заборони.
-### Endpoint OpenAI-compatible
+### OpenAI-сумісні endpoint
- Chat Completions: типово вимкнено. Увімкніть через `gateway.http.endpoints.chatCompletions.enabled: true`.
- Responses API: `gateway.http.endpoints.responses.enabled`.
-- Посилення захисту URL-входу для Responses:
+- Захист URL-input для Responses:
- `gateway.http.endpoints.responses.maxUrlParts`
- `gateway.http.endpoints.responses.files.urlAllowlist`
- `gateway.http.endpoints.responses.images.urlAllowlist`
- Порожні allowlist трактуються як незадані; використовуйте `gateway.http.endpoints.responses.files.allowUrl=false`
- і/або `gateway.http.endpoints.responses.images.allowUrl=false`, щоб вимкнути отримання через URL.
-- Необов’язковий заголовок посилення захисту відповіді:
- - `gateway.http.securityHeaders.strictTransportSecurity` (встановлюйте лише для HTTPS origin, які ви контролюєте; див. [Trusted Proxy Auth](/uk/gateway/trusted-proxy-auth#tls-termination-and-hsts))
+ Порожні allowlist розглядаються як невстановлені; використовуйте `gateway.http.endpoints.responses.files.allowUrl=false`
+ і/або `gateway.http.endpoints.responses.images.allowUrl=false`, щоб вимкнути отримання URL.
+- Необов’язковий заголовок захисту відповіді:
+ - `gateway.http.securityHeaders.strictTransportSecurity` (встановлюйте лише для HTTPS-origin, які ви контролюєте; див. [Trusted Proxy Auth](/uk/gateway/trusted-proxy-auth#tls-termination-and-hsts))
-### Ізоляція кількох інстансів
+### Ізоляція між кількома інстансами
Запускайте кілька gateway на одному хості з унікальними портами та каталогами стану:
@@ -3186,10 +3187,10 @@ openclaw gateway --port 19001
```
- `enabled`: вмикає завершення TLS на слухачі gateway (HTTPS/WSS) (типово: `false`).
-- `autoGenerate`: автоматично генерує локальну самопідписану пару cert/key, якщо явні файли не налаштовано; лише для local/dev.
-- `certPath`: шлях файлової системи до файла TLS-сертифіката.
-- `keyPath`: шлях файлової системи до приватного ключа TLS; обмежуйте дозволи доступу.
-- `caPath`: необов’язковий шлях до CA bundle для перевірки клієнта або користувацьких ланцюжків довіри.
+- `autoGenerate`: автоматично генерує локальну самопідписану пару cert/key, коли явні файли не налаштовано; лише для локального/dev використання.
+- `certPath`: шлях файлової системи до файлу TLS-сертифіката.
+- `keyPath`: шлях файлової системи до файлу приватного TLS-ключа; обмежуйте права доступу.
+- `caPath`: необов’язковий шлях до bundle CA для перевірки клієнта або користувацьких ланцюгів довіри.
### `gateway.reload`
@@ -3206,10 +3207,10 @@ openclaw gateway --port 19001
```
- `mode`: керує тим, як зміни конфігурації застосовуються під час runtime.
- - `"off"`: ігнорувати зміни в реальному часі; зміни потребують явного перезапуску.
- - `"restart"`: завжди перезапускати процес gateway при зміні конфігурації.
+ - `"off"`: ігнорувати зміни в реальному часі; зміни вимагають явного перезапуску.
+ - `"restart"`: завжди перезапускати процес gateway після зміни конфігурації.
- `"hot"`: застосовувати зміни в процесі без перезапуску.
- - `"hybrid"` (типово): спочатку пробувати hot reload; за потреби повертатися до перезапуску.
+ - `"hybrid"` (типово): спочатку спробувати hot reload; за потреби перейти до перезапуску.
- `debounceMs`: вікно debounce у мс перед застосуванням змін конфігурації (невід’ємне ціле число).
- `deferralTimeoutMs`: максимальний час у мс очікування завершення операцій у польоті перед примусовим перезапуском (типово: `300000` = 5 хвилин).
@@ -3248,47 +3249,47 @@ openclaw gateway --port 19001
}
```
-Автентифікація: `Authorization: Bearer ` або `x-openclaw-token: `.
-Токени hooks у query-string відхиляються.
+Auth: `Authorization: Bearer ` або `x-openclaw-token: `.
+Hook-токени в query string відхиляються.
Примітки щодо валідації та безпеки:
-- `hooks.enabled=true` вимагає непорожній `hooks.token`.
+- `hooks.enabled=true` вимагає непорожнього `hooks.token`.
- `hooks.token` має **відрізнятися** від `gateway.auth.token`; повторне використання токена Gateway відхиляється.
- `hooks.path` не може бути `/`; використовуйте окремий підшлях, наприклад `/hooks`.
-- Якщо `hooks.allowRequestSessionKey=true`, обмежте `hooks.allowedSessionKeyPrefixes` (наприклад `["hook:"]`).
+- Якщо `hooks.allowRequestSessionKey=true`, обмежуйте `hooks.allowedSessionKeyPrefixes` (наприклад `["hook:"]`).
- Якщо mapping або preset використовує шаблонізований `sessionKey`, установіть `hooks.allowedSessionKeyPrefixes` і `hooks.allowRequestSessionKey=true`. Статичні ключі mapping цього opt-in не потребують.
**Endpoint:**
- `POST /hooks/wake` → `{ text, mode?: "now"|"next-heartbeat" }`
- `POST /hooks/agent` → `{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }`
- - `sessionKey` із payload запиту приймається лише тоді, коли `hooks.allowRequestSessionKey=true` (типово: `false`).
-- `POST /hooks/` → визначається через `hooks.mappings`
- - Значення `sessionKey` mapping, сформовані шаблоном, вважаються зовнішньо переданими й також вимагають `hooks.allowRequestSessionKey=true`.
+ - `sessionKey` із корисного навантаження запиту приймається лише тоді, коли `hooks.allowRequestSessionKey=true` (типово: `false`).
+- `POST /hooks/` → розв’язується через `hooks.mappings`
+ - Значення `sessionKey` у mapping, згенеровані шаблоном, розглядаються як зовнішньо надані й також вимагають `hooks.allowRequestSessionKey=true`.
-
+
- `match.path` відповідає підшляху після `/hooks` (наприклад `/hooks/gmail` → `gmail`).
-- `match.source` відповідає полю payload для загальних шляхів.
-- Шаблони на кшталт `{{messages[0].subject}}` читають дані з payload.
-- `transform` може вказувати на модуль JS/TS, який повертає дію hook.
- - `transform.module` має бути відносним шляхом і залишатися в межах `hooks.transformsDir` (абсолютні шляхи й traversal відхиляються).
+- `match.source` відповідає полю корисного навантаження для загальних шляхів.
+- Шаблони на кшталт `{{messages[0].subject}}` читають дані з корисного навантаження.
+- `transform` може вказувати на JS/TS-модуль, який повертає дію hook.
+ - `transform.module` має бути відносним шляхом і залишатися в межах `hooks.transformsDir` (абсолютні шляхи та вихід за межі каталогу відхиляються).
- `agentId` маршрутизує до конкретного агента; невідомі ID повертаються до типового агента.
-- `allowedAgentIds`: обмежує явну маршрутизацію (`*` або відсутнє значення = дозволити все, `[]` = заборонити все).
-- `defaultSessionKey`: необов’язковий фіксований ключ сеансу для запусків hook-агента без явного `sessionKey`.
-- `allowRequestSessionKey`: дозволити викликам `/hooks/agent` і ключам сеансу mapping, керованим шаблонами, задавати `sessionKey` (типово: `false`).
-- `allowedSessionKeyPrefixes`: необов’язковий allowlist префіксів для явних значень `sessionKey` (запит + mapping), наприклад `["hook:"]`. Стає обов’язковим, коли будь-який mapping або preset використовує шаблонізований `sessionKey`.
+- `allowedAgentIds`: обмежує явну маршрутизацію (`*` або пропущено = дозволити всі, `[]` = заборонити всі).
+- `defaultSessionKey`: необов’язковий фіксований ключ сесії для запусків hook-агента без явного `sessionKey`.
+- `allowRequestSessionKey`: дозволяє викликачам `/hooks/agent` і ключам сесій mapping, керованим шаблонами, установлювати `sessionKey` (типово: `false`).
+- `allowedSessionKeyPrefixes`: необов’язковий список дозволених префіксів для явних значень `sessionKey` (запит + mapping), наприклад `["hook:"]`. Він стає обов’язковим, коли будь-який mapping або preset використовує шаблонізований `sessionKey`.
- `deliver: true` надсилає фінальну відповідь у канал; `channel` типово має значення `last`.
-- `model` перевизначає LLM для цього запуску hook (має бути дозволений, якщо задано каталог моделей).
+- `model` перевизначає LLM для цього запуску hook (має бути дозволено, якщо каталог моделей задано).
### Інтеграція Gmail
- Вбудований preset Gmail використовує `sessionKey: "hook:gmail:{{messages[0].id}}"`.
-- Якщо ви зберігаєте цю маршрутизацію для кожного повідомлення, установіть `hooks.allowRequestSessionKey: true` і обмежте `hooks.allowedSessionKeyPrefixes` так, щоб вони відповідали простору назв Gmail, наприклад `["hook:", "hook:gmail:"]`.
-- Якщо вам потрібно `hooks.allowRequestSessionKey: false`, перевизначте preset статичним `sessionKey` замість типового шаблонізованого значення.
+- Якщо ви зберігаєте цю маршрутизацію для кожного повідомлення, установіть `hooks.allowRequestSessionKey: true` і обмежте `hooks.allowedSessionKeyPrefixes` так, щоб вони відповідали простору імен Gmail, наприклад `["hook:", "hook:gmail:"]`.
+- Якщо вам потрібне `hooks.allowRequestSessionKey: false`, перевизначте preset статичним `sessionKey` замість типового шаблонізованого значення.
```json5
{
@@ -3311,7 +3312,7 @@ openclaw gateway --port 19001
}
```
-- Gateway автоматично запускає `gog gmail watch serve` під час завантаження, коли це налаштовано. Установіть `OPENCLAW_SKIP_GMAIL_WATCHER=1`, щоб вимкнути.
+- Gateway автоматично запускає `gog gmail watch serve` під час старту, коли це налаштовано. Установіть `OPENCLAW_SKIP_GMAIL_WATCHER=1`, щоб вимкнути.
- Не запускайте окремий `gog gmail watch serve` паралельно з Gateway.
---
@@ -3328,22 +3329,22 @@ openclaw gateway --port 19001
}
```
-- Обслуговує HTML/CSS/JS, які може редагувати агент, і A2UI через HTTP на порту Gateway:
+- Обслуговує HTML/CSS/JS, які агент може редагувати, і A2UI через HTTP на порту Gateway:
- `http://:/__openclaw__/canvas/`
- `http://:/__openclaw__/a2ui/`
- Лише локально: залишайте `gateway.bind: "loopback"` (типово).
-- Для bind, відмінних від loopback: маршрути canvas вимагають автентифікації Gateway (token/password/trusted-proxy), так само як і інші HTTP-поверхні Gateway.
-- Node WebViews зазвичай не надсилають заголовки автентифікації; після сполучення й підключення Node Gateway рекламує URL можливостей із областю Node для доступу до canvas/A2UI.
-- URL можливостей прив’язані до активного WS-сеансу Node і швидко спливають. Резервний варіант на основі IP не використовується.
-- Вставляє клієнт live-reload у HTML, що обслуговується.
-- Автоматично створює початковий `index.html`, коли каталог порожній.
+- Для bind, відмінних від loopback: маршрути canvas вимагають auth Gateway (token/password/trusted-proxy), так само як і інші HTTP-поверхні Gateway.
+- Node WebView зазвичай не надсилають заголовки auth; після сполучення й підключення Node Gateway рекламує URL можливостей, прив’язані до Node, для доступу до canvas/A2UI.
+- URL можливостей прив’язані до активної WS-сесії Node й швидко спливають. Резервний варіант на основі IP не використовується.
+- Інжектує клієнт live-reload у HTML, що обслуговується.
+- Автоматично створює стартовий `index.html`, якщо каталог порожній.
- Також обслуговує A2UI за адресою `/__openclaw__/a2ui/`.
-- Зміни потребують перезапуску gateway.
-- Вимикайте live reload для великих каталогів або за помилок `EMFILE`.
+- Зміни вимагають перезапуску gateway.
+- Вимикайте live reload для великих каталогів або при помилках `EMFILE`.
---
-## Виявлення
+## Discovery
### mDNS (Bonjour)
@@ -3357,9 +3358,9 @@ openclaw gateway --port 19001
}
```
-- `minimal` (типово): не включати `cliPath` + `sshPort` у TXT-записи.
-- `full`: включати `cliPath` + `sshPort`.
-- Типове ім’я хоста — `openclaw`. Перевизначайте через `OPENCLAW_MDNS_HOSTNAME`.
+- `minimal` (типово): не включає `cliPath` + `sshPort` у TXT-записи.
+- `full`: включає `cliPath` + `sshPort`.
+- Назва хоста типово `openclaw`. Перевизначайте через `OPENCLAW_MDNS_HOSTNAME`.
### Wide-area (DNS-SD)
@@ -3371,7 +3372,7 @@ openclaw gateway --port 19001
}
```
-Записує зону unicast DNS-SD у `~/.openclaw/dns/`. Для виявлення між мережами поєднуйте з DNS-сервером (рекомендовано CoreDNS) + split DNS у Tailscale.
+Записує unicast DNS-SD зону в `~/.openclaw/dns/`. Для виявлення між мережами поєднуйте з DNS-сервером (рекомендовано CoreDNS) + split DNS у Tailscale.
Налаштування: `openclaw dns setup --apply`.
@@ -3379,7 +3380,7 @@ openclaw gateway --port 19001
## Середовище
-### `env` (вбудовані змінні середовища)
+### `env` (вбудовані env-змінні)
```json5
{
@@ -3396,14 +3397,14 @@ openclaw gateway --port 19001
}
```
-- Вбудовані змінні середовища застосовуються лише тоді, коли в середовищі процесу відсутній цей ключ.
-- Файли `.env`: `.env` поточного робочого каталогу + `~/.openclaw/.env` (жоден із них не перевизначає наявні змінні).
-- `shellEnv`: імпортує відсутні очікувані ключі з профілю вашого login shell.
+- Вбудовані env-змінні застосовуються лише тоді, коли в env процесу відсутній цей ключ.
+- Файли `.env`: `.env` у CWD + `~/.openclaw/.env` (жоден із них не перевизначає наявні змінні).
+- `shellEnv`: імпортує відсутні очікувані ключі з профілю вашої login shell.
- Повний пріоритет див. у [Environment](/uk/help/environment).
-### Підстановка змінних середовища
+### Підстановка env-змінних
-Посилайтеся на змінні середовища в будь-якому рядку конфігурації через `${VAR_NAME}`:
+Посилайтеся на env-змінні в будь-якому рядку конфігурації через `${VAR_NAME}`:
```json5
{
@@ -3422,7 +3423,7 @@ openclaw gateway --port 19001
## Секрети
-Посилання на секрети є додатковими: відкриті значення також продовжують працювати.
+SecretRef є адитивними: звичайні текстові значення теж продовжують працювати.
### `SecretRef`
@@ -3438,15 +3439,15 @@ openclaw gateway --port 19001
- шаблон `id` для `source: "env"`: `^[A-Z][A-Z0-9_]{0,127}$`
- `id` для `source: "file"`: абсолютний JSON pointer (наприклад `"/providers/openai/apiKey"`)
- шаблон `id` для `source: "exec"`: `^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$`
-- `id` для `source: "exec"` не повинні містити сегменти шляху `.` або `..`, розділені слешами (наприклад `a/../b` відхиляється)
+- `id` для `source: "exec"` не повинні містити slash-відокремлені сегменти шляху `.` або `..` (наприклад `a/../b` відхиляється)
### Підтримувана поверхня облікових даних
-- Канонічна матриця: [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface)
+- Канонічна матриця: [SecretRef Credential Surface](/uk/reference/secretref-credential-surface)
- `secrets apply` націлюється на підтримувані шляхи облікових даних у `openclaw.json`.
-- Посилання в `auth-profiles.json` включено до визначення runtime і покриття аудиту.
+- Посилання в `auth-profiles.json` включені до runtime-розв’язання та покриття audit.
-### Конфігурація провайдерів секретів
+### Конфігурація постачальників секретів
```json5
{
@@ -3476,18 +3477,18 @@ openclaw gateway --port 19001
Примітки:
-- Провайдер `file` підтримує `mode: "json"` і `mode: "singleValue"` (у режимі singleValue `id` має бути `"value"`).
-- Шляхи до провайдерів file і exec переходять у fail-closed, коли перевірка ACL Windows недоступна. Установлюйте `allowInsecurePath: true` лише для довірених шляхів, які неможливо перевірити.
-- Провайдер `exec` вимагає абсолютний шлях `command` і використовує payload-и протоколу через stdin/stdout.
-- Типово шляхи команд через symlink відхиляються. Установіть `allowSymlinkCommand: true`, щоб дозволити шляхи symlink із перевіркою шляху до визначеної цілі.
-- Якщо налаштовано `trustedDirs`, перевірка довірених каталогів застосовується до шляху визначеної цілі.
-- Дочірнє середовище `exec` типово мінімальне; передавайте потрібні змінні явно через `passEnv`.
-- Посилання на секрети визначаються під час активації в знімок у пам’яті, після чого шляхи запитів читають лише цей знімок.
-- Під час активації застосовується фільтрація активної поверхні: невизначені посилання на ввімкнених поверхнях призводять до помилки запуску/перезавантаження, тоді як неактивні поверхні пропускаються з діагностикою.
+- Постачальник `file` підтримує `mode: "json"` і `mode: "singleValue"` (у режимі singleValue значення `id` має бути `"value"`).
+- Шляхи постачальників file і exec працюють у fail-closed режимі, якщо перевірка Windows ACL недоступна. Установлюйте `allowInsecurePath: true` лише для довірених шляхів, які неможливо перевірити.
+- Постачальник `exec` вимагає абсолютний шлях `command` і використовує protocol payloads через stdin/stdout.
+- Типово шляхи команд-символьних посилань відхиляються. Установіть `allowSymlinkCommand: true`, щоб дозволити шляхи-символьні посилання з валідацією розв’язаного цільового шляху.
+- Якщо налаштовано `trustedDirs`, перевірка trusted-dir застосовується до розв’язаного цільового шляху.
+- Середовище дочірнього процесу `exec` типово мінімальне; явно передавайте потрібні змінні через `passEnv`.
+- SecretRef розв’язуються під час активації у знімок у пам’яті, а потім шляхи запитів читають лише цей знімок.
+- Під час активації застосовується фільтрація активної поверхні: нерозв’язані посилання на увімкнених поверхнях призводять до помилки запуску/перезавантаження, тоді як неактивні поверхні пропускаються з діагностикою.
---
-## Сховище автентифікації
+## Сховище auth
```json5
{
@@ -3508,10 +3509,10 @@ openclaw gateway --port 19001
- Профілі для окремого агента зберігаються в `/auth-profiles.json`.
- `auth-profiles.json` підтримує посилання на рівні значень (`keyRef` для `api_key`, `tokenRef` для `token`) для статичних режимів облікових даних.
- Профілі режиму OAuth (`auth.profiles..mode = "oauth"`) не підтримують облікові дані auth-profile на основі SecretRef.
-- Статичні runtime-облікові дані походять із визначених знімків у пам’яті; застарілі статичні записи `auth.json` очищуються при виявленні.
-- Імпорт застарілих OAuth — з `~/.openclaw/credentials/oauth.json`.
+- Статичні runtime-облікові дані беруться з розв’язаних знімків у пам’яті; застарілі статичні записи `auth.json` очищаються при виявленні.
+- Імпорт застарілого OAuth виконується з `~/.openclaw/credentials/oauth.json`.
- Див. [OAuth](/uk/concepts/oauth).
-- Поведінка runtime секретів і інструменти `audit/configure/apply`: [Керування секретами](/uk/gateway/secrets).
+- Поведінка runtime секретів і інструменти `audit/configure/apply`: [Secrets Management](/uk/gateway/secrets).
### `auth.cooldowns`
@@ -3533,25 +3534,24 @@ openclaw gateway --port 19001
}
```
-- `billingBackoffHours`: базовий backoff у годинах, коли профіль завершується помилкою через справжні
- помилки білінгу/недостатнього кредиту (типово: `5`). Явний текст білінгу
- все ще може потрапляти сюди навіть у відповідях `401`/`403`, але
- зіставлення тексту, специфічні для провайдера, залишаються в межах того
- провайдера, якому вони належать (наприклад OpenRouter
- `Key limit exceeded`). Повторювані повідомлення HTTP `402` про вікно використання або
- ліміти витрат організації/workspace замість цього лишаються в шляху `rate_limit`.
-- `billingBackoffHoursByProvider`: необов’язкові перевизначення годин backoff білінгу для окремих провайдерів.
-- `billingMaxHours`: обмеження в годинах для експоненційного зростання backoff білінгу (типово: `24`).
+- `billingBackoffHours`: базовий backoff у годинах, коли профіль дає збій через справжні
+ billing-помилки/нестачу кредитів (типово: `5`). Явний billing-текст
+ усе ще може потрапити сюди навіть у відповідях `401`/`403`, але специфічні для постачальника
+ текстові matcher-и залишаються обмеженими постачальником, якому вони належать (наприклад OpenRouter
+ `Key limit exceeded`). Повторювані повідомлення HTTP `402` про usage-window або
+ ліміти витрат organization/workspace залишаються в шляху `rate_limit`.
+- `billingBackoffHoursByProvider`: необов’язкові перевизначення годин billing-backoff для окремих постачальників.
+- `billingMaxHours`: обмеження в годинах для експоненційного зростання billing-backoff (типово: `24`).
- `authPermanentBackoffMinutes`: базовий backoff у хвилинах для збоїв `auth_permanent` із високою впевненістю (типово: `10`).
- `authPermanentMaxMinutes`: обмеження в хвилинах для зростання backoff `auth_permanent` (типово: `60`).
- `failureWindowHours`: ковзне вікно в годинах, яке використовується для лічильників backoff (типово: `24`).
-- `overloadedProfileRotations`: максимальна кількість ротацій auth-profile в межах того самого провайдера для перевантажених помилок перед переходом до fallback моделі (типово: `1`). Сюди потрапляють форми зайнятості провайдера, як-от `ModelNotReadyException`.
-- `overloadedBackoffMs`: фіксована затримка перед повторною спробою ротації перевантаженого провайдера/профілю (типово: `0`).
-- `rateLimitedProfileRotations`: максимальна кількість ротацій auth-profile в межах того самого провайдера для помилок rate-limit перед переходом до fallback моделі (типово: `1`). Цей кошик rate-limit включає текстові форми провайдера, такі як `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` і `resource exhausted`.
+- `overloadedProfileRotations`: максимальна кількість ротацій auth-profile у межах того самого постачальника для помилок перевантаження перед переходом до fallback моделі (типово: `1`). Сюди потрапляють форми зайнятості постачальника, наприклад `ModelNotReadyException`.
+- `overloadedBackoffMs`: фіксована затримка перед повторною спробою ротації перевантаженого постачальника/профілю (типово: `0`).
+- `rateLimitedProfileRotations`: максимальна кількість ротацій auth-profile у межах того самого постачальника для помилок rate-limit перед переходом до fallback моделі (типово: `1`). Цей кошик rate-limit включає текстові форми постачальника, такі як `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` і `resource exhausted`.
---
-## Журналювання
+## Логування
```json5
{
@@ -3568,8 +3568,8 @@ openclaw gateway --port 19001
- Типовий файл журналу: `/tmp/openclaw/openclaw-YYYY-MM-DD.log`.
- Установіть `logging.file` для стабільного шляху.
-- `consoleLevel` підвищується до `debug` при `--verbose`.
-- `maxFileBytes`: максимальний розмір файла журналу в байтах, після якого запис припиняється (додатне ціле число; типово: `524288000` = 500 MB). Для production-розгортань використовуйте зовнішню ротацію журналів.
+- `consoleLevel` підвищується до `debug` із `--verbose`.
+- `maxFileBytes`: максимальний розмір файлу журналу в байтах, після якого запис припиняється (додатне ціле число; типово: `524288000` = 500 MB). Для production-розгортань використовуйте зовнішню ротацію журналів.
---
@@ -3606,20 +3606,20 @@ openclaw gateway --port 19001
}
```
-- `enabled`: головний перемикач для виводу інструментації (типово: `true`).
-- `flags`: масив рядків прапорців, що вмикає цільовий вивід журналу (підтримує wildcard, наприклад `"telegram.*"` або `"*"`).
-- `stuckSessionWarnMs`: поріг віку в мс для виведення попереджень про завислі сеанси, поки сеанс залишається у стані обробки.
+- `enabled`: головний перемикач для виводу інструментування (типово: `true`).
+- `flags`: масив рядків-прапорців, які вмикають цільовий вивід журналу (підтримуються wildcard, наприклад `"telegram.*"` або `"*"`).
+- `stuckSessionWarnMs`: поріг віку в мс для виводу попереджень про завислі сесії, поки сесія залишається в стані обробки.
- `otel.enabled`: вмикає конвеєр експорту OpenTelemetry (типово: `false`).
-- `otel.endpoint`: URL колектора для експорту OTel.
+- `otel.endpoint`: URL collector для експорту OTel.
- `otel.protocol`: `"http/protobuf"` (типово) або `"grpc"`.
-- `otel.headers`: додаткові заголовки метаданих HTTP/gRPC, що надсилаються із запитами експорту OTel.
+- `otel.headers`: додаткові заголовки HTTP/gRPC metadata, які надсилаються із запитами експорту OTel.
- `otel.serviceName`: назва сервісу для атрибутів ресурсу.
- `otel.traces` / `otel.metrics` / `otel.logs`: увімкнути експорт trace, metrics або logs.
-- `otel.sampleRate`: частота вибірки trace `0`–`1`.
-- `otel.flushIntervalMs`: інтервал періодичного скидання телеметрії в мс.
-- `cacheTrace.enabled`: журналювати знімки cache trace для вбудованих запусків (типово: `false`).
-- `cacheTrace.filePath`: шлях виводу для JSONL cache trace (типово: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`).
-- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: керують тим, що включається до виводу cache trace (усі типово: `true`).
+- `otel.sampleRate`: частота семплювання trace `0`–`1`.
+- `otel.flushIntervalMs`: інтервал періодичного скидання telemetry в мс.
+- `cacheTrace.enabled`: журналювати знімки trace кешу для вбудованих запусків (типово: `false`).
+- `cacheTrace.filePath`: шлях виводу для JSONL trace кешу (типово: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`).
+- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: керують тим, що включається у вивід trace кешу (усі типово: `true`).
---
@@ -3641,10 +3641,10 @@ openclaw gateway --port 19001
}
```
-- `channel`: канал релізів для встановлень npm/git — `"stable"`, `"beta"` або `"dev"`.
-- `checkOnStart`: перевіряти оновлення npm під час запуску gateway (типово: `true`).
-- `auto.enabled`: увімкнути фонове автооновлення для встановлень пакетів (типово: `false`).
-- `auto.stableDelayHours`: мінімальна затримка в годинах перед автоматичним застосуванням у stable-каналі (типово: `6`; макс.: `168`).
+- `channel`: канал випусків для npm/git-встановлень — `"stable"`, `"beta"` або `"dev"`.
+- `checkOnStart`: перевіряти наявність оновлень npm під час запуску gateway (типово: `true`).
+- `auto.enabled`: увімкнути фонове автооновлення для package-встановлень (типово: `false`).
+- `auto.stableDelayHours`: мінімальна затримка в годинах перед автозастосуванням на каналі stable (типово: `6`; макс.: `168`).
- `auto.stableJitterHours`: додаткове вікно розподілу розгортання stable-каналу в годинах (типово: `12`; макс.: `168`).
- `auto.betaCheckIntervalHours`: як часто виконуються перевірки beta-каналу в годинах (типово: `1`; макс.: `24`).
@@ -3679,22 +3679,22 @@ openclaw gateway --port 19001
}
```
-- `enabled`: глобальний прапорець функції ACP (типово: `false`).
-- `dispatch.enabled`: незалежний прапорець для диспетчеризації ходів сеансу ACP (типово: `true`). Установіть `false`, щоб зберегти доступність команд ACP, але заблокувати виконання.
-- `backend`: id типового runtime-бекенда ACP (має відповідати зареєстрованому Plugin runtime ACP).
-- `defaultAgent`: резервний id цільового агента ACP, коли спавни не задають явної цілі.
-- `allowedAgents`: allowlist id агентів, дозволених для runtime-сеансів ACP; порожнє значення означає відсутність додаткових обмежень.
-- `maxConcurrentSessions`: максимальна кількість одночасно активних сеансів ACP.
+- `enabled`: глобальний прапорець можливості ACP (типово: `false`).
+- `dispatch.enabled`: незалежний прапорець для диспетчеризації ходів сесії ACP (типово: `true`). Установіть `false`, щоб залишити команди ACP доступними, але заблокувати виконання.
+- `backend`: ID типового runtime-backend ACP (має відповідати зареєстрованому ACP runtime Plugin).
+- `defaultAgent`: резервний ID цільового агента ACP, коли spawn не задає явну ціль.
+- `allowedAgents`: список дозволених ID агентів для runtime-сесій ACP; порожнє значення означає відсутність додаткових обмежень.
+- `maxConcurrentSessions`: максимальна кількість одночасно активних сесій ACP.
- `stream.coalesceIdleMs`: вікно idle-flush у мс для потокового тексту.
-- `stream.maxChunkChars`: максимальний розмір чанка перед розбиттям потокової проєкції блока.
+- `stream.maxChunkChars`: максимальний розмір частини перед розбиттям проєкції потокового блока.
- `stream.repeatSuppression`: пригнічувати повторювані рядки статусу/інструментів для кожного ходу (типово: `true`).
-- `stream.deliveryMode`: `"live"` транслює поступово; `"final_only"` буферизує до термінальних подій ходу.
+- `stream.deliveryMode`: `"live"` передає потік поступово; `"final_only"` буферизує до термінальних подій ходу.
- `stream.hiddenBoundarySeparator`: роздільник перед видимим текстом після прихованих подій інструментів (типово: `"paragraph"`).
-- `stream.maxOutputChars`: максимальна кількість символів виводу асистента, проєктованих на хід ACP.
-- `stream.maxSessionUpdateChars`: максимальна кількість символів для проєктованих рядків статусу/оновлення ACP.
-- `stream.tagVisibility`: запис імен тегів до булевих перевизначень видимості для потокових подій.
-- `runtime.ttlMinutes`: idle TTL у хвилинах для воркерів сеансу ACP до можливого очищення.
-- `runtime.installCommand`: необов’язкова команда встановлення, яку слід запустити під час bootstrap середовища runtime ACP.
+- `stream.maxOutputChars`: максимальна кількість символів виводу асистента, спроєктованих для одного ходу ACP.
+- `stream.maxSessionUpdateChars`: максимальна кількість символів для спроєктованих рядків статусу/оновлень ACP.
+- `stream.tagVisibility`: запис назв тегів до булевих перевизначень видимості для потокових подій.
+- `runtime.ttlMinutes`: idle TTL у хвилинах для воркерів сесій ACP до моменту, коли вони стають придатними для очищення.
+- `runtime.installCommand`: необов’язкова команда встановлення, яку слід виконати під час bootstrap середовища runtime ACP.
---
@@ -3710,17 +3710,17 @@ openclaw gateway --port 19001
}
```
-- `cli.banner.taglineMode` керує стилем tagline банера:
- - `"random"` (типово): змінні кумедні/сезонні tagline.
- - `"default"`: фіксований нейтральний tagline (`All your chats, one OpenClaw.`).
- - `"off"`: без тексту tagline (назва/версія банера все одно показуються).
-- Щоб приховати весь банер (не лише tagline), установіть env `OPENCLAW_HIDE_BANNER=1`.
+- `cli.banner.taglineMode` керує стилем слогана в banner:
+ - `"random"` (типово): змінні смішні/сезонні слогани.
+ - `"default"`: фіксований нейтральний слоган (`All your chats, one OpenClaw.`).
+ - `"off"`: без тексту слогана (назва/версія в banner усе одно показується).
+- Щоб приховати весь banner (а не лише слогани), установіть env `OPENCLAW_HIDE_BANNER=1`.
---
## Wizard
-Метадані, що записуються керованими потоками налаштування CLI (`onboard`, `configure`, `doctor`):
+Метадані, записані потоками керованого налаштування CLI (`onboard`, `configure`, `doctor`):
```json5
{
@@ -3738,15 +3738,15 @@ openclaw gateway --port 19001
## Identity
-Див. поля identity у `agents.list` у розділі [Значення за замовчуванням для агентів](#agent-defaults).
+Див. поля identity в `agents.list` у розділі [Типові значення агента](#agent-defaults).
---
-## Bridge (legacy, вилучено)
+## Bridge (застарілий, видалено)
-Поточні збірки більше не містять TCP bridge. Node підключаються через Gateway WebSocket. Ключі `bridge.*` більше не є частиною схеми конфігурації (валідація завершується помилкою, доки їх не буде вилучено; `openclaw doctor --fix` може прибрати невідомі ключі).
+Поточні збірки більше не містять TCP bridge. Nodes підключаються через Gateway WebSocket. Ключі `bridge.*` більше не є частиною схеми конфігурації (валідація завершується помилкою, доки їх не буде видалено; `openclaw doctor --fix` може прибрати невідомі ключі).
-
+
```json
{
@@ -3784,11 +3784,11 @@ openclaw gateway --port 19001
}
```
-- `sessionRetention`: як довго зберігати завершені ізольовані сеанси виконання Cron перед очищенням із `sessions.json`. Також керує очищенням архівованих видалених transcript Cron. Типово: `24h`; установіть `false`, щоб вимкнути.
-- `runLog.maxBytes`: максимальний розмір кожного файла журналу запуску (`cron/runs/.jsonl`) перед очищенням. Типово: `2_000_000` байтів.
-- `runLog.keepLines`: кількість найновіших рядків, що зберігаються, коли запускається очищення журналу виконання. Типово: `2000`.
-- `webhookToken`: bearer token, що використовується для POST-доставки webhook Cron (`delivery.mode = "webhook"`); якщо пропущено, заголовок автентифікації не надсилається.
-- `webhook`: застарілий legacy fallback URL webhook (http/https), який використовується лише для збережених завдань, що все ще мають `notify: true`.
+- `sessionRetention`: як довго зберігати завершені ізольовані сесії запусків Cron перед очищенням із `sessions.json`. Також керує очищенням архівованих видалених transcript Cron. Типове значення: `24h`; установіть `false`, щоб вимкнути.
+- `runLog.maxBytes`: максимальний розмір файлу журналу одного запуску (`cron/runs/.jsonl`) перед очищенням. Типове значення: `2_000_000` байтів.
+- `runLog.keepLines`: найновіші рядки, які зберігаються, коли спрацьовує очищення журналу запуску. Типове значення: `2000`.
+- `webhookToken`: bearer token, що використовується для доставки POST до webhook Cron (`delivery.mode = "webhook"`); якщо не задано, заголовок auth не надсилається.
+- `webhook`: застаріла резервна URL-адреса webhook (http/https), що використовується лише для збережених завдань, у яких усе ще є `notify: true`.
### `cron.retry`
@@ -3808,7 +3808,7 @@ openclaw gateway --port 19001
- `backoffMs`: масив затримок backoff у мс для кожної повторної спроби (типово: `[30000, 60000, 300000]`; 1–10 записів).
- `retryOn`: типи помилок, які запускають повторні спроби — `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Пропустіть, щоб повторювати для всіх тимчасових типів.
-Застосовується лише до одноразових завдань Cron. Для періодичних завдань використовується окрема обробка збоїв.
+Застосовується лише до одноразових завдань Cron. Для повторюваних завдань використовується окрема обробка збоїв.
### `cron.failureAlert`
@@ -3829,8 +3829,8 @@ openclaw gateway --port 19001
- `enabled`: увімкнути сповіщення про збої для завдань Cron (типово: `false`).
- `after`: кількість послідовних збоїв перед спрацюванням сповіщення (додатне ціле число, мін.: `1`).
- `cooldownMs`: мінімальна кількість мілісекунд між повторними сповіщеннями для того самого завдання (невід’ємне ціле число).
-- `mode`: режим доставки — `"announce"` надсилає через повідомлення каналу; `"webhook"` робить POST на налаштований webhook.
-- `accountId`: необов’язковий id облікового запису або каналу для області доставки сповіщення.
+- `mode`: режим доставки — `"announce"` надсилає через повідомлення каналу; `"webhook"` надсилає POST на налаштований webhook.
+- `accountId`: необов’язковий ID облікового запису або каналу для області доставки сповіщення.
### `cron.failureDestination`
@@ -3847,49 +3847,49 @@ openclaw gateway --port 19001
}
```
-- Типова ціль для сповіщень про збої Cron у всіх завданнях.
-- `mode`: `"announce"` або `"webhook"`; типово `"announce"`, коли існує достатньо даних про ціль.
-- `channel`: перевизначення каналу для announce-доставки. `"last"` повторно використовує останній відомий канал доставки.
-- `to`: явна announce-ціль або URL webhook. Обов’язково для режиму webhook.
+- Типове місце призначення для сповіщень про збої Cron у всіх завданнях.
+- `mode`: `"announce"` або `"webhook"`; типово `"announce"`, коли є достатньо даних про ціль.
+- `channel`: перевизначення каналу для доставки announce. `"last"` повторно використовує останній відомий канал доставки.
+- `to`: явна ціль announce або URL webhook. Обов’язкове для режиму webhook.
- `accountId`: необов’язкове перевизначення облікового запису для доставки.
-- `delivery.failureDestination` для конкретного завдання перевизначає це глобальне типове значення.
-- Коли ні глобальну, ні для конкретного завдання ціль збоїв не задано, завдання, які вже доставляють через `announce`, у разі збою повертаються до цієї основної announce-цілі.
-- `delivery.failureDestination` підтримується лише для завдань `sessionTarget="isolated"`, якщо тільки основний `delivery.mode` завдання не дорівнює `"webhook"`.
+- `delivery.failureDestination` для окремого завдання перевизначає це глобальне типове значення.
+- Коли ні глобальне, ні значення для окремого завдання не встановлено, завдання, які вже доставляють через `announce`, у разі збою повертаються до цієї основної announce-цілі.
+- `delivery.failureDestination` підтримується лише для завдань `sessionTarget="isolated"`, якщо тільки основне `delivery.mode` завдання не дорівнює `"webhook"`.
-Див. [Cron Jobs](/uk/automation/cron-jobs). Ізольовані виконання Cron відстежуються як [фонові завдання](/uk/automation/tasks).
+Див. [Cron Jobs](/uk/automation/cron-jobs). Ізольовані виконання Cron відстежуються як [background tasks](/uk/automation/tasks).
---
## Змінні шаблону моделі медіа
-Заповнювачі шаблонів, що розгортаються в `tools.media.models[].args`:
+Заповнювачі шаблону, які розгортаються в `tools.media.models[].args`:
-| Змінна | Опис |
-| ----------------- | -------------------------------------------------- |
-| `{{Body}}` | Повний текст вхідного повідомлення |
-| `{{RawBody}}` | Сирий текст (без обгорток історії/відправника) |
-| `{{BodyStripped}}`| Текст без згадувань у групі |
-| `{{From}}` | Ідентифікатор відправника |
-| `{{To}}` | Ідентифікатор призначення |
-| `{{MessageSid}}` | ID повідомлення каналу |
-| `{{SessionId}}` | UUID поточного сеансу |
-| `{{IsNewSession}}`| `"true"`, коли створено новий сеанс |
-| `{{MediaUrl}}` | Псевдо-URL вхідного медіа |
-| `{{MediaPath}}` | Локальний шлях до медіа |
-| `{{MediaType}}` | Тип медіа (image/audio/document/…) |
-| `{{Transcript}}` | Аудіо transcript |
-| `{{Prompt}}` | Визначений media prompt для записів CLI |
-| `{{MaxChars}}` | Визначена максимальна кількість вихідних символів для записів CLI |
-| `{{ChatType}}` | `"direct"` або `"group"` |
-| `{{GroupSubject}}`| Тема групи (best effort) |
-| `{{GroupMembers}}`| Попередній перегляд учасників групи (best effort) |
-| `{{SenderName}}` | Ім’я відображення відправника (best effort) |
-| `{{SenderE164}}` | Номер телефону відправника (best effort) |
-| `{{Provider}}` | Підказка провайдера (whatsapp, telegram, discord тощо) |
+| Змінна | Опис |
+| ----------------- | ----------------------------------------------- |
+| `{{Body}}` | Повне тіло вхідного повідомлення |
+| `{{RawBody}}` | Сире тіло (без обгорток історії/відправника) |
+| `{{BodyStripped}}`| Тіло без згадок групи |
+| `{{From}}` | Ідентифікатор відправника |
+| `{{To}}` | Ідентифікатор призначення |
+| `{{MessageSid}}` | ID повідомлення каналу |
+| `{{SessionId}}` | UUID поточної сесії |
+| `{{IsNewSession}}`| `"true"`, коли створено нову сесію |
+| `{{MediaUrl}}` | Псевдо-URL вхідного медіа |
+| `{{MediaPath}}` | Локальний шлях до медіа |
+| `{{MediaType}}` | Тип медіа (image/audio/document/…) |
+| `{{Transcript}}` | Аудіо transcript |
+| `{{Prompt}}` | Розв’язаний media-prompt для записів CLI |
+| `{{MaxChars}}` | Розв’язана максимальна кількість символів виводу для записів CLI |
+| `{{ChatType}}` | `"direct"` або `"group"` |
+| `{{GroupSubject}}`| Тема групи (best effort) |
+| `{{GroupMembers}}`| Попередній перегляд учасників групи (best effort) |
+| `{{SenderName}}` | Відображуване ім’я відправника (best effort) |
+| `{{SenderE164}}` | Номер телефону відправника (best effort) |
+| `{{Provider}}` | Підказка постачальника (whatsapp, telegram, discord тощо) |
---
-## Include конфігурації (`$include`)
+## Включення конфігурації (`$include`)
Розділяйте конфігурацію на кілька файлів:
@@ -3907,12 +3907,12 @@ openclaw gateway --port 19001
**Поведінка злиття:**
- Один файл: замінює об’єкт-контейнер.
-- Масив файлів: глибоко зливається в заданому порядку (пізніші перевизначають попередні).
+- Масив файлів: глибоко зливається по черзі (пізніші значення перевизначають попередні).
- Сусідні ключі: зливаються після include (перевизначають включені значення).
-- Вкладені include: до 10 рівнів вкладеності.
-- Шляхи: визначаються відносно файла, що включає, але мають залишатися в межах каталогу конфігурації верхнього рівня (`dirname` від `openclaw.json`). Абсолютні форми/`../` дозволені лише тоді, коли вони все одно визначаються в межах цієї границі.
-- Записи під керуванням OpenClaw, які змінюють лише один розділ верхнього рівня, підтримуваний include з одного файла, виконують запис безпосередньо в цей включений файл. Наприклад, `plugins install` оновлює `plugins: { $include: "./plugins.json5" }` у `plugins.json5` і залишає `openclaw.json` без змін.
-- Кореневі include, масиви include та include із сусідніми перевизначеннями є лише для читання для записів під керуванням OpenClaw; такі записи завершуються в fail-closed замість сплощення конфігурації.
+- Вкладені include: до 10 рівнів глибини.
+- Шляхи: розв’язуються відносно файла, що включає, але мають залишатися в межах каталогу конфігурації верхнього рівня (`dirname` від `openclaw.json`). Абсолютні форми/форми з `../` дозволені лише тоді, коли після розв’язання вони все ще залишаються в межах цього кордону.
+- Записи, що належать OpenClaw і змінюють лише одну секцію верхнього рівня, яка підтримується include одного файла, записуються безпосередньо в цей включений файл. Наприклад, `plugins install` оновлює `plugins: { $include: "./plugins.json5" }` у `plugins.json5` і залишає `openclaw.json` без змін.
+- Кореневі include, масиви include та include із сусідніми перевизначеннями є лише для читання для записів, що належать OpenClaw; такі записи завершуються в fail-closed режимі замість сплощення конфігурації.
- Помилки: зрозумілі повідомлення для відсутніх файлів, помилок розбору та циклічних include.
---
diff --git a/docs/uk/plugins/google-meet.md b/docs/uk/plugins/google-meet.md
index 07b798138..2ed11b01d 100644
--- a/docs/uk/plugins/google-meet.md
+++ b/docs/uk/plugins/google-meet.md
@@ -1,32 +1,32 @@
---
read_when:
- Ви хочете, щоб агент OpenClaw приєднався до виклику Google Meet
- - Ви налаштовуєте Chrome або Twilio як транспорт для Google Meet
-summary: 'Plugin Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими налаштуваннями голосу в реальному часі'
+ - Ви налаштовуєте Chrome або Twilio як транспорт Google Meet
+summary: 'Plugin Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими параметрами голосу в реальному часі'
title: Plugin Google Meet
x-i18n:
- generated_at: "2026-04-24T02:09:11Z"
+ generated_at: "2026-04-24T02:21:50Z"
model: gpt-5.4
provider: openai
- source_hash: 57a354040e81dc769f14927364c9fa6aebd95844c2e105badc70341a246fac29
+ source_hash: b874c1da9c7cd8ba2eec019e33d8ef9ba56045910c65f1de43b008e0ceef045f
source_path: plugins/google-meet.md
workflow: 15
---
# Google Meet (Plugin)
-Підтримка учасника Google Meet для OpenClaw.
+Підтримка учасників Google Meet для OpenClaw.
-Plugin є явно керованим за задумом:
+Plugin навмисно зроблено явним:
- Він приєднується лише за явною URL-адресою `https://meet.google.com/...`.
- Голосовий режим `realtime` є типовим режимом.
-- Голосовий режим реального часу може повертатися до повного агента OpenClaw, коли потрібні глибші міркування або інструменти.
-- Автентифікація починається як персональний Google OAuth або вже виконаний вхід у профілі Chrome.
+- Голосовий режим реального часу може звертатися назад до повного агента OpenClaw, коли потрібні глибші міркування або інструменти.
+- Автентифікація починається як особистий Google OAuth або вже виконаний вхід у профіль Chrome.
- Автоматичного оголошення згоди немає.
-- Типовий аудіобекенд Chrome — `BlackHole 2ch`.
-- Twilio приймає номер для дозвону плюс необов’язковий PIN або послідовність DTMF.
-- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших сценаріїв агентських телеконференцій.
+- Типовим аудіобекендом Chrome є `BlackHole 2ch`.
+- Twilio приймає номер для дозвону, а також необов’язковий PIN-код або послідовність DTMF.
+- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших робочих процесів агентських телеконференцій.
## Швидкий старт
@@ -37,6 +37,19 @@ brew install blackhole-2ch sox
export OPENAI_API_KEY=sk-...
```
+`blackhole-2ch` установлює віртуальний аудіопристрій `BlackHole 2ch`. Інсталятор Homebrew вимагає перезавантаження, перш ніж macOS зробить пристрій доступним:
+
+```bash
+sudo reboot
+```
+
+Після перезавантаження перевірте обидві складові:
+
+```bash
+system_profiler SPAudioDataType | grep -i BlackHole
+command -v rec play
+```
+
Увімкніть Plugin:
```json5
@@ -73,23 +86,32 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij
}
```
-Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого дуплексного аудіо використовуйте окремі віртуальні пристрої або граф у стилі Loopback; одного пристрою BlackHole достатньо для першого smoke-тесту, але може виникати луна.
+Chrome приєднується як профіль Chrome, у якому вже виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двостороннього аудіо використовуйте окремі віртуальні пристрої або граф на кшталт Loopback; одного пристрою BlackHole достатньо для першого smoke-тесту, але він може створювати луну.
+
+## Примітки щодо встановлення
+
+Типовий режим Chrome realtime використовує два зовнішні інструменти:
+
+- `sox`: утиліта командного рядка для аудіо. Plugin використовує її команди `rec` і `play` для типового аудіомосту G.711 mu-law на 8 кГц.
+- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який Chrome/Meet можуть маршрутизувати аудіо.
+
+OpenClaw не постачає й не розповсюджує жоден із цих пакетів. У документації користувачам пропонується встановлювати їх як залежності хоста через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole має ліцензію GPL-3.0. Якщо ви збираєте інсталятор або appliance, який містить BlackHole разом з OpenClaw, перегляньте умови вихідної ліцензії BlackHole або отримайте окрему ліцензію від Existential Audio.
## Транспорти
### Chrome
-Транспорт Chrome відкриває URL-адресу Meet у Google Chrome і приєднується як профіль Chrome, у якому виконано вхід. На macOS Plugin перевіряє наявність `BlackHole 2ch` перед запуском. Якщо налаштовано, він також запускає команду перевірки стану аудіомоста та команду запуску перед відкриттям Chrome.
+Транспорт Chrome відкриває URL-адресу Meet у Google Chrome і приєднується як профіль Chrome, у якому вже виконано вхід. У macOS Plugin перед запуском перевіряє наявність `BlackHole 2ch`. Якщо це налаштовано, він також запускає команду перевірки стану аудіомосту та команду запуску перед відкриттям Chrome.
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome
```
-Спрямуйте аудіо мікрофона й динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого приєднання без аудіошляху.
+Маршрутизуйте аудіо мікрофона й динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого підключення без аудіошляху.
### Twilio
-Транспорт Twilio — це строгий план дозвону, делегований Plugin Voice Call. Він не розбирає сторінки Meet для пошуку телефонних номерів.
+Транспорт Twilio — це строгий план набору, делегований Plugin Voice Call. Він не аналізує сторінки Meet, щоб отримати номери телефону.
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
@@ -98,7 +120,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
--pin 123456
```
-Використовуйте `--dtmf-sequence`, якщо зустріч потребує спеціальної послідовності:
+Використовуйте `--dtmf-sequence`, коли зустріч потребує спеціальної послідовності:
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
@@ -109,7 +131,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
## OAuth і попередня перевірка
-Доступ до Google Meet Media API спочатку використовує персональний клієнт OAuth. Налаштуйте `oauth.clientId` і за потреби `oauth.clientSecret`, а потім виконайте:
+Доступ до Google Meet Media API спочатку використовує особистий OAuth-клієнт. Налаштуйте `oauth.clientId` і, за потреби, `oauth.clientSecret`, а потім виконайте:
```bash
openclaw googlemeet auth login --json
@@ -117,7 +139,7 @@ openclaw googlemeet auth login --json
Команда виводить блок конфігурації `oauth` з токеном оновлення. Вона використовує PKCE, callback localhost на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`.
-Ці змінні середовища приймаються як резервні варіанти:
+Як резервні варіанти підтримуються такі змінні середовища:
- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID`
- `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` або `GOOGLE_MEET_CLIENT_SECRET`
@@ -128,7 +150,7 @@ openclaw googlemeet auth login --json
- `OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING` або `GOOGLE_MEET_DEFAULT_MEETING`
- `OPENCLAW_GOOGLE_MEET_PREVIEW_ACK` або `GOOGLE_MEET_PREVIEW_ACK`
-Розв’яжіть URL-адресу Meet, код або `spaces/{id}` через `spaces.get`:
+Перетворіть URL-адресу Meet, код або `spaces/{id}` через `spaces.get`:
```bash
openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij
@@ -140,18 +162,18 @@ openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij
openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij
```
-Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, принципал OAuth і учасники зустрічі зареєстровані в Google Workspace Developer Preview Program для Meet media APIs.
+Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, OAuth principal і учасники зустрічі зареєстровані в Google Workspace Developer Preview Program для Meet media APIs.
## Конфігурація
-Для поширеного шляху Chrome realtime потрібно лише ввімкнений Plugin, BlackHole, SoX і ключ OpenAI:
+Для поширеного шляху Chrome realtime достатньо лише ввімкненого Plugin, BlackHole, SoX і ключа OpenAI:
```bash
brew install blackhole-2ch sox
export OPENAI_API_KEY=sk-...
```
-Установіть конфігурацію Plugin у `plugins.entries.google-meet.config`:
+Укажіть конфігурацію Plugin у `plugins.entries.google-meet.config`:
```json5
{
@@ -171,8 +193,8 @@ export OPENAI_API_KEY=sk-...
- `defaultTransport: "chrome"`
- `defaultMode: "realtime"`
- `chrome.audioBackend: "blackhole-2ch"`
-- `chrome.audioInputCommand`: команда SoX `rec`, що записує 8 кГц G.711 mu-law аудіо в stdout
-- `chrome.audioOutputCommand`: команда SoX `play`, що читає 8 кГц G.711 mu-law аудіо зі stdin
+- `chrome.audioInputCommand`: команда SoX `rec`, що записує аудіо G.711 mu-law 8 кГц у stdout
+- `chrome.audioOutputCommand`: команда SoX `play`, що читає аудіо G.711 mu-law 8 кГц зі stdin
- `realtime.provider: "openai"`
- `realtime.toolPolicy: "safe-read-only"`
- `realtime.instructions`: короткі усні відповіді, з
@@ -222,31 +244,31 @@ export OPENAI_API_KEY=sk-...
}
```
-Використовуйте `action: "status"`, щоб перелічити активні сесії або перевірити ID сесії. Використовуйте `action: "leave"`, щоб позначити сесію завершеною.
+Використовуйте `action: "status"`, щоб переглянути активні сеанси або перевірити ідентифікатор сеансу. Використовуйте `action: "leave"`, щоб позначити сеанс як завершений.
## Консультація агента в реальному часі
-Режим Chrome realtime оптимізований для живого голосового циклу. Постачальник голосу реального часу чує аудіо зустрічі й говорить через налаштований аудіоміст. Коли моделі реального часу потрібні глибші міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
+Режим Chrome realtime оптимізовано для живого голосового циклу. Постачальник голосу реального часу чує аудіо зустрічі й говорить через налаштований аудіоміст. Коли моделі реального часу потрібні глибші міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
-Інструмент консультації запускає звичайного агента OpenClaw за лаштунками з контекстом недавньої стенограми зустрічі й повертає стислу усну відповідь до голосової сесії реального часу. Потім голосова модель може озвучити цю відповідь назад у зустріч.
+Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з контекстом недавньої стенограми зустрічі та повертає стислу усну відповідь до голосового сеансу реального часу. Потім голосова модель може озвучити цю відповідь назад у зустріч.
`realtime.toolPolicy` керує запуском консультації:
-- `safe-read-only`: показувати інструмент консультації й обмежувати звичайного агента інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`.
-- `owner`: показувати інструмент консультації й дозволяти звичайному агенту використовувати звичайну політику інструментів агента.
-- `none`: не показувати інструмент консультації моделі голосу реального часу.
+- `safe-read-only`: показує інструмент консультації та обмежує звичайного агента інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`.
+- `owner`: показує інструмент консультації та дозволяє звичайному агенту використовувати звичайну політику інструментів агента.
+- `none`: не показує інструмент консультації моделі голосу реального часу.
-Ключ сесії консультації має область дії на кожну сесію Meet, тож наступні виклики консультації можуть повторно використовувати попередній контекст консультації під час тієї самої зустрічі.
+Ключ сеансу консультації має область дії в межах кожного сеансу Meet, тому подальші виклики консультації можуть повторно використовувати попередній контекст консультацій під час тієї самої зустрічі.
## Примітки
-Офіційний media API Google Meet орієнтований на прийом, тому для мовлення в дзвінок Meet усе ще потрібен шлях учасника. Цей Plugin зберігає цю межу видимою: Chrome обробляє участь через браузер і локальне маршрутизування аудіо; Twilio обробляє участь через телефонний дозвін.
+Офіційний media API Google Meet орієнтований на отримання, тому для мовлення в дзвінок Meet усе ще потрібен шлях участі. Цей Plugin залишає цю межу видимою: Chrome обробляє участь через браузер і локальну маршрутизацію аудіо; Twilio обробляє участь через телефонний дозвін.
-Для режиму Chrome realtime потрібен один із варіантів:
+Режиму Chrome realtime потрібен один із таких варіантів:
-- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує мостом моделі реального часу та передає 8 кГц G.711 mu-law аудіо між цими командами й вибраним постачальником голосу реального часу.
-- `chrome.audioBridgeCommand`: зовнішня команда моста керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона.
+- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує мостом моделі реального часу та передає аудіо G.711 mu-law 8 кГц між цими командами й вибраним постачальником голосу реального часу.
+- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона.
-Для чистого дуплексного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв у стилі Loopback. Один спільний пристрій BlackHole може повертати голоси інших учасників назад у дзвінок.
+Для чистого двостороннього аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв на кшталт Loopback. Один спільний пристрій BlackHole може повертати голоси інших учасників назад у дзвінок.
-`googlemeet leave` зупиняє аудіоміст реального часу на основі пари команд для сесій Chrome. Для сесій Twilio, делегованих через Plugin Voice Call, він також кладе слухавку в базовому голосовому дзвінку.
+`googlemeet leave` зупиняє аудіоміст реального часу з парою команд для сеансів Chrome. Для сеансів Twilio, делегованих через Plugin Voice Call, він також завершує базовий голосовий виклик.
diff --git a/docs/uk/plugins/sdk-subpaths.md b/docs/uk/plugins/sdk-subpaths.md
index 8c5878694..c3aca4421 100644
--- a/docs/uk/plugins/sdk-subpaths.md
+++ b/docs/uk/plugins/sdk-subpaths.md
@@ -5,23 +5,23 @@ read_when:
summary: 'Каталог підшляхів Plugin SDK: які імпорти де знаходяться, згруповано за областями'
title: Підшляхи Plugin SDK
x-i18n:
- generated_at: "2026-04-24T01:32:04Z"
+ generated_at: "2026-04-24T02:21:52Z"
model: gpt-5.4
provider: openai
- source_hash: 79f44344d9a584380347d0ed0c00cff6652556e5352d2c6143cf6fec092b809e
+ source_hash: 592cd599c9026eb584773cb7991dd75796f58cd62cd3a85d32e5b106440f7c3e
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 також наведені там, але є деталями
- реалізації, якщо лише сторінка документації явно не позначає їх як рекомендовані.
+ повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
+ зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але є деталлю
+ реалізації, якщо лише сторінка документації явно не просуває їх.
- Посібник з авторства плагінів дивіться в [Огляд Plugin SDK](/uk/plugins/sdk-overview).
+ Посібник з розробки плагінів дивіться в [Огляд Plugin SDK](/uk/plugins/sdk-overview).
- ## Вхід плагіна
+ ## Точка входу плагіна
| Підшлях | Ключові експорти |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
@@ -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/command-gating` | Вузькі допоміжні засоби для обмеження авторизації команд |
+ | `plugin-sdk/channel-config-schema` | Типи схем конфігурації каналу |
+ | `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` | Спільні допоміжні засоби для вхідної маршрутизації + побудови envelope |
- | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби для запису й dispatch вхідних відповідей |
+ | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації потоку чернеток |
+ | `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` | Допоміжні засоби для прив’язки розмов/потоків, pairing і налаштованих прив’язок |
- | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації під час виконання |
- | `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики під час виконання |
- | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/зведення статусу каналу |
- | `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу |
+ | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding і адаптерів |
+ | `plugin-sdk/agent-media-payload` | Застарілий побудовник медіа-payload агента |
+ | `plugin-sdk/conversation-runtime` | Допоміжні засоби для прив’язки розмов/потоків, pairing і configured-binding |
+ | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації часу виконання |
+ | `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення group-policy у часі виконання |
+ | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімків/підсумків статусу каналу |
+ | `plugin-sdk/channel-config-primitives` | Вузькі примітиви схем конфігурації каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагіна каналу |
- | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби читання/редагування конфігурації allowlist |
- | `plugin-sdk/group-access` | Спільні допоміжні засоби ухвалення рішень щодо групового доступу |
- | `plugin-sdk/direct-dm` | Спільні допоміжні засоби автентифікації/захисту для прямих DM |
+ | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
+ | `plugin-sdk/group-access` | Спільні допоміжні засоби рішень доступу до груп |
+ | `plugin-sdk/direct-dm` | Спільні допоміжні засоби авторизації/захисту direct-DM |
| `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні засоби інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
- | `plugin-sdk/channel-inbound` | Barrel сумісності для debounce вхідних подій, зіставлення згадок, допоміжних засобів політики згадок і допоміжних засобів envelope |
- | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадок без ширшої поверхні inbound runtime |
- | `plugin-sdk/channel-location` | Допоміжні засоби контексту розташування каналу та форматування |
- | `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для відкинутих вхідних подій і збоїв typing/ack |
- | `plugin-sdk/channel-send-result` | Типи результатів відповіді |
+ | `plugin-sdk/channel-inbound` | Сумісний barrel для debounce вхідних даних, зіставлення згадок, допоміжних засобів mention-policy та допоміжних засобів envelope |
+ | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби mention-policy без ширшої поверхні inbound runtime |
+ | `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`, а також типи цілей секретів |
+ | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, а також типи secret target |
@@ -90,26 +90,26 @@ 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-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа, як-от `upsertApiKeyProfile` |
- | `plugin-sdk/provider-auth-result` | Стандартний конструктор результату OAuth-автентифікації |
+ | `plugin-sdk/cli-backend` | Типові значення бекенда CLI + константи watchdog |
+ | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключів під час виконання для плагінів провайдерів |
+ | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу API-ключів/запису профілів, як-от `upsertApiKeyProfile` |
+ | `plugin-sdk/provider-auth-result` | Стандартний побудовник результату OAuth-автентифікації |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів |
- | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env-var автентифікації провайдера |
+ | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars для автентифікації провайдера |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
- | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політики replay, допоміжні засоби endpoint провайдера та допоміжні засоби нормалізації model-id, як-от `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 провайдера, включно з допоміжними засобами 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-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter для облікових даних |
- | `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` | Власні допоміжні засоби транспортного шару провайдера, як-от guarded fetch, transform транспортних повідомлень і доступні для запису потоки транспортних подій |
- | `plugin-sdk/provider-onboard` | Допоміжні засоби patch конфігурації онбордингу |
+ | `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint провайдерів, зокрема допоміжні засоби 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-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`, типи stream wrapper і спільні допоміжні засоби wrapper для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
+ | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби native provider transport, як-от guarded fetch, перетворення transport message і writable transport event streams |
+ | `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
@@ -117,119 +117,120 @@ x-i18n:
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника |
- | `plugin-sdk/command-status` | Конструктори повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
- | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення затверджувача та автентифікації дій у тому самому чаті |
- | `plugin-sdk/approval-client-runtime` | Власні допоміжні засоби профілю/фільтра затвердження exec |
- | `plugin-sdk/approval-delivery-runtime` | Власні адаптери можливостей/доставки затвердження |
- | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення Gateway затвердження |
- | `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження власного адаптера затвердження для гарячих точок входу каналів |
- | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime обробника затвердження; віддавайте перевагу вужчим швам adapter/gateway, коли їх достатньо |
- | `plugin-sdk/approval-native-runtime` | Власні допоміжні засоби цілі затвердження + прив’язки облікового запису |
- | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді для затвердження exec/plugin |
- | `plugin-sdk/command-auth-native` | Власна автентифікація команд + власні допоміжні засоби session-target |
+ | `plugin-sdk/command-status` | Побудовники повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
+ | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення схвалювача та автентифікації дій у тому самому чаті |
+ | `plugin-sdk/approval-client-runtime` | Допоміжні засоби native exec approval profile/filter |
+ | `plugin-sdk/approval-delivery-runtime` | Native адаптери можливостей/доставки схвалення |
+ | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення approval gateway |
+ | `plugin-sdk/approval-handler-adapter-runtime` | Легковагові допоміжні засоби завантаження native approval adapter для гарячих точок входу каналів |
+ | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime обробника схвалення; віддавайте перевагу вужчим adapter/gateway seams, якщо їх достатньо |
+ | `plugin-sdk/approval-native-runtime` | Native допоміжні засоби цілей схвалення + прив’язки акаунтів |
+ | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді для exec/plugin approval |
+ | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контракту каналу без широкого testing barrel |
+ | `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-surface |
+ | `plugin-sdk/command-primitives-runtime` | Легковагові предикати тексту команд для гарячих шляхів каналів |
+ | `plugin-sdk/command-surface` | Нормалізація тіла команди та допоміжні засоби command-surface |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
- | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для секретних поверхонь каналу/плагіна |
- | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/конфігурації |
- | `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, обмеження DM, зовнішнього вмісту та збирання секретів |
- | `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/secret-input` | Допоміжні засоби розбору секретного вводу |
- | `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі Webhook |
- | `plugin-sdk/webhook-request-guards` | Допоміжні засоби обмеження розміру тіла запиту/тайм-ауту |
+ | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь секретів каналу/плагіна |
+ | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для парсингу secret-contract/config |
+ | `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього вмісту та збирання секретів |
+ | `plugin-sdk/ssrf-policy` | Допоміжні засоби host allowlist і SSRF policy приватної мережі |
+ | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої infra runtime surface |
+ | `plugin-sdk/ssrf-runtime` | Pinned-dispatcher, SSRF-захищений fetch і допоміжні засоби SSRF policy |
+ | `plugin-sdk/secret-input` | Допоміжні засоби парсингу secret input |
+ | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей Webhook |
+ | `plugin-sdk/webhook-request-guards` | Допоміжні засоби для розміру тіла запиту/таймауту |
-
+
| Підшлях | Ключові експорти |
| --- | --- |
- | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/логування/резервного копіювання/встановлення плагінів |
- | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff |
- | `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку channel runtime-context |
+ | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/журналювання/резервного копіювання/встановлення плагінів |
+ | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env, logger, timeout, retry і backoff |
+ | `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку runtime-context каналу |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
- | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive плагіна |
- | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline для webhook/internal hook |
- | `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язки runtime, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
+ | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/хуків/http/інтерактивності плагіна |
+ | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline для Webhook/внутрішніх хуків |
+ | `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 і patch статусу каналу |
+ | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway і патчів статусу каналу |
| `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації та пошуку конфігурації плагіна |
- | `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня bundled Telegram contract недоступна |
- | `plugin-sdk/text-autolink-runtime` | Виявлення autolink посилань на файли без широкого barrel `text-runtime` |
- | `plugin-sdk/approval-runtime` | Допоміжні засоби затвердження exec/plugin, конструктори можливостей затвердження, допоміжні засоби auth/profile, власні допоміжні засоби routing/runtime |
- | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, Heartbeat, планувальник відповіді |
+ | `plugin-sdk/telegram-command-config` | Нормалізація імен/описів команд Telegram та перевірки дублікатів/конфліктів, навіть коли surface bundled Telegram contract недоступна |
+ | `plugin-sdk/text-autolink-runtime` | Виявлення autolink для посилань на файли без широкого text-runtime barrel |
+ | `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники approval-capability, допоміжні засоби auth/profile, native routing/runtime |
+ | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime для вхідних даних/відповідей, chunking, dispatch, Heartbeat, планувальник відповідей |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді |
- | `plugin-sdk/reply-history` | Спільні допоміжні засоби історії відповідей для короткого вікна, як-от `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
+ | `plugin-sdk/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/routing` | Допоміжні засоби route/session-key/account binding, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
- | `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу каналу/облікового запису, типові значення runtime-state і допоміжні засоби метаданих проблем |
- | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби target resolver |
+ | `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів state/OAuth |
+ | `plugin-sdk/routing` | Допоміжні засоби маршруту/ключа сесії/прив’язки акаунта, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
+ | `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумків статусу каналу/акаунта, типові значення runtime-state і допоміжні засоби метаданих проблем |
+ | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілей |
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків |
- | `plugin-sdk/request-url` | Витягування рядкових URL з вхідних даних типу fetch/request |
- | `plugin-sdk/run-command` | Виконавець команд із таймуванням і нормалізованими результатами stdout/stderr |
+ | `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/tool-payload` | Витягання нормалізованих payload з об’єктів результатів tool |
+ | `plugin-sdk/tool-send` | Витягання канонічних полів цілі надсилання з аргументів tool |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів для тимчасових завантажень |
- | `plugin-sdk/logging-core` | Допоміжні засоби logger підсистем і редагування чутливих даних |
+ | `plugin-sdk/logging-core` | Допоміжні засоби subsystem logger і редагування чутливих даних |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму таблиць Markdown |
- | `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
- | `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідного file-lock |
- | `plugin-sdk/persistent-dedupe` | Допоміжні засоби dedupe-кешу з підтримкою диска |
- | `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/session ACP і reply-dispatch |
- | `plugin-sdk/acp-binding-resolve-runtime` | Визначення прив’язки ACP лише для читання без імпортів запуску життєвого циклу |
- | `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
- | `plugin-sdk/boolean-param` | Вільний читач булевих параметрів |
+ | `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису JSON state |
+ | `plugin-sdk/file-lock` | Реентрантні допоміжні засоби file-lock |
+ | `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу дедуплікації з дисковим збереженням |
+ | `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/сесій ACP і dispatch відповідей |
+ | `plugin-sdk/acp-binding-resolve-runtime` | Лише для читання: визначення ACP binding без імпортів запуску життєвого циклу |
+ | `plugin-sdk/agent-config-primitives` | Вузькі примітиви agent runtime config-schema |
+ | `plugin-sdk/boolean-param` | Читач нестрогого булевого параметра |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних назв |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби початкового налаштування пристрою та токенів pairing |
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, status і ambient proxy |
- | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді команди `/models`/провайдера |
- | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби списку команд Skills |
- | `plugin-sdk/native-command-registry` | Власні допоміжні засоби реєстрації/build/serialize команд |
- | `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort для активного запуску, допоміжні засоби мосту tool OpenClaw і утиліти результатів спроб |
- | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
+ | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді для команди `/models`/провайдера |
+ | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби виведення списку команд Skills |
+ | `plugin-sdk/native-command-registry` | Native допоміжні засоби реєстру/побудови/серіалізації команд |
+ | `plugin-sdk/agent-harness` | Експериментальна trusted-plugin surface для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort для active-run, допоміжні засоби моста інструментів OpenClaw і утиліти результатів спроб |
+ | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби визначення endpoint Z.A.I |
| `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/error-runtime` | Граф помилок, форматування, спільні допоміжні засоби класифікації помилок, `isApprovalNotFoundError` |
+ | `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy і допоміжні засоби pinned lookup |
| `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без імпортів proxy/guarded-fetch |
- | `plugin-sdk/response-limit-runtime` | Читач тіла відповіді з обмеженням без широкої поверхні media runtime |
- | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без routing налаштованої прив’язки або сховищ pairing |
- | `plugin-sdk/session-store-runtime` | Допоміжні засоби читання сховища сесій без широких імпортів запису/обслуговування конфігурації |
+ | `plugin-sdk/response-limit-runtime` | Читач обмеженого тіла відповіді без широкої media runtime surface |
+ | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без маршрутизації configured binding або сховищ pairing |
+ | `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` | Допоміжні засоби нормалізації імен хостів і хостів SCP |
+ | `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 директорії з опорою на конфігурацію |
+ | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогів/ідентичності/робочого простору агента |
+ | `plugin-sdk/directory-runtime` | Запити до каталогів на основі конфігурації/усунення дублікатів |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
| Підшлях | Ключові експорти |
| --- | --- |
- | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також конструктори media payload |
+ | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також побудовники media payload |
| `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-understanding` | Типи провайдерів media understanding, а також provider-facing експорти допоміжних засобів для зображень/аудіо |
+ | `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, як-от видалення тексту, видимого асистенту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування чутливих даних, допоміжні засоби directive-tag і утиліти safe-text |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
- | `plugin-sdk/speech` | Типи провайдера мовлення, а також орієнтовані на провайдера допоміжні засоби директив, реєстру й валідації |
- | `plugin-sdk/speech-core` | Спільні типи провайдера мовлення, допоміжні засоби реєстру, директив і нормалізації |
- | `plugin-sdk/realtime-transcription` | Типи провайдера транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб WebSocket-сесії |
- | `plugin-sdk/realtime-voice` | Типи провайдера голосу в реальному часі та допоміжні засоби реєстру |
- | `plugin-sdk/image-generation` | Типи провайдера генерації зображень |
- | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і реєстру |
+ | `plugin-sdk/speech` | Типи speech provider, а також provider-facing допоміжні засоби directive, registry і validation |
+ | `plugin-sdk/speech-core` | Спільні типи speech provider, а також допоміжні засоби registry, directive і normalization |
+ | `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби registry і спільний допоміжний засіб WebSocket session |
+ | `plugin-sdk/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/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера та парсинг model-ref |
| `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео |
- | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера та розбір model-ref |
- | `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і допоміжні засоби встановлення route |
+ | `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 |
@@ -239,13 +240,13 @@ x-i18n:
| Підшлях | Ключові експорти |
| --- | --- |
- | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для менеджера/конфігурації/файлів/CLI |
- | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексації/пошуку пам’яті |
+ | `plugin-sdk/memory-core` | Допоміжна surface bundled memory-core для допоміжних засобів manager/config/file/CLI |
+ | `plugin-sdk/memory-core-engine-runtime` | Runtime facade індексу/пошуку пам’яті |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті |
- | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embeddings хоста пам’яті, доступ до реєстру, локальний провайдер і загальні допоміжні засоби batch/remote |
+ | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до registry, локальний provider і загальні допоміжні засоби batch/remote |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті |
- | `plugin-sdk/memory-core-host-multimodal` | Багатомодальні допоміжні засоби хоста пам’яті |
+ | `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті |
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті |
@@ -253,28 +254,28 @@ x-i18n:
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті |
- | `plugin-sdk/memory-host-core` | Нейтральний до постачальника псевдонім для допоміжних засобів core runtime хоста пам’яті |
- | `plugin-sdk/memory-host-events` | Нейтральний до постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті |
- | `plugin-sdk/memory-host-files` | Нейтральний до постачальника псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
- | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для плагінів, суміжних із пам’яттю |
- | `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до менеджера пошуку |
- | `plugin-sdk/memory-host-status` | Нейтральний до постачальника псевдонім для допоміжних засобів статусу хоста пам’яті |
- | `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
+ | `plugin-sdk/memory-host-core` | Vendor-neutral псевдонім для допоміжних засобів core runtime хоста пам’яті |
+ | `plugin-sdk/memory-host-events` | Vendor-neutral псевдонім для допоміжних засобів журналу подій хоста пам’яті |
+ | `plugin-sdk/memory-host-files` | Vendor-neutral псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
+ | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби managed-markdown для плагінів, суміжних із пам’яттю |
+ | `plugin-sdk/memory-host-search` | Runtime facade Active Memory для доступу до search-manager |
+ | `plugin-sdk/memory-host-status` | Vendor-neutral псевдонім для допоміжних засобів статусу хоста пам’яті |
+ | `plugin-sdk/memory-lancedb` | Допоміжна surface 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-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-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 функцій/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
+ | 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-support` лишається compatibility 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 surface bundled Matrix |
+ | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Допоміжна/runtime surface bundled LINE |
+ | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Допоміжна 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` | Seams сумісності/допоміжних засобів 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` | Seams допоміжних засобів bundled функцій/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
-## Пов’язане
+## Пов’язані матеріали
- [Огляд Plugin SDK](/uk/plugins/sdk-overview)
- [Налаштування Plugin SDK](/uk/plugins/sdk-setup)
diff --git a/docs/uk/providers/openai.md b/docs/uk/providers/openai.md
index a375bec16..22be0a908 100644
--- a/docs/uk/providers/openai.md
+++ b/docs/uk/providers/openai.md
@@ -2,14 +2,14 @@
read_when:
- Ви хочете використовувати моделі OpenAI в OpenClaw
- Ви хочете автентифікацію за підпискою Codex замість API-ключів
- - Вам потрібна суворіша поведінка виконання агента GPT-5
+ - Вам потрібні суворіші правила виконання агента GPT-5
summary: Використовуйте OpenAI через API-ключі або підписку Codex в OpenClaw
title: OpenAI
x-i18n:
- generated_at: "2026-04-23T23:47:34Z"
+ generated_at: "2026-04-24T02:21:50Z"
model: gpt-5.4
provider: openai
- source_hash: f3445cab47caa324314c115fb968f13c2910954b685b68a17ab9228e3184fa14
+ source_hash: f9bb65b29be2b69a85663b17a68560c557ffb5303ac7afa2b27548a27397af46
source_path: providers/openai.md
workflow: 15
---
@@ -17,77 +17,77 @@ x-i18n:
OpenAI надає API для розробників для моделей GPT. OpenClaw підтримує три маршрути сімейства OpenAI. Префікс моделі визначає маршрут:
- **API key** — прямий доступ до OpenAI Platform з оплатою за використання (моделі `openai/*`)
-- **Підписка Codex через PI** — вхід через ChatGPT/Codex із доступом за підпискою (моделі `openai-codex/*`)
-- **Обв’язка app-server Codex** — нативне виконання через app-server Codex (моделі `openai/*` плюс `agents.defaults.embeddedHarness.runtime: "codex"`)
+- **Codex subscription through PI** — вхід через ChatGPT/Codex з доступом за підпискою (моделі `openai-codex/*`)
+- **Codex app-server harness** — нативне виконання через Codex app-server (`openai/*` моделі плюс `agents.defaults.embeddedHarness.runtime: "codex"`)
-OpenAI прямо підтримує використання OAuth за підпискою у зовнішніх інструментах і робочих процесах, таких як OpenClaw.
+OpenAI явно підтримує використання OAuth за підпискою у зовнішніх інструментах і робочих процесах, таких як OpenClaw.
GPT-5.5 наразі доступна в OpenClaw через маршрути підписки/OAuth:
-`openai-codex/gpt-5.5` із виконувачем PI або `openai/gpt-5.5` з
-обв’язкою app-server Codex. Прямий доступ за API-ключем для `openai/gpt-5.5`
-підтримуватиметься, щойно OpenAI увімкне GPT-5.5 у публічному API; до того часу використовуйте
-модель з доступом через API, наприклад `openai/gpt-5.4`, для конфігурацій `OPENAI_API_KEY`.
+`openai-codex/gpt-5.5` з виконавцем PI або `openai/gpt-5.5` з
+Codex app-server harness. Прямий доступ за API key для `openai/gpt-5.5`
+підтримується, щойно OpenAI увімкне GPT-5.5 у публічному API; до того часу використовуйте
+модель з доступом через API, таку як `openai/gpt-5.4`, для конфігурацій `OPENAI_API_KEY`.
## Покриття можливостей OpenClaw
-| Можливість OpenAI | Поверхня OpenClaw | Статус |
-| ------------------------- | ------------------------------------------------------ | ------------------------------------------------------ |
-| Чат / Responses | постачальник моделей `openai/` | Так |
-| Моделі підписки Codex | `openai-codex/` з OAuth `openai-codex` | Так |
-| Обв’язка app-server Codex | `openai/` з `embeddedHarness.runtime: codex` | Так |
-| Пошук у мережі на сервері | Нативний інструмент OpenAI Responses | Так, коли пошук у мережі ввімкнено і постачальника не зафіксовано |
-| Зображення | `image_generate` | Так |
-| Відео | `video_generate` | Так |
-| Перетворення тексту в мовлення | `messages.tts.provider: "openai"` / `tts` | Так |
-| Пакетне перетворення мовлення в текст | `tools.media.audio` / розуміння медіа | Так |
-| Потокове перетворення мовлення в текст | Voice Call `streaming.provider: "openai"` | Так |
-| Голос у реальному часі | Voice Call `realtime.provider: "openai"` | Так |
-| Ембедінги | постачальник ембедінгів для пам’яті | Так |
+| Можливість OpenAI | Поверхня OpenClaw | Статус |
+| ------------------------ | ----------------------------------------------------- | ------------------------------------------------------ |
+| Chat / Responses | постачальник моделей `openai/` | Так |
+| Моделі підписки Codex | `openai-codex/` з OAuth `openai-codex` | Так |
+| Codex app-server harness | `openai/` з `embeddedHarness.runtime: codex` | Так |
+| Server-side web search | нативний інструмент OpenAI Responses | Так, коли увімкнено web search і не закріплено постачальника |
+| Images | `image_generate` | Так |
+| Videos | `video_generate` | Так |
+| Text-to-speech | `messages.tts.provider: "openai"` / `tts` | Так |
+| Batch speech-to-text | `tools.media.audio` / розуміння медіа | Так |
+| Streaming speech-to-text | Voice Call `streaming.provider: "openai"` | Так |
+| Realtime voice | Voice Call `realtime.provider: "openai"` | Так |
+| Embeddings | постачальник embedding для пам’яті | Так |
## Початок роботи
-Виберіть бажаний спосіб автентифікації та виконайте кроки налаштування.
+Виберіть бажаний метод автентифікації та виконайте кроки налаштування.
- **Найкраще підходить для:** прямого доступу до API та оплати за використання.
+ **Найкраще для:** прямого доступу до API та оплати за використання.
Створіть або скопіюйте API key з [панелі OpenAI Platform](https://platform.openai.com/api-keys).
-
+
```bash
openclaw onboard --auth-choice openai-api-key
```
- Або передайте ключ безпосередньо:
+ Або передайте ключ напряму:
```bash
openclaw onboard --openai-api-key "$OPENAI_API_KEY"
```
-
+
```bash
openclaw models list --provider openai
```
- ### Підсумок маршруту
+ ### Підсумок маршрутів
| Model ref | Маршрут | Автентифікація |
- |-----------|-------|------|
- | `openai/gpt-5.4` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
- | `openai/gpt-5.4-mini` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
- | `openai/gpt-5.5` | Майбутній прямий маршрут API, щойно OpenAI увімкне GPT-5.5 в API | `OPENAI_API_KEY` |
+ |-----------|---------|----------------|
+ | `openai/gpt-5.4` | прямий API OpenAI Platform | `OPENAI_API_KEY` |
+ | `openai/gpt-5.4-mini` | прямий API OpenAI Platform | `OPENAI_API_KEY` |
+ | `openai/gpt-5.5` | майбутній прямий маршрут API, щойно OpenAI увімкне GPT-5.5 в API | `OPENAI_API_KEY` |
- `openai/*` — це прямий маршрут API-ключа OpenAI, якщо ви явно не примусите
- використовувати обв’язку app-server Codex. Сама GPT-5.5 наразі доступна лише через підписку/OAuth;
- використовуйте `openai-codex/*` для Codex OAuth через стандартний виконувач PI.
+ `openai/*` — це прямий маршрут OpenAI API за API key, якщо ви явно не примусите
+ Codex app-server harness. Сама GPT-5.5 наразі доступна лише через підписку/OAuth;
+ використовуйте `openai-codex/*` для Codex OAuth через стандартний виконавець PI.
### Приклад конфігурації
@@ -105,8 +105,8 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
-
- **Найкраще підходить для:** використання вашої підписки ChatGPT/Codex замість окремого API key. Codex cloud потребує входу в ChatGPT.
+
+ **Найкраще для:** використання вашої підписки ChatGPT/Codex замість окремого API key. Codex cloud потребує входу через ChatGPT.
@@ -114,40 +114,40 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
openclaw onboard --auth-choice openai-codex
```
- Або запустіть OAuth безпосередньо:
+ Або запустіть OAuth напряму:
```bash
openclaw models auth login --provider openai-codex
```
- Для headless-середовищ або налаштувань, де колбек працює нестабільно, додайте `--device-code`, щоб увійти через потік коду пристрою ChatGPT замість колбеку браузера localhost:
+ Для headless або несумісних зі зворотним викликом середовищ додайте `--device-code`, щоб увійти через потік device-code ChatGPT замість callback браузера localhost:
```bash
openclaw models auth login --provider openai-codex --device-code
```
-
+
```bash
openclaw config set agents.defaults.model.primary openai-codex/gpt-5.5
```
-
+
```bash
openclaw models list --provider openai-codex
```
- ### Підсумок маршруту
+ ### Підсумок маршрутів
| Model ref | Маршрут | Автентифікація |
- |-----------|-------|------|
- | `openai-codex/gpt-5.5` | ChatGPT/Codex OAuth через PI | Вхід у Codex |
- | `openai/gpt-5.5` + `embeddedHarness.runtime: "codex"` | Обв’язка app-server Codex | Автентифікація app-server Codex |
+ |-----------|---------|----------------|
+ | `openai-codex/gpt-5.5` | ChatGPT/Codex OAuth через PI | вхід Codex |
+ | `openai/gpt-5.5` + `embeddedHarness.runtime: "codex"` | Codex app-server harness | автентифікація Codex app-server |
- Продовжуйте використовувати ідентифікатор постачальника `openai-codex` для команд автентифікації/профілю. Префікс моделі
- `openai-codex/*` також є явним маршрутом PI для Codex OAuth.
+ Продовжуйте використовувати ідентифікатор постачальника `openai-codex` для команд
+ auth/profile. Префікс моделі `openai-codex/*` також є явним маршрутом PI для Codex OAuth.
### Приклад конфігурації
@@ -159,29 +159,29 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
```
- Початкове налаштування більше не імпортує матеріали OAuth із `~/.codex`. Увійдіть через OAuth у браузері (типовий варіант) або через наведений вище потік коду пристрою — OpenClaw зберігає отримані облікові дані у власному сховищі автентифікації агентів.
+ Онбординг більше не імпортує OAuth-матеріали з `~/.codex`. Увійдіть через OAuth у браузері (типово) або через потік device-code вище — OpenClaw керує отриманими обліковими даними у власному сховищі auth агента.
- ### Індикатор стану
+ ### Індикатор статусу
- У чаті `/status` показує, яка вбудована обв’язка активна для поточної
- сесії. Стандартна обв’язка PI відображається як `Runner: pi (embedded)` і
- не додає окремого значка. Коли вибрано вбудовану обв’язку app-server Codex,
- `/status` додає ідентифікатор не-PI обв’язки поруч із `Fast`, наприклад
- `Fast · codex`. Наявні сесії зберігають записаний ідентифікатор своєї обв’язки, тому використайте
+ Chat `/status` показує, який вбудований harness активний для поточної
+ сесії. Стандартний harness PI відображається як `Runner: pi (embedded)` і не
+ додає окремого значка. Коли вибрано вбудований Codex app-server harness,
+ `/status` додає ідентифікатор не-PI harness поруч із `Fast`, наприклад
+ `Fast · codex`. Наявні сесії зберігають записаний ідентифікатор harness, тож використайте
`/new` або `/reset` після зміни `embeddedHarness`, якщо хочете, щоб `/status`
відображав новий вибір PI/Codex.
- ### Обмеження контекстного вікна
+ ### Обмеження вікна контексту
- OpenClaw розглядає метадані моделі та обмеження контексту під час виконання як окремі значення.
+ OpenClaw розглядає метадані моделі та ліміт контексту середовища виконання як окремі значення.
Для `openai-codex/gpt-5.5` через Codex OAuth:
- - Нативне `contextWindow`: `1000000`
- - Стандартне обмеження `contextTokens` під час виконання: `272000`
+ - Нативний `contextWindow`: `1000000`
+ - Стандартний ліміт `contextTokens` середовища виконання: `272000`
- Менше стандартне обмеження на практиці дає кращу затримку та якість. Замініть його через `contextTokens`:
+ Менший стандартний ліміт на практиці має кращі характеристики затримки та якості. Перевизначте його через `contextTokens`:
```json5
{
@@ -196,7 +196,7 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
```
- Використовуйте `contextWindow`, щоб оголосити нативні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання.
+ Використовуйте `contextWindow`, щоб оголосити нативні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту середовища виконання.
@@ -205,18 +205,18 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
## Генерація зображень
Вбудований Plugin `openai` реєструє генерацію зображень через інструмент `image_generate`.
-Він підтримує як генерацію зображень OpenAI за API-ключем, так і генерацію зображень
-через Codex OAuth через той самий Model ref `openai/gpt-image-2`.
+Він підтримує як генерацію зображень OpenAI за API key, так і генерацію зображень
+через Codex OAuth через той самий ідентифікатор моделі `openai/gpt-image-2`.
-| Можливість | API key OpenAI | Codex OAuth |
-| ------------------------- | ---------------------------------- | ------------------------------------ |
-| Model ref | `openai/gpt-image-2` | `openai/gpt-image-2` |
-| Автентифікація | `OPENAI_API_KEY` | Вхід через OpenAI Codex OAuth |
-| Транспорт | OpenAI Images API | Бекенд Codex Responses |
-| Макс. зображень за запит | 4 | 4 |
-| Режим редагування | Увімкнено (до 5 еталонних зображень) | Увімкнено (до 5 еталонних зображень) |
-| Перевизначення розміру | Підтримується, зокрема розміри 2K/4K | Підтримується, зокрема розміри 2K/4K |
-| Співвідношення сторін / роздільна здатність | Не передається до OpenAI Images API | За потреби зіставляється з підтримуваним розміром |
+| Можливість | API key OpenAI | Codex OAuth |
+| ------------------------ | ---------------------------------- | ----------------------------------- |
+| Model ref | `openai/gpt-image-2` | `openai/gpt-image-2` |
+| Автентифікація | `OPENAI_API_KEY` | вхід через OpenAI Codex OAuth |
+| Транспорт | OpenAI Images API | бекенд Codex Responses |
+| Максимум зображень на запит | 4 | 4 |
+| Режим редагування | Увімкнено (до 5 еталонних зображень) | Увімкнено (до 5 еталонних зображень) |
+| Перевизначення розміру | Підтримується, включно з розмірами 2K/4K | Підтримується, включно з розмірами 2K/4K |
+| Співвідношення сторін / роздільність | Не передається до OpenAI Images API | За потреби зіставляється з підтримуваним розміром |
```json5
{
@@ -229,24 +229,22 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
```
-Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір постачальника та поведінку резервного перемикання.
+Див. [Генерація зображень](/uk/tools/image-generation) для спільних параметрів інструмента, вибору постачальника та поведінки failover.
-`gpt-image-2` є стандартною моделлю як для генерації зображень із тексту OpenAI, так і для
+`gpt-image-2` є стандартним для генерації тексту в зображення OpenAI та
редагування зображень. `gpt-image-1` залишається доступною як явне перевизначення моделі, але нові
робочі процеси OpenAI для зображень мають використовувати `openai/gpt-image-2`.
-Для інсталяцій із Codex OAuth використовуйте той самий ref `openai/gpt-image-2`. Коли
-налаштовано OAuth-профіль `openai-codex`, OpenClaw визначає цей збережений токен
-доступу OAuth і надсилає запити на зображення через бекенд Codex Responses. Він
-не намагається спочатку використати `OPENAI_API_KEY` і не виконує тихого резервного переходу на API key для цього
+Для інсталяцій Codex OAuth зберігайте той самий ідентифікатор `openai/gpt-image-2`. Коли
+налаштовано OAuth-профіль `openai-codex`, OpenClaw знаходить цей збережений токен доступу OAuth
+і надсилає запити на зображення через бекенд Codex Responses. Він
+не спочатку пробує `OPENAI_API_KEY` і не виконує тихий відкат до API key для цього
запиту. Явно налаштуйте `models.providers.openai` з API key,
-власним base URL або кінцевою точкою Azure, якщо хочете використовувати
-прямий маршрут OpenAI Images API.
-Якщо ця власна кінцева точка зображень розташована у довіреній LAN/приватній адресі, також установіть
-`browser.ssrfPolicy.dangerouslyAllowPrivateNetwork: true`; OpenClaw і надалі
-блокує приватні/внутрішні OpenAI-сумісні кінцеві точки зображень, якщо цей явний дозвіл
-не задано.
+власним base URL або endpoint Azure, якщо вам потрібен прямий маршрут OpenAI Images API.
+Якщо цей користувацький endpoint для зображень розташований у довіреній LAN/приватній адресі, також встановіть
+`browser.ssrfPolicy.dangerouslyAllowPrivateNetwork: true`; OpenClaw зберігає
+блокування приватних/внутрішніх OpenAI-сумісних endpoint для зображень, якщо не задано цей явний дозвіл.
Генерація:
@@ -264,12 +262,12 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
Вбудований Plugin `openai` реєструє генерацію відео через інструмент `video_generate`.
-| Можливість | Значення |
-| ---------------- | --------------------------------------------------------------------------------- |
-| Стандартна модель | `openai/sora-2` |
-| Режими | Текст у відео, зображення у відео, редагування одного відео |
-| Еталонні вхідні дані | 1 зображення або 1 відео |
-| Перевизначення розміру | Підтримується |
+| Можливість | Значення |
+| --------------- | --------------------------------------------------------------------------------- |
+| Стандартна модель | `openai/sora-2` |
+| Режими | Текст у відео, зображення у відео, редагування одного відео |
+| Еталонні входи | 1 зображення або 1 відео |
+| Перевизначення розміру | Підтримується |
| Інші перевизначення | `aspectRatio`, `resolution`, `audio`, `watermark` ігноруються з попередженням інструмента |
```json5
@@ -283,25 +281,25 @@ GPT-5.5 наразі доступна в OpenClaw через маршрути п
```
-Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір постачальника та поведінку резервного перемикання.
+Див. [Генерація відео](/uk/tools/video-generation) для спільних параметрів інструмента, вибору постачальника та поведінки failover.
-## Внесок у підказку GPT-5
+## Внесок до підказки GPT-5
-OpenClaw додає спільний внесок у підказку GPT-5 для запусків сімейства GPT-5 у різних постачальників. Він застосовується за ідентифікатором моделі, тож `openai-codex/gpt-5.5`, `openai/gpt-5.4`, `openrouter/openai/gpt-5.5`, `opencode/gpt-5.5` та інші сумісні посилання GPT-5 отримують однакове накладання. Старіші моделі GPT-4.x — ні.
+OpenClaw додає спільний внесок до підказки GPT-5 для запусків сімейства GPT-5 у всіх постачальників. Він застосовується за ідентифікатором моделі, тож `openai-codex/gpt-5.5`, `openai/gpt-5.4`, `openrouter/openai/gpt-5.5`, `opencode/gpt-5.5` та інші сумісні ідентифікатори GPT-5 отримують той самий шар. Старіші моделі GPT-4.x — ні.
-Вбудована нативна обв’язка Codex використовує ту саму поведінку GPT-5 і накладання Heartbeat через інструкції розробника app-server Codex, тож сесії `openai/gpt-5.x`, примусово спрямовані через `embeddedHarness.runtime: "codex"`, зберігають ті самі настанови щодо доведення справ до кінця та проактивного Heartbeat, навіть попри те, що рештою підказки обв’язки керує Codex.
+Вбудований нативний Codex harness використовує ту саму поведінку GPT-5 і шар Heartbeat через інструкції розробника Codex app-server, тому сесії `openai/gpt-5.x`, примусово спрямовані через `embeddedHarness.runtime: "codex"`, зберігають ті самі настанови щодо доведення виконання до кінця та проактивного Heartbeat, хоча рештою підказки harness керує Codex.
-Внесок GPT-5 додає позначений контракт поведінки для сталості персони, безпеки виконання, дисципліни використання інструментів, форми виводу, перевірок завершення та верифікації. Специфічна для каналу поведінка відповідей і тихих повідомлень залишається у спільній системній підказці OpenClaw та політиці вихідної доставки. Настанови GPT-5 завжди ввімкнені для відповідних моделей. Рівень дружнього стилю взаємодії є окремим і налаштовуваним.
+Внесок GPT-5 додає тегований контракт поведінки для збереження персони, безпеки виконання, дисципліни використання інструментів, форми виводу, перевірок завершення та верифікації. Специфічна для каналу поведінка відповідей і тихих повідомлень залишається в спільній системній підказці OpenClaw і політиці вихідної доставки. Настанови GPT-5 завжди ввімкнені для відповідних моделей. Рівень дружнього стилю взаємодії є окремим і налаштовуваним.
| Значення | Ефект |
| ---------------------- | ------------------------------------------ |
-| `"friendly"` (стандартно) | Увімкнути рівень дружнього стилю взаємодії |
+| `"friendly"` (типово) | Увімкнути рівень дружнього стилю взаємодії |
| `"on"` | Псевдонім для `"friendly"` |
| `"off"` | Вимкнути лише рівень дружнього стилю |
-
+
```json5
{
agents: {
@@ -322,11 +320,11 @@ OpenClaw додає спільний внесок у підказку GPT-5 дл
-Під час виконання значення нечутливі до регістру, тож і `"Off"`, і `"off"` вимикають рівень дружнього стилю.
+Значення нечутливі до регістру під час виконання, тому і `"Off"`, і `"off"` вимикають рівень дружнього стилю.
-Застаріле `plugins.entries.openai.config.personality` усе ще зчитується як сумісний резервний варіант, коли спільне налаштування `agents.defaults.promptOverlays.gpt5.personality` не задане.
+Застаріле `plugins.entries.openai.config.personality` усе ще читається як сумісний fallback, коли спільне налаштування `agents.defaults.promptOverlays.gpt5.personality` не задано.
## Голос і мовлення
@@ -335,14 +333,14 @@ OpenClaw додає спільний внесок у підказку GPT-5 дл
Вбудований Plugin `openai` реєструє синтез мовлення для поверхні `messages.tts`.
- | Параметр | Шлях конфігурації | Стандартно |
+ | Налаштування | Шлях конфігурації | Типово |
|---------|------------|---------|
| Модель | `messages.tts.providers.openai.model` | `gpt-4o-mini-tts` |
| Голос | `messages.tts.providers.openai.voice` | `coral` |
| Швидкість | `messages.tts.providers.openai.speed` | (не задано) |
| Інструкції | `messages.tts.providers.openai.instructions` | (не задано, лише `gpt-4o-mini-tts`) |
| Формат | `messages.tts.providers.openai.responseFormat` | `opus` для голосових нотаток, `mp3` для файлів |
- | API key | `messages.tts.providers.openai.apiKey` | Резервно використовує `OPENAI_API_KEY` |
+ | API key | `messages.tts.providers.openai.apiKey` | Використовує `OPENAI_API_KEY` як fallback |
| Base URL | `messages.tts.providers.openai.baseUrl` | `https://api.openai.com/v1` |
Доступні моделі: `gpt-4o-mini-tts`, `tts-1`, `tts-1-hd`. Доступні голоси: `alloy`, `ash`, `ballad`, `cedar`, `coral`, `echo`, `fable`, `juniper`, `marin`, `onyx`, `nova`, `sage`, `shimmer`, `verse`.
@@ -360,19 +358,19 @@ OpenClaw додає спільний внесок у підказку GPT-5 дл
```
- Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL TTS, не впливаючи на кінцеву точку API чату.
+ Встановіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL TTS без впливу на endpoint chat API.
-
+
Вбудований Plugin `openai` реєструє пакетне перетворення мовлення в текст через
- поверхню транскрибування для розуміння медіа в OpenClaw.
+ поверхню транскрибування розуміння медіа OpenClaw.
- Стандартна модель: `gpt-4o-transcribe`
- - Кінцева точка: OpenAI REST `/v1/audio/transcriptions`
- - Шлях вхідних даних: multipart-вивантаження аудіофайлу
- - Підтримується в OpenClaw усюди, де транскрибування вхідного аудіо використовує
+ - Endpoint: OpenAI REST `/v1/audio/transcriptions`
+ - Шлях введення: multipart-завантаження аудіофайлу
+ - Підтримується в OpenClaw всюди, де транскрибування вхідного аудіо використовує
`tools.media.audio`, зокрема для сегментів голосових каналів Discord і
аудіовкладень каналів
@@ -396,25 +394,25 @@ OpenClaw додає спільний внесок у підказку GPT-5 дл
}
```
- Підказки мови й prompt пересилаються до OpenAI, якщо вони задані
- спільною конфігурацією аудіомедіа або в запиті на транскрибування для окремого виклику.
+ Підказки щодо мови та prompt передаються до OpenAI, коли їх задано у
+ спільній конфігурації аудіомедіа або в запиті на транскрибування для конкретного виклику.
Вбудований Plugin `openai` реєструє транскрибування в реальному часі для Plugin Voice Call.
- | Параметр | Шлях конфігурації | Стандартно |
+ | Налаштування | Шлях конфігурації | Типово |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.streaming.providers.openai.model` | `gpt-4o-transcribe` |
| Мова | `...openai.language` | (не задано) |
| Prompt | `...openai.prompt` | (не задано) |
| Тривалість тиші | `...openai.silenceDurationMs` | `800` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
- | API key | `...openai.apiKey` | Резервно використовує `OPENAI_API_KEY` |
+ | API key | `...openai.apiKey` | Використовує `OPENAI_API_KEY` як fallback |
- Використовує WebSocket-з’єднання з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей постачальник потокового режиму призначений для шляху транскрибування в реальному часі у Voice Call; голос у Discord зараз записує короткі сегменти й натомість використовує пакетний шлях транскрибування `tools.media.audio`.
+ Використовує WebSocket-з’єднання з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей streaming provider призначений для шляху транскрибування в реальному часі в Voice Call; голосові канали Discord наразі записують короткі сегменти та натомість використовують пакетний шлях транскрибування `tools.media.audio`.
@@ -422,45 +420,46 @@ OpenClaw додає спільний внесок у підказку GPT-5 дл
Вбудований Plugin `openai` реєструє голос у реальному часі для Plugin Voice Call.
- | Параметр | Шлях конфігурації | Стандартно |
+ | Налаштування | Шлях конфігурації | Типово |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.realtime.providers.openai.model` | `gpt-realtime-1.5` |
| Голос | `...openai.voice` | `alloy` |
| Temperature | `...openai.temperature` | `0.8` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
| Тривалість тиші | `...openai.silenceDurationMs` | `500` |
- | API key | `...openai.apiKey` | Резервно використовує `OPENAI_API_KEY` |
+ | API key | `...openai.apiKey` | Використовує `OPENAI_API_KEY` як fallback |
- Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двоспрямований виклик інструментів. Використовує аудіоформат G.711 u-law.
+ Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двонаправлений виклик інструментів. Використовує аудіоформат G.711 u-law.
-## Кінцеві точки Azure OpenAI
+## Endpoint Azure OpenAI
-Вбудований постачальник `openai` може спрямовувати запити до ресурсу Azure OpenAI для
-генерації зображень через перевизначення базового URL. На шляху генерації зображень OpenClaw
-визначає імена хостів Azure у `models.providers.openai.baseUrl` і автоматично перемикається на
-форму запиту Azure.
+Вбудований постачальник `openai` може звертатися до ресурсу Azure OpenAI для
+генерації зображень шляхом перевизначення base URL. На шляху генерації
+зображень OpenClaw виявляє імена хостів Azure у `models.providers.openai.baseUrl` і автоматично
+перемикається на формат запиту Azure.
Голос у реальному часі використовує окремий шлях конфігурації
(`plugins.entries.voice-call.config.realtime.providers.openai.azureEndpoint`)
-і на нього не впливає `models.providers.openai.baseUrl`. Див. акордеон **Голос у реальному
-часі** в розділі [Голос і мовлення](#voice-and-speech), щоб переглянути налаштування Azure.
+і не залежить від `models.providers.openai.baseUrl`. Див. акордеон **Голос у реальному
+часі** в розділі [Голос і мовлення](#voice-and-speech) для його налаштувань
+Azure.
Використовуйте Azure OpenAI, коли:
- У вас уже є підписка Azure OpenAI, квота або корпоративна угода
-- Вам потрібна регіональна локалізація даних або механізми відповідності вимогам, які надає Azure
-- Ви хочете залишити трафік у межах наявного тенанту Azure
+- Вам потрібна регіональна локалізація даних або засоби контролю відповідності, які надає Azure
+- Ви хочете зберігати трафік у межах наявного тенанта Azure
### Конфігурація
-Для генерації зображень через Azure за допомогою вбудованого постачальника `openai` вкажіть
+Для генерації зображень Azure через вбудований постачальник `openai`, вкажіть
`models.providers.openai.baseUrl` на ваш ресурс Azure і встановіть `apiKey` у
ключ Azure OpenAI (а не ключ OpenAI Platform):
@@ -477,80 +476,81 @@ OpenClaw додає спільний внесок у підказку GPT-5 дл
}
```
-OpenClaw розпізнає такі суфікси хостів Azure для маршруту генерації зображень Azure:
+OpenClaw розпізнає такі суфікси хостів Azure для маршруту Azure генерації
+зображень:
- `*.openai.azure.com`
- `*.services.ai.azure.com`
- `*.cognitiveservices.azure.com`
-Для запитів на генерацію зображень на розпізнаному хості Azure OpenClaw:
+Для запитів генерації зображень на розпізнаному хості Azure OpenClaw:
- Надсилає заголовок `api-key` замість `Authorization: Bearer`
-- Використовує шляхи з областю deployment (`/openai/deployments/{deployment}/...`)
+- Використовує шляхи в межах deployment (`/openai/deployments/{deployment}/...`)
- Додає `?api-version=...` до кожного запиту
Інші base URL (публічний OpenAI, OpenAI-сумісні проксі) зберігають стандартну
-форму запиту на зображення OpenAI.
+форму запиту OpenAI для зображень.
Маршрутизація Azure для шляху генерації зображень постачальника `openai`
-потребує OpenClaw 2026.4.22 або новішої версії. Раніші версії обробляють будь-який власний
-`openai.baseUrl` як публічну кінцеву точку OpenAI і не працюватимуть із deployment
+потребує OpenClaw 2026.4.22 або новішої версії. Раніші версії обробляють будь-який
+власний `openai.baseUrl` як публічний endpoint OpenAI і завершуються помилкою при роботі з deployment
зображень Azure.
### Версія API
-Установіть `AZURE_OPENAI_API_VERSION`, щоб зафіксувати конкретну preview- або GA-версію Azure
+Встановіть `AZURE_OPENAI_API_VERSION`, щоб зафіксувати конкретну preview- або GA-версію Azure
для шляху генерації зображень Azure:
```bash
export AZURE_OPENAI_API_VERSION="2024-12-01-preview"
```
-Якщо змінну не задано, стандартно використовується `2024-12-01-preview`.
+Типове значення — `2024-12-01-preview`, якщо змінну не встановлено.
-### Імена моделей — це імена deployment
+### Назви моделей — це назви deployment
-Azure OpenAI прив’язує моделі до deployment. Для запитів на генерацію зображень Azure,
-маршрутизованих через вбудованого постачальника `openai`, поле `model` в OpenClaw
-має бути **іменем deployment Azure**, яке ви налаштували в порталі Azure, а не
-ідентифікатором публічної моделі OpenAI.
+Azure OpenAI прив’язує моделі до deployment. Для запитів генерації зображень Azure,
+маршрутизованих через вбудований постачальник `openai`, поле `model` в OpenClaw
+має бути **назвою deployment Azure**, яку ви налаштували в порталі Azure, а не
+публічним ідентифікатором моделі OpenAI.
-Якщо ви створили deployment з назвою `gpt-image-2-prod`, який обслуговує `gpt-image-2`:
+Якщо ви створили deployment під назвою `gpt-image-2-prod`, який обслуговує `gpt-image-2`:
```
/tool image_generate model=openai/gpt-image-2-prod prompt="A clean poster" size=1024x1024 count=1
```
-Те саме правило імен deployment застосовується до викликів генерації зображень,
-маршрутизованих через вбудованого постачальника `openai`.
+Те саме правило назв deployment застосовується до викликів генерації зображень,
+маршрутизованих через вбудований постачальник `openai`.
### Регіональна доступність
-Генерація зображень Azure наразі доступна лише в обмеженому наборі регіонів
+Генерація зображень Azure наразі доступна лише в частині регіонів
(наприклад, `eastus2`, `swedencentral`, `polandcentral`, `westus3`,
-`uaenorth`). Перед створенням deployment перевірте актуальний список регіонів Microsoft
-і підтвердьте, що потрібна модель доступна у вашому регіоні.
+`uaenorth`). Перевірте актуальний список регіонів Microsoft перед створенням
+deployment і підтвердьте, що конкретна модель доступна у вашому регіоні.
### Відмінності параметрів
Azure OpenAI і публічний OpenAI не завжди приймають однакові параметри зображень.
-Azure може відхиляти параметри, які дозволяє публічний OpenAI (наприклад, певні
-значення `background` у `gpt-image-2`), або надавати їх лише в окремих версіях
-моделей. Ці відмінності походять від Azure та базової моделі, а не від
-OpenClaw. Якщо запит Azure завершується помилкою валідації, перевірте набір
-параметрів, які підтримує ваш конкретний deployment і версія API, у
+Azure може відхиляти опції, які дозволяє публічний OpenAI (наприклад, певні
+значення `background` у `gpt-image-2`) або надавати їх лише для конкретних
+версій моделі. Ці відмінності походять від Azure та базової моделі, а не від
+OpenClaw. Якщо запит Azure завершується помилкою валідації, перевірте
+набір параметрів, який підтримує ваш конкретний deployment і версія API в
порталі Azure.
Azure OpenAI використовує нативний транспорт і сумісну поведінку, але не отримує
-приховані заголовки атрибуції OpenClaw — див. акордеон **Нативні маршрути проти OpenAI-сумісних**
-у розділі [Розширена конфігурація](#advanced-configuration).
+приховані заголовки атрибуції OpenClaw — див. акордеон **Нативні та OpenAI-сумісні
+маршрути** в розділі [Розширена конфігурація](#advanced-configuration).
-Для трафіку чату або Responses на Azure (окрім генерації зображень) використовуйте
-потік початкового налаштування або окрему конфігурацію постачальника Azure — одного лише `openai.baseUrl`
-недостатньо, щоб застосувати форму API/автентифікації Azure. Існує окремий
+Для трафіку chat або Responses на Azure (окрім генерації зображень) використовуйте
+процес онбордингу або окрему конфігурацію постачальника Azure — одного лише
+`openai.baseUrl` недостатньо, щоб увімкнути форму API/автентифікації Azure. Існує окремий
постачальник `azure-openai-responses/*`; див.
акордеон Server-side Compaction нижче.
@@ -558,18 +558,18 @@ Azure OpenAI використовує нативний транспорт і с
## Розширена конфігурація
-
- OpenClaw використовує WebSocket-first із резервним переходом на SSE (`"auto"`) і для `openai/*`, і для `openai-codex/*`.
+
+ OpenClaw використовує спочатку WebSocket з fallback на SSE (`"auto"`) як для `openai/*`, так і для `openai-codex/*`.
У режимі `"auto"` OpenClaw:
- Повторює одну ранню помилку WebSocket перед переходом на SSE
- - Після помилки позначає WebSocket як degraded приблизно на 60 секунд і використовує SSE під час охолодження
- - Додає стабільні заголовки ідентичності сесії та ходу для повторних спроб і перепідключень
+ - Після помилки позначає WebSocket як деградований приблизно на 60 секунд і використовує SSE під час охолодження
+ - Додає стабільні заголовки ідентичності сесії та ходу для повторних спроб і повторних підключень
- Нормалізує лічильники використання (`input_tokens` / `prompt_tokens`) між варіантами транспорту
| Значення | Поведінка |
|-------|----------|
- | `"auto"` (стандартно) | Спочатку WebSocket, резервно SSE |
+ | `"auto"` (типово) | Спочатку WebSocket, fallback на SSE |
| `"sse"` | Примусово лише SSE |
| `"websocket"` | Примусово лише WebSocket |
@@ -591,16 +591,16 @@ Azure OpenAI використовує нативний транспорт і с
```
Пов’язана документація OpenAI:
- - [Realtime API з WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
- - [Потокові відповіді API (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
+ - [Realtime API with WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
+ - [Streaming API responses (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
-
- OpenClaw стандартно вмикає розігрів WebSocket для `openai/*` і `openai-codex/*`, щоб зменшити затримку першого ходу.
+
+ OpenClaw типово вмикає прогрів WebSocket для `openai/*` і `openai-codex/*`, щоб зменшити затримку першого ходу.
```json5
- // Вимкнути розігрів
+ // Disable warm-up
{
agents: {
defaults: {
@@ -616,13 +616,13 @@ Azure OpenAI використовує нативний транспорт і с
-
- OpenClaw надає спільний перемикач швидкого режиму для `openai/*` і `openai-codex/*`:
+
+ OpenClaw надає спільний перемикач Fast mode для `openai/*` і `openai-codex/*`:
- - **Чат/UI:** `/fast status|on|off`
- - **Конфігурація:** `agents.defaults.models["/"].params.fastMode`
+ - **Chat/UI:** `/fast status|on|off`
+ - **Config:** `agents.defaults.models["/"].params.fastMode`
- Коли ввімкнено, OpenClaw зіставляє швидкий режим із пріоритетною обробкою OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, і швидкий режим не переписує `reasoning` або `text.verbosity`.
+ Коли ввімкнено, OpenClaw зіставляє fast mode з пріоритетною обробкою OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, а fast mode не переписує `reasoning` або `text.verbosity`.
```json5
{
@@ -637,13 +637,13 @@ Azure OpenAI використовує нативний транспорт і с
```
- Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в UI сесій повертає сесію до налаштованого стандартного значення.
+ Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в UI Sessions повертає сесію до налаштованого типового значення.
- API OpenAI надає пріоритетну обробку через `service_tier`. Установіть її для кожної моделі в OpenClaw:
+ API OpenAI надає пріоритетну обробку через `service_tier`. Встановіть її для кожної моделі в OpenClaw:
```json5
{
@@ -660,21 +660,23 @@ Azure OpenAI використовує нативний транспорт і с
Підтримувані значення: `auto`, `default`, `flex`, `priority`.
- `serviceTier` пересилається лише до нативних кінцевих точок OpenAI (`api.openai.com`) і нативних кінцевих точок Codex (`chatgpt.com/backend-api`). Якщо ви спрямовуєте будь-якого з цих постачальників через проксі, OpenClaw залишає `service_tier` без змін.
+ `serviceTier` передається лише до нативних endpoint OpenAI (`api.openai.com`) і нативних endpoint Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-якого з цих постачальників через проксі, OpenClaw залишає `service_tier` без змін.
- Для прямих моделей OpenAI Responses (`openai/*` на `api.openai.com`) OpenClaw автоматично вмикає Server-side Compaction:
+ Для прямих моделей OpenAI Responses (`openai/*` на `api.openai.com`) обгортка потоку Pi-harness Plugin OpenAI автоматично вмикає server-side Compaction:
- - Примусово встановлює `store: true` (якщо compat моделі не задає `supportsStore: false`)
+ - Примусово встановлює `store: true` (якщо сумісність моделі не задає `supportsStore: false`)
- Впроваджує `context_management: [{ type: "compaction", compact_threshold: ... }]`
- - Стандартний `compact_threshold`: 70% від `contextWindow` (або `80000`, коли значення недоступне)
+ - Типовий `compact_threshold`: 70% від `contextWindow` (або `80000`, коли значення недоступне)
+
+ Це застосовується до вбудованого шляху Pi harness і до хуків постачальника OpenAI, які використовуються вбудованими запусками. Нативний Codex app-server harness керує власним контекстом через Codex і налаштовується окремо через `agents.defaults.embeddedHarness.runtime`.
-
- Корисно для сумісних кінцевих точок, як-от Azure OpenAI Responses:
+
+ Корисно для сумісних endpoint, таких як Azure OpenAI Responses:
```json5
{
@@ -708,7 +710,7 @@ Azure OpenAI використовує нативний транспорт і с
}
```
-
+
```json5
{
agents: {
@@ -726,7 +728,7 @@ Azure OpenAI використовує нативний транспорт і с
- `responsesServerCompaction` керує лише впровадженням `context_management`. Прямі моделі OpenAI Responses однаково примусово встановлюють `store: true`, якщо compat не задає `supportsStore: false`.
+ `responsesServerCompaction` керує лише впровадженням `context_management`. Прямі моделі OpenAI Responses однаково примусово встановлюють `store: true`, якщо сумісність не задає `supportsStore: false`.
@@ -745,32 +747,32 @@ Azure OpenAI використовує нативний транспорт і с
```
З `strict-agentic` OpenClaw:
- - Більше не вважає хід лише з планом успішним прогресом, коли доступна дія через інструмент
+ - Більше не вважає хід лише з планом успішним прогресом, коли доступна дія з інструментом
- Повторює хід із вказівкою діяти негайно
- Автоматично вмикає `update_plan` для суттєвої роботи
- Показує явний заблокований стан, якщо модель продовжує планувати без дії
- Застосовується лише до запусків сімейства GPT-5 OpenAI і Codex. Інші постачальники та старіші сімейства моделей зберігають стандартну поведінку.
+ Обмежено лише запусками сімейства GPT-5 OpenAI та Codex. Інші постачальники й старіші сімейства моделей зберігають типову поведінку.
-
- OpenClaw по-різному обробляє прямі кінцеві точки OpenAI, Codex і Azure OpenAI порівняно із загальними OpenAI-сумісними проксі `/v1`:
+
+ OpenClaw по-різному обробляє прямі endpoint OpenAI, Codex і Azure OpenAI та загальні OpenAI-сумісні проксі `/v1`:
**Нативні маршрути** (`openai/*`, Azure OpenAI):
- Зберігають `reasoning: { effort: "none" }` лише для моделей, які підтримують OpenAI `none` effort
- - Пропускають вимкнене reasoning для моделей або проксі, що відхиляють `reasoning.effort: "none"`
- - Стандартно використовують строгий режим для схем інструментів
+ - Пропускають вимкнений reasoning для моделей або проксі, які відхиляють `reasoning.effort: "none"`
+ - Типово використовують строгий режим для схем інструментів
- Додають приховані заголовки атрибуції лише на перевірених нативних хостах
- - Зберігають форму запитів, властиву лише OpenAI (`service_tier`, `store`, сумісність reasoning, підказки кешу prompt)
+ - Зберігають формування запитів, специфічне для OpenAI (`service_tier`, `store`, сумісність reasoning, підказки кешу prompt)
- **Проксі/сумісні маршрути:**
- - Використовують м’якшу compat-поведінку
- - Не примушують строгі схеми інструментів або заголовки, доступні лише для нативних маршрутів
+ **Маршрути проксі/сумісності:**
+ - Використовують м’якшу сумісну поведінку
+ - Не примушують строгі схеми інструментів або заголовки лише для нативних маршрутів
- Azure OpenAI використовує нативний транспорт і compat-поведінку, але не отримує прихованих заголовків атрибуції.
+ Azure OpenAI використовує нативний транспорт і сумісну поведінку, але не отримує прихованих заголовків атрибуції.
@@ -779,15 +781,15 @@ Azure OpenAI використовує нативний транспорт і с
- Вибір постачальників, посилань на моделі та поведінки резервного перемикання.
+ Вибір постачальників, ідентифікаторів моделей і поведінки failover.
Спільні параметри інструмента зображень і вибір постачальника.
- Спільні параметри інструмента відео та вибір постачальника.
+ Спільні параметри інструмента відео і вибір постачальника.
- Подробиці автентифікації та правила повторного використання облікових даних.
+ Докладніше про автентифікацію та правила повторного використання облікових даних.