chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-30 00:34:54 +00:00
parent 61ac94ced7
commit b44a4076d4
8 changed files with 1623 additions and 1552 deletions

View File

@ -1,50 +1,54 @@
---
read_when:
- Зміна середовища виконання агента, ініціалізації робочого простору або поведінки сесії
summary: Середовище виконання агента, контракт робочого простору та ініціалізація сесії
- Зміна середовища виконання агента, ініціалізації робочого простору або поведінки сеансу
summary: Середовище виконання агента, контракт робочого простору та початкове завантаження сеансу
title: Середовище виконання агента
x-i18n:
generated_at: "2026-04-24T19:51:02Z"
model: gpt-5.4
generated_at: "2026-04-30T00:29:36Z"
model: gpt-5.5
provider: openai
source_hash: 37483fdb62d41a8f888bd362db93078dc8ecb8bb3fd19270b0234689aa82f309
source_hash: f4d65ee96cece296251d7d3a0512f12d2dfa900db0e5ffc0f37dcddae7ea55ad
source_path: concepts/agent.md
workflow: 15
workflow: 16
---
OpenClaw запускає **єдине вбудоване середовище виконання агента** — один процес агента на Gateway, із власним робочим простором, bootstrap-файлами та сховищем сесій. Ця сторінка описує контракт цього середовища виконання: що має містити робочий простір, які файли інжектуються та як відносно нього ініціалізуються сесії.
OpenClaw запускає **єдине вбудоване середовище виконання агента** — один процес агента на
Gateway, із власною робочою областю, файлами початкового завантаження та сховищем сесій. На цій сторінці
описано контракт цього середовища виконання: що має містити робоча область, які файли
інжектуються і як сесії виконують початкове завантаження відносно неї.
## Робочий простір (обов’язково)
## Робоча область (обов’язково)
OpenClaw використовує єдиний каталог робочого простору агента (`agents.defaults.workspace`) як **єдиний** робочий каталог (`cwd`) агента для інструментів і контексту.
OpenClaw використовує єдиний каталог робочої області агента (`agents.defaults.workspace`) як **єдиний** робочий каталог агента (`cwd`) для інструментів і контексту.
Рекомендовано: використовуйте `openclaw setup`, щоб створити `~/.openclaw/openclaw.json`, якщо його немає, та ініціалізувати файли робочого простору.
Рекомендовано: використовуйте `openclaw setup`, щоб створити `~/.openclaw/openclaw.json`, якщо його немає, та ініціалізувати файли робочої області.
Повна структура робочого простору + інструкція з резервного копіювання: [Робочий простір агента](/uk/concepts/agent-workspace)
Повний макет робочої області + посібник із резервного копіювання: [Робоча область агента](/uk/concepts/agent-workspace)
Якщо ввімкнено `agents.defaults.sandbox`, сесії не в `main` можуть перевизначати це за допомогою робочих просторів для кожної сесії в `agents.defaults.sandbox.workspaceRoot` (див.
Якщо `agents.defaults.sandbox` увімкнено, неосновні сесії можуть перевизначити це
робочими областями на рівні сесії в `agents.defaults.sandbox.workspaceRoot` (див.
[Конфігурація Gateway](/uk/gateway/configuration)).
## Bootstrap-файли (інжектуються)
## Файли початкового завантаження (інжектуються)
Усередині `agents.defaults.workspace` OpenClaw очікує такі редаговані користувачем файли:
Усередині `agents.defaults.workspace` OpenClaw очікує ці редаговані користувачем файли:
- `AGENTS.md`інструкції з роботи + «пам’ять»
- `AGENTS.md`робочі інструкції + “пам’ять”
- `SOUL.md` — персона, межі, тон
- `TOOLS.md`підтримувані користувачем примітки про інструменти (наприклад, `imsg`, `sag`, домовленості)
- `TOOLS.md` — нотатки про інструменти, які підтримує користувач (наприклад, `imsg`, `sag`, домовленості)
- `BOOTSTRAP.md` — одноразовий ритуал першого запуску (видаляється після завершення)
- `IDENTITY.md` — ім’я агента/вайб/емодзі
- `USER.md` — профіль користувача + бажане звертання
- `IDENTITY.md` — ім’я/настрій/емодзі агента
- `USER.md` — профіль користувача + бажана форма звертання
На першому ході нової сесії OpenClaw інжектує вміст цих файлів безпосередньо в контекст агента.
Порожні файли пропускаються. Великі файли обрізаються й усікаються з маркером, щоб промпти залишалися компактними (прочитайте файл, щоб побачити повний вміст).
Порожні файли пропускаються. Великі файли обрізаються й усікаються з маркером, щоб підказки залишалися компактними (прочитайте файл, щоб побачити повний вміст).
Якщо файл відсутній, OpenClaw інжектує один рядок-маркер «відсутній файл» (а `openclaw setup` створить безпечний типовий шаблон).
Якщо файл відсутній, OpenClaw інжектує один рядок-маркер “відсутній файл” (а `openclaw setup` створить безпечний стандартний шаблон).
`BOOTSTRAP.md` створюється лише для **абсолютно нового робочого простору** (коли немає інших bootstrap-файлів). Якщо ви видалите його після завершення ритуалу, він не повинен створюватися повторно під час наступних перезапусків.
`BOOTSTRAP.md` створюється лише для **цілком нової робочої області** (коли немає інших файлів початкового завантаження). Якщо ви видалите його після завершення ритуалу, він не повинен створюватися повторно під час наступних перезапусків.
Щоб повністю вимкнути створення bootstrap-файлів (для попередньо підготовлених робочих просторів), установіть:
Щоб повністю вимкнути створення файлів початкового завантаження (для попередньо наповнених робочих областей), задайте:
```json5
{ agents: { defaults: { skipBootstrap: true } } }
@ -52,81 +56,83 @@ OpenClaw використовує єдиний каталог робочого
## Вбудовані інструменти
Основні інструменти (read/exec/edit/write та пов’язані системні інструменти) завжди доступні,
залежно від політики інструментів. `apply_patch` є необов’язковим і керується через
`tools.exec.applyPatch`. `TOOLS.md` **не** визначає, які інструменти існують; це
настанови щодо того, як _ви_ хочете, щоб вони використовувалися.
Основні інструменти (read/exec/edit/write і пов’язані системні інструменти) доступні завжди,
з урахуванням політики інструментів. `apply_patch` є необов’язковим і керується
`tools.exec.applyPatch`. `TOOLS.md` **не** контролює, які інструменти існують; це
інструкції щодо того, як _ви_ хочете їх використовувати.
## Skills
OpenClaw завантажує Skills із таких розташувань (від найвищого пріоритету до найнижчого):
OpenClaw завантажує Skills із цих розташувань (від найвищого пріоритету):
- Робочий простір: `<workspace>/skills`
- Skills агентів проєкту: `<workspace>/.agents/skills`
- Особисті Skills агентів: `~/.agents/skills`
- Робоча область: `<workspace>/skills`
- Skills агента проєкту: `<workspace>/.agents/skills`
- Особисті Skills агента: `~/.agents/skills`
- Керовані/локальні: `~/.openclaw/skills`
- Вбудовані (постачаються разом з установленням)
- Додаткові теки Skills: `skills.load.extraDirs`
- Вбудовані (постачаються з інсталяцією)
- Додаткові каталоги Skills: `skills.load.extraDirs`
Skills можуть керуватися конфігурацією/env (див. `skills` у [Конфігурація Gateway](/uk/gateway/configuration)).
## Межі середовища виконання
Вбудоване середовище виконання агента побудоване на ядрі агента Pi (моделі, інструменти та
конвеєр промптів). Керування сесіями, виявлення, підключення інструментів і доставка через канали
— це шари, якими поверх цього ядра володіє OpenClaw.
конвеєр підказок). Керування сесіями, виявлення, підключення інструментів і доставка
в канали — це шари, якими володіє OpenClaw поверх цього ядра.
## Сесії
Транскрипти сесій зберігаються у форматі JSONL за адресою:
Транскрипти сесій зберігаються як JSONL за адресою:
- `~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl`
ID сесії є стабільним і вибирається OpenClaw.
Застарілі теки сесій з інших інструментів не читаються.
ID сесії стабільний і вибирається OpenClaw.
Застарілі каталоги сесій з інших інструментів не читаються.
## Керування під час потокової передачі
## Скерування під час потокової передачі
Коли режим черги — `steer`, вхідні повідомлення інжектуються в поточний запуск.
Поставлене в чергу керування доставляється **після завершення поточним ходом асистента
виконання своїх викликів інструментів**, перед наступним викликом LLM. Керування більше не пропускає
решту викликів інструментів із поточного повідомлення асистента; натомість воно інжектує поставлене в чергу
повідомлення на наступній межі моделі.
Скерування в черзі доставляється **після того, як поточний хід асистента завершить
виконання своїх викликів інструментів**, перед наступним викликом LLM. Pi разом обробляє всі очікувані
повідомлення скерування для `steer`; застарілий `queue` обробляє одне повідомлення на
межу моделі. Скерування більше не пропускає решту викликів інструментів із поточного
повідомлення асистента.
Коли режим черги — `followup` або `collect`, вхідні повідомлення утримуються, доки
поточний хід не завершиться, після чого починається новий хід агента з поставленими в чергу корисними навантаженнями. Див.
[Черга](/uk/concepts/queue), щоб дізнатися про поведінку режимів + debounce/cap.
Коли режим черги — `followup` або `collect`, вхідні повідомлення утримуються до
завершення поточного ходу, а потім новий хід агента починається з поставленими в чергу корисними навантаженнями. Див.
[Черга](/uk/concepts/queue) і [Черга скерування](/uk/concepts/queue-steering), щоб дізнатися про режими
та поведінку на межах.
Потокова передача блоками надсилає завершені блоки асистента щойно вони завершуються; вона
Блокова потокова передача надсилає завершені блоки асистента щойно вони завершуються; вона
**вимкнена за замовчуванням** (`agents.defaults.blockStreamingDefault: "off"`).
Налаштовуйте межу через `agents.defaults.blockStreamingBreak` (`text_end` чи `message_end`; типово — text_end).
Керуйте м’яким розбиттям блоків на фрагменти через `agents.defaults.blockStreamingChunk` (типово —
8001200 символів; перевага надається розривам абзаців, потім новим рядкам; речення — в останню чергу).
Налаштуйте межу через `agents.defaults.blockStreamingBreak` (`text_end` проти `message_end`; за замовчуванням text_end).
Керуйте м’яким розбиттям блоків на фрагменти за допомогою `agents.defaults.blockStreamingChunk` (за замовчуванням
8001200 символів; віддає перевагу розривам абзаців, потім новим рядкам; речення — останні).
Об’єднуйте потокові фрагменти через `agents.defaults.blockStreamingCoalesce`, щоб зменшити
спам з одного рядка (об’єднання перед надсиланням на основі простою). Канали, крім Telegram, вимагають
явного `*.blockStreaming: true`, щоб увімкнути відповіді блоками.
Розгорнуті підсумки інструментів надсилаються на початку роботи інструмента (без debounce); Control UI
передає вивід інструментів потоком через події агента, коли це доступно.
спам окремими рядками (об’єднання перед надсиланням на основі простою). Канали, відмінні від Telegram, потребують
явного `*.blockStreaming: true`, щоб увімкнути блокові відповіді.
Докладні підсумки інструментів виводяться під час запуску інструмента (без debounce); Control UI
транслює вивід інструментів через події агента, коли вони доступні.
Докладніше: [Потокова передача + розбиття на фрагменти](/uk/concepts/streaming).
## Посилання на моделі
Посилання на моделі в конфігурації (наприклад, `agents.defaults.model` і `agents.defaults.models`) аналізуються розділенням за **першим** `/`.
Посилання на моделі в конфігурації (наприклад, `agents.defaults.model` і `agents.defaults.models`) розбираються поділом за **першим** `/`.
- Використовуйте `provider/model` під час налаштування моделей.
- Якщо сам ID моделі містить `/` (у стилі OpenRouter), додайте префікс провайдера (приклад: `openrouter/moonshotai/kimi-k2`).
- Якщо ви не вкажете провайдера, OpenClaw спочатку спробує псевдонім, потім — унікальний
збіг налаштованого провайдера для цього точного id моделі, і лише після цього повернеться до
налаштованого провайдера за замовчуванням. Якщо цей провайдер більше не надає
налаштовану модель за замовчуванням, OpenClaw повернеться до першої налаштованої
пари provider/model замість того, щоб показувати застаріле значення типового провайдера, який уже видалено.
- Якщо ви опустите провайдера, OpenClaw спершу спробує псевдонім, потім унікальний
збіг серед налаштованих провайдерів для саме цього ID моделі, і лише після цього повернеться
до налаштованого стандартного провайдера. Якщо цей провайдер більше не надає
налаштовану стандартну модель, OpenClaw повернеться до першого налаштованого
провайдера/моделі замість показу застарілого стандартного значення видаленого провайдера.
## Конфігурація (мінімальна)
Щонайменше налаштуйте:
Як мінімум, задайте:
- `agents.defaults.workspace`
- `channels.whatsapp.allowFrom` (наполегливо рекомендовано)
- `channels.whatsapp.allowFrom` (настійно рекомендовано)
---
@ -134,6 +140,6 @@ _Далі: [Групові чати](/uk/channels/group-messages)_ 🦞
## Пов’язане
- [Робочий простір агента](/uk/concepts/agent-workspace)
- [Маршрутизація кількох агентів](/uk/concepts/multi-agent)
- [Робоча область агента](/uk/concepts/agent-workspace)
- [Маршрутизація між кількома агентами](/uk/concepts/multi-agent)
- [Керування сесіями](/uk/concepts/session)

View File

@ -2,21 +2,21 @@
read_when:
- Пояснення, як вхідні повідомлення перетворюються на відповіді
- Уточнення сеансів, режимів постановки в чергу або поведінки потокового передавання
- Документування видимості міркування та наслідків використання
summary: Потік повідомлень, сесії, постановка в чергу та видимість міркувань
- Документування видимості міркувань і наслідків використання
summary: Потік повідомлень, сеанси, постановка в чергу та видимість міркувань
title: Повідомлення
x-i18n:
generated_at: "2026-04-29T21:53:13Z"
generated_at: "2026-04-30T00:29:52Z"
model: gpt-5.5
provider: openai
source_hash: 32e11bec46190e37fa6ce13ff876fe7c04299ae16a3690e5bbfac1d308071660
source_hash: dcfcc995995516b627993755b255a779c681b4976d2d724c0c11e87875e37b1e
source_path: concepts/messages.md
workflow: 16
---
OpenClaw обробляє вхідні повідомлення через конвеєр визначення сеансу, постановки в чергу, стримінгу, виконання інструментів і видимості міркувань. Ця сторінка показує шлях від вхідного повідомлення до відповіді.
OpenClaw обробляє вхідні повідомлення через конвеєр визначення сесії, постановки в чергу, потокового передавання, виконання інструментів і видимості міркувань. Ця сторінка показує шлях від вхідного повідомлення до відповіді.
## Потік повідомлень (загальний рівень)
## Потік повідомлень (на високому рівні)
```
Inbound message
@ -26,23 +26,23 @@ Inbound message
-> outbound replies (channel limits + chunking)
```
Ключові параметри містяться в конфігурації:
Основні параметри розміщені в конфігурації:
- `messages.*` для префіксів, чергування та поведінки груп.
- `agents.defaults.*` для стандартних налаштувань блокового стримінгу та поділу на фрагменти.
- Перевизначення каналів (`channels.whatsapp.*`, `channels.telegram.*` тощо) для обмежень і перемикачів стримінгу.
- `messages.*` для префіксів, постановки в чергу та поведінки груп.
- `agents.defaults.*` для типових значень блокового потокового передавання та поділу на фрагменти.
- Перевизначення каналів (`channels.whatsapp.*`, `channels.telegram.*` тощо) для обмежень і перемикачів потокового передавання.
Повну схему див. у [Конфігурації](/uk/gateway/configuration).
## Дедуплікація вхідних повідомлень
Канали можуть повторно доставити те саме повідомлення після перепідключення. OpenClaw зберігає короткочасний кеш за ключем канал/акаунт/учасник/сеанс/id повідомлення, щоб дублікати доставлення не запускали ще один прогін агента.
Канали можуть повторно доставити те саме повідомлення після повторного підключення. OpenClaw зберігає короткочасний кеш із ключем за каналом/обліковим записом/учасником/сесією/ідентифікатором повідомлення, щоб дубльовані доставки не запускали агента ще раз.
## Debouncing вхідних повідомлень
## Усунення брязкоту вхідних повідомлень
Швидкі послідовні повідомлення від **того самого відправника** можна об’єднувати в один хід агента через `messages.inbound`. Debouncing обмежений парою канал + розмова й використовує найновіше повідомлення для тредингу відповідей/ID.
Швидкі послідовні повідомлення від **того самого відправника** можна об’єднати в один хід агента через `messages.inbound`. Усунення брязкоту обмежується каналом + розмовою та використовує найновіше повідомлення для ланцюжків відповідей/ідентифікаторів.
Конфігурація (глобальне значення за замовчуванням + перевизначення для каналів):
Конфігурація (глобальне типове значення + перевизначення для окремих каналів):
```json5
{
@ -61,36 +61,36 @@ Inbound message
Примітки:
- Debounce застосовується до повідомлень **лише з текстом**; медіа/вкладення надсилаються негайно.
- Керівні команди обходять debouncing, щоб залишатися самостійними — **крім** випадків, коли канал явно вмикає об’єднання DM від того самого відправника (наприклад, [BlueBubbles `coalesceSameSenderDms`](/uk/channels/bluebubbles#coalescing-split-send-dms-command--url-in-one-composition)), де команди DM очікують у межах вікна debounce, щоб payload із розділеного надсилання міг приєднатися до того самого ходу агента.
- Усунення брязкоту застосовується до повідомлень **лише з текстом**; медіа/вкладення надсилаються негайно.
- Керівні команди обходять усунення брязкоту, щоб залишатися окремими — **крім** випадків, коли канал явно вмикає об’єднання приватних повідомлень від того самого відправника (наприклад, [BlueBubbles `coalesceSameSenderDms`](/uk/channels/bluebubbles#coalescing-split-send-dms-command--url-in-one-composition)), де команди в приватних повідомленнях очікують у межах вікна усунення брязкоту, щоб розділене під час надсилання корисне навантаження могло долучитися до того самого ходу агента.
## Сеанси та пристрої
## Сесії та пристрої
Сеансами володіє Gateway, а не клієнти.
Сесіями володіє Gateway, а не клієнти.
- Прямі чати згортаються в ключ основного сеансу агента.
- Групи/канали отримують власні ключі сеансів.
- Сховище сеансів і транскрипти розташовані на хості Gateway.
- Прямі чати згортаються в ключ основної сесії агента.
- Групи/канали отримують власні ключі сесій.
- Сховище сесій і транскрипти розміщені на хості Gateway.
Кілька пристроїв/каналів можуть відповідати одному сеансу, але історія не повністю синхронізується назад до кожного клієнта. Рекомендація: використовуйте один основний пристрій для довгих розмов, щоб уникати розходження контексту. Control UI і TUI завжди показують транскрипт сеансу з Gateway, тому вони є джерелом істини.
Кілька пристроїв/каналів можуть відповідати тій самій сесії, але історія не повністю синхронізується назад до кожного клієнта. Рекомендація: використовуйте один основний пристрій для довгих розмов, щоб уникнути розбіжності контексту. Control UI та TUI завжди показують транскрипт сесії, підтримуваний Gateway, тож саме вони є джерелом істини.
Докладніше: [Керування сеансами](/uk/concepts/session).
Докладніше: [Керування сесіями](/uk/concepts/session).
## Метадані результатів інструментів
`content` результату інструмента — це видимий для моделі результат. `details` результату інструмента — це runtime-метадані для відображення в UI, діагностики, доставлення медіа та plugins.
`content` результату інструмента — це результат, видимий моделі. `details` результату інструмента — це runtime-метадані для відтворення в UI, діагностики, доставки медіа та плагінів.
OpenClaw явно підтримує цю межу:
OpenClaw явно зберігає цю межу:
- `toolResult.details` вилучається перед повторним відтворенням провайдером і вхідними даними Compaction.
- Збережені транскрипти сеансів утримують лише обмежені `details`; надмірно великі метадані замінюються компактним підсумком із позначкою `persistedDetailsTruncated: true`.
- Plugins та інструменти мають класти текст, який модель повинна прочитати, у `content`, а не лише в `details`.
- `toolResult.details` вилучається перед повторним відтворенням у провайдера та вхідними даними Compaction.
- Збережені транскрипти сесій зберігають лише обмежені `details`; завеликі метадані замінюються компактним підсумком із позначкою `persistedDetailsTruncated: true`.
- Плагіни та інструменти мають розміщувати текст, який модель повинна прочитати, у `content`, а не лише в `details`.
## Тіла вхідних повідомлень і контекст історії
OpenClaw розділяє **тіло промпта** та **тіло команди**:
- `Body`: текст промпта, надісланий агенту. Він може містити оболонки каналу та необов’язкові обгортки історії.
- `Body`: текст промпта, надісланий агенту. Він може містити оболонки каналу й необов’язкові обгортки історії.
- `CommandBody`: сирий текст користувача для розбору директив/команд.
- `RawBody`: застарілий псевдонім для `CommandBody` (збережено для сумісності).
@ -99,40 +99,40 @@ OpenClaw розділяє **тіло промпта** та **тіло коман
- `[Chat messages since your last reply - for context]`
- `[Current message - respond to this]`
Для **непрямих чатів** (груп/каналів/кімнат) **тіло поточного повідомлення** має префікс із міткою відправника (у тому самому стилі, що використовується для записів історії). Це робить повідомлення в реальному часі та повідомлення з черги/історії узгодженими в промпті агента.
Для **непрямих чатів** (груп/каналів/кімнат) **тіло поточного повідомлення** має префікс із міткою відправника (у тому самому стилі, що й записи історії). Це забезпечує узгодженість повідомлень у реальному часі та повідомлень у черзі/історії в промпті агента.
Буфери історії є **лише pending**: вони містять групові повідомлення, які е_ запускали прогін (наприклад, повідомлення, обмежені згадкою), і **виключають** повідомлення, які вже є в транскрипті сеансу.
Буфери історії є **лише очікуваними**: вони містять групові повідомлення, які е_ запускали виконання (наприклад, повідомлення, що потребували згадки), і **не містять** повідомлень, які вже є в транскрипті сесії.
Вилучення директив застосовується лише до розділу **поточного повідомлення**, тому історія залишається неушкодженою. Канали, які обгортають історію, мають задавати `CommandBody` (або `RawBody`) як оригінальний текст повідомлення та залишати `Body` як об’єднаний промпт. Буфери історії налаштовуються через `messages.groupChat.historyLimit` (глобальне значення за замовчуванням) і перевизначення для каналів, як-от `channels.slack.historyLimit` або `channels.telegram.accounts.<id>.historyLimit` (встановіть `0`, щоб вимкнути).
Вилучення директив застосовується лише до розділу **поточного повідомлення**, тож історія залишається незмінною. Канали, які обгортають історію, мають встановлювати `CommandBody` (або `RawBody`) на початковий текст повідомлення й залишати `Body` як об’єднаний промпт. Буфери історії налаштовуються через `messages.groupChat.historyLimit` (глобальне типове значення) і перевизначення для окремих каналів, як-от `channels.slack.historyLimit` або `channels.telegram.accounts.<id>.historyLimit` (установіть `0`, щоб вимкнути).
## Чергування та followup-повідомлення
## Черга та подальші ходи
Якщо прогін уже активний, вхідні повідомлення можна поставити в чергу, спрямувати в поточний прогін або зібрати для наступного ходу followup.
Якщо виконання вже активне, вхідні повідомлення можна поставити в чергу, спрямувати в поточне виконання або зібрати для подальшого ходу.
- Налаштовується через `messages.queue` (і `messages.queue.byChannel`).
- Режим за замовчуванням — `steer`, із 500 мс followup debounce, коли steering повертається до доставлення followup із черги.
- Режими: `steer`, `followup`, `collect`, `steer-backlog`, `interrupt` і застарілий псевдонім `queue`.
- Типовий режим — `steer`, із 500 мс усуненням брязкоту для подальшого ходу, коли спрямування повертається до доставки подальшого ходу з черги.
- Режими: `steer`, `followup`, `collect`, `steer-backlog`, `interrupt` і застарілий режим `queue` по одному за раз.
Докладніше: [Черга команд](/uk/concepts/queue).
Докладніше: [Черга команд](/uk/concepts/queue) і [Черга спрямування](/uk/concepts/queue-steering).
## Володіння прогоном каналу
## Володіння виконанням каналу
Channel plugins можуть зберігати порядок, застосовувати debounce до введення та транспортний backpressure перед тим, як повідомлення потрапить у чергу сеансу. Вони не повинні накладати окремий таймаут навколо самого ходу агента. Щойно повідомлення маршрутизовано до сеансу, довготривалу роботу контролюють життєві цикли сеансу, інструмента та runtime, щоб усі канали послідовно повідомляли про повільні ходи й відновлювалися після них.
Плагіни каналів можуть зберігати порядок, усувати брязкіт введення та застосовувати зворотний тиск транспорту до того, як повідомлення потрапить у чергу сесії. Вони не мають накладати окремий тайм-аут навколо самого ходу агента. Щойно повідомлення спрямовано до сесії, довготривала робота керується життєвими циклами сесії, інструмента та runtime, щоб усі канали послідовно повідомляли про повільні ходи й відновлювалися після них.
## Стримінг, поділ на фрагменти та пакетування
## Потокове передавання, поділ на фрагменти та пакетування
Блоковий стримінг надсилає часткові відповіді, коли модель створює текстові блоки. Поділ на фрагменти враховує текстові обмеження каналу та не розбиває fenced code.
Блокове потокове передавання надсилає часткові відповіді, коли модель створює текстові блоки. Поділ на фрагменти враховує текстові обмеження каналу та уникає розділення огородженого коду.
Ключові налаштування:
Основні налаштування:
- `agents.defaults.blockStreamingDefault` (`on|off`, за замовчуванням off)
- `agents.defaults.blockStreamingDefault` (`on|off`, типово вимкнено)
- `agents.defaults.blockStreamingBreak` (`text_end|message_end`)
- `agents.defaults.blockStreamingChunk` (`minChars|maxChars|breakPreference`)
- `agents.defaults.blockStreamingCoalesce` (пакетування на основі idle)
- `agents.defaults.blockStreamingCoalesce` (пакетування на основі простою)
- `agents.defaults.humanDelay` (людиноподібна пауза між блоками відповідей)
- Перевизначення каналів: `*.blockStreaming` і `*.blockStreamingCoalesce` (канали, окрім Telegram, потребують явного `*.blockStreaming: true`)
- Перевизначення каналів: `*.blockStreaming` і `*.blockStreamingCoalesce` (канали, відмінні від Telegram, потребують явного `*.blockStreaming: true`)
Докладніше: [Стримінг + поділ на фрагменти](/uk/concepts/streaming).
Докладніше: [Потокове передавання + поділ на фрагменти](/uk/concepts/streaming).
## Видимість міркувань і токени
@ -140,38 +140,38 @@ OpenClaw може показувати або приховувати мірку
- `/reasoning on|off|stream` керує видимістю.
- Вміст міркувань усе одно враховується у використанні токенів, коли його створює модель.
- Telegram підтримує стрим міркувань у draft bubble.
- Telegram підтримує потік міркувань у бульбашку чернетки.
Докладніше: [Директиви thinking + reasoning](/uk/tools/thinking) і [Використання токенів](/uk/reference/token-use).
Докладніше: [Директиви мислення + міркувань](/uk/tools/thinking) і [Використання токенів](/uk/reference/token-use).
## Префікси, трединг і відповіді
## Префікси, ланцюжки та відповіді
Форматування вихідних повідомлень централізовано в `messages`:
- `messages.responsePrefix`, `channels.<channel>.responsePrefix` і `channels.<channel>.accounts.<id>.responsePrefix` (каскад вихідних префіксів), а також `channels.whatsapp.messagePrefix` (вхідний префікс WhatsApp)
- Трединг відповідей через `replyToMode` і стандартні значення для каналів
- Ланцюжки відповідей через `replyToMode` і типові значення для окремих каналів
Докладніше: [Конфігурація](/uk/gateway/config-agents#messages) і документація каналів.
## Тихі відповіді
Точний тихий токен `NO_REPLY` / `no_reply` означає “не доставляти видиму для користувача відповідь”.
Коли хід також має pending-медіа інструмента, як-от згенероване TTS-аудіо, OpenClaw вилучає тихий текст, але все одно доставляє медіавкладення.
Коли хід також має очікуване медіа інструмента, як-от згенероване TTS-аудіо, OpenClaw вилучає тихий текст, але все одно доставляє медіавкладення.
OpenClaw визначає цю поведінку за типом розмови:
- Прямі розмови за замовчуванням забороняють тишу й переписують голу тиху відповідь у короткий видимий fallback.
- Групи/канали за замовчуванням дозволяють тишу.
- Внутрішня оркестрація за замовчуванням дозволяє тишу.
- Прямі розмови типово забороняють тишу й переписують голу тиху відповідь на короткий видимий резервний варіант.
- Групи/канали типово дозволяють тишу.
- Внутрішня оркестрація типово дозволяє тишу.
OpenClaw також використовує тихі відповіді для внутрішніх помилок runner, що трапляються до будь-якої відповіді асистента в непрямих чатах, щоб групи/канали не бачили шаблонний текст помилки Gateway. Прямі чати за замовчуванням показують компактний текст помилки; сирі деталі runner показуються лише коли `/verbose` має значення `on` або `full`.
OpenClaw також використовує тихі відповіді для внутрішніх збоїв runner, які трапляються до будь-якої відповіді асистента в непрямих чатах, щоб групи/канали не бачили шаблонний текст помилки Gateway. Прямі чати типово показують стислий текст збою; сирі деталі runner показуються лише коли `/verbose` має значення `on` або `full`.
Стандартні значення містяться в `agents.defaults.silentReply` і `agents.defaults.silentReplyRewrite`; `surfaces.<id>.silentReply` і `surfaces.<id>.silentReplyRewrite` можуть перевизначати їх для кожної поверхні.
Типові значення розміщені в `agents.defaults.silentReply` і `agents.defaults.silentReplyRewrite`; `surfaces.<id>.silentReply` і `surfaces.<id>.silentReplyRewrite` можуть перевизначати їх для окремої поверхні.
Коли батьківський сеанс має один або кілька pending запусків породжених subagent, голі тихі відповіді відкидаються на всіх поверхнях замість переписування, тож батьківський сеанс мовчить, доки подія завершення дочірнього процесу не доставить справжню відповідь.
Коли батьківська сесія має один або більше очікуваних породжених виконань підагентів, голі тихі відповіді відкидаються на всіх поверхнях замість переписування, тож батьківська сесія залишається тихою, доки подія завершення дочірнього виконання не доставить справжню відповідь.
## Пов’язане
- [Стримінг](/uk/concepts/streaming) — доставлення повідомлень у реальному часі
- [Повторна спроба](/uk/concepts/retry) — поведінка повторних спроб доставлення повідомлень
- [Потокове передавання](/uk/concepts/streaming) — доставка повідомлень у реальному часі
- [Повторна спроба](/uk/concepts/retry) — поведінка повторних спроб доставки повідомлень
- [Черга](/uk/concepts/queue) — черга обробки повідомлень
- [Канали](/uk/channels) — інтеграції з платформами обміну повідомленнями

View File

@ -0,0 +1,96 @@
---
read_when:
- Пояснення того, як працює керування, коли агент використовує інструменти
- Зміна поведінки черги активного запуску або інтеграції керування під час виконання
- Порівняння режимів керування, черги, збирання та подальших дій
summary: Як керування активним запуском ставить повідомлення в чергу на межах середовища виконання
title: Черга керування
x-i18n:
generated_at: "2026-04-30T00:29:59Z"
model: gpt-5.5
provider: openai
source_hash: 560390c8c26bcce95e0137f4336ad6e62bc3e2344cb15fd12ca3cfe4a85a8acc
source_path: concepts/queue-steering.md
workflow: 16
---
Коли повідомлення надходить, поки запуск сеансу вже транслюється, OpenClaw може
надіслати це повідомлення в активне середовище виконання замість запуску ще одного
запуску для того самого сеансу. Публічні режими нейтральні до середовища виконання; Pi і нативний каркас сервера застосунку Codex
реалізують деталі доставки по-різному.
## Межа середовища виконання
Скерування не перериває виклик інструмента, який уже виконується. Pi перевіряє
наявність поставлених у чергу повідомлень скерування на межах моделі:
1. Асистент запитує виклики інструментів.
2. Pi виконує пакет викликів інструментів поточного повідомлення асистента.
3. Pi генерує подію завершення ходу.
4. Pi вичерпує поставлені в чергу повідомлення скерування.
5. Pi додає ці повідомлення як повідомлення користувача перед наступним викликом LLM.
Це зберігає результати інструментів у парі з повідомленням асистента, яке їх запитало,
а потім дає наступному виклику моделі побачити найновіший ввід користувача.
Нативний каркас сервера застосунку Codex надає `turn/steer` замість
внутрішньої черги скерування Pi. OpenClaw адаптує там ті самі режими:
- `steer` групує поставлені в чергу повідомлення протягом налаштованого тихого вікна, а потім надсилає
один запит `turn/steer` з усім зібраним вводом користувача в порядку надходження.
- `queue` зберігає застарілу серіалізовану форму, надсилаючи окремі запити `turn/steer`.
- `followup`, `collect`, `steer-backlog` і `interrupt` залишаються поведінкою черги, якою володіє OpenClaw,
навколо активного ходу Codex.
Ходи перегляду Codex і ручної Compaction відхиляють скерування в межах того самого ходу. Коли
середовище виконання не може прийняти скерування, OpenClaw повертається до черги подальших дій там, де
цей режим це дозволяє.
## Режими
| Режим | Поведінка під час активного запуску | Поведінка подальшої дії пізніше |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `steer` | Вставляє всі поставлені в чергу повідомлення скерування разом на наступній межі середовища виконання. Це стандартний режим. | Повертається до подальшої дії лише тоді, коли скерування недоступне. |
| `queue` | Застаріле почергове скерування. Pi вставляє по одному поставленому в чергу повідомленню на межу моделі; Codex надсилає окремі запити `turn/steer`. | Повертається до подальшої дії лише тоді, коли скерування недоступне. |
| `steer-backlog` | Та сама поведінка скерування активного запуску, що й у `steer`. | Також зберігає те саме повідомлення для пізнішого ходу подальшої дії. |
| `followup` | Не скеровує поточний запуск. | Запускає поставлені в чергу повідомлення пізніше. |
| `collect` | Не скеровує поточний запуск. | Об'єднує сумісні поставлені в чергу повідомлення в один пізніший хід після вікна debounce. |
| `interrupt` | Перериває активний запуск, а потім запускає найновіше повідомлення. | Немає. |
## Приклад сплеску
Якщо четверо користувачів надсилають повідомлення, поки агент виконує виклик інструмента:
- `steer`: активне середовище виконання отримує всі чотири повідомлення в порядку надходження перед
своїм наступним рішенням моделі. Pi вичерпує їх на наступній межі моделі; Codex
отримує їх як один пакетний `turn/steer`.
- `queue`: застаріле серіалізоване скерування. Pi вставляє по одному поставленому в чергу повідомленню за раз;
Codex отримує окремі запити `turn/steer`.
- `collect`: OpenClaw чекає, доки активний запуск завершиться, а потім створює хід подальшої дії
із сумісними поставленими в чергу повідомленнями після вікна debounce.
## Область дії
Скерування завжди націлене на поточний активний запуск сеансу. Воно не створює новий
сеанс, не змінює політику інструментів активного запуску й не розділяє повідомлення за відправником. У
багатокористувацьких каналах вхідні промпти вже містять контекст відправника й маршруту, тож
наступний виклик моделі може бачити, хто надіслав кожне повідомлення.
Використовуйте `collect`, коли потрібно, щоб OpenClaw побудував пізніший хід подальшої дії, який може
об'єднувати сумісні повідомлення та зберігати політику відкидання черги подальших дій. Використовуйте
`queue` лише тоді, коли вам потрібна старіша поведінка почергового скерування.
## Debounce
`messages.queue.debounceMs` застосовується до доставки подальших дій, включно з `collect`,
`followup`, `steer-backlog` і резервним варіантом `steer`, коли скерування активного запуску
недоступне. Для Pi активний `steer` сам не використовує таймер debounce, тому що
Pi природно групує повідомлення до наступної межі моделі. Для нативного
каркаса Codex OpenClaw використовує те саме значення debounce як тихе вікно перед
надсиланням пакетного `turn/steer`.
## Пов'язане
- [Черга команд](/uk/concepts/queue)
- [Повідомлення](/uk/concepts/messages)
- [Цикл агента](/uk/concepts/agent-loop)

View File

@ -1,34 +1,34 @@
---
read_when:
- Зміна виконання автовідповіді або паралельності
- Зміна виконання автовідповідей або паралельності
- Пояснення режимів /queue або поведінки спрямування повідомлень
summary: Режими черги автовідповідей, значення за замовчуванням і перевизначення для окремих сеансів
summary: Режими черги автовідповідей, типові значення та перевизначення для окремих сеансів
title: Черга команд
x-i18n:
generated_at: "2026-04-29T21:53:05Z"
generated_at: "2026-04-30T00:29:46Z"
model: gpt-5.5
provider: openai
source_hash: 59d14a2b8e1b8d5bc1433c0f052869efed42912c9b85cdd79e518633d9919729
source_hash: 2ac0c0ded9558b080714fa4b8be0d552f985911bf19b427020f9654ae4955b2d
source_path: concepts/queue.md
workflow: 16
---
Ми серіалізуємо вхідні запуски автовідповідей (усі канали) через невелику внутрішньопроцесну чергу, щоб запобігти зіткненню кількох запусків агента, водночас зберігаючи безпечний паралелізм між сесіями.
Ми серіалізуємо вхідні автозапуски відповідей (усі канали) через невелику внутрішньопроцесну чергу, щоб кілька запусків агента не конфліктували між собою, водночас зберігаючи безпечний паралелізм між сесіями.
## Чому
## Навіщо
- Запуски автовідповідей можуть бути дорогими (виклики LLM) і можуть конфліктувати, коли кілька вхідних повідомлень надходять майже одночасно.
- Серіалізація дає змогу уникнути конкуренції за спільні ресурси (файли сесій, журнали, CLI stdin) і зменшує ймовірність лімітів швидкості з боку upstream.
- Автозапуски відповідей можуть бути витратними (виклики LLM) і можуть конфліктувати, коли кілька вхідних повідомлень надходять майже одночасно.
- Серіалізація запобігає конкуренції за спільні ресурси (файли сесій, журнали, CLI stdin) і зменшує ймовірність обмежень частоти на боці вищого рівня.
## Як це працює
- Черга FIFO з урахуванням lane обробляє кожен lane з налаштовуваним обмеженням паралельності (за замовчуванням 1 для неналаштованих lane; main за замовчуванням має 4, subagent — 8).
- `runEmbeddedPiAgent` додає до черги за **ключем сесії** (lane `session:<key>`), щоб гарантувати лише один активний запуск на сесію.
- Потім кожен запуск сесії ставиться в **глобальний lane** (`main` за замовчуванням), щоб загальний паралелізм обмежувався `agents.defaults.maxConcurrent`.
- Коли ввімкнено докладне журналювання, запуски в черзі виводять коротке повідомлення, якщо чекали понад ~2 с перед стартом.
- Індикатори набору тексту все одно спрацьовують одразу під час додавання до черги (коли канал це підтримує), тому користувацький досвід не змінюється, поки ми чекаємо своєї черги.
- Черга FIFO з урахуванням смуг обробляє кожну смугу з налаштовуваним лімітом конкурентності (типово 1 для неналаштованих смуг; `main` типово 4, `subagent` — 8).
- `runEmbeddedPiAgent` ставить у чергу за **ключем сесії** (смуга `session:<key>`), щоб гарантувати лише один активний запуск на сесію.
- Потім кожен запуск сесії ставиться у **глобальну смугу** (`main` типово), щоб загальний паралелізм обмежувався `agents.defaults.maxConcurrent`.
- Коли ввімкнено докладне журналювання, запуски в черзі видають коротке повідомлення, якщо чекали понад ~2 с перед стартом.
- Індикатори набору все одно спрацьовують одразу під час додавання в чергу (якщо канал це підтримує), тому користувацький досвід не змінюється, поки ми чекаємо своєї черги.
## Значення за замовчуванням
## Типові значення
Якщо не задано, усі поверхні вхідних каналів використовують:
@ -37,25 +37,29 @@ x-i18n:
- `cap: 20`
- `drop: "summarize"`
`steer` є стандартним, бо він зберігає активний хід моделі чутливим до змін без
запуску другої сесії. Якщо поточний запуск не може прийняти steering,
OpenClaw повертається до запису в черзі followup.
`steer` є типовим, бо він зберігає активний хід моделі чутливим без
запуску другої сесії. Він обробляє всі керівні повідомлення, що надійшли
до наступної межі моделі. Якщо поточний запуск не може приймати керування,
OpenClaw повертається до запису черги подальшого ходу.
## Режими черги
Вхідні повідомлення можуть steer поточний запуск, чекати на followup-хід або робити і те, і те:
Вхідні повідомлення можуть керувати поточним запуском, чекати подальшого ходу або робити і те, і те:
- `steer`: додає steering-повідомлення до активного запуску Pi. Pi доставляє його **після завершення виконання викликів інструментів у поточному ході асистента**, перед наступним викликом LLM. Якщо запуск не виконує активний streaming або steering недоступний, OpenClaw повертається до запису в черзі followup.
- `followup`: додає кожне повідомлення до черги для пізнішого ходу агента після завершення поточного запуску.
- `collect`: об’єднує повідомлення в черзі в **один** followup-хід після тихого вікна. Якщо повідомлення спрямовані до різних каналів/тредів, вони обробляються окремо, щоб зберегти маршрутизацію.
- `steer-backlog` (також `steer+backlog`): steer зараз **і** зберігає те саме повідомлення для followup-ходу.
- `interrupt` (застарілий): перериває активний запуск для цієї сесії, а потім запускає найновіше повідомлення.
- `queue` (застарілий псевдонім): те саме, що `steer`.
- `steer`: поставити керівні повідомлення в чергу активного середовища виконання. Pi доставляє всі очікувані керівні повідомлення **після того, як поточний хід асистента завершить виконання викликів інструментів**, перед наступним викликом LLM; Codex app-server отримує один пакетний `turn/steer`. Якщо запуск не транслюється активно або керування недоступне, OpenClaw повертається до запису черги подальшого ходу.
- `queue` (застарілий): старе керування по одному повідомленню за раз. Pi доставляє одне керівне повідомлення з черги на кожній межі моделі; Codex app-server отримує окремі запити `turn/steer`. Віддавайте перевагу `steer`, якщо вам не потрібна попередня серіалізована поведінка.
- `followup`: поставити кожне повідомлення в чергу для пізнішого ходу агента після завершення поточного запуску.
- `collect`: об’єднати повідомлення в черзі в **один** подальший хід після вікна тиші. Якщо повідомлення адресовані різним каналам/темам, вони обробляються окремо, щоб зберегти маршрутизацію.
- `steer-backlog` (також `steer+backlog`): керувати зараз **і** зберегти те саме повідомлення для подальшого ходу.
- `interrupt` (застарілий): перервати активний запуск для цієї сесії, а потім запустити найновіше повідомлення.
Steer-backlog означає, що ви можете отримати followup-відповідь після steered-запуску, тому
поверхні streaming можуть виглядати як дублікати. Віддавайте перевагу `collect`/`steer`, якщо хочете
Steer-backlog означає, що ви можете отримати подальшу відповідь після керованого запуску, тому
поверхні потокового передавання можуть виглядати як дублікати. Віддавайте перевагу `collect`/`steer`, якщо хочете
одну відповідь на кожне вхідне повідомлення.
Щодо часової поведінки й залежностей, специфічних для середовища виконання, див.
[Черга керування](/uk/concepts/queue-steering).
Налаштуйте глобально або для кожного каналу через `messages.queue`:
```json5
@ -74,51 +78,52 @@ Steer-backlog означає, що ви можете отримати followup-
## Параметри черги
Параметри застосовуються до `followup`, `collect` і `steer-backlog` (а також до `steer`, коли він повертається до followup):
Параметри застосовуються до `followup`, `collect` і `steer-backlog` (а також до `steer` або застарілого `queue`, коли керування повертається до подальшого ходу):
- `debounceMs`: тихе вікно перед обробкою followup у черзі. Голі числа означають мілісекунди; одиниці `ms`, `s`, `m`, `h` і `d` приймаються параметрами `/queue`.
- `debounceMs`: вікно тиші перед обробкою подальших ходів із черги. Числа без одиниць — це мілісекунди; одиниці `ms`, `s`, `m`, `h` і `d` приймаються параметрами `/queue`.
- `cap`: максимальна кількість повідомлень у черзі на сесію. Значення нижче `1` ігноруються.
- `drop: "summarize"`: стандартне значення. За потреби відкидає найстаріші записи в черзі, зберігає компактні підсумки та вставляє їх як синтетичний followup prompt.
- `drop: "old"`: за потреби відкидає найстаріші записи в черзі без збереження підсумків.
- `drop: "new"`: відхиляє найновіше повідомлення, коли черга вже заповнена.
- `drop: "summarize"`: типово. За потреби відкидати найстаріші записи черги, зберігати компактні підсумки та вставляти їх як синтетичний запит подальшого ходу.
- `drop: "old"`: за потреби відкидати найстаріші записи черги без збереження підсумків.
- `drop: "new"`: відхиляти найновіше повідомлення, коли черга вже заповнена.
Стандартні значення: `debounceMs: 500`, `cap: 20`, `drop: summarize`.
Типові значення: `debounceMs: 500`, `cap: 20`, `drop: summarize`.
## Пріоритетність
## Пріоритет
Для вибору режиму OpenClaw визначає:
1. Inline або збережене для сесії перевизначення `/queue`.
1. Вбудоване або збережене перевизначення `/queue` для сесії.
2. `messages.queue.byChannel.<channel>`.
3. `messages.queue.mode`.
4. Стандартний `steer`.
4. Типовий `steer`.
Для параметрів inline або збережені параметри `/queue` мають пріоритет над конфігурацією. Потім
застосовуються debounce для конкретного каналу (`messages.queue.debounceMsByChannel`), стандартні значення debounce Plugin,
глобальні параметри `messages.queue` і вбудовані стандартні значення. `cap` і `drop` є глобальними/сесійними параметрами, а не конфігураційними
ключами для конкретного каналу.
Для параметрів вбудовані або збережені параметри `/queue` мають перевагу над конфігурацією. Потім
застосовуються затримка для конкретного каналу (`messages.queue.debounceMsByChannel`), типові значення затримки
Plugin, глобальні параметри `messages.queue` і вбудовані типові значення.
`cap` і `drop` — це глобальні/сесійні параметри, а не ключі конфігурації для кожного каналу.
## Перевизначення для сесії
- Надішліть `/queue <mode>` як окрему команду, щоб зберегти режим для поточної сесії.
- Параметри можна комбінувати: `/queue collect debounce:0.5s cap:25 drop:summarize`
- Параметри можна поєднувати: `/queue collect debounce:0.5s cap:25 drop:summarize`
- `/queue default` або `/queue reset` очищає перевизначення сесії.
## Область дії та гарантії
## Обсяг і гарантії
- Застосовується до запусків агентів автовідповідей у всіх вхідних каналах, які використовують конвеєр відповідей gateway (WhatsApp web, Telegram, Slack, Discord, Signal, iMessage, webchat тощо).
- Стандартний lane (`main`) є спільним для процесу для вхідних повідомлень + основних heartbeat; задайте `agents.defaults.maxConcurrent`, щоб дозволити кілька сесій паралельно.
- Можуть існувати додаткові lane (наприклад, `cron`, `cron-nested`, `nested`, `subagent`), щоб фонові завдання могли виконуватися паралельно, не блокуючи вхідні відповіді. Ізольовані cron-ходи агента утримують слот `cron`, тоді як їхнє внутрішнє виконання агента використовує `cron-nested`; обидва використовують `cron.maxConcurrentRuns`. Спільні не-cron потоки `nested` зберігають власну поведінку lane. Ці відокремлені запуски відстежуються як [фонові завдання](/uk/automation/tasks).
- Lane для сесії гарантують, що лише один запуск агента одночасно працює з конкретною сесією.
- Без зовнішніх залежностей або фонових worker-потоків; чистий TypeScript + promises.
- Застосовується до запусків агентів авто-відповідей у всіх вхідних каналах, що використовують конвеєр відповідей Gateway (WhatsApp web, Telegram, Slack, Discord, Signal, iMessage, webchat тощо).
- Типова смуга (`main`) є загальною для процесу для вхідних повідомлень і основних Heartbeat; задайте `agents.defaults.maxConcurrent`, щоб дозволити кілька сесій паралельно.
- Можуть існувати додаткові смуги (наприклад, `cron`, `cron-nested`, `nested`, `subagent`), щоб фонові завдання могли виконуватися паралельно, не блокуючи вхідні відповіді. Ізольовані ходи агента cron утримують слот `cron`, поки їхнє внутрішнє виконання агента використовує `cron-nested`; обидва використовують `cron.maxConcurrentRuns`. Спільні не-cron потоки `nested` зберігають власну поведінку смуги. Ці відокремлені запуски відстежуються як [фонові завдання](/uk/automation/tasks).
- Смуги для сесій гарантують, що лише один запуск агента торкається певної сесії одночасно.
- Без зовнішніх залежностей або фонових робочих потоків; чистий TypeScript + проміси.
## Усунення несправностей
- Якщо здається, що команди зависли, увімкніть докладні журнали та шукайте рядки “queued for …ms”, щоб підтвердити, що черга обробляється.
- Якщо вам потрібна глибина черги, увімкніть докладні журнали та стежте за рядками часу черги.
- Коли діагностику ввімкнено, сесії, що залишаються в `processing` довше за `diagnostics.stuckSessionWarnMs`, записують попередження про завислу сесію. Активні embedded-запуски, активні операції відповідей і активні завдання lane за замовчуванням залишаються лише попередженнями; застарілий startup-облік без активної роботи сесії може звільнити відповідний lane сесії, щоб робота в черзі оброблялася.
- Якщо здається, що команди застрягли, увімкніть докладні журнали й шукайте рядки “queued for …ms”, щоб підтвердити, що черга обробляється.
- Якщо вам потрібна глибина черги, увімкніть докладні журнали й стежте за рядками часу черги.
- Коли діагностику ввімкнено, сесії, що залишаються в `processing` довше за `diagnostics.stuckSessionWarnMs`, записують попередження про застряглу сесію. Активні вбудовані запуски, активні операції відповіді та активні завдання смуги типово залишаються лише попередженнями; застарілий облік запуску без активної роботи сесії може звільнити відповідну смугу сесії, щоб робота з черги оброблялася.
## Пов’язане
- [Керування сесіями](/uk/concepts/session)
- [Черга керування](/uk/concepts/queue-steering)
- [Політика повторних спроб](/uk/concepts/retry)

View File

@ -1,28 +1,28 @@
---
read_when:
- Налаштування типових параметрів агента (моделі, мислення, робоча область, Heartbeat, медіа, Skills)
- Налаштування багатоагентної маршрутизації та прив’язок
- Налаштування стандартних параметрів агента (моделі, мислення, робочий простір, Heartbeat, медіа, Skills)
- Налаштування мультиагентної маршрутизації та прив’язок
- Налаштування поведінки сеансу, доставки повідомлень і режиму розмови
summary: Типові налаштування агента, багатоагентна маршрутизація, сеанс, повідомлення та конфігурація спілкування
summary: Типові налаштування агента, багатоагентна маршрутизація, сесія, повідомлення та конфігурація talk
title: Конфігурація — агенти
x-i18n:
generated_at: "2026-04-29T21:53:11Z"
generated_at: "2026-04-30T00:30:00Z"
model: gpt-5.5
provider: openai
source_hash: 71ffa1a7315a9f12b9685ca4aeef1414a5da994105f4466718fea56f3c53fbc2
source_hash: 61f2d33ae1d3f4ce07636ae4584b9e344fd14e8e08a2612bb1f39ed71c99c25a
source_path: gateway/config-agents.md
workflow: 16
---
Ключі конфігурації на рівні агента під `agents.*`, `multiAgent.*`, `session.*`,
`messages.*` і `talk.*`. Для каналів, інструментів, середовища виконання Gateway та інших
Ключі конфігурації в межах агента під `agents.*`, `multiAgent.*`, `session.*`,
`messages.*` і `talk.*`. Для каналів, інструментів, runtime Gateway та інших
ключів верхнього рівня див. [Довідник конфігурації](/uk/gateway/configuration-reference).
## Типові значення агента
## Типові налаштування агента
### `agents.defaults.workspace`
За замовчуванням: `~/.openclaw/workspace`.
Типово: `~/.openclaw/workspace`.
```json5
{
@ -32,7 +32,7 @@ x-i18n:
### `agents.defaults.repoRoot`
Необов’язковий корінь репозиторію, показаний у рядку Runtime системного промпта. Якщо не задано, OpenClaw автоматично визначає його, рухаючись угору від робочої області.
Необов'язковий корінь репозиторію, що показується в рядку Runtime системного промпта. Якщо не задано, OpenClaw автоматично визначає його, рухаючись угору від робочого простору.
```json5
{
@ -42,7 +42,7 @@ x-i18n:
### `agents.defaults.skills`
Необов’язковий типовий список дозволених skill для агентів, які не задають
Необов'язковий типовий список дозволених Skills для агентів, які не задають
`agents.list[].skills`.
```json5
@ -58,15 +58,15 @@ x-i18n:
}
```
- Не вказуйте `agents.defaults.skills`, щоб за замовчуванням skills були без обмежень.
- Не вказуйте `agents.list[].skills`, щоб успадкувати типові значення.
- Задайте `agents.list[].skills: []`, щоб skills не було.
- Опустіть `agents.defaults.skills`, щоб типово дозволити необмежені Skills.
- Опустіть `agents.list[].skills`, щоб успадкувати типові значення.
- Задайте `agents.list[].skills: []`, щоб не використовувати Skills.
- Непорожній список `agents.list[].skills` є остаточним набором для цього агента; він
не обєднується з типовими значеннями.
не об'єднується з типовими значеннями.
### `agents.defaults.skipBootstrap`
Вимикає автоматичне створення bootstrap-файлів робочої області (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`).
Вимикає автоматичне створення файлів початкового налаштування робочого простору (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`).
```json5
{
@ -76,10 +76,10 @@ x-i18n:
### `agents.defaults.contextInjection`
Керує тим, коли bootstrap-файли робочої області вставляються в системний промпт. За замовчуванням: `"always"`.
Керує тим, коли файли початкового налаштування робочого простору вставляються в системний промпт. Типово: `"always"`.
- `"continuation-skip"`: безпечні ходи продовження (після завершеної відповіді асистента) пропускають повторну вставку bootstrap робочої області, зменшуючи розмір промпта. Запуски Heartbeat і повтори після Compaction усе ще перебудовують контекст.
- `"never"`: вимикає bootstrap робочої області та вставку контекстних файлів на кожному ході. Використовуйте це лише для агентів, які повністю керують життєвим циклом власного промпта (власні рушії контексту, нативні середовища виконання, що будують власний контекст, або спеціалізовані робочі процеси без bootstrap). Ходи Heartbeat і відновлення після Compaction також пропускають вставку.
- `"continuation-skip"`: безпечні кроки продовження (після завершеної відповіді асистента) пропускають повторне вставлення початкового налаштування робочого простору, зменшуючи розмір промпта. Запуски Heartbeat і повтори після Compaction все одно перебудовують контекст.
- `"never"`: вимикає початкове налаштування робочого простору та вставлення контекстних файлів на кожному кроці. Використовуйте це лише для агентів, які повністю керують життєвим циклом свого промпта (власні контекстні рушії, нативні runtime, що будують власний контекст, або спеціалізовані робочі процеси без початкового налаштування). Кроки Heartbeat і відновлення після Compaction також пропускають вставлення.
```json5
{
@ -89,7 +89,7 @@ x-i18n:
### `agents.defaults.bootstrapMaxChars`
Максимальна кількість символів на bootstrap-файл робочої області перед обрізанням. За замовчуванням: `12000`.
Максимальна кількість символів на файл початкового налаштування робочого простору перед обрізанням. Типово: `12000`.
```json5
{
@ -99,7 +99,7 @@ x-i18n:
### `agents.defaults.bootstrapTotalMaxChars`
Максимальна загальна кількість символів, вставлених з усіх bootstrap-файлів робочої області. За замовчуванням: `60000`.
Максимальна загальна кількість символів, що вставляються з усіх файлів початкового налаштування робочого простору. Типово: `60000`.
```json5
{
@ -109,12 +109,12 @@ x-i18n:
### `agents.defaults.bootstrapPromptTruncationWarning`
Керує текстом попередження, видимим для агента, коли bootstrap-контекст обрізано.
За замовчуванням: `"once"`.
Керує текстом попередження, видимим агенту, коли контекст початкового налаштування обрізано.
Типово: `"once"`.
- `"off"`: ніколи не вставляти текст попередження в системний промпт.
- `"once"`: вставляти попередження один раз для кожної унікальної сигнатури обрізання (рекомендовано).
- `"always"`: вставляти попередження під час кожного запуску, коли є обрізання.
- `"once"`: вставляти попередження один раз для кожного унікального підпису обрізання (рекомендовано).
- `"always"`: вставляти попередження під час кожного запуску, коли існує обрізання.
```json5
{
@ -122,27 +122,27 @@ x-i18n:
}
```
### Мапа володіння бюджетом контексту
### Мапа власності бюджету контексту
OpenClaw має кілька великих бюджетів промпта/контексту, і вони навмисно
розділені за підсистемами, а не проходять усі через один універсальний
перемикач.
OpenClaw має кілька великих бюджетів промпта/контексту, і вони
навмисно розділені за підсистемами, а не всі проходять через один загальний
регулятор.
- `agents.defaults.bootstrapMaxChars` /
`agents.defaults.bootstrapTotalMaxChars`:
звичайна вставка bootstrap робочої області.
звичайне вставлення початкового налаштування робочого простору.
- `agents.defaults.startupContext.*`:
одноразова преамбула запуску моделі після reset/startup, включно з нещодавніми щоденними
файлами `memory/*.md`. Команди звичайного чату `/new` і `/reset`
одноразова преамбула модельного запуску під час скидання/старту, включно з нещодавніми щоденними
файлами `memory/*.md`. Прості чат-команди `/new` і `/reset`
підтверджуються без виклику моделі.
- `skills.limits.*`:
компактний список skills, вставлений у системний промпт.
компактний список Skills, вставлений у системний промпт.
- `agents.defaults.contextLimits.*`:
обмежені уривки середовища виконання та вставлені блоки, якими володіє середовище виконання.
обмежені runtime-уривки та вставлені блоки, якими володіє runtime.
- `memory.qmd.limits.*`:
розмір індексованого фрагмента пошуку в пам’яті та вставки.
розмір індексованого фрагмента пошуку пам'яті та вставлення.
Використовуйте відповідне перевизначення на рівні агента лише тоді, коли одному агенту потрібен інший
Використовуйте відповідне перевизначення для окремого агента лише тоді, коли одному агенту потрібен інший
бюджет:
- `agents.list[].skillsLimits.maxSkillsPromptChars`
@ -150,8 +150,8 @@ OpenClaw має кілька великих бюджетів промпта/ко
#### `agents.defaults.startupContext`
Керує преамбулою першого ходу, що вставляється під час запусків моделі reset/startup.
Команди звичайного чату `/new` і `/reset` підтверджують скидання без виклику
Керує стартовою преамбулою першого кроку, що вставляється під час модельних запусків скидання/старту.
Прості чат-команди `/new` і `/reset` підтверджують скидання без виклику
моделі, тому вони не завантажують цю преамбулу.
```json5
@ -173,7 +173,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
#### `agents.defaults.contextLimits`
Спільні типові значення для обмежених поверхонь контексту середовища виконання.
Спільні типові значення для обмежених поверхонь runtime-контексту.
```json5
{
@ -190,18 +190,18 @@ OpenClaw має кілька великих бюджетів промпта/ко
}
```
- `memoryGetMaxChars`: типове обмеження уривка `memory_get` перед додаванням
- `memoryGetMaxChars`: типова межа уривка `memory_get` до додавання
метаданих обрізання та повідомлення про продовження.
- `memoryGetDefaultLines`: типове вікно рядків `memory_get`, коли `lines`
не вказано.
- `toolResultMaxChars`: обмеження результатів live-інструментів, що використовується для збережених результатів і
опущено.
- `toolResultMaxChars`: межа результату live-інструмента, що використовується для збережених результатів і
відновлення після переповнення.
- `postCompactionMaxChars`: обмеження уривка AGENTS.md, що використовується під час вставки
- `postCompactionMaxChars`: межа уривка AGENTS.md, що використовується під час вставлення
оновлення після Compaction.
#### `agents.list[].contextLimits`
Перевизначення для окремого агента для спільних перемикачів `contextLimits`. Пропущені поля успадковуються
Перевизначення для окремого агента для спільних регуляторів `contextLimits`. Опущені поля успадковуються
з `agents.defaults.contextLimits`.
```json5
@ -228,7 +228,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
#### `skills.limits.maxSkillsPromptChars`
Глобальне обмеження для компактного списку skills, що вставляється в системний промпт. Це
Глобальна межа для компактного списку Skills, вставленого в системний промпт. Це
не впливає на читання файлів `SKILL.md` за потреби.
```json5
@ -243,7 +243,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
#### `agents.list[].skillsLimits.maxSkillsPromptChars`
Перевизначення бюджету промпта skills для окремого агента.
Перевизначення бюджету промпта Skills для окремого агента.
```json5
{
@ -262,8 +262,8 @@ OpenClaw має кілька великих бюджетів промпта/ко
### `agents.defaults.imageMaxDimensionPx`
Максимальний розмір у пікселях для найдовшої сторони зображення в блоках зображень transcript/tool перед викликами провайдера.
За замовчуванням: `1200`.
Максимальний розмір у пікселях для найдовшої сторони зображення в блоках зображень транскрипта/інструмента перед викликами провайдера.
Типово: `1200`.
Нижчі значення зазвичай зменшують використання vision-токенів і розмір payload запиту для запусків із великою кількістю скриншотів.
Вищі значення зберігають більше візуальних деталей.
@ -276,7 +276,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
### `agents.defaults.userTimezone`
Часовий пояс для контексту системного промпта (не для часових міток повідомлень). Використовує часовий пояс хоста як fallback.
Часовий пояс для контексту системного промпта (не для часових позначок повідомлень). Повертається до часового поясу хоста.
```json5
{
@ -286,7 +286,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
### `agents.defaults.timeFormat`
Формат часу в системному промпті. За замовчуванням: `auto` (налаштування ОС).
Формат часу в системному промпті. Типово: `auto` (налаштування ОС).
```json5
{
@ -346,57 +346,57 @@ OpenClaw має кілька великих бюджетів промпта/ко
- `model`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Рядкова форма задає лише основну модель.
- Об’єктна форма задає основну модель плюс упорядковані резервні моделі для аварійного перемикання.
- Об’єктна форма задає основну модель плюс упорядковані моделі для відмовостійкого перемикання.
- `imageModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Використовується шляхом інструмента `image` як його конфігурація vision-моделі.
- Також використовується як резервна маршрутизація, коли вибрана/стандартна модель не може приймати зображення на вході.
- Надавайте перевагу явним посиланням `provider/model`. Голі ідентифікатори приймаються для сумісності; якщо голий ідентифікатор однозначно відповідає налаштованому запису з підтримкою зображень у `models.providers.*.models`, OpenClaw доповнює його цим провайдером. Неоднозначні налаштовані збіги вимагають явного префікса провайдера.
- Використовується шляхом інструмента `image` як його конфігурація моделі бачення.
- Також використовується як резервна маршрутизація, коли вибрана/типова модель не може приймати вхідні зображення.
- Надавайте перевагу явним посиланням `provider/model`. Голі ID приймаються для сумісності; якщо голий ID однозначно відповідає налаштованому запису з підтримкою зображень у `models.providers.*.models`, OpenClaw прив’язує його до цього провайдера. Неоднозначні налаштовані збіги потребують явного префікса провайдера.
- `imageGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею інструментів/plugin, що генерує зображення.
- Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею інструмента/Plugin, що генерує зображення.
- Типові значення: `google/gemini-3.1-flash-image-preview` для нативної генерації зображень Gemini, `fal/fal-ai/flux/dev` для fal, `openai/gpt-image-2` для OpenAI Images або `openai/gpt-image-1.5` для виводу OpenAI PNG/WebP із прозорим тлом.
- Якщо вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію провайдера (наприклад, `GEMINI_API_KEY` або `GOOGLE_API_KEY` для `google/*`, `OPENAI_API_KEY` або OpenAI Codex OAuth для `openai/gpt-image-2` / `openai/gpt-image-1.5`, `FAL_KEY` для `fal/*`).
- Якщо пропущено, `image_generate` усе ще може вивести стандартного провайдера з наявною автентифікацією. Спершу він пробує поточного стандартного провайдера, потім решту зареєстрованих провайдерів генерації зображень у порядку ідентифікаторів провайдерів.
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію провайдера (наприклад, `GEMINI_API_KEY` або `GOOGLE_API_KEY` для `google/*`, `OPENAI_API_KEY` або OpenAI Codex OAuth для `openai/gpt-image-2` / `openai/gpt-image-1.5`, `FAL_KEY` для `fal/*`).
- Якщо пропущено, `image_generate` все одно може вивести типового провайдера з автентифікацією. Спершу він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації зображень у порядку ідентифікаторів провайдерів.
- `musicGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
- Використовується спільною можливістю генерації музики та вбудованим інструментом `music_generate`.
- Типові значення: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` або `minimax/music-2.6`.
- Якщо пропущено, `music_generate` усе ще може вивести стандартного провайдера з наявною автентифікацією. Спершу він пробує поточного стандартного провайдера, потім решту зареєстрованих провайдерів генерації музики в порядку ідентифікаторів провайдерів.
- Якщо вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ провайдера.
- Якщо пропущено, `music_generate` все одно може вивести типового провайдера з автентифікацією. Спершу він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації музики в порядку ідентифікаторів провайдерів.
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ провайдера.
- `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` усе ще може вивести стандартного провайдера з наявною автентифікацією. Спершу він пробує поточного стандартного провайдера, потім решту зареєстрованих провайдерів генерації відео в порядку ідентифікаторів провайдерів.
- Якщо вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ провайдера.
- Вбудований провайдер генерації відео Qwen підтримує до 1 вихідного відео, 1 вхідного зображення, 4 вхідних відео, тривалість 10 секунд і параметри рівня провайдера `size`, `aspectRatio`, `resolution`, `audio` та `watermark`.
- Якщо пропущено, `video_generate` все одно може вивести типового провайдера з автентифікацією. Спершу він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації відео в порядку ідентифікаторів провайдерів.
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ провайдера.
- Вбудований провайдер генерації відео 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`: стандартний рівень докладності для агентів. Значення: `"off"`, `"on"`, `"full"`. Стандартно: `"off"`.
- `reasoningDefault`: стандартна видимість reasoning для агентів. Значення: `"off"`, `"on"`, `"stream"`. `agents.list[].reasoningDefault` для окремого агента перевизначає це стандартне значення. Налаштовані стандартні значення reasoning застосовуються лише для власників, авторизованих відправників або контекстів Gateway адміністратора-оператора, коли не задано перевизначення reasoning для повідомлення або сеансу.
- `elevatedDefault`: стандартний рівень підвищеного виводу для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Стандартно: `"on"`.
- `model.primary`: формат `provider/model` (наприклад, `openai/gpt-5.5` для доступу через API-ключ або `openai-codex/gpt-5.5` для Codex OAuth). Якщо пропустити провайдера, OpenClaw спершу пробує псевдонім, потім унікальний збіг налаштованого провайдера для цього точного ідентифікатора моделі, і лише потім повертається до налаштованого стандартного провайдера (застаріла поведінка сумісності, тому надавайте перевагу явному `provider/model`). Якщо цей провайдер більше не надає налаштовану стандартну модель, OpenClaw повертається до першої налаштованої пари провайдер/модель замість показу застарілого стандартного значення видаленого провайдера.
- `models`: налаштований каталог моделей і allowlist для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для провайдера, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`, `responsesServerCompaction`, `responsesCompactThreshold`, `chat_template_kwargs`, `extra_body`/`extraBody`).
- Безпечні зміни: використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додати записи. `config set` відхиляє заміни, які видалили б наявні записи allowlist, якщо не передати `--replace`.
- Потоки налаштування/онбордингу в межах провайдера зливають вибрані моделі провайдера в цю мапу й зберігають уже налаштованих непов’язаних провайдерів.
- Для прямих моделей OpenAI Responses серверна Compaction вмикається автоматично. Використовуйте `params.responsesServerCompaction: false`, щоб припинити ін’єкцію `context_management`, або `params.responsesCompactThreshold`, щоб перевизначити поріг. Див. [серверну Compaction OpenAI](/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` (відповідний ідентифікатор агента) перевизначає за ключем. Докладніше див. [Prompt Caching](/uk/reference/prompt-caching).
- `params.extra_body`/`params.extraBody`: розширений наскрізний JSON, що зливається в тіла запитів `api: "openai-completions"` для OpenAI-сумісних проксі. Якщо він конфліктує зі згенерованими ключами запиту, додаткове тіло має перевагу; ненативні маршрути completions після цього все одно видаляють OpenAI-специфічний `store`.
- `params.chat_template_kwargs`: аргументи chat-template, сумісні з vLLM/OpenAI, що зливаються в тіла запитів верхнього рівня `api: "openai-completions"`. Для `vllm/nemotron-3-*` з вимкненим thinking вбудований vLLM Plugin автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true`; явні `chat_template_kwargs` перевизначають згенеровані стандартні значення, а `extra_body.chat_template_kwargs` усе ще має остаточний пріоритет. Для елементів керування thinking Qwen задайте `params.qwenThinkingFormat` як `"chat-template"` або `"top-level"` у цьому записі моделі.
- `compat.supportedReasoningEfforts`: список зусиль reasoning для кожної OpenAI-сумісної моделі. Додайте `"xhigh"` для користувацьких endpoint, які справді його приймають; тоді OpenClaw показує `/think xhigh` у меню команд, рядках сеансів Gateway, перевірці patch сеансу, перевірці CLI агента та перевірці `llm-task` для цієї налаштованої пари провайдер/модель. Використовуйте `compat.reasoningEffortMap`, коли backend очікує специфічне для провайдера значення для канонічного рівня.
- `params.preserveThinking`: opt-in лише для Z.AI для збереженого thinking. Коли ввімкнено й thinking увімкнений, OpenClaw надсилає `thinking.clear_thinking: false` і повторно відтворює попередній `reasoning_content`; див. [thinking Z.AI і збережений thinking](/uk/providers/zai#thinking-and-preserved-thinking).
- `agentRuntime`: стандартна низькорівнева політика runtime агента. Пропущений ідентифікатор стандартно означає OpenClaw Pi. Використовуйте `id: "pi"`, щоб примусово задіяти вбудований PI harness, `id: "auto"`, щоб дозволити зареєстрованим plugin harnesses забирати підтримувані моделі, зареєстрований ідентифікатор harness, як-от `id: "codex"`, або підтримуваний псевдонім CLI backend, як-от `id: "claude-cli"`. Задайте `fallback: "none"`, щоб вимкнути автоматичний fallback до PI. Явні plugin runtimes, як-от `codex`, за замовчуванням fail closed, якщо в тій самій області перевизначення не задано `fallback: "pi"`. Зберігайте посилання на моделі канонічними як `provider/model`; вибирайте Codex, Claude CLI, Gemini CLI та інші execution backends через runtime config замість застарілих префіксів runtime provider. Див. [runtime агентів](/uk/concepts/agent-runtimes), щоб зрозуміти, чим це відрізняється від вибору провайдера/моделі.
- Записувачі конфігурації, що змінюють ці поля (наприклад, `/models set`, `/models set-image` і команди додавання/видалення fallback), зберігають канонічну об’єктну форму й за можливості зберігають наявні списки fallback.
- `maxConcurrent`: максимальна кількість паралельних запусків агентів між сеансами (кожен сеанс усе ще серіалізований). Стандартно: 4.
- Використовується інструментом `pdf` для маршрутизації моделей.
- Якщо пропущено, інструмент PDF повертається до `imageModel`, а потім до розв’язаної моделі сеансу/типової моделі.
- `pdfMaxBytesMb`: типовий ліміт розміру PDF для інструмента `pdf`, коли `maxBytesMb` не передано під час виклику.
- `pdfMaxPages`: типова максимальна кількість сторінок, яку враховує резервний режим витягання в інструменті `pdf`.
- `verboseDefault`: типовий рівень докладності для агентів. Значення: `"off"`, `"on"`, `"full"`. Типово: `"off"`.
- `reasoningDefault`: типова видимість міркувань для агентів. Значення: `"off"`, `"on"`, `"stream"`. `agents.list[].reasoningDefault` для окремого агента перевизначає це типове значення. Налаштовані типові значення міркувань застосовуються лише для власників, авторизованих відправників або контекстів gateway operator-admin, коли не встановлено перевизначення міркувань для повідомлення чи сеансу.
- `elevatedDefault`: типовий рівень підвищеного виводу для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Типово: `"on"`.
- `model.primary`: формат `provider/model` (наприклад, `openai/gpt-5.5` для доступу через API-ключ або `openai-codex/gpt-5.5` для Codex OAuth). Якщо ви пропускаєте провайдера, OpenClaw спершу пробує псевдонім, потім унікальний збіг налаштованого провайдера для цього точного ID моделі й лише після цього повертається до налаштованого типового провайдера (застаріла поведінка сумісності, тому надавайте перевагу явному `provider/model`). Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw повертається до першої налаштованої пари провайдер/модель замість того, щоб показувати застаріле типове значення видаленого провайдера.
- `models`: налаштований каталог моделей і список дозволених моделей для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для провайдера, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`, `responsesServerCompaction`, `responsesCompactThreshold`, `chat_template_kwargs`, `extra_body`/`extraBody`).
- Безпечні зміни: використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додати записи. `config set` відмовляє в замінах, які видалили б наявні записи списку дозволених, якщо ви не передасте `--replace`.
- Потоки налаштування/онбордингу в межах провайдера об’єднують вибрані моделі провайдера в цю мапу й зберігають уже налаштованих непов’язаних провайдерів.
- Для прямих моделей OpenAI Responses серверне Compaction увімкнено автоматично. Використовуйте `params.responsesServerCompaction: false`, щоб припинити вставлення `context_management`, або `params.responsesCompactThreshold`, щоб перевизначити поріг. Див. [серверне Compaction OpenAI](/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 агента) перевизначає за ключем. Докладніше див. [Кешування промптів](/uk/reference/prompt-caching).
- `params.extra_body`/`params.extraBody`: розширений JSON наскрізної передачі, що об’єднується в тіла запитів `api: "openai-completions"` для OpenAI-сумісних проксі. Якщо він конфліктує зі згенерованими ключами запиту, перемагає додаткове тіло; ненативні маршрути completions після цього все одно вилучають OpenAI-only `store`.
- `params.chat_template_kwargs`: OpenAI-сумісні аргументи шаблону чату vLLM, що об’єднуються в тіла запитів верхнього рівня `api: "openai-completions"`. Для `vllm/nemotron-3-*` із вимкненим thinking вбудований Plugin vLLM автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true`; явні `chat_template_kwargs` перевизначають згенеровані типові значення, а `extra_body.chat_template_kwargs` усе ще має остаточний пріоритет. Для керування thinking Qwen vLLM задайте `params.qwenThinkingFormat` як `"chat-template"` або `"top-level"` у цьому записі моделі.
- `compat.supportedReasoningEfforts`: список зусиль reasoning для OpenAI-сумісної моделі. Додайте `"xhigh"` для користувацьких endpoint, які справді його приймають; тоді OpenClaw показує `/think xhigh` у меню команд, рядках сеансів Gateway, валідації патчів сеансу, валідації CLI агента та валідації `llm-task` для цього налаштованого провайдера/моделі. Використовуйте `compat.reasoningEffortMap`, коли backend потребує специфічного для провайдера значення для канонічного рівня.
- `params.preserveThinking`: Z.AI-only увімкнення збереженого thinking. Коли увімкнено і thinking активний, OpenClaw надсилає `thinking.clear_thinking: false` і відтворює попередній `reasoning_content`; див. [thinking Z.AI та збережений thinking](/uk/providers/zai#thinking-and-preserved-thinking).
- `agentRuntime`: типова низькорівнева політика runtime агента. Пропущений ID типово означає OpenClaw Pi. Використовуйте `id: "pi"`, щоб примусово застосувати вбудований PI harness, `id: "auto"`, щоб дозволити зареєстрованим plugin harnesses заявляти підтримувані моделі, зареєстрований ID harness, як-от `id: "codex"`, або підтримуваний alias backend CLI, як-от `id: "claude-cli"`. Задайте `fallback: "none"`, щоб вимкнути автоматичний fallback PI. Явні plugin runtimes, як-от `codex`, типово fail closed, якщо ви не задасте `fallback: "pi"` у тій самій області перевизначення. Зберігайте посилання на моделі канонічними як `provider/model`; вибирайте Codex, Claude CLI, Gemini CLI та інші execution backends через runtime config замість застарілих префіксів runtime provider. Див. [Runtimes агентів](/uk/concepts/agent-runtimes), щоб зрозуміти, чим це відрізняється від вибору провайдера/моделі.
- Записувачі конфігурації, які змінюють ці поля (наприклад, `/models set`, `/models set-image` і команди додавання/видалення fallback), зберігають канонічну об’єктну форму й за можливості зберігають наявні списки fallback.
- `maxConcurrent`: максимальна кількість паралельних запусків агентів у межах сеансів (кожен сеанс усе одно серіалізований). Типово: 4.
### `agents.defaults.agentRuntime`
`agentRuntime` керує тим, який низькорівневий executor виконує ходи агента. Більшість
розгортань мають зберігати стандартний runtime OpenClaw Pi. Використовуйте його, коли довірений
`agentRuntime` керує тим, який низькорівневий виконавець запускає ходи агента. Більшості
розгортань варто залишити типовий runtime OpenClaw Pi. Використовуйте його, коли довірений
Plugin надає нативний harness, як-от вбудований harness app-server Codex,
або коли потрібен підтримуваний CLI backend, як-от Claude CLI. Для ментальної
моделі див. [runtime агентів](/uk/concepts/agent-runtimes).
або коли вам потрібен підтримуваний backend CLI, як-от Claude CLI. Для ментальної
моделі див. [Runtimes агентів](/uk/concepts/agent-runtimes).
```json5
{
@ -412,16 +412,16 @@ Plugin надає нативний harness, як-от вбудований harne
}
```
- `id`: `"auto"`, `"pi"`, зареєстрований ідентифікатор plugin harness або підтримуваний псевдонім CLI backend. Вбудований Codex Plugin реєструє `codex`; вбудований Anthropic Plugin надає CLI backend `claude-cli`.
- `fallback`: `"pi"` або `"none"`. В `id: "auto"` пропущений fallback стандартно дорівнює `"pi"`, щоб старі конфігурації могли й надалі використовувати PI, коли жоден plugin harness не забирає запуск. У режимі явного plugin runtime, як-от `id: "codex"`, пропущений fallback стандартно дорівнює `"none"`, тож відсутній harness завершується помилкою замість тихого використання PI. Runtime overrides не успадковують fallback із ширшої області; задайте `fallback: "pi"` поруч із явним runtime, коли навмисно потрібен цей compatibility fallback. Збої вибраного plugin harness завжди показуються напряму.
- `id`: `"auto"`, `"pi"`, зареєстрований ID plugin harness або підтримуваний alias backend CLI. Вбудований Plugin Codex реєструє `codex`; вбудований Plugin Anthropic надає backend CLI `claude-cli`.
- `fallback`: `"pi"` або `"none"`. У `id: "auto"` пропущений fallback типово дорівнює `"pi"`, щоб старі конфігурації могли й далі використовувати PI, коли жоден plugin harness не заявляє запуск. У режимі явного runtime Plugin, як-от `id: "codex"`, пропущений fallback типово дорівнює `"none"`, щоб відсутній harness завершувався помилкою замість тихого використання PI. Перевизначення runtime не успадковують fallback із ширшої області; задайте `fallback: "pi"` поряд із явним runtime, коли навмисно хочете цей fallback сумісності. Збої вибраного plugin harness завжди показуються напряму.
- Перевизначення середовища: `OPENCLAW_AGENT_RUNTIME=<id|auto|pi>` перевизначає `id`; `OPENCLAW_AGENT_HARNESS_FALLBACK=pi|none` перевизначає fallback для цього процесу.
- Для розгортань лише з Codex задайте `model: "openai/gpt-5.5"` і `agentRuntime.id: "codex"`. Також можете явно задати `agentRuntime.fallback: "none"` для читабельності; це стандарт для явних plugin runtimes.
- Для розгортань лише з Codex задайте `model: "openai/gpt-5.5"` і `agentRuntime.id: "codex"`. Також можна явно задати `agentRuntime.fallback: "none"` для читабельності; це типове значення для явних plugin runtimes.
- Для розгортань Claude CLI надавайте перевагу `model: "anthropic/claude-opus-4-7"` плюс `agentRuntime.id: "claude-cli"`. Застарілі посилання на моделі `claude-cli/claude-opus-4-7` усе ще працюють для сумісності, але нова конфігурація має зберігати вибір провайдера/моделі канонічним і розміщувати execution backend у `agentRuntime.id`.
- Старі ключі runtime-policy переписуються в `agentRuntime` командою `openclaw doctor --fix`.
- Вибір harness фіксується для кожного ідентифікатора сеансу після першого вбудованого запуску. Зміни конфігурації/середовища впливають на нові або скинуті сеанси, а не на наявний transcript. Застарілі сеанси з історією transcript, але без записаного pin, вважаються прив’язаними до PI. `/status` повідомляє ефективний runtime, наприклад `Runtime: OpenClaw Pi Default` або `Runtime: OpenAI Codex`.
- Це керує лише виконанням текстових ходів агента. Генерація медіа, vision, PDF, музика, відео та TTS усе ще використовують свої налаштування провайдера/моделі.
- Старі ключі політики runtime переписуються в `agentRuntime` командою `openclaw doctor --fix`.
- Вибір harness закріплюється за ID сеансу після першого вбудованого запуску. Зміни конфігурації/середовища впливають на нові або скинуті сеанси, а не на наявний transcript. Застарілі сеанси з історією transcript, але без записаного закріплення, вважаються закріпленими за PI. `/status` повідомляє ефективний runtime, наприклад `Runtime: OpenClaw Pi Default` або `Runtime: OpenAI Codex`.
- Це керує лише виконанням текстових ходів агента. Генерація медіа, бачення, PDF, музика, відео й TTS усе ще використовують свої налаштування провайдера/моделі.
**Вбудовані скорочення псевдонімів** (застосовуються лише коли модель є в `agents.defaults.models`):
**Вбудовані скорочення псевдонімів** (застосовуються лише тоді, коли модель є в `agents.defaults.models`):
| Псевдонім | Модель |
| ------------------- | ------------------------------------------ |
@ -434,15 +434,15 @@ Plugin надає нативний harness, як-от вбудований harne
| `gemini-flash` | `google/gemini-3-flash-preview` |
| `gemini-flash-lite` | `google/gemini-3.1-flash-lite-preview` |
Налаштовані вами псевдоніми завжди мають пріоритет над типовими.
Ваші налаштовані псевдоніми завжди мають перевагу над типовими значеннями.
Моделі Z.AI GLM-4.x автоматично вмикають режим мислення, якщо ви не встановите `--thinking off` або самостійно не визначите `agents.defaults.models["zai/<model>"].params.thinking`.
Моделі Z.AI GLM-4.x автоматично вмикають режим мислення, якщо ви не встановите `--thinking off` або не визначите `agents.defaults.models["zai/<model>"].params.thinking` самостійно.
Моделі Z.AI типово вмикають `tool_stream` для потокового передавання викликів інструментів. Установіть `agents.defaults.models["zai/<model>"].params.tool_stream` на `false`, щоб вимкнути це.
Моделі Anthropic Claude 4.6 типово використовують `adaptive` thinking, якщо явний рівень мислення не задано.
Моделі Anthropic Claude 4.6 типово використовують мислення `adaptive`, якщо явний рівень мислення не задано.
### `agents.defaults.cliBackends`
Необов’язкові бекенди CLI для резервних запусків лише з текстом (без викликів інструментів). Корисно як резервний варіант, коли API-провайдери не працюють.
Необов’язкові CLI бекенди для резервних запусків лише з текстом (без викликів інструментів). Корисно як резервний варіант, коли API-провайдери дають збій.
```json5
{
@ -471,13 +471,13 @@ Plugin надає нативний harness, як-от вбудований harne
}
```
- Бекенди CLI насамперед текстові; інструменти завжди вимкнені.
- CLI бекенди насамперед текстові; інструменти завжди вимкнені.
- Сеанси підтримуються, коли задано `sessionArg`.
- Наскрізне передавання зображень підтримується, коли `imageArg` приймає шляхи до файлів.
### `agents.defaults.systemPromptOverride`
Замініть весь системний промпт, зібраний OpenClaw, фіксованим рядком. Задається на рівні типових значень (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають пріоритет; порожнє значення або значення лише з пробільних символів ігнорується. Корисно для контрольованих експериментів із промптами.
Замінює весь системний промпт, зібраний OpenClaw, фіксованим рядком. Задається на рівні типових значень (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають перевагу; порожнє значення або значення лише з пробілів ігнорується. Корисно для контрольованих експериментів із промптами.
```json5
{
@ -491,7 +491,7 @@ Plugin надає нативний harness, як-от вбудований harne
### `agents.defaults.promptOverlays`
Незалежні від провайдера накладки промптів, що застосовуються за сімейством моделей. Ідентифікатори моделей сімейства GPT-5 отримують спільний контракт поведінки для всіх провайдерів; `personality` керує лише дружнім шаром стилю взаємодії.
Незалежні від провайдера накладки промптів, застосовані за родиною моделей. Ідентифікатори моделей родини GPT-5 отримують спільний контракт поведінки для всіх провайдерів; `personality` керує лише дружнім шаром стилю взаємодії.
```json5
{
@ -508,8 +508,8 @@ Plugin надає нативний harness, як-от вбудований harne
```
- `"friendly"` (типово) і `"on"` вмикають дружній шар стилю взаємодії.
- `"off"` вимикає лише дружній шар; позначений контракт поведінки GPT-5 залишається ввімкненим.
- Застарілий `plugins.entries.openai.config.personality` усе ще зчитується, коли це спільне налаштування не задано.
- `"off"` вимикає лише дружній шар; позначений контракт поведінки GPT-5 лишається ввімкненим.
- Застарілий `plugins.entries.openai.config.personality` досі читається, коли це спільне налаштування не задано.
### `agents.defaults.heartbeat`
@ -541,14 +541,14 @@ Plugin надає нативний harness, як-от вбудований harne
}
```
- `every`: рядок тривалості (ms/s/m/h). Типово: `30m` (автентифікація за API-ключем) або `1h` (OAuth-автентифікація). Установіть `0m`, щоб вимкнути.
- `includeSystemPromptSection`: коли `false`, вилучає розділ Heartbeat із системного промпта й пропускає ін’єкцію `HEARTBEAT.md` у bootstrap-контекст. Типово: `true`.
- `suppressToolErrorWarnings`: коли `true`, пригнічує попереджувальні payload про помилки інструментів під час запусків Heartbeat.
- `timeoutSeconds`: максимальний час у секундах, дозволений для ходу агента Heartbeat перед його перериванням. Залиште незаданим, щоб використовувати `agents.defaults.timeoutSeconds`.
- `directPolicy`: політика прямої доставки/DM. `allow` (типово) дозволяє доставку прямій цілі. `block` пригнічує доставку прямій цілі й видає `reason=dm-blocked`.
- `lightContext`: коли `true`, запуски Heartbeat використовують полегшений bootstrap-контекст і зберігають лише `HEARTBEAT.md` із bootstrap-файлів робочої області.
- `isolatedSession`: коли `true`, кожен Heartbeat запускається в новому сеансі без попередньої історії розмови. Такий самий шаблон ізоляції, як у cron `sessionTarget: "isolated"`. Зменшує вартість токенів на Heartbeat приблизно зі 100 тис. до 2-5 тис. токенів.
- `skipWhenBusy`: коли `true`, запуски Heartbeat відкладаються на додаткових зайнятих лініях: робота субагента або вкладеної команди. Лінії Cron завжди відкладають Heartbeat, навіть без цього прапорця.
- `every`: рядок тривалості (ms/s/m/h). Типово: `30m` (автентифікація API-ключем) або `1h` (автентифікація OAuth). Установіть `0m`, щоб вимкнути.
- `includeSystemPromptSection`: коли `false`, пропускає розділ Heartbeat у системному промпті та не вставляє `HEARTBEAT.md` у контекст bootstrap. Типово: `true`.
- `suppressToolErrorWarnings`: коли `true`, пригнічує попереджувальні payload про помилки інструментів під час запусків Heartbeat.
- `timeoutSeconds`: максимальний час у секундах, дозволений для ходу агента Heartbeat до його переривання. Не задавайте, щоб використати `agents.defaults.timeoutSeconds`.
- `directPolicy`: політика прямої доставки/DM. `allow` (типово) дозволяє доставку до прямої цілі. `block` пригнічує доставку до прямої цілі та видає `reason=dm-blocked`.
- `lightContext`: коли `true`, запуски Heartbeat використовують полегшений контекст bootstrap і зберігають лише `HEARTBEAT.md` із файлів bootstrap робочого простору.
- `isolatedSession`: коли `true`, кожен Heartbeat запускається в новому сеансі без попередньої історії розмови. Такий самий шаблон ізоляції, як у cron `sessionTarget: "isolated"`. Зменшує вартість токенів на Heartbeat із ~100K до ~2-5K токенів.
- `skipWhenBusy`: коли `true`, запуски Heartbeat відкладаються за наявності додаткових зайнятих ліній: роботи субагента або вкладеної команди. Лінії Cron завжди відкладають Heartbeat, навіть без цього прапорця.
- Для окремого агента: задайте `agents.list[].heartbeat`. Коли будь-який агент визначає `heartbeat`, Heartbeat запускають **лише ці агенти**.
- Heartbeat виконують повні ходи агента — коротші інтервали витрачають більше токенів.
@ -586,17 +586,17 @@ Plugin надає нативний harness, як-от вбудований harne
```
- `mode`: `default` або `safeguard` (фрагментоване узагальнення для довгих історій). Див. [Compaction](/uk/concepts/compaction).
- `provider`: id зареєстрованого compaction-провайдера Plugin. Коли задано, замість вбудованого LLM-узагальнення викликається `summarize()` провайдера. У разі збою виконується fallback до вбудованого механізму. Задання провайдера примусово встановлює `mode: "safeguard"`. Див. [Compaction](/uk/concepts/compaction).
- `timeoutSeconds`: максимальна кількість секунд, дозволена для однієї операції compaction, перш ніж OpenClaw її перерве. Типово: `900`.
- `keepRecentTokens`: бюджет точки відсікання Pi для збереження найновішого хвоста транскрипту дослівно. Ручний `/compact` дотримується цього, коли значення явно задано; інакше ручна compaction є жорсткою контрольною точкою.
- `identifierPolicy`: `strict` (типово), `off` або `custom`. `strict` додає на початок вбудовані настанови щодо збереження непрозорих ідентифікаторів під час compaction-узагальнення.
- `identifierInstructions`: необов’язковий власний текст щодо збереження ідентифікаторів, який використовується, коли `identifierPolicy=custom`.
- `qualityGuard`: перевірки з повторною спробою для некоректно сформованого виводу в safeguard-узагальненнях. Типово ввімкнено в режимі safeguard; установіть `enabled: false`, щоб пропустити аудит.
- `postCompactionSections`: необов’язкові назви H2/H3-розділів AGENTS.md для повторної ін’єкції після compaction. Типово `["Session Startup", "Red Lines"]`; установіть `[]`, щоб вимкнути повторну ін’єкцію. Коли не задано або явно задано цю типову пару, старі заголовки `Every Session`/`Safety` також приймаються як застарілий fallback.
- `model`: необов’язкове перевизначення `provider/model-id` лише для compaction-узагальнення. Використовуйте це, коли основний сеанс має зберігати одну модель, а compaction-узагальнення мають виконуватися на іншій; коли не задано, compaction використовує основну модель сеансу.
- `maxActiveTranscriptBytes`: необов’язковий поріг у байтах (`number` або рядки на кшталт `"20mb"`), який запускає звичайну локальну compaction перед запуском, коли активний JSONL перевищує поріг. Потребує `truncateAfterCompaction`, щоб успішна compaction могла повернутися до меншого наступного транскрипту. Вимкнено, коли не задано або дорівнює `0`.
- `notifyUser`: коли `true`, надсилає користувачу короткі сповіщення, коли compaction починається і коли завершується (наприклад, "Compacting context..." і "Compaction complete"). Типово вимкнено, щоб compaction залишалася беззвучною.
- `memoryFlush`: беззвучний агентний хід перед автоматичною compaction для збереження довготривалих спогадів. Установіть `model` на точний provider/model, як-от `ollama/qwen3:8b`, коли цей службовий хід має залишатися на локальній моделі; перевизначення не успадковує fallback-ланцюжок активного сеансу. Пропускається, коли робоча область доступна лише для читання.
- `provider`: ідентифікатор зареєстрованого plugin провайдера compaction. Коли задано, замість вбудованого LLM-узагальнення викликається `summarize()` провайдера. У разі збою відбувається повернення до вбудованого варіанта. Задання провайдера примусово встановлює `mode: "safeguard"`. Див. [Compaction](/uk/concepts/compaction).
- `timeoutSeconds`: максимальна кількість секунд, дозволена для однієї операції compaction до того, як OpenClaw перерве її. Типово: `900`.
- `keepRecentTokens`: бюджет точки відсікання Pi для дослівного збереження найсвіжішого хвоста транскрипту. Ручний `/compact` дотримується цього, коли значення явно задано; інакше ручна compaction є жорсткою контрольною точкою.
- `identifierPolicy`: `strict` (типово), `off` або `custom`. `strict` додає на початок вбудовані вказівки щодо збереження непрозорих ідентифікаторів під час узагальнення compaction.
- `identifierInstructions`: необов’язковий користувацький текст збереження ідентифікаторів, що використовується, коли `identifierPolicy=custom`.
- `qualityGuard`: перевірки повторної спроби у разі некоректно сформованого виводу для зведень safeguard. Типово ввімкнено в режимі safeguard; установіть `enabled: false`, щоб пропустити аудит.
- `postCompactionSections`: необов’язкові назви розділів H2/H3 з AGENTS.md для повторного вставлення після compaction. Типово `["Session Startup", "Red Lines"]`; установіть `[]`, щоб вимкнути повторне вставлення. Коли не задано або явно задано цю типову пару, старі заголовки `Every Session`/`Safety` також приймаються як застарілий резервний варіант.
- `model`: необов’язкове перевизначення `provider/model-id` лише для узагальнення compaction. Використовуйте це, коли основний сеанс має зберігати одну модель, а зведення compaction мають виконуватися на іншій; коли не задано, compaction використовує основну модель сеансу.
- `maxActiveTranscriptBytes`: необов’язковий поріг у байтах (`number` або рядки на кшталт `"20mb"`), який запускає звичайну локальну compaction перед запуском, коли активний JSONL перевищує поріг. Потребує `truncateAfterCompaction`, щоб успішна compaction могла переключитися на менший наступний транскрипт. Вимкнено, коли не задано або дорівнює `0`.
- `notifyUser`: коли `true`, надсилає користувачу короткі сповіщення, коли compaction починається та коли завершується (наприклад, "Compacting context..." і "Compaction complete"). Типово вимкнено, щоб compaction була тихою.
- `memoryFlush`: тихий агентний хід перед автоматичною compaction для збереження тривалих спогадів. Установіть `model` на точний provider/model, наприклад `ollama/qwen3:8b`, коли цей службовий хід має лишатися на локальній моделі; перевизначення не успадковує резервний ланцюжок активного сеансу. Пропускається, коли робочий простір доступний лише для читання.
### `agents.defaults.contextPruning`
@ -625,24 +625,24 @@ Plugin надає нативний harness, як-от вбудований harne
<Accordion title="поведінка режиму cache-ttl">
- `mode: "cache-ttl"` вмикає проходи обрізання.
- `ttl` керує тим, як часто обрізання може запускатися знову (після останнього звернення до кешу).
- Обрізання спершу м’яко скорочує надмірні результати інструментів, а потім, за потреби, жорстко очищає старіші результати інструментів.
- `ttl` керує тим, як часто обрізання може запускатися знову (після останнього торкання кешу).
- Обрізання спершу м’яко скорочує завеликі результати інструментів, а потім, за потреби, повністю очищає старіші результати інструментів.
**М’яке скорочення** зберігає початок + кінець і вставляє `...` посередині.
**Жорстке очищення** замінює весь результат інструмента placeholder-ом.
**Повне очищення** замінює весь результат інструмента заповнювачем.
Примітки:
- Блоки зображень ніколи не скорочуються й не очищаються.
- Співвідношення базуються на символах (приблизно), а не на точній кількості токенів.
- Блоки зображень ніколи не скорочуються й не очищуються.
- Співвідношення базуються на символах (наближено), а не на точній кількості токенів.
- Якщо існує менше ніж `keepLastAssistants` повідомлень асистента, обрізання пропускається.
</Accordion>
Див. [Обрізання сеансу](/uk/concepts/session-pruning), щоб дізнатися подробиці поведінки.
### Потокове передавання блоків
### Блокове потокове передавання
```json5
{
@ -659,10 +659,10 @@ Plugin надає нативний harness, як-от вбудований harne
```
- Канали, відмінні від Telegram, потребують явного `*.blockStreaming: true`, щоб увімкнути блокові відповіді.
- Перевизначення каналів: `channels.<channel>.blockStreamingCoalesce` (і варіанти для окремих облікових записів). Signal/Slack/Discord/Google Chat типово мають `minChars: 1500`.
- Перевизначення каналів: `channels.<channel>.blockStreamingCoalesce` (і варіанти для окремого облікового запису). Signal/Slack/Discord/Google Chat типово використовують `minChars: 1500`.
- `humanDelay`: рандомізована пауза між блоковими відповідями. `natural` = 8002500ms. Перевизначення для окремого агента: `agents.list[].humanDelay`.
Див. [Потокове передавання](/uk/concepts/streaming), щоб дізнатися подробиці поведінки й фрагментації.
Див. [Потокове передавання](/uk/concepts/streaming), щоб дізнатися подробиці поведінки й розбиття на фрагменти.
### Індикатори набору
@ -677,8 +677,8 @@ Plugin надає нативний harness, як-от вбудований harne
}
```
- За замовчуванням: `instant` для прямих чатів/згадок, `message` для групових чатів без згадки.
- Перевизначення для окремого сеансу: `session.typingMode`, `session.typingIntervalSeconds`.
- Типові значення: `instant` для прямих чатів/згадок, `message` для групових чатів без згадки.
- Перевизначення для окремих сесій: `session.typingMode`, `session.typingIntervalSeconds`.
Див. [Індикатори набору](/uk/concepts/typing-indicators).
@ -686,7 +686,7 @@ Plugin надає нативний harness, як-от вбудований harne
### `agents.defaults.sandbox`
Необов’язкова ізоляція в пісочниці для вбудованого агента. Повний посібник див. у [Ізоляція в пісочниці](/uk/gateway/sandboxing).
Необов’язкова ізоляція для вбудованого агента. Повний посібник див. у [Ізоляція](/uk/gateway/sandboxing).
```json5
{
@ -732,7 +732,7 @@ Plugin надає нативний harness, як-от вбудований harne
identityFile: "~/.ssh/id_ed25519",
certificateFile: "~/.ssh/id_ed25519-cert.pub",
knownHostsFile: "~/.ssh/known_hosts",
// SecretRefs / вбудований вміст також підтримуються:
// SecretRefs / inline contents also supported:
// identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" },
// certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" },
// knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" },
@ -781,52 +781,52 @@ Plugin надає нативний harness, як-от вбудований harne
}
```
<Accordion title="Відомості про пісочницю">
<Accordion title="Відомості про ізоляцію">
**Бекенд:**
- `docker`: локальне середовище виконання Docker (за замовчуванням)
- `docker`: локальне середовище виконання Docker (типово)
- `ssh`: універсальне віддалене середовище виконання на базі SSH
- `openshell`: середовище виконання OpenShell
Коли вибрано `backend: "openshell"`, специфічні для середовища виконання налаштування переміщуються до
Коли вибрано `backend: "openshell"`, налаштування, специфічні для середовища виконання, переносяться до
`plugins.entries.openshell.config`.
**Конфігурація SSH-бекенда:**
**Конфігурація бекенда SSH:**
- `target`: SSH-ціль у форматі `user@host[:port]`
- `command`: команда SSH-клієнта (за замовчуванням: `ssh`)
- `workspaceRoot`: абсолютний віддалений корінь, який використовується для робочих просторів за областю
- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, що передаються до OpenSSH
- `identityData` / `certificateData` / `knownHostsData`: вбудований вміст або SecretRefs, які OpenClaw матеріалізує в тимчасові файли під час виконання
- `strictHostKeyChecking` / `updateHostKeys`: параметри політики ключів хоста OpenSSH
- `target`: ціль SSH у формі `user@host[:port]`
- `command`: команда клієнта SSH (типово: `ssh`)
- `workspaceRoot`: абсолютний віддалений корінь, що використовується для робочих просторів кожної області
- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, передані до OpenSSH
- `identityData` / `certificateData` / `knownHostsData`: вбудований вміст або SecretRefs, які OpenClaw матеріалізує у тимчасові файли під час виконання
- `strictHostKeyChecking` / `updateHostKeys`: перемикачі політики ключів хоста OpenSSH
**Пріоритет автентифікації SSH:**
- `identityData` має пріоритет над `identityFile`
- `certificateData` має пріоритет над `certificateFile`
- `knownHostsData` має пріоритет над `knownHostsFile`
- Значення `*Data` на базі SecretRef розв’язуються з активного знімка середовища виконання секретів до запуску сеансу пісочниці
- Значення `*Data` на базі SecretRef розв’язуються з активного знімка середовища виконання секретів до запуску ізольованої сесії
**Поведінка SSH-бекенда:**
**Поведінка бекенда SSH:**
- один раз засіває віддалений робочий простір після створення або повторного створення
- потім залишає віддалений SSH-робочий простір канонічним
- одноразово заповнює віддалений робочий простір після створення або повторного створення
- потім підтримує віддалений робочий простір SSH канонічним
- маршрутизує `exec`, файлові інструменти та медіашляхи через SSH
- не синхронізує віддалені зміни назад на хост автоматично
- не підтримує браузерні контейнери пісочниці
- не підтримує контейнери ізольованого браузера
**Доступ до робочого простору:**
- `none`: робочий простір пісочниці для кожної області під `~/.openclaw/sandboxes`
- `ro`: робочий простір пісочниці в `/workspace`, робочий простір агента змонтовано лише для читання в `/agent`
- `none`: робочий простір ізоляції для кожної області в `~/.openclaw/sandboxes`
- `ro`: робочий простір ізоляції в `/workspace`, робочий простір агента змонтовано лише для читання в `/agent`
- `rw`: робочий простір агента змонтовано для читання/запису в `/workspace`
**Область:**
- `session`: контейнер + робочий простір для кожного сеансу
- `agent`: один контейнер + робочий простір на агента (за замовчуванням)
- `shared`: спільний контейнер і робочий простір (без ізоляції між сеансами)
- `session`: контейнер і робочий простір для кожної сесії
- `agent`: один контейнер і робочий простір на агента (типово)
- `shared`: спільний контейнер і робочий простір (без ізоляції між сесіями)
**Конфігурація Plugin OpenShell:**
@ -856,30 +856,30 @@ Plugin надає нативний harness, як-от вбудований harne
**Режим OpenShell:**
- `mirror`: засіяти віддалене середовище з локального перед exec, синхронізувати назад після exec; локальний робочий простір залишається канонічним
- `remote`: засіяти віддалене середовище один раз під час створення пісочниці, потім залишати віддалений робочий простір канонічним
- `mirror`: заповнює віддалене середовище з локального перед exec, синхронізує назад після exec; локальний робочий простір залишається канонічним
- `remote`: одноразово заповнює віддалене середовище під час створення ізоляції, потім підтримує віддалений робочий простір канонічним
У режимі `remote` локальні зміни на хості, зроблені поза OpenClaw, не синхронізуються в пісочницю автоматично після кроку засівання.
Транспортом є SSH у пісочницю OpenShell, але Plugin відповідає за життєвий цикл пісочниці та необов’язкову дзеркальну синхронізацію.
У режимі `remote` локальні для хоста зміни, внесені поза OpenClaw, не синхронізуються в ізоляцію автоматично після етапу початкового заповнення.
Транспортом є SSH в ізоляцію OpenShell, але Plugin відповідає за життєвий цикл ізоляції та необов’язкову дзеркальну синхронізацію.
**`setupCommand`** запускається один раз після створення контейнера (через `sh -lc`). Потребує виходу в мережу, кореня з можливістю запису, користувача root.
**`setupCommand`** виконується один раз після створення контейнера (через `sh -lc`). Потребує виходу в мережу, кореневої файлової системи з правом запису, користувача root.
**За замовчуванням контейнери використовують `network: "none"`** — установіть `"bridge"` (або власну мостову мережу), якщо агенту потрібен вихідний доступ.
`"host"` заблоковано. `"container:<id>"` заблоковано за замовчуванням, якщо ви явно не встановите
**Контейнери типово використовують `network: "none"`** — установіть `"bridge"` (або власну мостову мережу), якщо агенту потрібен вихідний доступ.
`"host"` заблоковано. `"container:<id>"` типово заблоковано, якщо явно не встановити
`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` (аварійний виняток).
**Вхідні вкладення** розміщуються в `media/inbound/*` в активному робочому просторі.
**`docker.binds`** монтує додаткові директорії хоста; глобальні прив’язки та прив’язки для окремих агентів об’єднуються.
**`docker.binds`** монтує додаткові каталоги хоста; глобальні прив’язки та прив’язки для окремих агентів об’єднуються.
**Ізольований браузер** (`sandbox.browser.enabled`): Chromium + CDP у контейнері. URL noVNC вставляється в системний промпт. Не потребує `browser.enabled` в `openclaw.json`.
Доступ спостерігача noVNC за замовчуванням використовує автентифікацію VNC, а OpenClaw видає короткочасний URL із токеном (замість розкриття пароля у спільному URL).
Доступ спостерігача noVNC типово використовує автентифікацію VNC, а OpenClaw видає короткочасний URL із токеном (замість розкриття пароля в спільному URL).
- `allowHostControl: false` (за замовчуванням) блокує ізольованим сеансам націлювання на браузер хоста.
- `network` за замовчуванням дорівнює `openclaw-sandbox-browser` (виділена мостова мережа). Установлюйте `bridge` лише коли явно потрібне глобальне мостове підключення.
- `cdpSourceRange` необов’язково обмежує вхід CDP на межі контейнера до діапазону CIDR (наприклад `172.21.0.1/32`).
- `sandbox.browser.binds` монтує додаткові директорії хоста лише в контейнер браузера пісочниці. Коли встановлено (зокрема `[]`), замінює `docker.binds` для контейнера браузера.
- Стандартні параметри запуску визначено в `scripts/sandbox-browser-entrypoint.sh` і налаштовано для контейнерних хостів:
- `allowHostControl: false` (типово) блокує ізольованим сесіям доступ до браузера хоста.
- `network` типово має значення `openclaw-sandbox-browser` (виділена мостова мережа). Установлюйте `bridge` лише тоді, коли явно потрібна глобальна мостова зв’язність.
- `cdpSourceRange` необов’язково обмежує вхідний CDP-трафік на межі контейнера до діапазону CIDR (наприклад, `172.21.0.1/32`).
- `sandbox.browser.binds` монтує додаткові каталоги хоста лише в контейнер ізольованого браузера. Коли задано (включно з `[]`), це замінює `docker.binds` для контейнера браузера.
- Типові параметри запуску визначено в `scripts/sandbox-browser-entrypoint.sh` і налаштовано для контейнерних хостів:
- `--remote-debugging-address=127.0.0.1`
- `--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>`
- `--user-data-dir=${HOME}/.chrome`
@ -896,24 +896,24 @@ Plugin надає нативний harness, як-от вбудований harne
- `--renderer-process-limit=2`
- `--no-zygote`
- `--metrics-recording-only`
- `--disable-extensions` (увімкнено за замовчуванням)
- `--disable-extensions` (типово ввімкнено)
- `--disable-3d-apis`, `--disable-software-rasterizer` і `--disable-gpu`
увімкнено за замовчуванням; їх можна вимкнути за допомогою
`OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0`, якщо цього потребує використання WebGL/3D.
типово ввімкнені, і їх можна вимкнути за допомогою
`OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0`, якщо це потрібно для використання WebGL/3D.
- `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` повторно вмикає розширення, якщо ваш робочий процес
залежить від них.
- `--renderer-process-limit=2` можна змінити за допомогою
`OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>`; установіть `0`, щоб використовувати
стандартний ліміт процесів Chromium.
типове обмеження процесів Chromium.
- плюс `--no-sandbox`, коли ввімкнено `noSandbox`.
- Значення за замовчуванням є базовими для образу контейнера; використовуйте власний образ браузера з власною
точкою входу, щоб змінити стандартні параметри контейнера.
- Типові значення є базовим рівнем образу контейнера; використовуйте власний образ браузера з власною
точкою входу, щоб змінити типові значення контейнера.
</Accordion>
Ізоляція браузера в пісочниці та `sandbox.docker.binds` доступні лише для Docker.
Ізоляція браузера та `sandbox.docker.binds` працюють лише з Docker.
Збирання образів:
Збірка образів:
```bash
scripts/sandbox-setup.sh # main sandbox image
@ -923,11 +923,11 @@ scripts/sandbox-browser-setup.sh # optional browser image
### `agents.list` (перевизначення для окремих агентів)
Використовуйте `agents.list[].tts`, щоб надати агенту власного постачальника TTS, голос, модель,
стиль або режим автоматичного TTS. Блок агента глибоко об’єднується поверх глобального
`messages.tts`, тож спільні облікові дані можуть залишатися в одному місці, а окремі
стиль або автоматичний режим TTS. Блок агента глибоко об’єднується поверх глобального
`messages.tts`, тому спільні облікові дані можуть залишатися в одному місці, а окремі
агенти перевизначають лише потрібні їм поля голосу або постачальника. Перевизначення активного агента
застосовується до автоматичних озвучених відповідей, `/tts audio`, `/tts status` і
інструмента агента `tts`. Приклади постачальників і порядок пріоритету див. у [Перетворення тексту на мовлення](/uk/tools/tts#per-agent-voice-overrides).
інструмента агента `tts`. Приклади постачальників і пріоритет див. у [перетворенні тексту на мовлення](/uk/tools/tts#per-agent-voice-overrides).
```json5
{
@ -981,28 +981,28 @@ scripts/sandbox-browser-setup.sh # optional browser image
}
```
- `id`: стабільний id агента (обов’язково).
- `default`: коли задано кілька, перший має пріоритет (записується попередження). Якщо не задано жодного, типовим буде перший запис списку.
- `model`: рядкова форма задає суворий основний режим для окремого агента без запасної моделі; об’єктна форма `{ primary }` також сувора, якщо ви не додасте `fallbacks`. Використовуйте `{ primary, fallbacks: [...] }`, щоб увімкнути запасні моделі для цього агента, або `{ primary, fallbacks: [] }`, щоб явно задати сувору поведінку. Завдання Cron, які перевизначають лише `primary`, усе одно успадковують типові запасні моделі, якщо не задати `fallbacks: []`.
- `params`: параметри потоку для окремого агента, об’єднані поверх вибраного запису моделі в `agents.defaults.models`. Використовуйте це для специфічних для агента перевизначень на кшталт `cacheRetention`, `temperature` або `maxTokens` без дублювання всього каталогу моделей.
- `tts`: необов’язкові перевизначення перетворення тексту на мовлення для окремого агента. Блок глибоко об’єднується поверх `messages.tts`, тому зберігайте спільні облікові дані провайдера й політику запасного варіанта в `messages.tts`, а тут задавайте лише специфічні для персони значення, як-от провайдер, голос, модель, стиль або автоматичний режим.
- `id`: стабільний ідентифікатор агента (обов’язково).
- `default`: коли задано кілька, перший має пріоритет (записується попередження). Якщо не задано жодного, типовим буде перший елемент списку.
- `model`: рядкова форма задає сувору основну модель для окремого агента без резервної моделі; об’єктна форма `{ primary }` також сувора, якщо ви не додасте `fallbacks`. Використовуйте `{ primary, fallbacks: [...] }`, щоб увімкнути резервні варіанти для цього агента, або `{ primary, fallbacks: [] }`, щоб явно вказати сувору поведінку. Завдання Cron, які перевизначають лише `primary`, все одно успадковують типові резервні варіанти, якщо ви не задасте `fallbacks: []`.
- `params`: потокові параметри для окремого агента, об’єднані поверх вибраного запису моделі в `agents.defaults.models`. Використовуйте це для агент-специфічних перевизначень, як-от `cacheRetention`, `temperature` або `maxTokens`, без дублювання всього каталогу моделей.
- `tts`: необов’язкові перевизначення синтезу мовлення для окремого агента. Блок глибоко об’єднується з `messages.tts`, тому тримайте спільні облікові дані провайдера й політику резервування в `messages.tts`, а тут задавайте лише значення, специфічні для персони, як-от провайдер, голос, модель, стиль або автоматичний режим.
- `skills`: необов’язковий список дозволених Skills для окремого агента. Якщо пропущено, агент успадковує `agents.defaults.skills`, коли це задано; явний список замінює типові значення замість об’єднання, а `[]` означає відсутність Skills.
- `thinkingDefault`: необов’язковий типовий рівень мислення для окремого агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, коли не задано перевизначення для повідомлення або сеансу. Вибраний профіль провайдера/моделі визначає, які значення є допустимими; для Google Gemini `adaptive` зберігає динамічне мислення, кероване провайдером (`thinkingLevel` пропущено в Gemini 3/3.1, `thinkingBudget: -1` у Gemini 2.5).
- `reasoningDefault`: необов’язкова типова видимість міркування для окремого агента (`on | off | stream`). Перевизначає `agents.defaults.reasoningDefault` для цього агента, коли не задано перевизначення міркування для повідомлення або сеансу.
- `fastModeDefault`: необов’язкове типове значення швидкого режиму для окремого агента (`true | false`). Застосовується, коли не задано перевизначення швидкого режиму для повідомлення або сеансу.
- `agentRuntime`: необов’язкове низькорівневе перевизначення політики виконання для окремого агента. Використовуйте `{ id: "codex" }`, щоб зробити одного агента лише Codex, тоді як інші агенти зберігають типовий запасний варіант PI у режимі `auto`.
- `runtime`: необов’язковий дескриптор середовища виконання для окремого агента. Використовуйте `type: "acp"` з типовими значеннями `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має типово використовувати сеанси обгортки ACP.
- `thinkingDefault`: необов’язковий типовий рівень мислення для окремого агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, коли не задано перевизначення для окремого повідомлення або сеансу. Вибраний профіль провайдера/моделі визначає, які значення є допустимими; для Google Gemini `adaptive` зберігає динамічне мислення, кероване провайдером (`thinkingLevel` пропущено в Gemini 3/3.1, `thinkingBudget: -1` у Gemini 2.5).
- `reasoningDefault`: необов’язкова типова видимість міркування для окремого агента (`on | off | stream`). Перевизначає `agents.defaults.reasoningDefault` для цього агента, коли не задано перевизначення міркування для окремого повідомлення або сеансу.
- `fastModeDefault`: необов’язкове типове значення швидкого режиму для окремого агента (`true | false`). Застосовується, коли не задано перевизначення швидкого режиму для окремого повідомлення або сеансу.
- `agentRuntime`: необов’язкове низькорівневе перевизначення політики виконання для окремого агента. Використовуйте `{ id: "codex" }`, щоб зробити одного агента доступним лише для Codex, тоді як інші агенти зберігають типовий резервний варіант PI у режимі `auto`.
- `runtime`: необов’язковий дескриптор середовища виконання для окремого агента. Використовуйте `type: "acp"` з типовими значеннями `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має типово використовувати сеанси ACP harness.
- `identity.avatar`: шлях відносно робочого простору, URL `http(s)` або URI `data:`.
- `identity` виводить типові значення: `ackReaction` з `emoji`, `mentionPatterns` з `name`/`emoji`.
- `subagents.allowAgents`: список дозволених id агентів для явних цілей `sessions_spawn.agentId` (`["*"]` = будь-який; типово: лише той самий агент). Додайте id ініціатора, коли мають бути дозволені самоспрямовані виклики `agentId`.
- Запобіжник успадкування пісочниці: якщо сеанс ініціатора ізольований у пісочниці, `sessions_spawn` відхиляє цілі, які запускалися б без пісочниці.
- `subagents.requireAgentId`: коли true, блокує виклики `sessions_spawn`, які пропускають `agentId` (примушує явний вибір профілю; типово: false).
- `subagents.allowAgents`: список дозволених ідентифікаторів агентів для явних цілей `sessions_spawn.agentId` (`["*"]` = будь-який; типово: лише той самий агент). Додайте ідентифікатор запитувача, коли мають бути дозволені самонацілені виклики `agentId`.
- Захист успадкування пісочниці: якщо сеанс запитувача перебуває в пісочниці, `sessions_spawn` відхиляє цілі, які запускалися б без пісочниці.
- `subagents.requireAgentId`: коли `true`, блокує виклики `sessions_spawn`, що пропускають `agentId` (примушує явний вибір профілю; типово: false).
---
## Маршрутизація кількох агентів
## Багатоагентна маршрутизація
Запускайте кілька ізольованих агентів в одному Gateway. Див. [Кілька агентів](/uk/concepts/multi-agent).
Запускайте кілька ізольованих агентів в одному Gateway. Див. [багатоагентний режим](/uk/concepts/multi-agent).
```json5
{
@ -1021,7 +1021,7 @@ scripts/sandbox-browser-setup.sh # optional browser image
### Поля зіставлення прив’язки
- `type` (необов’язково): `route` для звичайної маршрутизації (відсутній тип типово означає route), `acp` для постійних прив’язок розмов ACP.
- `type` (необов’язково): `route` для звичайної маршрутизації (відсутній тип за замовчуванням означає маршрут), `acp` для сталих прив’язок розмов ACP.
- `match.channel` (обов’язково)
- `match.accountId` (необов’язково; `*` = будь-який обліковий запис; пропущено = типовий обліковий запис)
- `match.peer` (необов’язково; `{ kind: direct|group|channel, id }`)
@ -1033,13 +1033,13 @@ scripts/sandbox-browser-setup.sh # optional browser image
1. `match.peer`
2. `match.guildId`
3. `match.teamId`
4. `match.accountId` (точний, без peer/guild/team)
4. `match.accountId` (точний збіг, без peer/guild/team)
5. `match.accountId: "*"` (для всього каналу)
6. Типовий агент
У межах кожного рівня перший відповідний запис `bindings` має пріоритет.
Для записів `type: "acp"` OpenClaw визначає відповідність за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує наведений вище порядок рівнів прив’язки маршруту.
Для записів `type: "acp"` OpenClaw розв’язує за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує порядок рівнів прив’язки маршруту вище.
### Профілі доступу для окремих агентів
@ -1136,7 +1136,7 @@ scripts/sandbox-browser-setup.sh # optional browser image
</Accordion>
Див. [Пісочниця й інструменти для кількох агентів](/uk/tools/multi-agent-sandbox-tools), щоб дізнатися про деталі пріоритету.
Див. [пісочниця й інструменти для багатоагентного режиму](/uk/tools/multi-agent-sandbox-tools), щоб дізнатися про подробиці пріоритетності.
---
@ -1188,34 +1188,34 @@ scripts/sandbox-browser-setup.sh # optional browser image
<Accordion title="Session field details">
- **`scope`**: базова стратегія групування сеансів для контекстів групового чату.
- `per-sender` (типово): кожен відправник отримує ізольований сеанс у контексті каналу.
- **`scope`**: базова стратегія групування сеансів для контекстів групових чатів.
- `per-sender` (типово): кожен відправник отримує ізольований сеанс у межах контексту каналу.
- `global`: усі учасники в контексті каналу спільно використовують один сеанс (використовуйте лише тоді, коли потрібен спільний контекст).
- **`dmScope`**: як групуються особисті повідомлення.
- **`dmScope`**: спосіб групування особистих повідомлень.
- `main`: усі особисті повідомлення спільно використовують основний сеанс.
- `per-peer`: ізолювати за id відправника між каналами.
- `per-channel-peer`: ізолювати за каналом + відправником (рекомендовано для багатокористувацьких вхідних).
- `per-peer`: ізолювати за ідентифікатором відправника між каналами.
- `per-channel-peer`: ізолювати за каналом + відправником (рекомендовано для багатокористувацьких вхідних скриньок).
- `per-account-channel-peer`: ізолювати за обліковим записом + каналом + відправником (рекомендовано для кількох облікових записів).
- **`identityLinks`**: зіставляє канонічні id з учасниками з префіксом провайдера для спільного використання сеансів між каналами. Команди стикування, як-от `/dock_discord`, використовують ту саму мапу, щоб перемкнути маршрут відповіді активного сеансу на іншого пов’язаного учасника каналу; див. [Стикування каналів](/uk/concepts/channel-docking).
- **`reset`**: основна політика скидання. `daily` скидає о `atHour` за місцевим часом; `idle` скидає після `idleMinutes`. Коли налаштовано обидва, пріоритет має той, строк якого спливає першим. Актуальність щоденного скидання використовує `sessionStartedAt` рядка сеансу; актуальність скидання через бездіяльність використовує `lastInteractionAt`. Фонові/системні записи подій, як-от heartbeat, пробудження cron, сповіщення exec і службові записи gateway, можуть оновлювати `updatedAt`, але вони не підтримують актуальність щоденних/неактивних сеансів.
- **`identityLinks`**: зіставляє канонічні ідентифікатори з peer-адресатами з префіксом провайдера для спільного використання сеансів між каналами. Команди стикування, як-от `/dock_discord`, використовують ту саму мапу, щоб перемкнути маршрут відповіді активного сеансу на інший пов’язаний peer каналу; див. [стикування каналів](/uk/concepts/channel-docking).
- **`reset`**: основна політика скидання. `daily` скидає о `atHour` за місцевим часом; `idle` скидає після `idleMinutes`. Коли налаштовано обидва, спрацьовує той, чий строк настає першим. Свіжість щоденного скидання використовує `sessionStartedAt` рядка сеансу; свіжість скидання через бездіяльність використовує `lastInteractionAt`. Фонові/системні записи подій, як-от Heartbeat, пробудження Cron, сповіщення exec і службові записи Gateway, можуть оновлювати `updatedAt`, але вони не підтримують свіжість щоденних/неактивних сеансів.
- **`resetByType`**: перевизначення за типом (`direct`, `group`, `thread`). Застаріле `dm` приймається як псевдонім для `direct`.
- **`parentForkMaxTokens`**: максимальне значення `totalTokens` батьківського сеансу, дозволене під час створення розгалуженого сеансу гілки (типово `100000`).
- Якщо батьківське `totalTokens` перевищує це значення, OpenClaw запускає новий сеанс гілки замість успадкування історії транскрипту батьківського сеансу.
- Задайте `0`, щоб вимкнути цей запобіжник і завжди дозволяти розгалуження від батьківського сеансу.
- **`mainKey`**: застаріле поле. Середовище виконання завжди використовує `"main"` для основного контейнера прямого чату.
- **`agentToAgent.maxPingPongTurns`**: максимальна кількість взаємних ходів відповіді між агентами під час обмінів агент-агент (ціле число, діапазон: `0``5`). `0` вимикає ланцюжок ping-pong.
- **`sendPolicy`**: зіставлення за `channel`, `chatType` (`direct|group|channel`, із застарілим псевдонімом `dm`), `keyPrefix` або `rawKeyPrefix`. Перша заборона має пріоритет.
- **`maintenance`**: очищення сховища сеансів + елементи керування збереженням.
- **`parentForkMaxTokens`**: максимальна кількість `totalTokens` батьківського сеансу, дозволена під час створення відгалуженого сеансу потоку (типово `100000`).
- Якщо `totalTokens` батьківського сеансу перевищує це значення, OpenClaw запускає свіжий сеанс потоку замість успадкування історії стенограми батьківського сеансу.
- Задайте `0`, щоб вимкнути цей захист і завжди дозволяти відгалуження від батьківського сеансу.
- **`mainKey`**: застаріле поле. Середовище виконання завжди використовує `"main"` для основного кошика прямого чату.
- **`agentToAgent.maxPingPongTurns`**: максимальна кількість циклів відповідей між агентами під час обмінів агент-агент (ціле число, діапазон: `0``5`). `0` вимикає ланцюжок ping-pong.
- **`sendPolicy`**: зіставлення за `channel`, `chatType` (`direct|group|channel`, зі застарілим псевдонімом `dm`), `keyPrefix` або `rawKeyPrefix`. Перша заборона має пріоритет.
- **`maintenance`**: очищення сховища сеансів + керування утриманням.
- `mode`: `warn` лише видає попередження; `enforce` застосовує очищення.
- `pruneAfter`: вікова межа для застарілих записів (типово `30d`).
- `maxEntries`: максимальна кількість записів у `sessions.json` (типово `500`). Середовище виконання записує пакетне очищення з невеликим буфером верхньої межі для лімітів виробничого розміру; `openclaw sessions cleanup --enforce` застосовує ліміт негайно.
- `pruneAfter`: віковий поріг для застарілих записів (типово `30d`).
- `maxEntries`: максимальна кількість записів у `sessions.json` (типово `500`). Середовище виконання записує пакетне очищення з невеликим high-water буфером для лімітів виробничого розміру; `openclaw sessions cleanup --enforce` застосовує ліміт негайно.
- `rotateBytes`: застаріле й ігнорується; `openclaw doctor --fix` видаляє його зі старіших конфігурацій.
- `resetArchiveRetention`: збереження архівів транскриптів `*.reset.<timestamp>`. Типово дорівнює `pruneAfter`; задайте `false`, щоб вимкнути.
- `maxDiskBytes`: необов’язковий дисковий бюджет каталогу сеансів. У режимі `warn` записує попередження; у режимі `enforce` спершу видаляє найстаріші артефакти/сеанси.
- `highWaterBytes`: необов’язкова ціль після очищення бюджету. Типово дорівнює `80%` від `maxDiskBytes`.
- **`threadBindings`**: глобальні типові значення для функцій сеансів, прив’язаних до гілок.
- `resetArchiveRetention`: утримання архівів стенограм `*.reset.<timestamp>`. Типово дорівнює `pruneAfter`; задайте `false`, щоб вимкнути.
- `maxDiskBytes`: необов’язковий дисковий бюджет каталогу сеансів. У режимі `warn` записує попередження; у режимі `enforce` спочатку видаляє найстаріші артефакти/сеанси.
- `highWaterBytes`: необов’язкова ціль після очищення бюджету. Типово `80%` від `maxDiskBytes`.
- **`threadBindings`**: глобальні типові значення для функцій сеансів, прив’язаних до потоків.
- `enabled`: головний типовий перемикач (провайдери можуть перевизначати; Discord використовує `channels.discord.threadBindings.enabled`)
- `idleHours`: типове автоматичне зняття фокуса через бездіяльність у годинах (`0` вимикає; провайдери можуть перевизначати)
- `idleHours`: типове автоусунення фокусу через бездіяльність у годинах (`0` вимикає; провайдери можуть перевизначати)
- `maxAgeHours`: типовий жорсткий максимальний вік у годинах (`0` вимикає; провайдери можуть перевизначати)
</Accordion>
@ -1232,7 +1232,7 @@ scripts/sandbox-browser-setup.sh # optional browser image
ackReactionScope: "group-mentions", // group-mentions | group-all | direct | all
removeAckAfterReply: false,
queue: {
mode: "steer", // steer | followup | collect | steer-backlog | steer+backlog | queue | interrupt
mode: "steer", // steer | queue (legacy one-at-a-time) | followup | collect | steer-backlog | steer+backlog | interrupt
debounceMs: 500,
cap: 20,
drop: "summarize", // old | new | summarize
@ -1254,36 +1254,36 @@ scripts/sandbox-browser-setup.sh # optional browser image
### Префікс відповіді
Перевизначення для окремого каналу/облікового запису: `channels.<channel>.responsePrefix`, `channels.<channel>.accounts.<id>.responsePrefix`.
Перевизначення для окремих каналів/облікових записів: `channels.<channel>.responsePrefix`, `channels.<channel>.accounts.<id>.responsePrefix`.
Визначення значення (перемагає найконкретніше): обліковий запис → канал → глобальне. `""` вимикає і зупиняє каскад. `"auto"` виводиться з `[{identity.name}]`.
Визначення значення (найконкретніше має пріоритет): обліковий запис → канал → глобальне. `""` вимикає й зупиняє каскад. `"auto"` виводить `[{identity.name}]`.
**Змінні шаблону:**
| Змінна | Опис | Приклад |
| ---------------- | ----------------------- | --------------------------- |
| `{model}` | Коротка назва моделі | `claude-opus-4-6` |
| `{modelFull}` | Повний ідентифікатор моделі | `anthropic/claude-opus-4-6` |
| `{provider}` | Назва провайдера | `anthropic` |
| `{thinkingLevel}` | Поточний рівень мислення | `high`, `low`, `off` |
| `{identity.name}` | Назва ідентичності агента | (те саме, що `"auto"`) |
| Змінна | Опис | Приклад |
| ----------------- | ---------------------------- | --------------------------- |
| `{model}` | Коротка назва моделі | `claude-opus-4-6` |
| `{modelFull}` | Повний ідентифікатор моделі | `anthropic/claude-opus-4-6` |
| `{provider}` | Назва постачальника | `anthropic` |
| `{thinkingLevel}` | Поточний рівень мислення | `high`, `low`, `off` |
| `{identity.name}` | Назва ідентичності агента | (те саме, що й `"auto"`) |
Змінні нечутливі до регістру. `{think}` є псевдонімом для `{thinkingLevel}`.
Змінні не чутливі до регістру. `{think}` є псевдонімом для `{thinkingLevel}`.
### Реакція підтвердження
- За замовчуванням використовується `identity.emoji` активного агента, інакше `"👀"`. Установіть `""`, щоб вимкнути.
- Перевизначення для окремих каналів: `channels.<channel>.ackReaction`, `channels.<channel>.accounts.<id>.ackReaction`.
- Порядок визначення значення: обліковий запис → канал → `messages.ackReaction` → резервне значення ідентичності.
- Порядок визначення: обліковий запис → канал → `messages.ackReaction` → резервне значення з ідентичності.
- Область дії: `group-mentions` (за замовчуванням), `group-all`, `direct`, `all`.
- `removeAckAfterReply`: видаляє підтвердження після відповіді в каналах, що підтримують реакції, як-от Slack, Discord, Telegram, WhatsApp і BlueBubbles.
- `messages.statusReactions.enabled`: вмикає реакції статусу життєвого циклу в Slack, Discord і Telegram.
У Slack і Discord не задане значення залишає реакції статусу ввімкненими, коли активні реакції підтвердження.
У Telegram установіть його явно в `true`, щоб увімкнути реакції статусу життєвого циклу.
- `removeAckAfterReply`: прибирає підтвердження після відповіді в каналах, що підтримують реакції, як-от Slack, Discord, Telegram, WhatsApp і BlueBubbles.
- `messages.statusReactions.enabled`: вмикає реакції стану життєвого циклу в Slack, Discord і Telegram.
У Slack і Discord невстановлене значення залишає реакції стану ввімкненими, коли активні реакції підтвердження.
У Telegram установіть це явно в `true`, щоб увімкнути реакції стану життєвого циклу.
### Вхідне усунення брязкоту
### Дебаунс вхідних повідомлень
Об’єднує швидкі текстові повідомлення без медіа від того самого відправника в один хід агента. Медіа/вкладення надсилаються негайно. Керівні команди обходять усунення брязкоту.
Об’єднує швидкі текстові повідомлення від того самого відправника в один хід агента. Медіа/вкладення скидають буфер негайно. Команди керування обходять дебаунс.
### TTS (перетворення тексту на мовлення)
@ -1333,19 +1333,19 @@ scripts/sandbox-browser-setup.sh # optional browser image
}
```
- `auto` керує стандартним режимом автоматичного TTS: `off`, `always`, `inbound` або `tagged`. `/tts on|off` може перевизначати локальні налаштування, а `/tts status` показує фактичний стан.
- `summaryModel` перевизначає `agents.defaults.model.primary` для автоматичного зведення.
- `modelOverrides` увімкнено за замовчуванням; `modelOverrides.allowProvider` за замовчуванням має значення `false` (потрібне явне ввімкнення).
- API-ключі резервно беруться з `ELEVENLABS_API_KEY`/`XI_API_KEY` і `OPENAI_API_KEY`.
- Вбудовані провайдери мовлення належать Plugin. Якщо задано `plugins.allow`, додайте кожен Plugin провайдера TTS, який хочете використовувати, наприклад `microsoft` для Edge TTS. Застарілий ідентифікатор провайдера `edge` приймається як псевдонім для `microsoft`.
- `providers.openai.baseUrl` перевизначає кінцеву точку OpenAI TTS. Порядок визначення значення: спочатку конфігурація, потім `OPENAI_TTS_BASE_URL`, потім `https://api.openai.com/v1`.
- Коли `providers.openai.baseUrl` указує на кінцеву точку, що не належить OpenAI, OpenClaw трактує її як TTS-сервер, сумісний з OpenAI, і послаблює перевірку моделі/голосу.
- `auto` керує типовим режимом автоматичного TTS: `off`, `always`, `inbound` або `tagged`. `/tts on|off` може перевизначати локальні налаштування, а `/tts status` показує фактичний стан.
- `summaryModel` перевизначає `agents.defaults.model.primary` для автоматичного підсумку.
- `modelOverrides` увімкнено за замовчуванням; `modelOverrides.allowProvider` за замовчуванням має значення `false` (явне ввімкнення).
- Ключі API використовують резервні `ELEVENLABS_API_KEY`/`XI_API_KEY` і `OPENAI_API_KEY`.
- Вбудовані постачальники мовлення належать Plugin. Якщо встановлено `plugins.allow`, додайте кожен Plugin постачальника TTS, який хочете використовувати, наприклад `microsoft` для Edge TTS. Застарілий ідентифікатор постачальника `edge` приймається як псевдонім для `microsoft`.
- `providers.openai.baseUrl` перевизначає кінцеву точку OpenAI TTS. Порядок визначення: конфігурація, потім `OPENAI_TTS_BASE_URL`, потім `https://api.openai.com/v1`.
- Коли `providers.openai.baseUrl` вказує на кінцеву точку не OpenAI, OpenClaw розглядає її як сумісний з OpenAI сервер TTS і послаблює перевірку моделі/голосу.
---
## Розмова
Стандартні значення для режиму розмови (macOS/iOS/Android).
Типові значення для режиму розмови (macOS/iOS/Android).
```json5
{
@ -1374,16 +1374,16 @@ scripts/sandbox-browser-setup.sh # optional browser image
}
```
- `talk.provider` має відповідати ключу в `talk.providers`, коли налаштовано кілька провайдерів розмови.
- Застарілі пласкі ключі розмови (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності й автоматично мігруються в `talk.providers.<provider>`.
- Ідентифікатори голосів резервно беруться з `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
- `talk.provider` має відповідати ключу в `talk.providers`, коли налаштовано кількох постачальників режиму розмови.
- Застарілі пласкі ключі режиму розмови (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності й автоматично мігруються в `talk.providers.<provider>`.
- Ідентифікатори голосів використовують резервні `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
- `providers.*.apiKey` приймає рядки відкритого тексту або об’єкти SecretRef.
- Резервне значення `ELEVENLABS_API_KEY` застосовується лише тоді, коли не налаштовано API-ключ розмови.
- `providers.*.voiceAliases` дає директивам розмови змогу використовувати зручні назви.
- `providers.mlx.modelId` вибирає репозиторій Hugging Face, який використовує локальний допоміжний засіб MLX у macOS. Якщо пропущено, macOS використовує `mlx-community/Soprano-80M-bf16`.
- Відтворення MLX у macOS виконується через вбудований допоміжний засіб `openclaw-mlx-tts`, коли він доступний, або виконуваний файл у `PATH`; `OPENCLAW_MLX_TTS_BIN` перевизначає шлях до допоміжного засобу для розробки.
- `speechLocale` задає ідентифікатор локалі BCP 47, який використовується розпізнаванням мовлення розмови в iOS/macOS. Залиште незаданим, щоб використовувати стандартне значення пристрою.
- `silenceTimeoutMs` керує тим, як довго режим розмови чекає після тиші користувача, перш ніж надіслати транскрипт. Незадане значення зберігає стандартне для платформи вікно паузи (`700 ms on macOS and Android, 900 ms on iOS`).
- Резервний `ELEVENLABS_API_KEY` застосовується лише тоді, коли ключ API для режиму розмови не налаштовано.
- `providers.*.voiceAliases` дає змогу директивам режиму розмови використовувати зрозумілі назви.
- `providers.mlx.modelId` вибирає репозиторій Hugging Face, який використовує локальний помічник MLX для macOS. Якщо пропущено, macOS використовує `mlx-community/Soprano-80M-bf16`.
- Відтворення MLX у macOS виконується через вбудований помічник `openclaw-mlx-tts`, якщо він доступний, або через виконуваний файл у `PATH`; `OPENCLAW_MLX_TTS_BIN` перевизначає шлях до помічника для розробки.
- `speechLocale` задає ідентифікатор локалі BCP 47, який використовується розпізнаванням мовлення режиму розмови в iOS/macOS. Залиште невстановленим, щоб використовувати типове значення пристрою.
- `silenceTimeoutMs` керує тим, як довго режим розмови чекає після тиші користувача, перш ніж надіслати транскрипт. Невстановлене значення зберігає типове вікно паузи платформи (`700 ms on macOS and Android, 900 ms on iOS`).
---

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +1,24 @@
---
read_when:
- Використання або налаштування команд чату
- Використання або налаштування чат-команд
- Налагодження маршрутизації команд або дозволів
sidebarTitle: Slash commands
summary: 'Слеш-команди: текстові й нативні, конфігурація та підтримувані команди'
title: Команди зі скісною рискою
summary: 'Слеш-команди: текстові та нативні, конфігурація та підтримувані команди'
title: Слеш-команди
x-i18n:
generated_at: "2026-04-29T21:53:01Z"
generated_at: "2026-04-30T00:29:40Z"
model: gpt-5.5
provider: openai
source_hash: 58b9a4bf0106df4d8397737976ddd4df665d80709892b686d71978d8a3bafae0
source_hash: d87471982fd03fb35bcb44ae62c9f9e40ec38ad17059c88a1e990194a296fbbd
source_path: tools/slash-commands.md
workflow: 16
---
Команди обробляє Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`. Команда чату bash лише для хоста використовує `! <cmd>``/bash <cmd>` як псевдонімом).
Commands обробляє Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`. Команда bash-чату лише для хоста використовує `! <cmd>` (із `/bash <cmd>` як псевдонімом).
Коли розмову або гілку прив'язано до сесії ACP, звичайний подальший текст спрямовується до цього ACP harness. Команди керування Gateway усе одно залишаються локальними: `/acp ...` завжди потрапляє до обробника команд OpenClaw ACP, а `/status` плюс `/unfocus` залишаються локальними щоразу, коли для поверхні увімкнено обробку команд.
Коли розмова або гілка прив’язана до сесії ACP, звичайний текст подальших відповідей спрямовується до цього ACP harness. Команди керування Gateway усе одно залишаються локальними: `/acp ...` завжди потрапляє до обробника команд OpenClaw ACP, а `/status` і `/unfocus` залишаються локальними щоразу, коли для поверхні ввімкнено обробку команд.
Є дві пов'язані системи:
Є дві повязані системи:
<AccordionGroup>
<Accordion title="Команди">
@ -27,14 +27,14 @@ x-i18n:
<Accordion title="Директиви">
`/think`, `/fast`, `/verbose`, `/trace`, `/reasoning`, `/elevated`, `/exec`, `/model`, `/queue`.
- Директиви вилучаються з повідомлення до того, як модель його побачить.
- У звичайних повідомленнях чату (не лише з директивами) вони вважаються "вбудованими підказками" і **не** зберігають налаштування сесії.
- Директиви вилучаються з повідомлення до того, як його побачить модель.
- У звичайних повідомленнях чату (не лише з директивами) вони трактуються як "inline hints" і **не** зберігають налаштування сесії.
- У повідомленнях лише з директивами (повідомлення містить тільки директиви) вони зберігаються в сесії й відповідають підтвердженням.
- Директиви застосовуються лише для **авторизованих відправників**. Якщо задано `commands.allowFrom`, використовується тільки цей список дозволених; інакше авторизація береться зі списків дозволених/сполучення каналу плюс `commands.useAccessGroups`. Неавторизовані відправники бачать директиви як звичайний текст.
- Директиви застосовуються тільки для **авторизованих відправників**. Якщо задано `commands.allowFrom`, використовується тільки цей список дозволених; інакше авторизація походить зі списків дозволених каналу/спарювання плюс `commands.useAccessGroups`. Неавторизовані відправники бачать директиви як звичайний текст.
</Accordion>
<Accordion title="Вбудовані скорочення">
Лише відправники зі списку дозволених/авторизовані відправники: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
Лише відправники зі списку дозволених/авторизовані: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
Вони виконуються негайно, вилучаються до того, як модель побачить повідомлення, а решта тексту продовжує проходити звичайним потоком.
@ -69,100 +69,100 @@ x-i18n:
```
<ParamField path="commands.text" type="boolean" default="true">
Увімкнення розбору `/...` у повідомленнях чату. На поверхнях без нативних команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) текстові команди все одно працюють, навіть якщо встановити це значення на `false`.
Вмикає розбір `/...` у повідомленнях чату. На поверхнях без нативних команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) текстові команди все одно працюють, навіть якщо встановити це значення в `false`.
</ParamField>
<ParamField path="commands.native" type='boolean | "auto"' default='"auto"'>
Реєструє нативні команди. Автоматично: увімкнено для Discord/Telegram; вимкнено для Slack (доки ви не додасте slash-команди); ігнорується для провайдерів без нативної підтримки. Установіть `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native`, щоб перевизначити для окремого провайдера (bool або `"auto"`). `false` очищає раніше зареєстровані команди в Discord/Telegram під час запуску. Командами Slack керують у застосунку Slack, і вони не видаляються автоматично.
Реєструє нативні команди. Авто: увімкнено для Discord/Telegram; вимкнено для Slack (доки ви не додасте slash commands); ігнорується для провайдерів без нативної підтримки. Встановіть `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native`, щоб перевизначити для окремого провайдера (bool або `"auto"`). `false` очищає раніше зареєстровані команди в Discord/Telegram під час запуску. Команди Slack керуються в застосунку Slack і не видаляються автоматично.
</ParamField>
<ParamField path="commands.nativeSkills" type='boolean | "auto"' default='"auto"'>
Реєструє команди **skill** нативно, коли це підтримується. Автоматично: увімкнено для Discord/Telegram; вимкнено для Slack (Slack вимагає створення slash-команди для кожного skill). Установіть `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills`, щоб перевизначити для окремого провайдера (bool або `"auto"`).
Реєструє команди **skill** нативно, коли це підтримується. Авто: увімкнено для Discord/Telegram; вимкнено для Slack (Slack вимагає створити slash command для кожного skill). Встановіть `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills`, щоб перевизначити для окремого провайдера (bool або `"auto"`).
</ParamField>
<ParamField path="commands.bash" type="boolean" default="false">
Увімкнення `! <cmd>` для запуску команд оболонки хоста (`/bash <cmd>` є псевдонімом; потребує списків дозволених `tools.elevated`).
Вмикає `! <cmd>` для запуску команд оболонки хоста (`/bash <cmd>` є псевдонімом; потребує списків дозволених `tools.elevated`).
</ParamField>
<ParamField path="commands.bashForegroundMs" type="number" default="2000">
Керує тим, як довго bash чекає перед перемиканням у фоновий режим (`0` одразу переводить у фон).
</ParamField>
<ParamField path="commands.config" type="boolean" default="false">
Увімкнення `/config` (читає/записує `openclaw.json`).
Вмикає `/config` (читає/записує `openclaw.json`).
</ParamField>
<ParamField path="commands.mcp" type="boolean" default="false">
Увімкнення `/mcp` (читає/записує керовану OpenClaw конфігурацію MCP у `mcp.servers`).
Вмикає `/mcp` (читає/записує керовану OpenClaw конфігурацію MCP у `mcp.servers`).
</ParamField>
<ParamField path="commands.plugins" type="boolean" default="false">
Увімкнення `/plugins` (виявлення/стан плагінів плюс елементи керування встановленням і ввімкненням/вимкненням).
Вмикає `/plugins` (виявлення/статус Plugin, а також елементи керування встановленням і ввімкненням/вимкненням).
</ParamField>
<ParamField path="commands.debug" type="boolean" default="false">
Увімкнення `/debug` (перевизначення лише під час виконання).
Вмикає `/debug` (перевизначення лише під час виконання).
</ParamField>
<ParamField path="commands.restart" type="boolean" default="true">
Увімкнення `/restart` плюс дії інструментів перезапуску Gateway.
Вмикає `/restart` плюс дії інструментів перезапуску gateway.
</ParamField>
<ParamField path="commands.ownerAllowFrom" type="string[]">
Задає явний список дозволених власників для поверхонь команд/інструментів лише для власника. Це обліковий запис оператора-людини, який може схвалювати небезпечні дії та запускати команди, як-от `/diagnostics`, `/export-trajectory` і `/config`. Він відокремлений від `commands.allowFrom` і від доступу через сполучення DM.
Задає явний список дозволених власників для командних/інструментальних поверхонь лише для власника. Це обліковий запис оператора-людини, який може схвалювати небезпечні дії та запускати команди на кшталт `/diagnostics`, `/export-trajectory` і `/config`. Він окремий від `commands.allowFrom` і від доступу через спарювання DM.
</ParamField>
<ParamField path="channels.<channel>.commands.enforceOwnerForCommands" type="boolean" default="false">
Для окремого каналу: змушує команди лише для власника вимагати **ідентичність власника** для запуску на цій поверхні. Коли `true`, відправник має або збігатися з розпізнаним кандидатом у власники (наприклад, записом у `commands.ownerAllowFrom` або нативними метаданими власника провайдера), або мати внутрішню область `operator.admin` на внутрішньому каналі повідомлень. Запис із wildcard у `allowFrom` каналу або порожній/нерозпізнаний список кандидатів у власники **не** є достатнім — команди лише для власника на цьому каналі відмовляють за замовчуванням. Залиште це вимкненим, якщо хочете, щоб команди лише для власника обмежувалися тільки `ownerAllowFrom` і стандартними списками дозволених команд.
Для каналу: змушує команди лише для власника вимагати **ідентичність власника** для запуску на цій поверхні. Коли `true`, відправник має або відповідати розпізнаному кандидату-власнику (наприклад, запису в `commands.ownerAllowFrom` чи нативним метаданим власника від провайдера), або мати внутрішній scope `operator.admin` у внутрішньому каналі повідомлень. Запис із wildcard у `allowFrom` каналу або порожній/нерозпізнаний список кандидатів-власників **не** є достатнім — команди лише для власника на цьому каналі завершуються закрито. Залиште це вимкненим, якщо хочете, щоб команди лише для власника обмежувалися тільки `ownerAllowFrom` і стандартними списками дозволених команд.
</ParamField>
<ParamField path="commands.ownerDisplay" type='"raw" | "hash"'>
Керує тим, як ідентифікатори власників відображаються в системному prompt.
</ParamField>
<ParamField path="commands.ownerDisplaySecret" type="string">
Необов'язково задає секрет HMAC, який використовується, коли `commands.ownerDisplay="hash"`.
Необов’язково задає секрет HMAC, що використовується, коли `commands.ownerDisplay="hash"`.
</ParamField>
<ParamField path="commands.allowFrom" type="object">
Список дозволених для авторизації команд за окремими провайдерами. Коли налаштовано, це єдине джерело авторизації для команд і директив (списки дозволених/сполучення каналу та `commands.useAccessGroups` ігноруються). Використовуйте `"*"` як глобальне значення за замовчуванням; ключі, специфічні для провайдера, перевизначають його.
Список дозволених для авторизації команд за провайдерами. Коли налаштовано, це єдине джерело авторизації для команд і директив (списки дозволених каналу/спарювання та `commands.useAccessGroups` ігноруються). Використовуйте `"*"` для глобального стандартного значення; ключі конкретних провайдерів його перевизначають.
</ParamField>
<ParamField path="commands.useAccessGroups" type="boolean" default="true">
Забезпечує застосування списків дозволених/політик для команд, коли `commands.allowFrom` не задано.
Застосовує списки дозволених/політики для команд, коли `commands.allowFrom` не задано.
</ParamField>
## Список команд
Поточне джерело істини:
- вбудовані core-команди надходять із `src/auto-reply/commands-registry.shared.ts`
- згенеровані dock-команди надходять із `src/auto-reply/commands-registry.data.ts`
- команди плагінів надходять із викликів `registerCommand()` плагіна
- фактична доступність на вашому gateway усе одно залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених плагінів
- вбудовані core-команди походять із `src/auto-reply/commands-registry.shared.ts`
- згенеровані dock-команди походять із `src/auto-reply/commands-registry.data.ts`
- команди Plugin походять із викликів Plugin `registerCommand()`
- фактична доступність на вашому gateway усе ще залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених plugins
### Вбудовані core-команди
<AccordionGroup>
<Accordion title="Сесії та запуски">
- `/new [model]` запускає нову сесію; `/reset` є псевдонімом скидання.
- `/reset soft [message]` зберігає поточний transcript, відкидає повторно використані ідентифікатори сесій backend CLI та повторно запускає завантаження startup/system-prompt на місці.
- `/new [model]` запускає нову сесію; `/reset` є псевдонімом reset.
- `/reset soft [message]` зберігає поточну стенограму, відкидає повторно використані ідентифікатори сесій бекенду CLI та повторно запускає завантаження старту/системного prompt на місці.
- `/compact [instructions]` ущільнює контекст сесії. Див. [Compaction](/uk/concepts/compaction).
- `/stop` перериває поточний запуск.
- `/session idle <duration|off>` і `/session max-age <duration|off>` керують завершенням прив'язки гілки.
- `/session idle <duration|off>` і `/session max-age <duration|off>` керують строком дії прив’язки гілки.
- `/export-session [path]` експортує поточну сесію в HTML. Псевдонім: `/export`.
- `/export-trajectory [path]` запитує схвалення exec, а потім експортує JSONL [пакет trajectory](/uk/tools/trajectory) для поточної сесії. Використовуйте це, коли вам потрібна часова шкала prompt, інструментів і transcript для однієї сесії OpenClaw. У групових чатах prompt схвалення та результат експорту надсилаються власнику приватно. Псевдонім: `/trajectory`.
- `/export-trajectory [path]` запитує схвалення exec, а потім експортує JSONL [пакет траєкторії](/uk/tools/trajectory) для поточної сесії. Використовуйте це, коли вам потрібна хронологія prompt, інструментів і стенограми для однієї сесії OpenClaw. У групових чатах prompt схвалення та результат експорту надсилаються власнику приватно. Псевдонім: `/trajectory`.
</Accordion>
<Accordion title="Елементи керування моделлю та запуском">
- `/think <level>` задає рівень мислення. Опції надходять із профілю провайдера активної моделі; поширені рівні: `off`, `minimal`, `low`, `medium` і `high`, а власні рівні, як-от `xhigh`, `adaptive`, `max` або бінарний `on`, доступні лише там, де підтримуються. Псевдоніми: `/thinking`, `/t`.
- `/think <level>` задає рівень мислення. Варіанти походять із профілю провайдера активної моделі; поширені рівні: `off`, `minimal`, `low`, `medium` і `high`, а власні рівні, як-от `xhigh`, `adaptive`, `max`, або бінарний `on`, доступні лише там, де підтримуються. Псевдоніми: `/thinking`, `/t`.
- `/verbose on|off|full` перемикає докладний вивід. Псевдонім: `/v`.
- `/trace on|off` перемикає вивід трасування плагіна для поточної сесії.
- `/trace on|off` перемикає trace-вивід Plugin для поточної сесії.
- `/fast [status|on|off]` показує або задає швидкий режим.
- `/reasoning [on|off|stream]` перемикає видимість reasoning. Псевдонім: `/reason`.
- `/elevated [on|off|ask|full]` перемикає elevated-режим. Псевдонім: `/elev`.
- `/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>` показує або задає типові параметри exec.
- `/elevated [on|off|ask|full]` перемикає підвищений режим. Псевдонім: `/elev`.
- `/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>` показує або задає стандартні параметри exec.
- `/model [name|#|status]` показує або задає модель.
- `/models [provider] [page] [limit=<n>|size=<n>|all]` перелічує налаштованих/доступних за авторизацією провайдерів або моделі для провайдера; додайте `all`, щоб переглянути повний каталог цього провайдера.
- `/queue <mode>` керує поведінкою черги (`steer`, `followup`, `collect`, `steer-backlog`, `interrupt`) плюс опціями на кшталт `debounce:0.5s cap:25 drop:summarize`; `/queue default` або `/queue reset` очищає перевизначення сесії. Див. [Черга команд](/uk/concepts/queue).
- `/models [provider] [page] [limit=<n>|size=<n>|all]` перелічує налаштованих/доступних за авторизацією провайдерів або моделі для провайдера; додайте `all`, щоб переглядати повний каталог цього провайдера.
- `/queue <mode>` керує поведінкою черги (`steer`, застаріле `queue`, `followup`, `collect`, `steer-backlog`, `interrupt`) плюс параметри на кшталт `debounce:0.5s cap:25 drop:summarize`; `/queue default` або `/queue reset` очищає перевизначення сесії. Див. [Черга команд](/uk/concepts/queue) і [Черга скеровування](/uk/concepts/queue-steering).
</Accordion>
<Accordion title="Виявлення та стан">
- `/help` показує короткий довідковий підсумок.
<Accordion title="Виявлення та статус">
- `/help` показує короткий підсумок довідки.
- `/commands` показує згенерований каталог команд.
- `/tools [compact|verbose]` показує, що поточний агент може використовувати прямо зараз.
- `/status` показує стан виконання/runtime, зокрема мітки `Execution`/`Runtime` і використання/квоту провайдера, коли доступно.
- `/diagnostics [note]` — це потік звіту підтримки лише для власника для помилок Gateway і запусків Codex harness. Він щоразу запитує явне схвалення exec перед запуском `openclaw gateway diagnostics export --json`; не схвалюйте діагностику правилом allow-all. Після схвалення він надсилає придатний для вставлення звіт із локальним шляхом пакета, підсумком manifest, нотатками про приватність і відповідними ідентифікаторами сесій. У групових чатах prompt схвалення та звіт надсилаються власнику приватно. Коли активна сесія використовує OpenAI Codex harness, те саме схвалення також надсилає відповідний feedback Codex на сервери OpenAI, а завершена відповідь перелічує ідентифікатори сесій OpenClaw, ідентифікатори гілок Codex і команди `codex resume <thread-id>`. Див. [Експорт діагностики](/uk/gateway/diagnostics).
- `/crestodian <request>` запускає помічник налаштування та ремонту Crestodian із DM власника.
- `/tasks` перелічує активні/недавні фонові завдання для поточної сесії.
- `/tools [compact|verbose]` показує, що поточний агент може використовувати зараз.
- `/status` показує статус виконання/середовища виконання, зокрема мітки `Execution`/`Runtime` і використання/квоту провайдера, якщо доступно.
- `/diagnostics [note]` — це потік звіту підтримки лише для власника для помилок Gateway і запусків Codex harness. Він щоразу запитує явне схвалення exec перед запуском `openclaw gateway diagnostics export --json`; не схвалюйте діагностику правилом allow-all. Після схвалення він надсилає придатний для вставлення звіт із локальним шляхом пакета, підсумком manifest, нотатками щодо приватності та відповідними ідентифікаторами сесій. У групових чатах prompt схвалення та звіт надсилаються власнику приватно. Коли активна сесія використовує OpenAI Codex harness, те саме схвалення також надсилає відповідний відгук Codex на сервери OpenAI, а завершена відповідь перелічує ідентифікатори сесій OpenClaw, ідентифікатори гілок Codex і команди `codex resume <thread-id>`. Див. [Експорт діагностики](/uk/gateway/diagnostics).
- `/crestodian <request>` запускає помічник налаштування та виправлення Crestodian із DM власника.
- `/tasks` перелічує активні/нещодавні фонові завдання для поточної сесії.
- `/context [list|detail|json]` пояснює, як збирається контекст.
- `/whoami` показує ваш ідентифікатор відправника. Псевдонім: `/id`.
- `/usage off|tokens|full|cost` керує футером використання для кожної відповіді або друкує локальний підсумок вартості.
- `/usage off|tokens|full|cost` керує футером використання для кожної відповіді або виводить локальний підсумок вартості.
</Accordion>
<Accordion title="Skills, списки дозволених, схвалення">
@ -174,62 +174,62 @@ x-i18n:
</Accordion>
<Accordion title="Субагенти та ACP">
- `/subagents list|kill|log|info|send|steer|spawn` керує запусками субагентів для поточної сесії.
- `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` керує сесіями ACP і runtime-опціями.
- `/focus <target>` прив'язує поточну гілку Discord або тему/розмову Telegram до цільової сесії.
- `/unfocus` видаляє поточну прив'язку.
- `/agents` перелічує прив'язаних до гілки агентів для поточної сесії.
- `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` керує сесіями ACP і параметрами середовища виконання.
- `/focus <target>` прив’язує поточну гілку Discord або тему/розмову Telegram до цілі сесії.
- `/unfocus` видаляє поточну привязку.
- `/agents` перелічує агентів, прив’язаних до гілки, для поточної сесії.
- `/kill <id|#|all>` перериває одного або всіх запущених субагентів.
- `/steer <id|#> <message>` надсилає керування запущеному субагенту. Псевдонім: `/tell`.
- `/steer <id|#> <message>` надсилає скеровування запущеному субагенту. Псевдонім: `/tell`.
</Accordion>
<Accordion title="Записи лише для власника та адміністрування">
<Accordion title="Записи лише власника та адміністрування">
- `/config show|get|set|unset` читає або записує `openclaw.json`. Лише для власника. Потребує `commands.config: true`.
- `/mcp show|get|set|unset` читає або записує конфігурацію MCP-сервера, керовану OpenClaw, у `mcp.servers`. Лише для власника. Потребує `commands.mcp: true`.
- `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан plugin. `/plugin` є псевдонімом. Записи лише для власника. Потребує `commands.plugins: true`.
- `/debug show|set|unset|reset` керує конфігураційними перевизначеннями лише для runtime. Лише для власника. Потребує `commands.debug: true`.
- `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан Plugin. `/plugin` є псевдонімом. Запис лише для власника. Потребує `commands.plugins: true`.
- `/debug show|set|unset|reset` керує перевизначеннями конфігурації лише для часу виконання. Лише для власника. Потребує `commands.debug: true`.
- `/restart` перезапускає OpenClaw, коли ввімкнено. Типово: ввімкнено; задайте `commands.restart: false`, щоб вимкнути.
- `/send on|off|inherit` задає політику надсилання. Лише для власника.
</Accordion>
<Accordion title="Голос, TTS і керування каналом">
<Accordion title="Голос, TTS, керування каналом">
- `/tts on|off|status|chat|latest|provider|limit|summary|audio|help` керує TTS. Див. [TTS](/uk/tools/tts).
- `/activation mention|always` задає режим активації групи.
- `/bash <command>` запускає команду shell на хості. Лише текст. Псевдонім: `! <command>`. Потребує `commands.bash: true` плюс списків дозволеного `tools.elevated`.
- `/bash <command>` запускає команду оболонки хоста. Лише текст. Псевдонім: `! <command>`. Потребує `commands.bash: true` плюс списки дозволів `tools.elevated`.
- `!poll [sessionId]` перевіряє фонове завдання bash.
- `!stop [sessionId]` зупиняє фонове завдання bash.
</Accordion>
</AccordionGroup>
### Згенеровані команди докування
### Згенеровані команди стикування
Команди докування перемикають маршрут відповіді поточної сесії на інший пов’язаний
канал. Див. [Докування каналів](/uk/concepts/channel-docking) для налаштування,
прикладів і усунення несправностей.
Команди стикування перемикають маршрут відповіді поточного сеансу на інший пов'язаний
канал. Див. [Стикування каналів](/uk/concepts/channel-docking), щоб налаштувати,
переглянути приклади та усунути неполадки.
Команди докування генеруються з plugin каналів із підтримкою нативних команд. Поточний вбудований набір:
Команди стикування генеруються з каналових Plugin із підтримкою нативних команд. Поточний вбудований набір:
- `/dock-discord` (псевдонім: `/dock_discord`)
- `/dock-mattermost` (псевдонім: `/dock_mattermost`)
- `/dock-slack` (псевдонім: `/dock_slack`)
- `/dock-telegram` (псевдонім: `/dock_telegram`)
Використовуйте команди докування з прямого чату, щоб перемкнути маршрут відповіді поточної сесії на інший пов’язаний канал. Агент зберігає той самий контекст сесії, але майбутні відповіді для цієї сесії доставляються вибраному peer каналу.
Використовуйте команди стикування з прямого чату, щоб перемкнути маршрут відповіді поточного сеансу на інший пов'язаний канал. Агент зберігає той самий контекст сеансу, але майбутні відповіді для цього сеансу доставляються вибраному учаснику каналу.
Команди докування потребують `session.identityLinks`. Відправник-джерело й цільовий peer мають бути в одній групі ідентичності, наприклад `["telegram:123", "discord:456"]`. Якщо користувач Telegram з id `123` надсилає `/dock_discord`, OpenClaw зберігає `lastChannel: "discord"` і `lastTo: "456"` в активній сесії. Якщо відправник не пов’язаний із peer Discord, команда відповідає підказкою з налаштування замість переходу до звичайного чату.
Команди стикування потребують `session.identityLinks`. Відправник-джерело та цільовий учасник мають бути в тій самій групі ідентичностей, наприклад `["telegram:123", "discord:456"]`. Якщо користувач Telegram з id `123` надсилає `/dock_discord`, OpenClaw зберігає `lastChannel: "discord"` і `lastTo: "456"` в активному сеансі. Якщо відправник не пов'язаний з учасником Discord, команда відповідає підказкою щодо налаштування замість переходу до звичайного чату.
Докування змінює лише маршрут активної сесії. Воно не створює облікові записи каналів, не надає доступ, не обходить списки дозволеного каналів і не переносить історію transcript в іншу сесію. Використовуйте `/dock-telegram`, `/dock-slack`, `/dock-mattermost` або іншу згенеровану команду докування, щоб знову перемкнути маршрут.
Стикування змінює лише маршрут активного сеансу. Воно не створює облікові записи каналів, не надає доступ, не обходить списки дозволів каналів і не переносить історію стенограми до іншого сеансу. Використовуйте `/dock-telegram`, `/dock-slack`, `/dock-mattermost` або іншу згенеровану команду стикування, щоб знову перемкнути маршрут.
### Команди вбудованих plugin
### Команди вбудованих Plugin
Вбудовані plugins можуть додавати більше slash-команд. Поточні вбудовані команди в цьому репозиторії:
Вбудовані Plugin можуть додавати більше slash-команд. Поточні вбудовані команди в цьому репозиторії:
- `/dreaming [on|off|status|help]` перемикає memory dreaming. Див. [Dreaming](/uk/concepts/dreaming).
- `/dreaming [on|off|status|help]` перемикає Dreaming пам'яті. Див. [Dreaming](/uk/concepts/dreaming).
- `/pair [qr|status|pending|approve|cleanup|notify]` керує потоком сполучення/налаштування пристрою. Див. [Сполучення](/uk/channels/pairing).
- `/phone status|arm <camera|screen|writes|all> [duration]|disarm` тимчасово активує високоризикові команди телефонного вузла.
- `/voice status|list [limit]|set <voiceId|name>` керує конфігурацією голосу Talk. У Discord нативна назва команди — `/talkvoice`.
- `/card ...` надсилає пресети LINE rich card. Див. [LINE](/uk/channels/line).
- `/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills` перевіряє й керує вбудованою обв’язкою app-server Codex. Див. [Обв’язка Codex](/uk/plugins/codex-harness).
- `/phone status|arm <camera|screen|writes|all> [duration]|disarm` тимчасово активує високоризикові команди вузла телефона.
- `/voice status|list [limit]|set <voiceId|name>` керує конфігурацією голосу Talk. У Discord назва нативної команди — `/talkvoice`.
- `/card ...` надсилає пресети розширених карток LINE. Див. [LINE](/uk/channels/line).
- `/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills` перевіряє та керує вбудованим серверним каркасом застосунку Codex. Див. [Каркас Codex](/uk/plugins/codex-harness).
- Команди лише для QQBot:
- `/bot-ping`
- `/bot-version`
@ -237,93 +237,93 @@ x-i18n:
- `/bot-upgrade`
- `/bot-logs`
### Динамічні команди skills
### Динамічні команди Skills
Викликані користувачем skills також відкриваються як slash-команди:
Skills, які може викликати користувач, також доступні як slash-команди:
- `/skill <name> [input]` завжди працює як загальна точка входу.
- skills також можуть з’являтися як прямі команди на кшталт `/prose`, коли skill/plugin реєструє їх.
- нативна реєстрація skill-команд керується `commands.nativeSkills` і `channels.<provider>.commands.nativeSkills`.
- `/skill <name> [input]` завжди працює як універсальна точка входу.
- Skills також можуть з'являтися як прямі команди, наприклад `/prose`, коли Skill/Plugin реєструє їх.
- реєстрація нативних команд Skills керується `commands.nativeSkills` і `channels.<provider>.commands.nativeSkills`.
<AccordionGroup>
<Accordion title="Примітки щодо аргументів і parser">
- Команди приймають необовязковий `:` між командою та аргументами (наприклад, `/think: high`, `/send: on`, `/help:`).
- `/new <model>` приймає псевдонім моделі, `provider/model` або назву provider (нечіткий збіг); якщо збігу немає, текст розглядається як тіло повідомлення.
- Для повного розподілу використання provider використовуйте `openclaw status --usage`.
- `/allowlist add|remove` потребує `commands.config=true` і враховує channel `configWrites`.
- У каналах із кількома обліковими записами `/allowlist --account <id>` для конфігурації та `/config set channels.<provider>.accounts.<id>...` також враховують `configWrites` цільового облікового запису.
- `/usage` керує footer використання для кожної відповіді; `/usage cost` друкує локальний підсумок вартості з журналів сесій OpenClaw.
- `/restart` типово ввімкнено; задайте `commands.restart: false`, щоб вимкнути.
- `/plugins install <spec>` приймає ті самі специфікації plugin, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:<pkg>`.
- `/plugins enable|disable` оновлює конфігурацію plugin і може попросити перезапуск.
<Accordion title="Примітки щодо аргументів і парсера">
- Команди приймають необов'язковий `:` між командою та аргументами (наприклад, `/think: high`, `/send: on`, `/help:`).
- `/new <model>` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст обробляється як тіло повідомлення.
- Для повної розбивки використання провайдера використовуйте `openclaw status --usage`.
- `/allowlist add|remove` потребує `commands.config=true` і дотримується каналового `configWrites`.
- У багатооблікових каналах `/allowlist --account <id>`, націлений на конфігурацію, і `/config set channels.<provider>.accounts.<id>...` також дотримуються `configWrites` цільового облікового запису.
- `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` друкує локальний підсумок вартості з журналів сеансів OpenClaw.
- `/restart` увімкнено типово; задайте `commands.restart: false`, щоб вимкнути.
- `/plugins install <spec>` приймає ті самі специфікації Plugin, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:<pkg>`.
- `/plugins enable|disable` оновлює конфігурацію Plugin і може попросити перезапуск.
</Accordion>
<Accordion title="Поведінка, специфічна для каналу">
- Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (недоступно як текст). `join` потребує guild і вибраного voice/stage channel. Потребує `channels.discord.voice` і нативних команд.
- Команди прив’язування thread Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують увімкнених ефективних прив’язок thread (`session.threadBindings.enabled` та/або `channels.discord.threadBindings.enabled`).
- Довідник команд ACP і поведінка runtime: [Агенти ACP](/uk/tools/acp-agents).
- Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (недоступна як текст). `join` потребує гільдії та вибраного голосового/сценічного каналу. Потребує `channels.discord.voice` і нативних команд.
- Команди прив'язки потоків Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують увімкнення ефективних прив'язок потоків (`session.threadBindings.enabled` та/або `channels.discord.threadBindings.enabled`).
- Довідник команд ACP і поведінка під час виконання: [агенти ACP](/uk/tools/acp-agents).
</Accordion>
<Accordion title="Безпека verbose / trace / fast / reasoning">
- `/verbose` призначено для налагодження й додаткової видимості; тримайте його **вимкненим** під час звичайного використання.
- `/trace` вужчий за `/verbose`: він показує лише рядки trace/debug, що належать plugin, і залишає звичайні докладні повідомлення інструментів вимкненими.
- `/fast on|off` зберігає перевизначення сесії. Використовуйте опцію `inherit` в UI Sessions, щоб очистити його й повернутися до типових значень конфігурації.
- `/fast` залежить від provider: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` на нативних endpoints Responses, тоді як прямі публічні запити Anthropic, включно з OAuth-автентифікованим трафіком, надісланим до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic).
- Підсумки збоїв інструментів усе ще показуються, коли доречно, але детальний текст збою включається лише коли `/verbose` має значення `on` або `full`.
- `/reasoning`, `/verbose` і `/trace` ризиковані в групових налаштуваннях: вони можуть розкрити внутрішнє reasoning, вивід інструментів або діагностику plugin, які ви не мали наміру показувати. Краще залишати їх вимкненими, особливо в групових чатах.
- `/verbose` призначено для налагодження та додаткової видимості; тримайте його **вимкненим** за звичайного використання.
- `/trace` вужчий за `/verbose`: він показує лише рядки трасування/налагодження, що належать Plugin, і залишає звичайний verbose-шум інструментів вимкненим.
- `/fast on|off` зберігає перевизначення сеансу. Використовуйте опцію `inherit` в інтерфейсі Sessions, щоб очистити його й повернутися до типових значень конфігурації.
- `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` на нативних Responses-ендпойнтах, тоді як прямі публічні запити Anthropic, зокрема OAuth-автентифікований трафік, надісланий до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic).
- Підсумки збоїв інструментів усе ще показуються, коли доречно, але докладний текст збою включається лише коли `/verbose` має значення `on` або `full`.
- `/reasoning`, `/verbose` і `/trace` ризиковані в групових налаштуваннях: вони можуть розкрити внутрішнє міркування, вивід інструментів або діагностику Plugin, які ви не мали наміру показувати. Краще залишати їх вимкненими, особливо в групових чатах.
</Accordion>
<Accordion title="Перемикання моделі">
- `/model` негайно зберігає нову модель сесії.
- Якщо агент неактивний, наступний запуск одразу використовує її.
- Якщо запуск уже активний, OpenClaw позначає live-перемикання як очікуване й перезапускається в нову модель лише в чистій точці повтору.
- Якщо активність інструментів або вивід відповіді вже почалися, очікуване перемикання може залишатися в черзі до наступної можливості повтору або наступного ходу користувача.
- У локальному TUI `/crestodian [request]` повертає зі звичайного TUI агента до Crestodian. Це окремо від rescue mode каналу повідомлень і не надає віддалених повноважень конфігурації.
- `/model` негайно зберігає нову модель сеансу.
- Якщо агент бездіяльний, наступний запуск одразу використовує її.
- Якщо запуск уже активний, OpenClaw позначає перемикання наживо як очікуване та перезапускає в нову модель лише в чистій точці повторної спроби.
- Якщо активність інструментів або вивід відповіді вже почалися, очікуване перемикання може залишатися в черзі до пізнішої можливості повторної спроби або наступного ходу користувача.
- У локальному TUI `/crestodian [request]` повертає зі звичайного TUI агента до Crestodian. Це окремо від режиму порятунку каналу повідомлень і не надає віддалених повноважень конфігурації.
</Accordion>
<Accordion title="Швидкий шлях і вбудовані скорочення">
- **Швидкий шлях:** повідомлення лише з командою від відправників зі списку дозволеного обробляються негайно (обхід черги + моделі).
- **Group mention gating:** повідомлення лише з командою від відправників зі списку дозволеного обходять вимоги згадування.
- **Вбудовані скорочення (лише відправники зі списку дозволеного):** деякі команди також працюють, коли вбудовані у звичайне повідомлення, і видаляються перед тим, як модель побачить решту тексту.
- Приклад: `hey /status` запускає відповідь зі статусом, а решта тексту продовжує проходити звичайним потоком.
- **Швидкий шлях:** повідомлення лише з командами від відправників зі списку дозволів обробляються негайно (обхід черги + моделі).
- **Ворота згадування в групі:** повідомлення лише з командами від відправників зі списку дозволів обходять вимоги згадування.
- **Вбудовані скорочення (лише відправники зі списку дозволів):** певні команди також працюють, коли вбудовані у звичайне повідомлення, і видаляються до того, як модель побачить решту тексту.
- Приклад: `hey /status` запускає відповідь зі статусом, а решта тексту продовжує звичайний потік.
- Наразі: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
- Неавторизовані повідомлення лише з командою мовчки ігноруються, а вбудовані токени `/...` розглядаються як звичайний текст.
- Неавторизовані повідомлення лише з командами мовчки ігноруються, а вбудовані токени `/...` обробляються як звичайний текст.
</Accordion>
<Accordion title="Skill-команди та нативні аргументи">
- **Skill-команди:** skills `user-invocable` відкриваються як slash-команди. Назви очищаються до `a-z0-9_` (макс. 32 символи); колізії отримують числові суфікси (наприклад, `_2`).
- `/skill <name> [input]` запускає skill за назвою (корисно, коли обмеження нативних команд перешкоджають окремим командам для кожного skill).
- Типово skill-команди пересилаються моделі як звичайний запит.
- Skills можуть необовязково оголошувати `command-dispatch: tool`, щоб маршрутизувати команду безпосередньо до інструмента (детерміновано, без моделі).
- Приклад: `/prose` (OpenProse plugin) — див. [OpenProse](/uk/prose).
- **Аргументи нативних команд:** Discord використовує autocomplete для динамічних опцій (і меню кнопок, коли ви пропускаєте обовязкові аргументи). Telegram і Slack показують меню кнопок, коли команда підтримує варіанти, а ви пропускаєте аргумент. Динамічні варіанти розв’язуються відносно цільової моделі сесії, тому специфічні для моделі опції, такі як рівні `/think`, відповідають перевизначенню `/model` цієї сесії.
<Accordion title="Команди Skills і нативні аргументи">
- **Команди Skills:** Skills `user-invocable` доступні як slash-команди. Назви очищуються до `a-z0-9_` (макс. 32 символи); колізії отримують числові суфікси (наприклад, `_2`).
- `/skill <name> [input]` запускає Skill за назвою (корисно, коли обмеження нативних команд не дають створити окремі команди для кожного Skill).
- Типово команди Skills пересилаються до моделі як звичайний запит.
- Skills можуть необов'язково оголошувати `command-dispatch: tool`, щоб маршрутизувати команду безпосередньо до інструмента (детерміновано, без моделі).
- Приклад: `/prose` (Plugin OpenProse) — див. [OpenProse](/uk/prose).
- **Аргументи нативних команд:** Discord використовує автодоповнення для динамічних опцій (і меню кнопок, коли ви пропускаєте обов'язкові аргументи). Telegram і Slack показують меню кнопок, коли команда підтримує варіанти вибору, а ви пропускаєте аргумент. Динамічні варіанти визначаються відносно цільової моделі сеансу, тому специфічні для моделі опції, як-от рівні `/think`, відповідають перевизначенню `/model` цього сеансу.
</Accordion>
</AccordionGroup>
## `/tools`
`/tools` відповідає на питання runtime, а не на питання конфігурації: **що цей агент може використовувати прямо зараз у цій розмові**.
`/tools` відповідає на питання часу виконання, а не на питання конфігурації: **що цей агент може використовувати прямо зараз у цій розмові**.
- Типовий `/tools` компактний і оптимізований для швидкого перегляду.
- `/tools verbose` додає короткі описи.
- Поверхні нативних команд, які підтримують аргументи, відкривають той самий перемикач режиму як `compact|verbose`.
- Результати прив’язані до сесії, тому зміна агента, каналу, thread, авторизації відправника або моделі може змінити вивід.
- `/tools` включає інструменти, які фактично доступні під час runtime, включно з core tools, підключеними plugin tools та інструментами, що належать каналу.
- Поверхні нативних команд, які підтримують аргументи, надають той самий перемикач режиму `compact|verbose`.
- Результати прив'язані до сеансу, тому зміна агента, каналу, потоку, авторизації відправника або моделі може змінити вивід.
- `/tools` включає інструменти, які фактично доступні під час виконання, зокрема основні інструменти, підключені інструменти Plugin та інструменти, що належать каналу.
Для редагування профілю та перевизначень використовуйте панель Tools у Control UI або поверхні config/catalog, замість того щоб розглядати `/tools` як статичний каталог.
Для редагування профілю та перевизначень використовуйте панель Tools в Control UI або поверхні конфігурації/каталогу замість того, щоб трактувати `/tools` як статичний каталог.
## Поверхні використання (що де показується)
- **Використання/квота provider** (приклад: "Claude 80% left") показується в `/status` для поточного provider моделі, коли ввімкнено відстеження використання. OpenClaw нормалізує вікна provider до `% left`; для MiniMax поля відсотка лише залишку інвертуються перед відображенням, а відповіді `model_remains` віддають перевагу запису chat-model плюс позначці плану з тегом моделі.
- **Рядки token/cache** у `/status` можуть повертатися до останнього запису використання transcript, коли live-знімок сесії розріджений. Наявні ненульові live-значення все ще мають пріоритет, а fallback transcript також може відновити мітку активної runtime-моделі плюс більший prompt-орієнтований підсумок, коли збережені підсумки відсутні або менші.
- **Виконання проти runtime:** `/status` повідомляє `Execution` для ефективного sandbox path і `Runtime` для того, хто фактично запускає сесію: `OpenClaw Pi Default`, `OpenAI Codex`, backend CLI або backend ACP.
- **Tokens/cost для кожної відповіді** керується `/usage off|tokens|full` (додається до звичайних відповідей).
- `/model status` стосується **models/auth/endpoints**, а не використання.
- **Використання/квота провайдера** (приклад: "Claude 80% left") показується в `/status` для поточного провайдера моделі, коли відстеження використання ввімкнено. OpenClaw нормалізує вікна провайдерів до `% left`; для MiniMax поля відсотка лише залишку інвертуються перед показом, а відповіді `model_remains` віддають перевагу запису чат-моделі плюс позначці плану з тегом моделі.
- **Рядки токенів/кешу** в `/status` можуть відступати до останнього запису використання стенограми, коли знімок сеансу наживо розріджений. Наявні ненульові живі значення все одно мають пріоритет, а резерв зі стенограми також може відновити активну мітку моделі часу виконання плюс більшу суму, орієнтовану на промпт, коли збережені суми відсутні або менші.
- **Виконання проти часу виконання:** `/status` повідомляє `Execution` для ефективного шляху sandbox і `Runtime` для того, хто фактично запускає сеанс: `OpenClaw Pi Default`, `OpenAI Codex`, CLI-бекенд або ACP-бекенд.
- **Токени/вартість для кожної відповіді** керується `/usage off|tokens|full` (додається до звичайних відповідей).
- `/model status` стосується **моделей/автентифікації/ендпойнтів**, а не використання.
## Вибір моделі (`/model`)
`/model` реалізовано як directive.
`/model` реалізовано як директиву.
Приклади:
@ -338,14 +338,14 @@ x-i18n:
Примітки:
- `/model` і `/model list` показують компактний нумерований picker (сімейство моделі + доступні provider).
- У Discord `/model` і `/models` відкривають інтерактивний picker із dropdowns provider і model плюс крок Submit.
- `/model <#>` вибирає з цього picker (і, коли можливо, віддає перевагу поточному provider).
- `/model status` показує детальний перегляд, включно зі сконфігурованим endpoint provider (`baseUrl`) і режимом API (`api`), коли доступно.
- `/model` і `/model list` показують компактний нумерований вибірник (родина моделі + доступні провайдери).
- У Discord `/model` і `/models` відкривають інтерактивний вибірник із випадними списками провайдера та моделі плюс крок Submit.
- `/model <#>` вибирає з цього вибірника (і за можливості віддає перевагу поточному провайдеру).
- `/model status` показує докладний перегляд, зокрема налаштований ендпойнт провайдера (`baseUrl`) і режим API (`api`), коли доступно.
## Перевизначення debug
## Перевизначення налагодження
`/debug` дає змогу задавати **лише runtime** перевизначення конфігурації (у пам'яті, не на диску). Лише для власника. Вимкнено за замовчуванням; увімкніть через `commands.debug: true`.
`/debug` дає змогу задавати **лише під час виконання** перевизначення конфігурації (у пам’яті, не на диску). Лише для власника. Вимкнено за замовчуванням; увімкніть за допомогою `commands.debug: true`.
Приклади:
@ -363,7 +363,7 @@ x-i18n:
## Вивід трасування Plugin
`/trace` дає змогу перемикати **обмежені поточною сесією рядки трасування/налагодження Plugin** без увімкнення повного докладного режиму.
`/trace` дає змогу перемикати **обмежені сеансом рядки трасування/налагодження Plugin** без увімкнення повного докладного режиму.
Приклади:
@ -375,16 +375,16 @@ x-i18n:
Примітки:
- `/trace` без аргументу показує поточний стан трасування сесії.
- `/trace on` вмикає рядки трасування Plugin для поточної сесії.
- `/trace` без аргумента показує поточний стан трасування сеансу.
- `/trace on` вмикає рядки трасування Plugin для поточного сеансу.
- `/trace off` знову вимикає їх.
- Рядки трасування Plugin можуть з'являтися в `/status` і як подальше діагностичне повідомлення після звичайної відповіді асистента.
- `/trace` не замінює `/debug`; `/debug` і надалі керує лише runtime перевизначеннями конфігурації.
- `/trace` не замінює `/verbose`; звичайний докладний вивід інструментів/статусу й надалі належить до `/verbose`.
- Рядки трасування Plugin можуть зявлятися в `/status` і як подальше діагностичне повідомлення після звичайної відповіді асистента.
- `/trace` не замінює `/debug`; `/debug` і далі керує перевизначеннями конфігурації лише під час виконання.
- `/trace` не замінює `/verbose`; звичайний докладний вивід інструментів/стану й далі належить до `/verbose`.
## Оновлення конфігурації
`/config` записує у вашу конфігурацію на диску (`openclaw.json`). Лише для власника. Вимкнено за замовчуванням; увімкніть через `commands.config: true`.
`/config` записує у вашу конфігурацію на диску (`openclaw.json`). Лише для власника. Вимкнено за замовчуванням; увімкніть за допомогою `commands.config: true`.
Приклади:
@ -402,7 +402,7 @@ x-i18n:
## Оновлення MCP
`/mcp` записує керовані OpenClaw визначення серверів MCP у `mcp.servers`. Лише для власника. Вимкнено за замовчуванням; увімкніть через `commands.mcp: true`.
`/mcp` записує керовані OpenClaw визначення серверів MCP у `mcp.servers`. Лише для власника. Вимкнено за замовчуванням; увімкніть за допомогою `commands.mcp: true`.
Приклади:
@ -414,12 +414,12 @@ x-i18n:
```
<Note>
`/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в проєктних налаштуваннях, що належать Pi. Runtime-адаптери вирішують, які транспорти фактично можна виконати.
`/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в проєктних налаштуваннях, що належать Pi. Адаптери під час виконання вирішують, які транспорти справді можна виконати.
</Note>
## Оновлення Plugin
`/plugins` дає операторам змогу переглядати виявлені Plugin і перемикати їх увімкнення в конфігурації. Потоки лише для читання можуть використовувати `/plugin` як псевдонім. Вимкнено за замовчуванням; увімкніть через `commands.plugins: true`.
`/plugins` дає операторам змогу переглядати виявлені Plugin і перемикати їх увімкнення в конфігурації. Потоки лише для читання можуть використовувати `/plugin` як псевдонім. Вимкнено за замовчуванням; увімкніть за допомогою `commands.plugins: true`.
Приклади:
@ -432,7 +432,7 @@ x-i18n:
```
<Note>
- `/plugins list` і `/plugins show` використовують справжнє виявлення Plugin для поточного робочого простору разом із конфігурацією на диску.
- `/plugins list` і `/plugins show` використовують реальне виявлення Plugin у поточному робочому просторі разом із конфігурацією на диску.
- `/plugins enable|disable` оновлює лише конфігурацію Plugin; це не встановлює й не видаляє Plugin.
- Після змін увімкнення/вимкнення перезапустіть Gateway, щоб застосувати їх.
@ -441,36 +441,36 @@ x-i18n:
## Примітки щодо поверхонь
<AccordionGroup>
<Accordion title="Sessions per surface">
- **Текстові команди** виконуються у звичайній чат-сесії (особисті повідомлення спільно використовують `main`, групи мають власну сесію).
- **Нативні команди** використовують ізольовані сесії:
<Accordion title="Сеанси для кожної поверхні">
- **Текстові команди** виконуються у звичайному сеансі чату (DM мають спільний `main`, групи мають власний сеанс).
- **Нативні команди** використовують ізольовані сеанси:
- Discord: `agent:<agentId>:discord:slash:<userId>`
- Slack: `agent:<agentId>:slack:slash:<userId>` (префікс налаштовується через `channels.slack.slashCommand.sessionPrefix`)
- Telegram: `telegram:slash:<userId>` (спрямовує на чат-сесію через `CommandTargetSessionKey`)
- **`/stop`** спрямовується на активну чат-сесію, щоб мати змогу перервати поточний запуск.
- Telegram: `telegram:slash:<userId>` (цілиться в сеанс чату через `CommandTargetSessionKey`)
- **`/stop`** цілиться в активний сеанс чату, щоб він міг перервати поточний запуск.
</Accordion>
<Accordion title="Slack specifics">
`channels.slack.slashCommand` і надалі підтримується для однієї команди в стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну slash-команду Slack для кожної вбудованої команди (з тими самими назвами, що й у `/help`). Меню аргументів команд для Slack доставляються як ефемерні кнопки Block Kit.
<Accordion title="Особливості Slack">
`channels.slack.slashCommand` досі підтримується для однієї команди в стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити по одній slash-команді Slack для кожної вбудованої команди (ті самі назви, що й у `/help`). Меню аргументів команд для Slack доставляються як ефемерні кнопки Block Kit.
Виняток для нативних команд Slack: зареєструйте `/agentstatus` (не `/status`), бо Slack резервує `/status`. Текстова команда `/status` і надалі працює в повідомленнях Slack.
Виняток для нативних команд Slack: зареєструйте `/agentstatus` (не `/status`), бо Slack резервує `/status`. Текстова `/status` досі працює в повідомленнях Slack.
</Accordion>
</AccordionGroup>
## Побічні запитання BTW
`/btw` — це швидке **побічне запитання** щодо поточної сесії.
`/btw` — це швидке **побічне запитання** про поточний сеанс.
На відміну від звичайного чату:
- воно використовує поточну сесію як фоновий контекст,
- воно використовує поточний сеанс як фоновий контекст,
- воно виконується як окремий одноразовий виклик **без інструментів**,
- воно не змінює майбутній контекст сесії,
- воно не записується в історію transcript,
- воно не змінює майбутній контекст сеансу,
- воно не записується в історію транскрипта,
- воно доставляється як живий побічний результат замість звичайного повідомлення асистента.
Це робить `/btw` корисним, коли потрібне тимчасове уточнення, поки основне завдання продовжується.
Це робить `/btw` корисним, коли вам потрібне тимчасове уточнення, поки основне завдання триває.
Приклад:
@ -478,10 +478,10 @@ x-i18n:
/btw what are we doing right now?
```
Див. [Побічні запитання BTW](/uk/tools/btw), щоб дізнатися повну поведінку та подробиці UX клієнта.
Див. [Побічні запитання BTW](/uk/tools/btw), щоб ознайомитися з повною поведінкою та деталями UX клієнта.
## Пов'язане
## Повязане
- [Створення skills](/uk/tools/creating-skills)
- [Створення Skills](/uk/tools/creating-skills)
- [Skills](/uk/tools/skills)
- [Конфігурація Skills](/uk/tools/skills-config)