chore(i18n): refresh uk translations
This commit is contained in:
parent
ade1dc47ac
commit
6ec97dec38
@ -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)
|
||||
|
||||
@ -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`: 1–5). Для більшості випадків використання рекомендовано глибину 2.
|
||||
- `maxChildrenPerAgent` обмежує активних дочірніх агентів для кожного сеансу (типово `5`, діапазон `1–20`).
|
||||
- Оголошення під-агента виконується за принципом **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`: 1–5). Для більшості випадків використання рекомендовано глибину 2.
|
||||
- `maxChildrenPerAgent` обмежує кількість активних дочірніх елементів на сесію (за замовчуванням `5`, діапазон `1–20`).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user