chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-03 21:44:29 +00:00
parent ade1dc47ac
commit 6ec97dec38
2 changed files with 368 additions and 374 deletions

View File

@ -1,22 +1,22 @@
---
read_when:
- Використання або налаштування команд чату
- Використання або налаштування чат-команд
- Налагодження маршрутизації команд або дозволів
sidebarTitle: Slash commands
summary: 'Слеш-команди: текстові та нативні, конфігурація й підтримувані команди'
summary: 'Слеш-команди: текстові й нативні, конфігурація та підтримувані команди'
title: Слеш-команди
x-i18n:
generated_at: "2026-05-03T18:10:30Z"
generated_at: "2026-05-03T21:42:02Z"
model: gpt-5.5
provider: openai
source_hash: 9fbdd76ccd43159cabfbc3f15f7bddd2a7ada07fcd6eea2e169d2d88df18f28c
source_hash: b95b98f84fd26b706cc38d93935be509033e5df30e00b2f581e326e68b256043
source_path: tools/slash-commands.md
workflow: 16
---
Команди обробляє Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`. Команда bash-чату лише для хоста використовує `! <cmd>``/bash <cmd>` як псевдонімом).
Команди обробляються Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`. Команда bash-чату лише для хоста використовує `! <cmd>``/bash <cmd>` як псевдонімом).
Коли розмову або тред прив’язано до ACP-сесії, звичайний подальший текст спрямовується до цього ACP harness. Команди керування Gateway все одно залишаються локальними: `/acp ...` завжди потрапляє до обробника команд OpenClaw ACP, а `/status` плюс `/unfocus` залишаються локальними щоразу, коли обробку команд увімкнено для поверхні.
Коли розмову або потік прив’язано до сесії ACP, звичайний текст подальших відповідей маршрутизується до цієї ACP-обв’язки. Команди керування Gateway усе одно залишаються локальними: `/acp ...` завжди потрапляє до обробника команд OpenClaw ACP, а `/status` і `/unfocus` залишаються локальними, коли для цієї поверхні ввімкнено обробку команд.
Є дві пов’язані системи:
@ -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,29 +69,29 @@ 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"'>
Реєструє нативні команди. Auto: увімкнено для Discord/Telegram; вимкнено для Slack (доки ви не додасте slash-команди); ігнорується для провайдерів без нативної підтримки. Встановіть `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native`, щоб перевизначити для окремого провайдера (bool або `"auto"`). У Discord значення `false` пропускає реєстрацію slash-команд і очищення під час запуску; раніше зареєстровані команди можуть залишатися видимими, доки ви не видалите їх із застосунку Discord. Команди Slack керуються в застосунку Slack і не видаляються автоматично.
Реєструє нативні команди. Авто: увімкнено для Discord/Telegram; вимкнено для Slack (доки ви не додасте slash-команди); ігнорується для провайдерів без нативної підтримки. Встановіть `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native`, щоб перевизначити для окремого провайдера (bool або `"auto"`). У Discord `false` пропускає реєстрацію та очищення slash-команд під час запуску; раніше зареєстровані команди можуть залишатися видимими, доки ви не видалите їх із застосунку Discord. Команди Slack керуються в застосунку Slack і не видаляються автоматично.
</ParamField>
У Discord специфікації нативних команд можуть містити `descriptionLocalizations`, які OpenClaw публікує як Discord `description_localizations` і включає до порівнянь узгодження.
У Discord специфікації нативних команд можуть містити `descriptionLocalizations`, які OpenClaw публікує як Discord `description_localizations` і включає в порівняння узгодження.
<ParamField path="commands.nativeSkills" type='boolean | "auto"' default='"auto"'>
Реєструє команди **skill** нативно, коли це підтримується. Auto: увімкнено для Discord/Telegram; вимкнено для Slack (Slack вимагає створити slash-команду для кожного skill). Встановіть `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills`, щоб перевизначити для окремого провайдера (bool або `"auto"`).
Реєструє команди **Skills** нативно, коли це підтримується. Авто: увімкнено для Discord/Telegram; вимкнено для Slack (Slack вимагає створення slash-команди для кожної Skills). Встановіть `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills`, щоб перевизначити для окремого провайдера (bool або `"auto"`).
</ParamField>
<ParamField path="commands.bash" type="boolean" default="false">
Вмикає `! <cmd>` для запуску команд shell хоста (`/bash <cmd>` є псевдонімом; потребує списків дозволених `tools.elevated`).
Вмикає `! <cmd>` для запуску команд оболонки хоста (`/bash <cmd>` є псевдонімом; потребує списків дозволених `tools.elevated`).
</ParamField>
<ParamField path="commands.bashForegroundMs" type="number" default="2000">
Керує тим, як довго bash чекає перед перемиканням у фоновий режим (`0` одразу переводить у фон).
Керує тим, як довго bash очікує перед перемиканням у фоновий режим (`0` одразу переводить у фон).
</ParamField>
<ParamField path="commands.config" type="boolean" default="false">
Вмикає `/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` (виявлення/статус plugin плюс елементи керування встановленням і ввімкненням/вимкненням).
Вмикає `/plugins` (виявлення/стан plugin плюс елементи керування встановленням і ввімкненням/вимкненням).
</ParamField>
<ParamField path="commands.debug" type="boolean" default="false">
Вмикає `/debug` (перевизначення лише під час виконання).
@ -100,138 +100,139 @@ x-i18n:
Вмикає `/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` або нативним метаданим власника провайдера), або мати внутрішню область `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`
- вбудовані команди ядра надходять із `src/auto-reply/commands-registry.shared.ts`
- згенеровані dock-команди надходять із `src/auto-reply/commands-registry.data.ts`
- plugin-команди надходять із викликів plugin `registerCommand()`
- фактична доступність на вашому gateway все одно залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених plugins
- команди plugin надходять із викликів plugin `registerCommand()`
- фактична доступність на вашому gateway усе одно залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених plugin
### Вбудовані core-команди
### Вбудовані команди ядра
<AccordionGroup>
<Accordion title="Сесії та запуски">
- `/new [model]` запускає нову сесію; `/reset` є псевдонімом скидання.
- Control UI перехоплює введене `/new`, щоб створити й перемкнутися на нову сесію панелі; введене `/reset` все одно виконує скидання Gateway на місці.
- `/reset soft [message]` зберігає поточний транскрипт, відкидає повторно використані ідентифікатори сесій CLI backend і повторно запускає завантаження startup/system-prompt на місці.
- Control UI перехоплює введене `/new`, щоб створити й перемкнутися на свіжу сесію dashboard; введене `/reset` і далі виконує скидання Gateway на місці.
- `/reset soft [message]` зберігає поточний transcript, відкидає повторно використані ідентифікатори сесій backend CLI і повторно запускає завантаження startup/system-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 bundle](/uk/tools/trajectory) для поточної сесії. Використовуйте це, коли вам потрібна часова шкала prompt, інструментів і транскрипту для однієї сесії OpenClaw. У групових чатах prompt схвалення та результат експорту надсилаються власнику приватно. Псевдонім: `/trajectory`.
- `/export-trajectory [path]` запитує схвалення exec, а потім експортує JSONL [пакет траєкторії](/uk/tools/trajectory) для поточної сесії. Використовуйте це, коли потрібна хронологія prompt, інструментів і transcript для однієї сесії OpenClaw. У групових чатах prompt схвалення та результат експорту надсилаються власнику приватно. Псевдонім: `/trajectory`.
</Accordion>
<Accordion title="Керування моделлю та запуском">
- `/think <level>` встановлює рівень мислення. Опції надходять із профілю провайдера активної моделі; поширені рівні: `off`, `minimal`, `low`, `medium` і `high`, а користувацькі рівні, як-от `xhigh`, `adaptive`, `max`, або бінарний `on`, доступні лише там, де підтримуються. Псевдоніми: `/thinking`, `/t`.
<Accordion title="Модель і керування запуском">
- `/think <level>` задає рівень thinking. Варіанти надходять із профілю провайдера активної моделі; поширені рівні: `off`, `minimal`, `low`, `medium` і `high`, із власними рівнями на кшталт `xhigh`, `adaptive`, `max` або бінарним `on` лише там, де підтримується. Псевдоніми: `/thinking`, `/t`.
- `/verbose on|off|full` перемикає докладний вивід. Псевдонім: `/v`.
- `/trace on|off` перемикає трасувальний вивід plugin для поточної сесії.
- `/fast [status|on|off]` показує або встановлює швидкий режим.
- `/trace on|off` перемикає вивід trace plugin для поточної сесії.
- `/fast [status|on|off]` показує або задає швидкий режим.
- `/reasoning [on|off|stream]` перемикає видимість reasoning. Псевдонім: `/reason`.
- `/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`, застаріле `queue`, `followup`, `collect`, `steer-backlog`, `interrupt`) плюс опціями на кшталт `debounce:0.5s cap:25 drop:summarize`; `/queue default` або `/queue reset` очищає перевизначення сесії. Див. [Command queue](/uk/concepts/queue) і [Steering queue](/uk/concepts/queue-steering).
- `/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.
- `/model [name|#|status]` показує або задає модель.
- `/models [provider] [page] [limit=<n>|size=<n>|all]` перелічує налаштованих/доступних через auth провайдерів або моделі для провайдера; додайте `all`, щоб переглянути повний catalog цього провайдера.
- `/queue <mode>` керує поведінкою черги (`steer`, legacy `queue`, `followup`, `collect`, `steer-backlog`, `interrupt`) плюс параметри на кшталт `debounce:0.5s cap:25 drop:summarize`; `/queue default` або `/queue reset` очищає перевизначення сесії. Див. [Черга команд](/uk/concepts/queue) і [Steering-черга](/uk/concepts/queue-steering).
- `/steer <message>` вводить guidance в активний запуск для поточної сесії, незалежно від режиму `/queue`. Вона не запускає новий запуск, коли сесія idle. Псевдонім: `/tell`.
</Accordion>
<Accordion title="Виявлення та статус">
<Accordion title="Виявлення та стан">
- `/help` показує короткий підсумок довідки.
- `/commands` показує згенерований каталог команд.
- `/tools [compact|verbose]` показує, що поточний агент може використовувати прямо зараз.
- `/status` показує статус виконання/runtime, включно з мітками `Execution`/`Runtime` і використанням/квотою провайдера, коли доступно.
- `/diagnostics [note]` — це потік звіту підтримки лише для власника для помилок Gateway і запусків Codex harness. Він щоразу запитує явне схвалення exec перед запуском `openclaw gateway diagnostics export --json`; не схвалюйте діагностику правилом allow-all. Після схвалення він надсилає звіт, який можна вставити, з локальним шляхом bundle, підсумком manifest, примітками про приватність і релевантними ідентифікаторами сесій. У групових чатах prompt схвалення та звіт надсилаються власнику приватно. Коли активна сесія використовує OpenAI Codex harness, те саме схвалення також надсилає релевантний відгук Codex на сервери OpenAI, а завершена відповідь перелічує ідентифікатори сесій OpenClaw, ідентифікатори тредів Codex і команди `codex resume <thread-id>`. Див. [Експорт діагностики](/uk/gateway/diagnostics).
- `/crestodian <request>` запускає помічник налаштування та ремонту Crestodian з DM власника.
- `/tasks` перелічує активні/недавні фонові завдання для поточної сесії.
- `/commands` показує згенерований catalog команд.
- `/tools [compact|verbose]` показує, що поточний агент може використовувати саме зараз.
- `/status` показує стан виконання/середовища виконання, включно з мітками `Execution`/`Runtime` і використанням/квотою провайдера, коли доступно.
- `/diagnostics [note]` — це потік звіту підтримки лише для власника для помилок Gateway і запусків обв’язки Codex. Він щоразу запитує явне схвалення exec перед запуском `openclaw gateway diagnostics export --json`; не схвалюйте diagnostics правилом allow-all. Після схвалення він надсилає звіт, який можна вставити, з локальним шляхом bundle, підсумком manifest, примітками щодо приватності та відповідними ідентифікаторами сесій. У групових чатах prompt схвалення та звіт надсилаються власнику приватно. Коли активна сесія використовує обв’язку OpenAI Codex, те саме схвалення також надсилає релевантний відгук Codex на сервери OpenAI, а завершена відповідь перелічує ідентифікатори сесій OpenClaw, ідентифікатори потоків Codex і команди `codex resume <thread-id>`. Див. [Експорт diagnostics](/uk/gateway/diagnostics).
- `/crestodian <request>` запускає помічник налаштування й ремонту Crestodian з DM власника.
- `/tasks` перелічує активні/нещодавні фонові завдання для поточної сесії.
- `/context [list|detail|json]` пояснює, як збирається контекст.
- `/whoami` показує ваш ідентифікатор відправника. Псевдонім: `/id`.
- `/usage off|tokens|full|cost` керує футером використання для кожної відповіді або друкує локальний підсумок вартості.
- `/whoami` показує ваш sender id. Псевдонім: `/id`.
- `/usage off|tokens|full|cost` керує footer використання для кожної відповіді або друкує локальний підсумок cost.
</Accordion>
<Accordion title="Skills, списки дозволених, схвалення">
- `/skill <name> [input]` запускає skill за назвою.
- `/skill <name> [input]` запускає Skills за назвою.
- `/allowlist [list|add|remove] ...` керує записами списку дозволених. Лише текст.
- `/approve <id> <decision>` розв’язує prompts схвалення exec.
- `/approve <id> <decision>` вирішує prompts схвалення exec.
- `/btw <question>` ставить побічне запитання без зміни майбутнього контексту сесії. Псевдонім: `/side`. Див. [BTW](/uk/tools/btw).
</Accordion>
<Accordion title="Subagents and 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 до цілі сеансу.
<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 і параметрами середовища виконання.
- `/focus <target>` прив’язує поточний потік Discord або тему/розмову Telegram до цілі сеансу.
- `/unfocus` видаляє поточну прив’язку.
- `/agents` показує агентів, прив’язаних до гілки, для поточного сеансу.
- `/kill <id|#|all>` перериває одного або всіх запущених під-агентів.
- `/steer <id|#> <message>` надсилає керування запущеному під-агенту. Псевдонім: `/tell`.
- `/agents` виводить агентів, прив’язаних до потоку, для поточного сеансу.
- `/kill <id|#|all>` перериває одного або всіх запущених субагентів.
- `/subagents steer <id|#> <message>` надсилає керування запущеному субагенту.
</Accordion>
<Accordion title="Owner-only writes and admin">
- `/config show|get|set|unset` читає або записує `openclaw.json`. Лише для власника. Потребує `commands.config: true`.
- `/mcp show|get|set|unset` читає або записує конфігурацію MCP-сервера, керовану OpenClaw, у `mcp.servers`. Лише для власника. Потребує `commands.mcp: true`.
- `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан плагінів. `/plugin` є псевдонімом. Запис лише для власника. Потребує `commands.plugins: true`.
- `/debug show|set|unset|reset` керує runtime-перевизначеннями конфігурації. Лише для власника. Потребує `commands.debug: true`.
- `/restart` перезапускає OpenClaw, якщо ввімкнено. За замовчуванням: увімкнено; установіть `commands.restart: false`, щоб вимкнути це.
- `/send on|off|inherit` установлює політику надсилання. Лише для власника.
<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` керує перевизначеннями конфігурації лише для середовища виконання. Лише для власника. Потрібно `commands.debug: true`.
- `/restart` перезапускає OpenClaw, коли ввімкнено. Типово: ввімкнено; задайте `commands.restart: false`, щоб вимкнути.
- `/send on|off|inherit` задає політику надсилання. Лише для власника.
</Accordion>
<Accordion title="Voice, TTS, channel control">
<Accordion title="Голос, TTS, керування каналом">
- `/tts on|off|status|chat|latest|provider|limit|summary|audio|help` керує TTS. Див. [TTS](/uk/tools/tts).
- `/activation mention|always` установлює режим активації групи.
- `/bash <command>` запускає команду оболонки хоста. Лише текст. Псевдонім: `! <command>`. Потребує `commands.bash: true` плюс списків дозволів `tools.elevated`.
- `/activation mention|always` задає режим активації групи.
- `/bash <command>` запускає команду оболонки хоста. Лише текст. Псевдонім: `! <command>`. Потрібно `commands.bash: true` плюс allowlists `tools.elevated`.
- `!poll [sessionId]` перевіряє фонове завдання bash.
- `!stop [sessionId]` зупиняє фонове завдання bash.
</Accordion>
</AccordionGroup>
### Згенеровані команди докування
### Згенеровані команди закріплення
Команди докування перемикають маршрут відповіді поточного сеансу на інший пов’язаний
канал. Див. [Докування каналів](/uk/concepts/channel-docking), щоб налаштувати,
переглянути приклади й усунути несправності.
Команди закріплення перемикають маршрут відповіді поточного сеансу на інший пов’язаний
канал. Див. [Закріплення каналів](/uk/concepts/channel-docking) для налаштування,
прикладів і усунення несправностей.
Команди докування генеруються з плагінів каналів із підтримкою нативних команд. Поточний вбудований набір:
Команди закріплення генеруються з plugin каналів із підтримкою нативних команд. Поточний вбудований набір:
- `/dock-discord` (псевдонім: `/dock_discord`)
- `/dock-mattermost` (псевдонім: `/dock_mattermost`)
- `/dock-slack` (псевдонім: `/dock_slack`)
- `/dock-telegram` (псевдонім: `/dock_telegram`)
Використовуйте команди докування з прямого чату, щоб перемкнути маршрут відповіді поточного сеансу на інший пов’язаний канал. Агент зберігає той самий контекст сеансу, але майбутні відповіді для цього сеансу доставляються вибраному співрозмовнику каналу.
Використовуйте команди закріплення з прямого чату, щоб перемкнути маршрут відповіді поточного сеансу на інший пов’язаний канал. Агент зберігає той самий контекст сеансу, але майбутні відповіді для цього сеансу доставляються вибраному учаснику каналу.
Команди докування потребують `session.identityLinks`. Відправник-джерело й цільовий співрозмовник мають бути в одній групі ідентичності, наприклад `["telegram:123", "discord:456"]`. Якщо користувач Telegram з id `123` надсилає `/dock_discord`, OpenClaw зберігає `lastChannel: "discord"` і `lastTo: "456"` в активному сеансі. Якщо відправника не пов’язано зі співрозмовником Discord, команда відповідає підказкою з налаштування замість переходу до звичайного чату.
Команди закріплення потребують `session.identityLinks`. Відправник-джерело та цільовий учасник мають бути в одній групі ідентичностей, наприклад `["telegram:123", "discord:456"]`. Якщо користувач Telegram з id `123` надсилає `/dock_discord`, OpenClaw зберігає `lastChannel: "discord"` і `lastTo: "456"` в активному сеансі. Якщо відправника не пов’язано з учасником Discord, команда відповідає підказкою з налаштування замість переходу до звичайного чату.
Докування змінює лише маршрут активного сеансу. Воно не створює облікові записи каналів, не надає доступ, не обходить списки дозволів каналу й не переносить історію стенограми до іншого сеансу. Використовуйте `/dock-telegram`, `/dock-slack`, `/dock-mattermost` або іншу згенеровану команду докування, щоб знову перемкнути маршрут.
Закріплення змінює лише маршрут активного сеансу. Воно не створює облікові записи каналів, не надає доступ, не обходить allowlists каналів і не переносить історію транскрипту до іншого сеансу. Використовуйте `/dock-telegram`, `/dock-slack`, `/dock-mattermost` або іншу згенеровану команду закріплення, щоб знову перемкнути маршрут.
### Команди вбудованих плагінів
### Команди вбудованих plugin
Вбудовані плагіни можуть додавати більше slash-команд. Поточні вбудовані команди в цьому репозиторії:
Вбудовані plugins можуть додавати більше slash-команд. Поточні вбудовані команди в цьому репозиторії:
- `/dreaming [on|off|status|help]` перемикає 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` тимчасово озброює високоризикові команди телефонного вузла.
- `/phone status|arm <camera|screen|writes|all> [duration]|disarm` тимчасово активує високоризикові команди телефонного вузла.
- `/voice status|list [limit]|set <voiceId|name>` керує конфігурацією голосу Talk. У Discord назва нативної команди — `/talkvoice`.
- `/card ...` надсилає пресети rich card LINE. Див. [LINE](/uk/channels/line).
- `/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills` перевіряє й керує вбудованим harness app-server Codex. Див. [Harness Codex](/uk/plugins/codex-harness).
- `/card ...` надсилає пресети насичених карток LINE. Див. [LINE](/uk/channels/line).
- `/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills` перевіряє та керує вбудованим app-server harness Codex. Див. [Harness Codex](/uk/plugins/codex-harness).
- Команди лише для QQBot:
- `/bot-ping`
- `/bot-version`
@ -241,88 +242,88 @@ x-i18n:
### Динамічні команди Skills
Skills, доступні для виклику користувачем, також відкриваються як slash-команди:
Skills, які може викликати користувач, також доступні як slash-команди:
- `/skill <name> [input]` завжди працює як загальна точка входу.
- Skills також можуть з’являтися як прямі команди, наприклад `/prose`, коли skill/plugin їх реєструє.
- реєстрація нативних команд Skills керується `commands.nativeSkills` і `channels.<provider>.commands.nativeSkills`.
- `/skill <name> [input]` завжди працює як універсальна точка входу.
- skills також можуть з’являтися як прямі команди, наприклад `/prose`, коли skill/plugin їх реєструє.
- реєстрація нативних команд skills керується `commands.nativeSkills` і `channels.<provider>.commands.nativeSkills`.
- специфікації команд можуть надавати `descriptionLocalizations` для нативних поверхонь, які підтримують локалізовані описи, зокрема Discord.
<AccordionGroup>
<Accordion title="Argument and parser notes">
- Команди приймають необов’язковий `:` між командою й аргументами (наприклад, `/think: high`, `/send: on`, `/help:`).
- `/new <model>` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст розглядається як тіло повідомлення.
- Для повного розподілу використання за провайдерами використовуйте `openclaw status --usage`.
<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>` приймає ті самі специфікації плагінів, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет, `git:<repo>` або `clawhub:<pkg>`, а потім запитує перезапуск Gateway, бо вихідні модулі плагіна змінилися.
- `/plugins enable|disable` оновлює конфігурацію плагінів і запускає перезавантаження плагінів Gateway для нових ходів агента.
- У багатооблікових каналах `/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-пакет, `git:<repo>` або `clawhub:<pkg>`, а потім запитує перезапуск Gateway, оскільки вихідні модулі plugin змінилися.
- `/plugins enable|disable` оновлює конфігурацію plugin і запускає перезавантаження plugin Gateway для нових ходів агента.
</Accordion>
<Accordion title="Channel-specific behavior">
- Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (недоступна як текст). `join` потребує guild і вибраного voice/stage-каналу. Потребує `channels.discord.voice` і нативних команд.
- Команди прив’язки гілок Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують увімкнених ефективних прив’язок гілок (`session.threadBindings.enabled` та/або `channels.discord.threadBindings.enabled`).
- Довідник команд ACP і runtime-поведінка: [Агенти ACP](/uk/tools/acp-agents).
<Accordion title="Поведінка, специфічна для каналів">
- Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (недоступна як текст). `join` потребує guild і вибраного voice/stage channel. Потрібні `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 safety">
- `/verbose` призначено для налагодження й додаткової видимості; тримайте його **вимкненим** під час звичайного використання.
- `/trace` вужчий за `/verbose`: він показує лише trace/debug-рядки, якими володіє плагін, і залишає звичайний докладний шум інструментів вимкненим.
- `/fast on|off` зберігає перевизначення сеансу. Використовуйте параметр `inherit` в UI 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` ризиковані в групових налаштуваннях: вони можуть розкрити внутрішнє міркування, вивід інструментів або діагностику плагінів, які ви не планували показувати. Краще залишати їх вимкненими, особливо в групових чатах.
<Accordion title="Безпека verbose / trace / fast / reasoning">
- `/verbose` призначено для налагодження та додаткової видимості; у звичайному використанні тримайте його **вимкненим**.
- `/trace` вужчий за `/verbose`: він показує лише рядки trace/debug, що належать plugin, і залишає звичайний verbose-шум інструментів вимкненим.
- `/fast on|off` зберігає перевизначення сеансу. Використовуйте опцію `inherit` в UI Sessions, щоб очистити його й повернутися до типових значень конфігурації.
- `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` на нативних Responses endpoints, тоді як прямі публічні запити 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 switching">
<Accordion title="Перемикання моделі">
- `/model` негайно зберігає нову модель сеансу.
- Якщо агент простоює, наступний запуск одразу її використовує.
- Якщо запуск уже активний, OpenClaw позначає live-перемикання як очікуване й перезапускається в нову модель лише в чистій точці повторної спроби.
- Якщо агент простоює, наступний запуск використовує її відразу.
- Якщо запуск уже активний, OpenClaw позначає live-перемикання як очікуване й перезапускає нову модель лише в чистій точці повторної спроби.
- Якщо активність інструментів або вивід відповіді вже почалися, очікуване перемикання може залишатися в черзі до пізнішої можливості повторної спроби або наступного ходу користувача.
- У локальному TUI `/crestodian [request]` повертає зі звичайного TUI агента до Crestodian. Це окремо від rescue mode каналу повідомлень і не надає віддалених прав на конфігурацію.
- У локальному TUI `/crestodian [request]` повертає зі звичайного TUI агента до Crestodian. Це окремо від режиму порятунку каналу повідомлень і не надає віддалених повноважень конфігурації.
</Accordion>
<Accordion title="Fast path and inline shortcuts">
- **Швидкий шлях:** повідомлення, що містять лише команди, від відправників зі списку дозволів обробляються негайно (обхід черги + моделі).
- **Обмеження згадок у групі:** повідомлення, що містять лише команди, від відправників зі списку дозволів обходять вимоги до згадок.
- **Вбудовані скорочення (лише відправники зі списку дозволів):** певні команди також працюють, коли вбудовані у звичайне повідомлення, і вилучаються перед тим, як модель побачить решту тексту.
- Приклад: `hey /status` запускає відповідь зі статусом, а решта тексту продовжує проходити звичайним потоком.
<Accordion title="Швидкий шлях і вбудовані скорочення">
- **Швидкий шлях:** повідомлення лише з командами від відправників з allowlist обробляються негайно (обхід черги + моделі).
- **Фільтрація згадок у групах:** повідомлення лише з командами від відправників з allowlist обходять вимоги щодо згадок.
- **Вбудовані скорочення (лише відправники з allowlist):** певні команди також працюють, коли вбудовані у звичайне повідомлення, і вилучаються до того, як модель побачить решту тексту.
- Приклад: `hey /status` запускає відповідь зі статусом, а решта тексту продовжує звичайний потік.
- Наразі: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
- Несанкціоновані повідомлення, що містять лише команди, мовчки ігноруються, а вбудовані токени `/...` розглядаються як звичайний текст.
- Несанкціоновані повідомлення лише з командами мовчки ігноруються, а вбудовані токени `/...` обробляються як звичайний текст.
</Accordion>
<Accordion title="Skill commands and native arguments">
- **Команди Skills:** Skills із `user-invocable` відкриваються як slash-команди. Назви нормалізуються до `a-z0-9_` (макс. 32 символи); колізії отримують числові суфікси (наприклад, `_2`).
- `/skill <name> [input]` запускає Skills за назвою (корисно, коли обмеження нативних команд не дозволяють команди для кожного skill).
- За замовчуванням команди Skills пересилаються до моделі як звичайний запит.
- Skills можуть необов’язково оголосити `command-dispatch: tool`, щоб спрямувати команду безпосередньо до інструмента (детерміновано, без моделі).
- Приклад: `/prose` (плагін OpenProse) — див. [OpenProse](/uk/prose).
- **Аргументи нативних команд:** Discord використовує автозаповнення для динамічних параметрів (і меню кнопок, коли ви пропускаєте обов’язкові аргументи). 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`.
- Результати мають область дії сеансу, тому зміна агента, каналу, гілки, авторизації відправника або моделі може змінити вивід.
- `/tools` включає інструменти, які фактично доступні під час runtime, зокрема основні інструменти, підключені інструменти плагінів та інструменти, якими володіє канал.
- Поверхні нативних команд, що підтримують аргументи, надають той самий перемикач режиму `compact|verbose`.
- Результати прив’язані до сеансу, тому зміна агента, каналу, потоку, авторизації відправника або моделі може змінити вивід.
- `/tools` включає інструменти, які фактично доступні під час виконання, зокрема основні інструменти, підключені інструменти plugin та інструменти, що належать каналу.
Для редагування профілів і перевизначень використовуйте панель Tools у Control UI або поверхні config/catalog замість того, щоб сприймати `/tools` як статичний каталог.
Для редагування профілів і перевизначень використовуйте панель Tools у Control UI або поверхні конфігурації/каталогу, а не сприймайте `/tools` як статичний каталог.
## Поверхні використання (що де показується)
- **Використання/квота провайдера** (приклад: "Claude 80% left") відображається в `/status` для поточного провайдера моделей, коли відстеження використання ввімкнене. OpenClaw нормалізує вікна провайдера до `% left`; для MiniMax поля відсотків лише із залишком інвертуються перед показом, а відповіді `model_remains` надають перевагу запису чат-моделі разом із міткою плану з тегом моделі.
- **Рядки токенів/кешу** у `/status` можуть повертатися до останнього запису використання з транскрипту, коли знімок живої сесії розріджений. Наявні ненульові живі значення все ще мають пріоритет, а fallback із транскрипту також може відновити мітку активної runtime-моделі плюс більший prompt-орієнтований підсумок, коли збережені підсумки відсутні або менші.
- **Виконання vs runtime:** `/status` повідомляє `Execution` для ефективного шляху sandbox і `Runtime` для того, хто фактично запускає сесію: `OpenClaw Pi Default`, `OpenAI Codex`, CLI backend або ACP backend.
- **Токени/вартість за відповідь** керуються `/usage off|tokens|full` (додається до звичайних відповідей).
- `/model status` стосується **моделей/auth/endpoints**, а не використання.
- **Використання/квота провайдера** (приклад: "Claude 80% left") відображається в `/status` для поточного провайдера моделі, коли ввімкнено відстеження використання. OpenClaw нормалізує вікна провайдера до `% left`; для MiniMax поля відсотків лише із залишком інвертуються перед показом, а відповіді `model_remains` надають перевагу запису чат-моделі плюс позначці плану з тегом моделі.
- **Рядки токенів/кешу** в `/status` можуть відступати до останнього запису використання з транскрипта, коли live-знімок сесії неповний. Наявні ненульові live-значення все одно мають пріоритет, а відступ до транскрипта також може відновити мітку активної runtime-моделі плюс більший prompt-орієнтований підсумок, коли збережені підсумки відсутні або менші.
- **Виконання проти runtime:** `/status` повідомляє `Execution` для ефективного шляху пісочниці та `Runtime` для того, хто фактично запускає сесію: `OpenClaw Pi Default`, `OpenAI Codex`, CLI-бекенд або ACP-бекенд.
- **Токени/вартість на відповідь** керуються `/usage off|tokens|full` (додається до звичайних відповідей).
- `/model status` стосується **моделей/автентифікації/ендпоїнтів**, а не використання.
## Вибір моделі (`/model`)
@ -342,13 +343,13 @@ Skills, доступні для виклику користувачем, так
Примітки:
- `/model` і `/model list` показують компактний нумерований вибір (сімейство моделей + доступні провайдери).
- У Discord `/model` і `/models` відкривають інтерактивний вибір із dropdown-полями провайдера й моделі та кроком Submit.
- У Discord `/model` і `/models` відкривають інтерактивний вибір зі спадними списками провайдера й моделі плюс кроком «Надіслати».
- `/model <#>` вибирає з цього списку (і за можливості надає перевагу поточному провайдеру).
- `/model status` показує детальний вигляд, включно з налаштованим endpoint провайдера (`baseUrl`) і API-режимом (`api`), коли вони доступні.
- `/model status` показує детальний вигляд, зокрема налаштований ендпоїнт провайдера (`baseUrl`) і режим API (`api`), коли вони доступні.
## Debug-перевизначення
## Перевизначення для налагодження
`/debug` дає змогу задавати **лише runtime** перевизначення конфігурації (у пам’яті, не на диску). Лише для власника. За замовчуванням вимкнено; увімкніть через `commands.debug: true`.
`/debug` дає змогу задавати **лише runtime** перевизначення конфігурації (у памʼяті, не на диску). Тільки для власника. Вимкнено за замовчуванням; увімкніть через `commands.debug: true`.
Приклади:
@ -366,7 +367,7 @@ Skills, доступні для виклику користувачем, так
## Вивід трасування Plugin
`/trace` дає змогу перемикати **рядки трасування/debug плагіна в межах сесії** без увімкнення повного verbose-режиму.
`/trace` дає змогу перемикати **привʼязані до сесії рядки трасування/налагодження plugin** без увімкнення повного докладного режиму.
Приклади:
@ -379,15 +380,15 @@ Skills, доступні для виклику користувачем, так
Примітки:
- `/trace` без аргументу показує поточний стан трасування сесії.
- `/trace on` вмикає рядки трасування плагіна для поточної сесії.
- `/trace on` вмикає рядки трасування plugin для поточної сесії.
- `/trace off` знову вимикає їх.
- Рядки трасування плагіна можуть з’являтися в `/status` і як подальше діагностичне повідомлення після звичайної відповіді асистента.
- Рядки трасування plugin можуть зʼявлятися в `/status` і як подальше діагностичне повідомлення після звичайної відповіді асистента.
- `/trace` не замінює `/debug`; `/debug` і далі керує лише runtime перевизначеннями конфігурації.
- `/trace` не замінює `/verbose`; звичайний verbose-вивід інструментів/status і далі належить до `/verbose`.
- `/trace` не замінює `/verbose`; звичайний докладний вивід інструментів/стану все ще належить до `/verbose`.
## Оновлення конфігурації
`/config` записує у вашу конфігурацію на диску (`openclaw.json`). Лише для власника. За замовчуванням вимкнено; увімкніть через `commands.config: true`.
`/config` записує у вашу конфігурацію на диску (`openclaw.json`). Тільки для власника. Вимкнено за замовчуванням; увімкніть через `commands.config: true`.
Приклади:
@ -405,7 +406,7 @@ Skills, доступні для виклику користувачем, так
## Оновлення MCP
`/mcp` записує керовані OpenClaw визначення MCP-серверів у `mcp.servers`. Лише для власника. За замовчуванням вимкнено; увімкніть через `commands.mcp: true`.
`/mcp` записує керовані OpenClaw визначення MCP-серверів у `mcp.servers`. Тільки для власника. Вимкнено за замовчуванням; увімкніть через `commands.mcp: true`.
Приклади:
@ -417,12 +418,12 @@ Skills, доступні для виклику користувачем, так
```
<Note>
`/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в налаштуваннях проєкту, що належать Pi. Runtime-адаптери вирішують, які транспорти фактично виконувані.
`/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в налаштуваннях проєкту, що належать Pi. Runtime-адаптери вирішують, які транспорти фактично можна виконати.
</Note>
## Оновлення Plugin
`/plugins` дає операторам змогу переглядати виявлені плагіни й перемикати ввімкнення в конфігурації. Read-only потоки можуть використовувати `/plugin` як alias. За замовчуванням вимкнено; увімкніть через `commands.plugins: true`.
`/plugins` дає операторам змогу переглядати виявлені plugins і перемикати ввімкнення в конфігурації. Потоки лише для читання можуть використовувати `/plugin` як псевдонім. Вимкнено за замовчуванням; увімкніть через `commands.plugins: true`.
Приклади:
@ -435,10 +436,10 @@ Skills, доступні для виклику користувачем, так
```
<Note>
- `/plugins list` і `/plugins show` використовують справжнє виявлення плагінів у поточному workspace разом із конфігурацією на диску.
- `/plugins list` і `/plugins show` використовують справжнє виявлення plugin для поточного робочого простору плюс конфігурацію на диску.
- `/plugins install` встановлює з ClawHub, npm, git, локальних каталогів і архівів.
- `/plugins enable|disable` оновлює лише конфігурацію плагіна; це не встановлює й не видаляє плагіни.
- Зміни ввімкнення й вимкнення hot-reload runtime-поверхні плагінів Gateway для нових ходів агента; встановлення запитує перезапуск Gateway, бо змінилися source-модулі плагіна.
- `/plugins enable|disable` оновлює лише конфігурацію plugin; це не встановлює й не видаляє plugins.
- Зміни ввімкнення та вимкнення гаряче перезавантажують runtime-поверхні plugin Gateway для нових ходів агента; встановлення запитує перезапуск Gateway, бо вихідні модулі plugin змінилися.
</Note>
@ -446,35 +447,35 @@ Skills, доступні для виклику користувачем, так
<AccordionGroup>
<Accordion title="Сесії на поверхню">
- **Текстові команди** виконуються у звичайній чат-сесії (DM спільно використовують `main`, групи мають власну сесію).
- **Текстові команди** виконуються у звичайній чат-сесії (приватні повідомлення спільно використовують `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">
`channels.slack.slashCommand` і далі підтримується для однієї команди у стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну Slack slash command для кожної вбудованої команди (ті самі назви, що й у `/help`). Меню аргументів команд для Slack доставляються як ephemeral кнопки Block Kit.
`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` — це швидке **побічне питання** щодо поточної сесії. `/side` є alias.
`/btw` — це швидке **побічне запитання** про поточну сесію. `/side` є псевдонімом.
На відміну від звичайного чату:
- воно використовує поточну сесію як фоновий контекст,
- воно виконується як окремий одноразовий виклик **без інструментів**,
- воно не змінює майбутній контекст сесії,
- воно не записується в історію транскрипту,
- воно доставляється як live побічний результат замість звичайного повідомлення асистента.
- воно не записується в історію транскрипта,
- воно доставляється як live-побічний результат замість звичайного повідомлення асистента.
Це робить `/btw` корисним, коли потрібне тимчасове уточнення, поки основне завдання продовжується.
Це робить `/btw` корисним, коли потрібне тимчасове уточнення, поки основне завдання триває.
Приклад:
@ -483,10 +484,10 @@ Skills, доступні для виклику користувачем, так
/side what changed while the main run continued?
```
Див. [Побічні питання 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)

View File

@ -1,16 +1,16 @@
---
read_when:
- Вам потрібна фонова або паралельна робота через агента
- Ви змінюєте політику sessions_spawn або інструмента під-агентів
- Ви впроваджуєте або усуваєте несправності сеансів субагентів, прив’язаних до потоку
- Ви змінюєте політику sessions_spawn або інструмента для субагентів
- Ви впроваджуєте або усуваєте несправності сеансів субагентів, прив’язаних до потоків
sidebarTitle: Sub-agents
summary: Запускайте ізольовані фонові виконання агентів, які повідомляють результати назад у чат запитувача
summary: Запускайте ізольовані фонові запуски агентів, які повідомляють результати назад у чат запитувача
title: Субагенти
x-i18n:
generated_at: "2026-05-02T06:12:24Z"
generated_at: "2026-05-03T21:42:13Z"
model: gpt-5.5
provider: openai
source_hash: 0e964df543bd19435daf94f2c85a34b9d32e07662405d2eac7635935f1e7bf64
source_hash: e09370a96c3af4752a774aba5db62e38b0afd78bc5e105597d977cb130597daf
source_path: tools/subagents.md
workflow: 16
---
@ -23,25 +23,18 @@ x-i18n:
Основні цілі:
- Паралелити роботу з «дослідження / довге завдання / повільний інструмент» без блокування основного запуску.
- Тримати субагентів ізольованими за замовчуванням (розділення сеансів + опційна пісочниця).
- Ускладнити неправильне використання поверхні інструментів: субагенти за замовчуванням **не** отримують інструменти сеансу.
- Підтримувати налаштовувану глибину вкладеності для шаблонів оркестратора.
- Паралелізувати роботу "дослідження / довге завдання / повільний інструмент" без блокування основного запуску.
- Типово ізолювати субагентів (розділення сеансів + необов'язкова пісочниця).
- Зробити поверхню інструментів стійкою до неправильного використання: субагенти типово **не** отримують інструменти сеансу.
- Підтримувати налаштовувану глибину вкладеності для шаблонів оркестраторів.
<Note>
**Примітка щодо вартості:** кожен субагент за замовчуванням має власний
контекст і споживання токенів. Для важких або повторюваних завдань задайте
дешевшу модель для субагентів і залиште основного агента на якіснішій моделі.
Налаштовується через `agents.defaults.subagents.model` або перевизначення
для окремих агентів. Коли дочірньому агенту справді потрібна поточна стенограма
запитувача, агент може запросити `context: "fork"` для цього одного створення.
Прив’язані до потоку сеанси субагентів за замовчуванням мають
`context: "fork"`, бо вони відгалужують поточну розмову в подальший потік.
**Примітка щодо вартості:** кожен субагент типово має власний контекст і використання токенів. Для важких або повторюваних завдань задайте дешевшу модель для субагентів і залиште основного агента на якіснішій моделі. Налаштуйте через `agents.defaults.subagents.model` або перевизначення для окремого агента. Коли дочірньому запуску справді потрібен поточний транскрипт запитувача, агент може запросити `context: "fork"` для цього одного створення. Сеанси субагентів, прив'язані до гілки, типово мають `context: "fork"`, бо вони відгалужують поточну розмову в подальшу гілку.
</Note>
## Slash-команда
## Слеш-команда
Використовуйте `/subagents`, щоб переглядати або керувати запусками субагентів для **поточного
Використовуйте `/subagents`, щоб переглядати або контролювати запуски субагентів для **поточного
сеансу**:
```text
@ -54,15 +47,16 @@ x-i18n:
/subagents spawn <agentId> <task> [--model <model>] [--thinking <level>]
```
`/subagents info` показує метадані запуску (статус, часові позначки, id сеансу,
шлях до стенограми, очищення). Використовуйте `sessions_history` для обмеженого,
відфільтрованого з міркувань безпеки перегляду згадування; переглядайте шлях до стенограми на диску, коли вам
потрібна повна необроблена стенограма.
Використовуйте верхньорівневу `/steer <message>`, щоб скеровувати активний запуск поточного сеансу запитувача. Використовуйте `/subagents steer <id|#> <message>`, коли ціль — дочірній запуск.
### Елементи керування прив’язкою потоків
`/subagents info` показує метадані запуску (статус, часові позначки, ідентифікатор сеансу,
шлях до транскрипту, очищення). Використовуйте `sessions_history` для обмеженого,
відфільтрованого з міркувань безпеки перегляду відтворення; переглядайте шлях до транскрипту на диску, коли вам потрібен сирий повний транскрипт.
Ці команди працюють у каналах, що підтримують постійні прив’язки потоків.
Див. [Канали з підтримкою потоків](#thread-supporting-channels) нижче.
### Елементи керування прив'язкою гілок
Ці команди працюють у каналах, які підтримують постійні прив'язки гілок.
Див. [Канали з підтримкою гілок](#thread-supporting-channels) нижче.
```text
/focus <subagent-label|session-key|session-id|session-label>
@ -74,76 +68,76 @@ x-i18n:
### Поведінка створення
`/subagents spawn` запускає фонового субагента як команду користувача (а не
`/subagents spawn` запускає фонового субагента як користувацьку команду (а не
внутрішню ретрансляцію) і надсилає одне фінальне оновлення про завершення назад у
чат запитувача, коли запуск завершується.
<AccordionGroup>
<Accordion title="Non-blocking, push-based completion">
- Команда створення не блокує виконання; вона одразу повертає id запуску.
<Accordion title="Неблокувальне завершення з доставленням за ініціативою системи">
- Команда створення не блокує виконання; вона одразу повертає ідентифікатор запуску.
- Після завершення субагент оголошує повідомлення з підсумком/результатом назад у канал чату запитувача.
- Завершення працює за push-моделлю. Після створення **не** опитуйте `/subagents list`, `sessions_list` або `sessions_history` у циклі лише для очікування завершення; перевіряйте статус лише на вимогу для налагодження або втручання.
- Після завершення OpenClaw у режимі best-effort закриває відстежувані вкладки браузера/процеси, відкриті цим сеансом субагента, перш ніж потік очищення оголошення продовжиться.
- Завершення доставляється за ініціативою системи. Після створення **не** опитуйте `/subagents list`, `sessions_list` або `sessions_history` у циклі лише для очікування завершення; переглядайте статус тільки на вимогу для налагодження або втручання.
- Після завершення OpenClaw намагається закрити відстежувані вкладки браузера/процеси, відкриті цим сеансом субагента, перш ніж продовжиться потік очищення оголошення.
</Accordion>
<Accordion title="Manual-spawn delivery resilience">
- OpenClaw спершу пробує пряму доставку `agent` зі стабільним ключем ідемпотентності.
- Якщо пряма доставка завершується невдало, він повертається до маршрутизації через чергу.
<Accordion title="Стійкість доставлення під час ручного створення">
- OpenClaw спершу пробує пряме доставлення `agent` зі стабільним ключем ідемпотентності.
- Якщо пряме доставлення не вдається, він повертається до маршрутизації через чергу.
- Якщо маршрутизація через чергу все ще недоступна, оголошення повторюється з коротким експоненційним відступом перед остаточною відмовою.
- Доставка завершення зберігає розв’язаний маршрут запитувача: прив’язані до потоку або розмови маршрути завершення мають пріоритет, коли доступні; якщо джерело завершення надає лише канал, OpenClaw заповнює відсутню ціль/обліковий запис із розв’язаного маршруту сеансу запитувача (`lastChannel` / `lastTo` / `lastAccountId`), щоб пряма доставка все одно працювала.
- Доставлення завершення зберігає визначений маршрут запитувача: маршрути завершення, прив'язані до гілки або розмови, мають пріоритет, коли доступні; якщо джерело завершення надає лише канал, OpenClaw заповнює відсутню ціль/обліковий запис із визначеного маршруту сеансу запитувача (`lastChannel` / `lastTo` / `lastAccountId`), тож пряме доставлення все одно працює.
</Accordion>
<Accordion title="Completion handoff metadata">
Передавання завершення до сеансу запитувача — це згенерований середовищем виконання
внутрішній контекст (не текст, написаний користувачем), який містить:
<Accordion title="Метадані передавання завершення">
Передавання завершення до сеансу запитувача — це внутрішній контекст, згенерований середовищем виконання
(а не текст, написаний користувачем), і він містить:
- `Result` — найновіший видимий текст відповіді `assistant`, інакше очищений найновіший текст tool/toolResult. Термінально невдалі запуски не використовують повторно захоплений текст відповіді.
- `Result` — найновіший видимий текст відповіді `assistant`, інакше очищений найновіший текст tool/toolResult. Запуски, що завершилися невдало в кінцевому стані, не використовують повторно захоплений текст відповіді.
- `Status``completed successfully` / `failed` / `timed out` / `unknown`.
- Стисла статистика середовища виконання/токенів.
- Інструкцію доставки, яка наказує агенту запитувача переписати у звичайному голосі асистента (а не пересилати необроблені внутрішні метадані).
- Інструкцію доставлення, яка наказує агенту-запитувачу переписати відповідь звичайним голосом асистента (а не пересилати сирі внутрішні метадані).
</Accordion>
<Accordion title="Modes and ACP runtime">
- `--model` і `--thinking` перевизначають значення за замовчуванням для цього конкретного запуску.
- Використовуйте `info`/`log`, щоб переглянути деталі й вивід після завершення.
- `/subagents spawn` — це одноразовий режим (`mode: "run"`). Для постійних прив’язаних до потоку сеансів використовуйте `sessions_spawn` з `thread: true` і `mode: "session"`.
- Для сеансів ACP harness (Claude Code, Gemini CLI, OpenCode або явно Codex ACP/acpx) використовуйте `sessions_spawn` з `runtime: "acp"`, коли інструмент оголошує це середовище виконання. Див. [модель доставки ACP](/uk/tools/acp-agents#delivery-model) під час налагодження завершень або циклів агент-агент. Коли Plugin `codex` увімкнено, керування чатом/потоками Codex має надавати перевагу `/codex ...` над ACP, якщо користувач явно не просить ACP/acpx.
- OpenClaw приховує `runtime: "acp"`, доки ACP не ввімкнено, запитувач не перебуває в пісочниці, а бекенд-Plugin на кшталт `acpx` завантажено. `runtime: "acp"` очікує зовнішній id ACP harness або запис `agents.list[]` з `runtime.type="acp"`; використовуйте типове середовище виконання субагента для звичайних агентів конфігурації OpenClaw з `agents_list`.
<Accordion title="Режими та середовище виконання ACP">
- `--model` і `--thinking` перевизначають типові значення для цього конкретного запуску.
- Використовуйте `info`/`log`, щоб переглядати подробиці й вивід після завершення.
- `/subagents spawn` — це одноразовий режим (`mode: "run"`). Для постійних сеансів, прив'язаних до гілки, використовуйте `sessions_spawn` з `thread: true` і `mode: "session"`.
- Для сеансів обв'язки ACP (Claude Code, Gemini CLI, OpenCode або явно вказаний Codex ACP/acpx) використовуйте `sessions_spawn` з `runtime: "acp"`, коли інструмент оголошує це середовище виконання. Див. [модель доставлення ACP](/uk/tools/acp-agents#delivery-model) під час налагодження завершень або циклів агент-до-агента. Коли Plugin `codex` увімкнено, керування чатом/гілкою Codex має віддавати перевагу `/codex ...` над ACP, якщо користувач явно не просить ACP/acpx.
- OpenClaw приховує `runtime: "acp"`, доки ACP не ввімкнено, запитувач не перебуває в пісочниці, і не завантажено бекенд-Plugin, як-от `acpx`. `runtime: "acp"` очікує зовнішній ідентифікатор обв'язки ACP або запис `agents.list[]` з `runtime.type="acp"`; використовуйте типове середовище виконання субагента для звичайних агентів конфігурації OpenClaw з `agents_list`.
</Accordion>
</AccordionGroup>
## Режими контексту
Нативні субагенти стартують ізольовано, якщо викликач явно не просить відгалузити
поточну стенограму.
Нативні субагенти запускаються ізольовано, якщо викликач явно не просить відгалузити
поточний транскрипт.
| Режим | Коли його використовувати | Поведінка |
| Режим | Коли його використовувати | Поведінка |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| `isolated` | Свіже дослідження, незалежна реалізація, робота з повільними інструментами або будь-що, що можна описати в тексті завдання | Створює чисту дочірню стенограму. Це значення за замовчуванням і воно зменшує використання токенів. |
| `fork` | Робота, що залежить від поточної розмови, попередніх результатів інструментів або нюансованих інструкцій, уже наявних у стенограмі запитувача | Відгалужує стенограму запитувача в дочірній сеанс до старту дочірнього агента. |
| `isolated` | Свіже дослідження, незалежна реалізація, повільна робота інструмента або будь-що, що можна описати в тексті завдання | Створює чистий дочірній транскрипт. Це типове значення, яке зменшує використання токенів. |
| `fork` | Робота, що залежить від поточної розмови, попередніх результатів інструментів або нюансованих інструкцій, уже наявних у транскрипті запитувача | Відгалужує транскрипт запитувача в дочірній сеанс перед стартом дочірнього запуску. |
Використовуйте `fork` ощадливо. Він призначений для делегування, чутливого до контексту, а не як
заміна написанню чіткого промпта завдання.
## Інструмент: `sessions_spawn`
Запускає субагента з `deliver: false` у глобальній смузі `subagent`,
потім виконує крок оголошення і публікує відповідь оголошення в канал чату
Запускає запуск субагента з `deliver: false` на глобальній доріжці `subagent`,
потім виконує крок оголошення й публікує відповідь оголошення в канал чату
запитувача.
Доступність залежить від ефективної політики інструментів викликача. Профілі `coding` і
`full` відкривають `sessions_spawn` за замовчуванням. Профіль `messaging`
не відкриває; додайте `tools.alsoAllow: ["sessions_spawn", "sessions_yield",
"subagents"]` або використайте `tools.profile: "coding"` для агентів, які мають делегувати
роботу. Політики дозволу/заборони каналу/групи, провайдера, пісочниці й окремого агента все ще можуть
видалити інструмент після етапу профілю. Використовуйте `/tools` з того самого
`full` типово надають `sessions_spawn`. Профіль `messaging`
цього не робить; додайте `tools.alsoAllow: ["sessions_spawn", "sessions_yield",
"subagents"]` або використовуйте `tools.profile: "coding"` для агентів, які мають делегувати
роботу. Політики каналу/групи, провайдера, пісочниці та дозволів/заборон для окремого агента можуть
усе ще прибрати інструмент після етапу профілю. Використовуйте `/tools` з того самого
сеансу, щоб підтвердити ефективний список інструментів.
**Значення за замовчуванням:**
**Типові значення:**
- **Модель:** успадковує викликача, якщо ви не задасте `agents.defaults.subagents.model` (або `agents.list[].subagents.model` для окремого агента); явне `sessions_spawn.model` усе одно має пріоритет.
- **Thinking:** успадковує викликача, якщо ви не задасте `agents.defaults.subagents.thinking` (або `agents.list[].subagents.thinking` для окремого агента); явне `sessions_spawn.thinking` усе одно має пріоритет.
- **Мислення:** успадковує викликача, якщо ви не задасте `agents.defaults.subagents.thinking` (або `agents.list[].subagents.thinking` для окремого агента); явне `sessions_spawn.thinking` усе одно має пріоритет.
- **Тайм-аут запуску:** якщо `sessions_spawn.runTimeoutSeconds` пропущено, OpenClaw використовує `agents.defaults.subagents.runTimeoutSeconds`, коли його задано; інакше повертається до `0` (без тайм-ауту).
### Параметри інструмента
@ -152,86 +146,86 @@ x-i18n:
Опис завдання для субагента.
</ParamField>
<ParamField path="label" type="string">
Необов’язкова зручна для людини мітка.
Необов'язкова зрозуміла для людини мітка.
</ParamField>
<ParamField path="agentId" type="string">
Створити під іншим id агента, коли це дозволено `subagents.allowAgents`.
Створити під іншим ідентифікатором агента, коли це дозволено `subagents.allowAgents`.
</ParamField>
<ParamField path="runtime" type='"subagent" | "acp"' default="subagent">
`acp` призначено лише для зовнішніх ACP harness (`claude`, `droid`, `gemini`, `opencode` або явно запитаний Codex ACP/acpx) і для записів `agents.list[]`, у яких `runtime.type` є `acp`.
`acp` призначено лише для зовнішніх обв'язок ACP (`claude`, `droid`, `gemini`, `opencode` або явно запитаний Codex ACP/acpx) і для записів `agents.list[]`, у яких `runtime.type` є `acp`.
</ParamField>
<ParamField path="resumeSessionId" type="string">
Лише ACP. Відновлює наявний сеанс ACP harness, коли `runtime: "acp"`; ігнорується для нативних створень субагентів.
Лише ACP. Відновлює наявний сеанс обв'язки ACP, коли `runtime: "acp"`; ігнорується для нативних створень субагентів.
</ParamField>
<ParamField path="streamTo" type='"parent"'>
Лише ACP. Транслює вивід запуску ACP до батьківського сеансу, коли `runtime: "acp"`; пропустіть для нативних створень субагентів.
Лише ACP. Транслює вивід запуску ACP у батьківський сеанс, коли `runtime: "acp"`; пропустіть для нативних створень субагентів.
</ParamField>
<ParamField path="model" type="string">
Перевизначає модель субагента. Недійсні значення пропускаються, і субагент працює на типовій моделі з попередженням у результаті інструмента.
Перевизначає модель субагента. Недійсні значення пропускаються, і субагент запускається на типовій моделі з попередженням у результаті інструмента.
</ParamField>
<ParamField path="thinking" type="string">
Перевизначає рівень thinking для запуску субагента.
Перевизначає рівень мислення для запуску субагента.
</ParamField>
<ParamField path="runTimeoutSeconds" type="number">
За замовчуванням дорівнює `agents.defaults.subagents.runTimeoutSeconds`, коли задано, інакше `0`. Коли задано, запуск субагента переривається після N секунд.
Типово дорівнює `agents.defaults.subagents.runTimeoutSeconds`, коли задано, інакше `0`. Коли задано, запуск субагента переривається через N секунд.
</ParamField>
<ParamField path="thread" type="boolean" default="false">
Коли `true`, запитує прив’язку потоку каналу для цього сеансу субагента.
Коли `true`, запитує прив'язку гілки каналу для цього сеансу субагента.
</ParamField>
<ParamField path="mode" type='"run" | "session"' default="run">
Якщо `thread: true` і `mode` пропущено, типовим стає `session`. `mode: "session"` потребує `thread: true`.
Якщо `thread: true` і `mode` пропущено, типовим стає `session`. `mode: "session"` вимагає `thread: true`.
</ParamField>
<ParamField path="cleanup" type='"delete" | "keep"' default="keep">
`"delete"` архівує одразу після оголошення (і все одно зберігає стенограму через перейменування).
`"delete"` архівує одразу після оголошення (усе ще зберігає транскрипт через перейменування).
</ParamField>
<ParamField path="sandbox" type='"inherit" | "require"' default="inherit">
`require` відхиляє створення, якщо цільове дочірнє середовище виконання не перебуває в пісочниці.
`require` відхиляє створення, якщо цільове дочірнє середовище виконання не в пісочниці.
</ParamField>
<ParamField path="context" type='"isolated" | "fork"' default="isolated">
`fork` відгалужує поточну стенограму запитувача в дочірній сеанс. Лише нативні субагенти. Прив’язані до потоку створення за замовчуванням мають `fork`; створення без потоку за замовчуванням мають `isolated`.
`fork` відгалужує поточний транскрипт запитувача в дочірній сеанс. Лише нативні субагенти. Створення, прив'язані до гілки, типово використовують `fork`; створення без гілки типово використовують `isolated`.
</ParamField>
<Warning>
`sessions_spawn` **не** приймає параметри доставки в канал (`target`,
`channel`, `to`, `threadId`, `replyTo`, `transport`). Для доставки використовуйте
`sessions_spawn` **не** приймає параметри доставлення каналу (`target`,
`channel`, `to`, `threadId`, `replyTo`, `transport`). Для доставлення використовуйте
`message`/`sessions_send` зі створеного запуску.
</Warning>
## Прив’язані до потоку сеанси
## Сеанси, прив'язані до гілки
Коли для каналу ввімкнено прив’язки потоків, субагент може залишатися прив’язаним
до потоку, щоб подальші повідомлення користувача в цьому потоці продовжували маршрутизуватися до
Коли для каналу ввімкнено прив'язки гілок, субагент може залишатися прив'язаним
до гілки, щоб подальші повідомлення користувача в цій гілці продовжували маршрутизуватися до
того самого сеансу субагента.
### Канали з підтримкою потоків
### Канали з підтримкою гілок
**Discord** наразі є єдиним підтримуваним каналом. Він підтримує
постійні прив’язані до потоку сеанси субагентів (`sessions_spawn` з
`thread: true`), ручні елементи керування потоками (`/focus`, `/unfocus`, `/agents`,
`/session idle`, `/session max-age`) і ключі адаптера
постійні сеанси субагентів, прив'язані до гілки (`sessions_spawn` з
`thread: true`), ручні елементи керування гілками (`/focus`, `/unfocus`, `/agents`,
`/session idle`, `/session max-age`) та ключі адаптера
`channels.discord.threadBindings.enabled`,
`channels.discord.threadBindings.idleHours`,
`channels.discord.threadBindings.maxAgeHours` та
`channels.discord.threadBindings.maxAgeHours` і
`channels.discord.threadBindings.spawnSessions`.
### Швидкий потік
<Steps>
<Step title="Spawn">
`sessions_spawn` з `thread: true` (і необовязково `mode: "session"`).
<Step title="Створення">
`sessions_spawn` з `thread: true` (і необов'язково `mode: "session"`).
</Step>
<Step title="Bind">
OpenClaw створює або прив’язує потік до цілі цього сеансу в активному каналі.
<Step title="Прив'язка">
OpenClaw створює або прив'язує гілку до цілі цього сеансу в активному каналі.
</Step>
<Step title="Route follow-ups">
Відповіді й подальші повідомлення в цьому потоці маршрутизуються до прив’язаного сеансу.
<Step title="Маршрутизація подальших повідомлень">
Відповіді й подальші повідомлення в цій гілці маршрутизуються до прив'язаного сеансу.
</Step>
<Step title="Inspect timeouts">
Використовуйте `/session idle`, щоб переглянути/оновити автоматичне скасування фокуса через неактивність, і
`/session max-age`, щоб керувати жорстким обмеженням.
<Step title="Перегляд тайм-аутів">
Використовуйте `/session idle`, щоб переглядати/оновлювати автоматичне зняття фокуса через неактивність, і
`/session max-age`, щоб контролювати жорстку верхню межу.
</Step>
<Step title="Detach">
Використовуйте `/unfocus`, щоб відєднати вручну.
<Step title="Від'єднання">
Використовуйте `/unfocus`, щоб від'єднати вручну.
</Step>
</Steps>
@ -239,30 +233,30 @@ x-i18n:
| Команда | Дія |
| ------------------ | --------------------------------------------------------------------- |
| `/focus <target>` | Прив’язати поточну гілку (або створити її) до цілі субагента/сеансу |
| `/unfocus` | Видалити прив’язку для поточної прив’язаної гілки |
| `/agents` | Показати активні запуски та стан привязки (`thread:<id>` або `unbound`) |
| `/session idle` | Переглянути/оновити автоматичне зняття фокуса під час простою (лише сфокусовані прив’язані гілки) |
| `/session max-age` | Переглянути/оновити жорстке обмеження (лише сфокусовані прив’язані гілки) |
| `/focus <target>` | Прив'язати поточний потік (або створити його) до цілі субагента/сеансу |
| `/unfocus` | Прибрати прив'язку для поточного прив'язаного потоку |
| `/agents` | Показати активні запуски та стан прив'язки (`thread:<id>` або `unbound`) |
| `/session idle` | Переглянути/оновити автоматичне скасування фокуса через бездіяльність (лише сфокусовані прив'язані потоки) |
| `/session max-age` | Переглянути/оновити жорстке обмеження (лише сфокусовані прив'язані потоки) |
### Перемикачі конфігурації
- **Глобальне значення за замовчуванням:** `session.threadBindings.enabled`, `session.threadBindings.idleHours`, `session.threadBindings.maxAgeHours`.
- **Ключі перевизначення каналу та автоматичної прив’язки під час створення** залежать від адаптера. Див. [Канали з підтримкою гілок](#thread-supporting-channels) вище.
- **Перевизначення каналу та ключі автоматичної прив'язки під час створення** залежать від адаптера. Див. [Канали з підтримкою потоків](#thread-supporting-channels) вище.
Див. [Довідник конфігурації](/uk/gateway/configuration-reference) і
[Slash-команди](/uk/tools/slash-commands), щоб дізнатися поточні деталі адаптера.
[Slash-команди](/uk/tools/slash-commands), щоб дізнатися поточні деталі адаптерів.
### Список дозволених
<ParamField path="agents.list[].subagents.allowAgents" type="string[]">
Список ідентифікаторів агентів, на які можна націлюватися через явний `agentId` (`["*"]` дозволяє будь-який). За замовчуванням: лише агент-запитувач. Якщо ви задаєте список і все одно хочете, щоб запитувач міг створювати самого себе з `agentId`, додайте ідентифікатор запитувача до списку.
Список ідентифікаторів агентів, на які можна націлюватися через явний `agentId` (`["*"]` дозволяє будь-який). За замовчуванням: лише агент-запитувач. Якщо ви задаєте список і все одно хочете, щоб запитувач створював себе з `agentId`, включіть ідентифікатор запитувача до списку.
</ParamField>
<ParamField path="agents.defaults.subagents.allowAgents" type="string[]">
Стандартний список дозволених цільових агентів, який використовується, коли агент-запитувач не задає власний `subagents.allowAgents`.
Типовий список дозволених цільових агентів, який використовується, коли агент-запитувач не задає власний `subagents.allowAgents`.
</ParamField>
<ParamField path="agents.defaults.subagents.requireAgentId" type="boolean" default="false">
Блокувати виклики `sessions_spawn`, які пропускають `agentId` (примушує до явного вибору профілю). Перевизначення для окремого агента: `agents.list[].subagents.requireAgentId`.
Блокувати виклики `sessions_spawn`, які пропускають `agentId` (примусово вимагає явного вибору профілю). Перевизначення для окремого агента: `agents.list[].subagents.requireAgentId`.
</ParamField>
Якщо сеанс запитувача ізольований у пісочниці, `sessions_spawn` відхиляє цілі,
@ -270,26 +264,26 @@ x-i18n:
### Виявлення
Використовуйте `agents_list`, щоб побачити, які ідентифікатори агентів наразі дозволені для
Використовуйте `agents_list`, щоб побачити, які ідентифікатори агентів зараз дозволені для
`sessions_spawn`. Відповідь містить ефективну
модель кожного переліченого агента та вбудовані метадані середовища виконання, щоб виклики могли відрізняти PI, сервер застосунку Codex
та інші налаштовані власні середовища виконання.
та інші налаштовані нативні середовища виконання.
### Автоархівація
- Сеанси субагентів автоматично архівуються після `agents.defaults.subagents.archiveAfterMinutes` (за замовчуванням `60`).
- Архівація використовує `sessions.delete` і перейменовує транскрипт на `*.deleted.<timestamp>` (у тій самій папці).
- `cleanup: "delete"` архівує одразу після оголошення (транскрипт усе одно зберігається через перейменування).
- Автоархівація виконується за найкращої можливості; очікувані таймери втрачаються, якщо Gateway перезапускається.
- `runTimeoutSeconds` **не** виконує автоархівацію; він лише зупиняє запуск. Сеанс залишається до автоархівації.
- Архівування використовує `sessions.delete` і перейменовує транскрипт на `*.deleted.<timestamp>` (у тій самій папці).
- `cleanup: "delete"` архівує одразу після сповіщення (транскрипт усе одно зберігається через перейменування).
- Автоархівація виконується за принципом найкращих зусиль; очікувані таймери втрачаються, якщо Gateway перезапускається.
- `runTimeoutSeconds` **не** виконує автоархівацію; він лише зупиняє запуск. Сеанс лишається до автоархівації.
- Автоархівація однаково застосовується до сеансів глибини 1 і глибини 2.
- Очищення браузера відокремлене від архівного очищення: відстежувані вкладки/процеси браузера за найкращої можливості закриваються після завершення запуску, навіть якщо запис транскрипту/сеансу зберігається.
- Очищення браузера відокремлене від архівного очищення: відстежувані вкладки/процеси браузера за найкращими зусиллями закриваються після завершення запуску, навіть якщо запис транскрипта/сеансу зберігається.
## Вкладені субагенти
За замовчуванням субагенти не можуть створювати власних субагентів
(`maxSpawnDepth: 1`). Установіть `maxSpawnDepth: 2`, щоб увімкнути один рівень
вкладеності — **шаблон оркестратора**: головний → субагент-оркестратор →
(`maxSpawnDepth: 1`). Задайте `maxSpawnDepth: 2`, щоб увімкнути один рівень
вкладеності — **патерн оркестратора**: основний → субагент-оркестратор →
робочі субсубагенти.
```json5
@ -309,42 +303,42 @@ x-i18n:
### Рівні глибини
| Глибина | Форма ключа сеансу | Роль | Може створювати? |
| Глибина | Форма ключа сеансу | Роль | Може створювати? |
| ----- | -------------------------------------------- | --------------------------------------------- | ---------------------------- |
| 0 | `agent:<id>:main` | Головний агент | Завжди |
| 1 | `agent:<id>:subagent:<uuid>` | Субагент (оркестратор, коли дозволена глибина 2) | Лише якщо `maxSpawnDepth >= 2` |
| 2 | `agent:<id>:subagent:<uuid>:subagent:<uuid>` | Субсубагент (кінцевий виконавець) | Ніколи |
| 0 | `agent:<id>:main` | Основний агент | Завжди |
| 1 | `agent:<id>:subagent:<uuid>` | Субагент (оркестратор, коли дозволено глибину 2) | Лише якщо `maxSpawnDepth >= 2` |
| 2 | `agent:<id>:subagent:<uuid>:subagent:<uuid>` | Субсубагент (листовий робітник) | Ніколи |
### Ланцюг оголошення
### Ланцюжок сповіщень
Результати передаються назад угору ланцюгом:
Результати передаються назад ланцюжком:
1. Виконавець глибини 2 завершує роботу → оголошує своєму батьківському елементу (оркестратору глибини 1).
2. Оркестратор глибини 1 отримує оголошення, узагальнює результати, завершує роботу → оголошує головному.
3. Головний агент отримує оголошення та доставляє його користувачу.
1. Робітник глибини 2 завершує роботу → сповіщає свого батька (оркестратора глибини 1).
2. Оркестратор глибини 1 отримує сповіщення, синтезує результати, завершує роботу → сповіщає основний сеанс.
3. Основний агент отримує сповіщення та доставляє його користувачу.
Кожен рівень бачить лише оголошення від своїх безпосередніх дочірніх елементів.
Кожен рівень бачить лише сповіщення від своїх прямих дочірніх елементів.
<Note>
**Операційні рекомендації:** запускайте дочірню роботу один раз і чекайте подій
завершення, замість того щоб будувати цикли опитування навколо `sessions_list`,
`sessions_history`, `/subagents list` або команд `exec` із паузами.
`sessions_list` і `/subagents list` тримають зв’язки дочірніх сеансів
зосередженими на живій роботі — активні дочірні елементи залишаються прикріпленими, завершені дочірні елементи залишаються
видимими протягом короткого недавнього вікна, а застарілі посилання на дочірні елементи лише зі сховища
ігноруються після завершення їхнього вікна актуальності. Це не дає старим метаданим `spawnedBy` /
`parentSessionKey` відновлювати примарні дочірні елементи після
**Операційні вказівки:** запускайте дочірню роботу один раз і чекайте подій
завершення замість побудови циклів опитування навколо `sessions_list`,
`sessions_history`, `/subagents list` або команд сну `exec`.
`sessions_list` і `/subagents list` утримують зв'язки дочірніх сеансів
сфокусованими на живій роботі — живі дочірні елементи залишаються приєднаними, завершені дочірні елементи
залишаються видимими в короткому недавньому вікні, а застарілі посилання лише зі сховища на дочірні елементи
ігноруються після завершення їхнього вікна свіжості. Це запобігає тому, щоб старі метадані `spawnedBy` /
`parentSessionKey` повторно відроджували примарні дочірні елементи після
перезапуску. Якщо подія завершення дочірнього елемента надходить після того, як ви вже надіслали
остаточну відповідь, правильна подальша дія — точний мовчазний токен
фінальну відповідь, правильне подальше повідомлення — точний мовчазний токен
`NO_REPLY` / `no_reply`.
</Note>
### Політика інструментів за глибиною
- Роль і область керування записуються в метадані сеансу під час створення. Це не дає пласким або відновленим ключам сеансів випадково знову отримати привілеї оркестратора.
- **Глибина 1 (оркестратор, коли `maxSpawnDepth >= 2`):** отримує `sessions_spawn`, `subagents`, `sessions_list`, `sessions_history`, щоб керувати своїми дочірніми елементами. Інші інструменти сеансу/системи залишаються забороненими.
- **Глибина 1 (кінцевий елемент, коли `maxSpawnDepth == 1`):** без інструментів сеансу (поточна поведінка за замовчуванням).
- **Глибина 2 (кінцевий виконавець):** без інструментів сеансу`sessions_spawn` завжди заборонено на глибині 2. Не може створювати подальших дочірніх елементів.
- Роль і область керування записуються в метадані сеансу під час створення. Це запобігає випадковому повторному отриманню привілеїв оркестратора пласкими або відновленими ключами сеансу.
- **Глибина 1 (оркестратор, коли `maxSpawnDepth >= 2`):** отримує `sessions_spawn`, `subagents`, `sessions_list`, `sessions_history`, щоб керувати своїми дочірніми елементами. Інші інструменти сеансів/системи лишаються забороненими.
- **Глибина 1 (лист, коли `maxSpawnDepth == 1`):** без інструментів сеансів (поточна поведінка за замовчуванням).
- **Глибина 2 (листовий робітник):** без інструментів сеансів`sessions_spawn` завжди заборонено на глибині 2. Не може створювати подальші дочірні елементи.
### Ліміт створення для окремого агента
@ -354,11 +348,10 @@ x-i18n:
### Каскадна зупинка
Зупинка оркестратора глибини 1 автоматично зупиняє всі його дочірні елементи
глибини 2:
Зупинка оркестратора глибини 1 автоматично зупиняє всі його дочірні елементи глибини 2:
- `/stop` у головному чаті зупиняє всіх агентів глибини 1 і каскадно зупиняє їхніх дочірніх елементів глибини 2.
- `/subagents kill <id>` зупиняє конкретного субагента та каскадно зупиняє його дочірні елементи.
- `/stop` в основному чаті зупиняє всіх агентів глибини 1 і каскадно зупиняє їхні дочірні елементи глибини 2.
- `/subagents kill <id>` зупиняє конкретного субагента й каскадно зупиняє його дочірні елементи.
- `/subagents kill all` зупиняє всіх субагентів для запитувача та виконує каскадну зупинку.
## Автентифікація
@ -367,92 +360,92 @@ x-i18n:
- Ключ сеансу субагента — `agent:<agentId>:subagent:<uuid>`.
- Сховище автентифікації завантажується з `agentDir` цього агента.
- Профілі автентифікації головного агента обєднуються як **резервні**; профілі агента перевизначають головні профілі у разі конфліктів.
- Профілі автентифікації основного агента об'єднуються як **резервні**; профілі агента перевизначають основні профілі у разі конфліктів.
Об’єднання є додавальним, тому головні профілі завжди доступні як
резервні. Повністю ізольована автентифікація для кожного агента ще не підтримується.
Об'єднання є адитивним, тому основні профілі завжди доступні як
резервні. Повністю ізольована автентифікація для кожного агента поки не підтримується.
## Оголошення
## Сповіщення
Субагенти звітують назад через крок оголошення:
Субагенти звітують через крок сповіщення:
- Крок оголошення виконується всередині сеансу субагента (не в сеансі запитувача).
- Крок сповіщення виконується всередині сеансу субагента (не сеансу запитувача).
- Якщо субагент відповідає точно `ANNOUNCE_SKIP`, нічого не публікується.
- Якщо найновіший текст помічника є точним мовчазним токеном `NO_REPLY` / `no_reply`, вивід оголошення пригнічується, навіть якщо раніше був видимий прогрес.
- Якщо останній текст асистента є точним мовчазним токеном `NO_REPLY` / `no_reply`, вивід сповіщення пригнічується, навіть якщо раніше був видимий прогрес.
Доставка залежить від глибини запитувача:
- Сеанси запитувача верхнього рівня використовують подальший виклик `agent` із зовнішньою доставкою (`deliver=true`).
- Вкладені сеанси субагента-запитувача отримують внутрішнє подальше впровадження (`deliver=false`), щоб оркестратор міг узагальнити дочірні результати в межах сеансу.
- Вкладені сеанси субагентів-запитувачів отримують внутрішню подальшу ін'єкцію (`deliver=false`), щоб оркестратор міг синтезувати дочірні результати в межах сеансу.
- Якщо вкладений сеанс субагента-запитувача зник, OpenClaw повертається до запитувача цього сеансу, коли він доступний.
Для сеансів запитувача верхнього рівня пряма доставка в режимі завершення спочатку
визначає будь-який прив’язаний маршрут розмови/гілки та перевизначення хука, а потім заповнює
вирішує будь-який прив'язаний маршрут розмови/потоку та перевизначення hook, а потім заповнює
відсутні поля цілі каналу зі збереженого маршруту сеансу запитувача.
Це утримує завершення в правильному чаті/темі, навіть коли джерело завершення
ідентифікує лише канал.
Агрегація завершень дочірніх елементів обмежена поточним запуском запитувача під час
побудови вкладених результатів завершення, запобігаючи витоку дочірніх
виводів із застарілих попередніх запусків у поточне оголошення. Відповіді оголошення зберігають
маршрутизацію гілки/теми, коли вона доступна в адаптерах каналів.
побудови вкладених результатів завершення, запобігаючи витоку застарілих дочірніх
виводів із попередніх запусків у поточне сповіщення. Відповіді сповіщень зберігають
маршрутизацію потоку/теми, коли вона доступна в адаптерах каналів.
### Контекст оголошення
### Контекст сповіщення
Контекст оголошення нормалізується до стабільного внутрішнього блоку події:
Контекст сповіщення нормалізується до стабільного внутрішнього блока події:
| Поле | Джерело |
| Поле | Джерело |
| -------------- | ------------------------------------------------------------------------------------------------------------- |
| Джерело | `subagent` або `cron` |
| Ідентифікатори сеансу | Ключ/ідентифікатор дочірнього сеансу |
| Тип | Тип оголошення + мітка завдання |
| Статус | Виводиться з результату середовища виконання (`success`, `error`, `timeout` або `unknown`) — **не** виводиться з тексту моделі |
| Вміст результату | Найновіший видимий текст помічника, інакше очищений найновіший текст інструмента/toolResult |
| Подальша дія | Інструкція, що описує, коли відповідати, а коли мовчати |
| Ідентифікатори сеансу | Ключ/ідентифікатор дочірнього сеансу |
| Тип | Тип сповіщення + мітка завдання |
| Статус | Виведено з результату середовища виконання (`success`, `error`, `timeout` або `unknown`) — **не** виводиться з тексту моделі |
| Вміст результату | Останній видимий текст асистента, інакше санітизований останній текст tool/toolResult |
| Подальша дія | Інструкція, що описує, коли відповідати, а коли лишатися мовчазним |
Термінальні невдалі запуски повідомляють статус помилки без повторного відтворення захопленого
тексту відповіді. У разі тайм-ауту, якщо дочірній елемент встиг лише виконати виклики інструментів, оголошення
може згорнути цю історію в короткий підсумок часткового прогресу замість
повторного відтворення необробленого виводу інструментів.
тексту відповіді. У разі тайм-ауту, якщо дочірній елемент устиг лише виконати виклики інструментів, сповіщення
може стиснути цю історію в короткий підсумок часткового прогресу замість
повторного відтворення сирого виводу інструментів.
### Рядок статистики
Корисні навантаження оголошення містять рядок статистики в кінці (навіть коли перенесені):
Корисні навантаження сповіщень містять рядок статистики в кінці (навіть коли обгорнуті):
- Час виконання (наприклад, `runtime 5m12s`).
- Використання токенів (вхід/вихід/загалом).
- Використання токенів (вхідні/вихідні/усього).
- Орієнтовна вартість, коли налаштовано ціни моделі (`models.providers.*.models[].cost`).
- `sessionKey`, `sessionId` і шлях транскрипту, щоб головний агент міг отримати історію через `sessions_history` або переглянути файл на диску.
- `sessionKey`, `sessionId` і шлях транскрипта, щоб основний агент міг отримати історію через `sessions_history` або переглянути файл на диску.
Внутрішні метадані призначені лише для оркестрації; відповіді для користувача
слід переписувати звичайним голосом помічника.
Внутрішні метадані призначені лише для оркестрації; відповіді для користувачів
слід переписувати звичайним голосом асистента.
### Чому варто надавати перевагу `sessions_history`
`sessions_history` — безпечніший шлях оркестрації:
- Спершу нормалізується пригадування помічника: видаляються теги мислення; видаляється каркас `<relevant-memories>` / `<relevant_memories>`; видаляються простотекстові XML-блоки корисного навантаження викликів інструментів (`<tool_call>`, `<function_call>`, `<tool_calls>`, `<function_calls>`), включно з обрізаними корисними навантаженнями, які ніколи коректно не закриваються; видаляється понижений каркас виклику/результату інструментів і маркери історичного контексту; видаляються витеклі керівні токени моделі (`<|assistant|>`, інші ASCII `<|...|>`, повноширинні `<...>`); видаляється неправильно сформований XML виклику інструментів MiniMax.
- Згадування асистента спочатку нормалізується: теги мислення видаляються; каркаси `<relevant-memories>` / `<relevant_memories>` видаляються; XML-блоки корисного навантаження викликів інструментів у простому тексті (`<tool_call>`, `<function_call>`, `<tool_calls>`, `<function_calls>`) видаляються, включно з обрізаними корисними навантаженнями, які ніколи не закриваються коректно; понижені каркаси викликів/результатів інструментів і маркери історичного контексту видаляються; витеклі керівні токени моделі (`<|assistant|>`, інші ASCII `<|...|>`, повної ширини `<...>`) видаляються; некоректний XML викликів інструментів MiniMax видаляється.
- Текст, схожий на облікові дані/токени, редагується.
- Довгі блоки можуть обрізатися.
- Дуже великі історії можуть відкидати старіші рядки або замінювати завеликий рядок на `[sessions_history omitted: message too large]`.
- Перегляд необробленого транскрипту на диску є резервним варіантом, коли потрібен повний побайтовий транскрипт.
- Перегляд сирого транскрипта на диску є резервним варіантом, коли потрібен повний побайтово точний транскрипт.
## Політика інструментів
Субагенти спочатку використовують той самий профіль і конвеєр політики інструментів, що й батьківський
або цільовий агент. Після цього OpenClaw застосовує рівень обмежень
або цільовий агент. Після цього OpenClaw застосовує шар обмежень
субагента.
Без обмежувального `tools.profile` субагенти отримують **усі інструменти, крім
інструментів сеансу** та системних інструментів:
інструментів сеансів** і системних інструментів:
- `sessions_list`
- `sessions_history`
- `sessions_send`
- `sessions_spawn`
`sessions_history` тут також залишається обмеженим, очищеним представленням пригадування —
це не дамп необробленого транскрипту.
`sessions_history` і тут лишається обмеженим, санітизованим поданням згадування —
це не сирий дамп транскрипта.
Коли `maxSpawnDepth >= 2`, субагенти-оркестратори глибини 1 додатково
отримують `sessions_spawn`, `subagents`, `sessions_list` і
@ -482,11 +475,11 @@ x-i18n:
}
```
`tools.subagents.tools.allow` є фінальним фільтром лише дозволених інструментів. Він може звузити
вже визначений набір інструментів, але не може **додати назад** інструмент, видалений
`tools.subagents.tools.allow` — це остаточний фільтр лише дозволеного. Він може звузити
вже визначений набір інструментів, але не може **додати назад** інструмент, вилучений
через `tools.profile`. Наприклад, `tools.profile: "coding"` включає
`web_search`/`web_fetch`, але не інструмент `browser`. Щоб дозволити
під-агентам із профілем `coding` використовувати автоматизацію браузера, додайте browser на
під-агентам із профілем coding використовувати автоматизацію браузера, додайте browser на
етапі профілю:
```json5
@ -498,65 +491,65 @@ x-i18n:
}
```
Використовуйте `agents.list[].tools.alsoAllow: ["browser"]` для окремого агента, коли лише один
агент має отримати автоматизацію браузера.
Використовуйте `agents.list[].tools.alsoAllow: ["browser"]` для окремого агента, коли автоматизацію браузера має отримати лише один
агент.
## Паралельність
Під-агенти використовують окрему внутрішньопроцесну чергу:
Під-агенти використовують окрему чергу виконання в межах процесу:
- **Назва черги:** `subagent`
- **Паралельність:** `agents.defaults.subagents.maxConcurrent` (типово `8`)
- **Паралельність:** `agents.defaults.subagents.maxConcurrent` (за замовчуванням `8`)
## Живучість і відновлення
OpenClaw не вважає відсутність `endedAt` постійним доказом того, що
під-агент усе ще активний. Незавершені запуски, старші за вікно застарілого запуску,
під-агент досі активний. Незавершені запуски, старші за вікно застарілого запуску,
перестають враховуватися як активні/очікувані в `/subagents list`, зведеннях стану,
блокуванні завершення нащадків і перевірках паралельності для окремого сеансу.
блокуванні завершення нащадків і перевірках паралельності для окремої сесії.
Після перезапуску Gateway застарілі відновлені виконання, які не були завершені, обрізаються, якщо
їхній дочірній сеанс не позначено як `abortedLastRun: true`. Ці
дочірні сеанси, перервані перезапуском, залишаються відновлюваними через потік
відновлення осиротілих sub-agent, який надсилає синтетичне повідомлення resume перед
Після перезапуску Gateway застарілі незавершені відновлені запуски обрізаються, якщо
їхня дочірня сесія не позначена як `abortedLastRun: true`. Такі
перервані перезапуском дочірні сесії залишаються придатними для відновлення через потік
відновлення осиротілих під-агентів, який надсилає синтетичне повідомлення resume перед
очищенням маркера переривання.
Автоматичне відновлення після перезапуску обмежене для кожного дочірнього сеансу. Якщо той самий
дочірній sub-agent повторно приймається для відновлення осиротілого сеансу всередині
швидкого вікна повторного заклинювання, OpenClaw зберігає tombstone відновлення в цьому
сеансі й припиняє автоматично відновлювати його під час наступних перезапусків. Запустіть
Автоматичне відновлення після перезапуску обмежене для кожної дочірньої сесії. Якщо той самий
дочірній під-агент неодноразово приймається для відновлення осиротілих у межах
швидкого вікна повторного зависання, OpenClaw зберігає tombstone відновлення в цій
сесії та припиняє автоматично відновлювати її під час наступних перезапусків. Запустіть
`openclaw tasks maintenance --apply`, щоб узгодити запис завдання, або
`openclaw doctor --fix`, щоб очистити застарілі прапорці перерваного відновлення на
сеансах із tombstone.
`openclaw doctor --fix`, щоб очистити застарілі прапорці перерваного відновлення в
сесіях із tombstone.
<Note>
Якщо створення sub-agent завершується помилкою Gateway `PAIRING_REQUIRED` /
`scope-upgrade`, перевірте RPC-викликач перед редагуванням стану pairing.
Якщо створення під-агента завершується помилкою Gateway `PAIRING_REQUIRED` /
`scope-upgrade`, перевірте викликача RPC перед редагуванням стану спарювання.
Внутрішня координація `sessions_spawn` має підключатися як
`client.id: "gateway-client"` з `client.mode: "backend"` через пряму
loopback-автентифікацію shared-token/password; цей шлях не залежить від
базового scope парного пристрою CLI. Віддалені викликачі, явні
`deviceIdentity`, явні шляхи device-token, а також browser/Node-клієнти
все ще потребують звичайного схвалення пристрою для підвищення scope.
`client.id: "gateway-client"` з `client.mode: "backend"` через прямий
local loopback з автентифікацією за спільним токеном/паролем; цей шлях не залежить від
базового рівня області paired-device для CLI. Віддалені викликачі, явні
`deviceIdentity`, явні шляхи device-token і клієнти browser/node
досі потребують звичайного схвалення пристрою для підвищення області.
</Note>
## Зупинення
## Зупинка
- Надсилання `/stop` у чаті запитувача перериває сеанс запитувача й зупиняє всі активні виконання sub-agent, породжені з нього, каскадно поширюючись на вкладених дочірніх агентів.
- `/subagents kill <id>` зупиняє конкретний sub-agent і каскадно зупиняє його дочірні агенти.
- Надсилання `/stop` у чаті запитувача перериває сесію запитувача й зупиняє всі активні запуски під-агентів, створені з неї, каскадно переходячи до вкладених дочірніх елементів.
- `/subagents kill <id>` зупиняє конкретного під-агента й каскадно зупиняє його дочірні елементи.
## Обмеження
- Оголошення sub-agent працює за принципом **best-effort**. Якщо Gateway перезапускається, незавершена робота "announce back" втрачається.
- Sub-agent усе ще спільно використовують ресурси того самого процесу Gateway; розглядайте `maxConcurrent` як запобіжний клапан.
- `sessions_spawn` завжди неблокувальний: він негайно повертає `{ status: "accepted", runId, childSessionKey }`.
- Контекст sub-agent додає лише `AGENTS.md` + `TOOLS.md` (без `SOUL.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md` або `BOOTSTRAP.md`).
- Максимальна глибина вкладення становить 5 (діапазон `maxSpawnDepth`: 15). Для більшості випадків використання рекомендовано глибину 2.
- `maxChildrenPerAgent` обмежує активних дочірніх агентів для кожного сеансу (типово `5`, діапазон `120`).
- Оголошення під-агента виконується за принципом **best-effort**. Якщо gateway перезапускається, очікувана робота "announce back" втрачається.
- Під-агенти досі спільно використовують ресурси того самого процесу gateway; розглядайте `maxConcurrent` як запобіжний клапан.
- `sessions_spawn` завжди неблокувальний: він одразу повертає `{ status: "accepted", runId, childSessionKey }`.
- Контекст під-агента вставляє лише `AGENTS.md` + `TOOLS.md` (без `SOUL.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md` або `BOOTSTRAP.md`).
- Максимальна глибина вкладеності становить 5 (діапазон `maxSpawnDepth`: 15). Для більшості випадків використання рекомендовано глибину 2.
- `maxChildrenPerAgent` обмежує кількість активних дочірніх елементів на сесію (за замовчуванням `5`, діапазон `120`).
## Пов’язане
- [ACP-агенти](/uk/tools/acp-agents)
- [Агенти ACP](/uk/tools/acp-agents)
- [Надсилання агенту](/uk/tools/agent-send)
- [Фонові завдання](/uk/automation/tasks)
- [Інструменти ізольованого середовища для кількох агентів](/uk/tools/multi-agent-sandbox-tools)
- [Інструменти пісочниці для кількох агентів](/uk/tools/multi-agent-sandbox-tools)