diff --git a/docs/uk/automation/tasks.md b/docs/uk/automation/tasks.md
index 444a7ded5..9d91aa85a 100644
--- a/docs/uk/automation/tasks.md
+++ b/docs/uk/automation/tasks.md
@@ -2,15 +2,15 @@
read_when:
- Перегляд фонової роботи, що триває або нещодавно завершилася
- Налагодження збоїв доставки для відокремлених запусків агента
- - Розуміння того, як фонові запуски пов’язані із сесіями, Cron і Heartbeat
+ - Розуміння того, як фонові запуски пов’язані із сеансами, Cron і Heartbeat
sidebarTitle: Background tasks
summary: Відстеження фонових завдань для запусків ACP, субагентів, ізольованих завдань Cron і операцій CLI
title: Фонові завдання
x-i18n:
- generated_at: "2026-04-30T13:47:36Z"
+ generated_at: "2026-05-01T02:52:47Z"
model: gpt-5.5
provider: openai
- source_hash: 999653c9360323d5135e33193c76458cba8c288227de46a6217f1ccbed2a6d34
+ source_hash: 8782987a79989264ae3bd1ca4b16755bdfb7e295e4f77933bf3a38c136d837f4
source_path: automation/tasks.md
workflow: 16
---
@@ -19,27 +19,27 @@ x-i18n:
Шукаєте планування? Див. [Автоматизація та завдання](/uk/automation), щоб вибрати правильний механізм. Ця сторінка є журналом активності для фонової роботи, а не планувальником.
-Фонові завдання відстежують роботу, яка виконується **поза вашою основною сесією розмови**: запуски ACP, породження субагентів, ізольовані виконання завдань Cron і операції, ініційовані з CLI.
+Фонові завдання відстежують роботу, що виконується **поза основним сеансом розмови**: запуски ACP, створення підagentів, ізольовані виконання cron-завдань і операції, ініційовані з CLI.
-Завдання **не** замінюють сесії, завдання Cron чи Heartbeat — це **журнал активності**, який записує, яка відокремлена робота відбулася, коли саме та чи була вона успішною.
+Завдання **не** замінюють сеанси, cron-завдання чи heartbeats — це **журнал активності**, який записує, яка відокремлена робота відбулася, коли саме та чи завершилася вона успішно.
-Не кожен запуск агента створює завдання. Кроки Heartbeat і звичайний інтерактивний чат не створюють. Усі виконання Cron, породження ACP, породження субагентів і CLI-команди агента створюють.
+Не кожен запуск агента створює завдання. Heartbeat-ходи та звичайний інтерактивний чат не створюють. Усі виконання cron, створення ACP, створення підagentів і команди агента з CLI створюють.
-## TL;DR
+## Коротко
-- Завдання — це **записи**, а не планувальники — Cron і Heartbeat вирішують, _коли_ виконується робота, а завдання відстежують, _що сталося_.
-- ACP, субагенти, усі завдання Cron і CLI-операції створюють завдання. Кроки Heartbeat — ні.
+- Завдання — це **записи**, а не планувальники — cron і Heartbeat вирішують, _коли_ виконується робота, а завдання відстежують, _що сталося_.
+- ACP, підagенти, усі cron-завдання та операції CLI створюють завдання. Heartbeat-ходи — ні.
- Кожне завдання проходить через `queued → running → terminal` (succeeded, failed, timed_out, cancelled або lost).
-- Завдання Cron залишаються активними, доки середовище виконання Cron усе ще володіє завданням; якщо
- стан середовища виконання в пам’яті зник, обслуговування завдань спершу перевіряє сталу історію
- запусків Cron, перш ніж позначити завдання як втрачене.
+- Cron-завдання залишаються активними, доки cron-середовище виконання все ще володіє завданням; якщо
+ стан середовища виконання в пам’яті зник, обслуговування завдань спершу перевіряє довговічну історію
+ запусків cron, перш ніж позначити завдання як lost.
- Завершення керується push-механізмом: відокремлена робота може сповістити напряму або пробудити
- сесію запитувача/Heartbeat після завершення, тому цикли опитування статусу
+ сеанс/Heartbeat запитувача після завершення, тому цикли опитування статусу
зазвичай мають неправильну форму.
-- Ізольовані запуски Cron і завершення субагентів найкращим можливим способом очищають відстежувані вкладки браузера/процеси для своєї дочірньої сесії перед фінальним обліком очищення.
-- Ізольована доставка Cron пригнічує застарілі проміжні відповіді батьківської сесії, доки робота нащадків-субагентів ще завершується, і надає перевагу фінальному виводу нащадка, якщо він надходить до доставки.
+- Ізольовані cron-запуски та завершення підagentів у режимі best-effort очищають відстежувані вкладки браузера/процеси для свого дочірнього сеансу перед фінальним службовим очищенням.
+- Доставка ізольованого cron пригнічує застарілі проміжні відповіді батьківського сеансу, доки робота підagentів-нащадків ще завершується, і віддає перевагу фінальному виводу нащадка, якщо він надходить до доставки.
- Сповіщення про завершення доставляються напряму в канал або ставляться в чергу до наступного Heartbeat.
- `openclaw tasks list` показує всі завдання; `openclaw tasks audit` виявляє проблеми.
- Термінальні записи зберігаються 7 днів, а потім автоматично видаляються.
@@ -58,7 +58,7 @@ x-i18n:
```
-
+
```bash
# Show details for a specific task (by ID, run ID, or session key)
openclaw tasks show
@@ -97,27 +97,27 @@ x-i18n:
## Що створює завдання
-| Джерело | Тип середовища виконання | Коли створюється запис завдання | Типова політика сповіщень |
-| --------------------- | ------------------------ | ------------------------------------------------------- | ------------------------- |
-| Фонові запуски ACP | `acp` | Породження дочірньої сесії ACP | `done_only` |
-| Оркестрація субагента | `subagent` | Породження субагента через `sessions_spawn` | `done_only` |
-| Завдання Cron (усі типи) | `cron` | Кожне виконання Cron (основна сесія та ізольоване) | `silent` |
-| CLI-операції | `cli` | Команди `openclaw agent`, що виконуються через Gateway | `silent` |
-| Медіазавдання агента | `cli` | Запуски `video_generate` на основі сесії | `silent` |
+| Джерело | Тип середовища виконання | Коли створюється запис завдання | Типова політика сповіщень |
+| --------------------- | ------------------------ | ----------------------------------------------------- | ------------------------- |
+| Фонові запуски ACP | `acp` | Створення дочірнього сеансу ACP | `done_only` |
+| Оркестрація підagentів | `subagent` | Створення підagента через `sessions_spawn` | `done_only` |
+| Cron-завдання (усі типи) | `cron` | Кожне виконання cron (основний сеанс та ізольоване) | `silent` |
+| Операції CLI | `cli` | Команди `openclaw agent`, що виконуються через Gateway | `silent` |
+| Медіазавдання агента | `cli` | Запуски `music_generate`/`video_generate` із підтримкою сеансу | `silent` |
-
- Завдання Cron основної сесії типово використовують політику сповіщень `silent` — вони створюють записи для відстеження, але не генерують сповіщення. Ізольовані завдання Cron також типово мають `silent`, але вони помітніші, бо виконуються у власній сесії.
+
+ Cron-завдання основного сеансу за замовчуванням використовують політику сповіщень `silent` — вони створюють записи для відстеження, але не генерують сповіщень. Ізольовані cron-завдання також за замовчуванням мають `silent`, але помітніші, бо виконуються у власному сеансі.
- Запуски `video_generate` на основі сесії також використовують політику сповіщень `silent`. Вони все одно створюють записи завдань, але завершення передається назад до початкової сесії агента як внутрішнє пробудження, щоб агент міг сам написати подальше повідомлення й прикріпити готове відео. Якщо ви вмикаєте `tools.media.asyncCompletion.directSend`, асинхронні завершення `music_generate` і `video_generate` спершу пробують пряму доставку в канал, перш ніж повернутися до шляху пробудження сесії запитувача.
+ Запуски `music_generate` і `video_generate` із підтримкою сеансу також використовують політику сповіщень `silent`. Вони все одно створюють записи завдань, але завершення повертається до початкового сеансу агента як внутрішнє пробудження, щоб агент міг сам написати подальше повідомлення та прикріпити готовий медіафайл. Якщо ви вмикаєте `tools.media.asyncCompletion.directSend`, асинхронні завершення `video_generate` можуть спершу спробувати пряму доставку в канал; асинхронні завершення `music_generate` залишаються на шляху пробудження сеансу запитувача.
-
- Поки завдання `video_generate` на основі сесії ще активне, інструмент також діє як обмежувач: повторні виклики `video_generate` у тій самій сесії повертають статус активного завдання замість запуску другої паралельної генерації. Використовуйте `action: "status"`, коли потрібен явний запит прогресу/статусу з боку агента.
+
+ Поки завдання `video_generate` із підтримкою сеансу ще активне, інструмент також працює як запобіжник: повторні виклики `video_generate` у тому самому сеансі повертають статус активного завдання замість запуску другої паралельної генерації. Використовуйте `action: "status"`, коли потрібен явний перегляд прогресу/статусу з боку агента.
-
- - Кроки Heartbeat — основна сесія; див. [Heartbeat](/uk/gateway/heartbeat)
- - Звичайні інтерактивні кроки чату
+
+ - Heartbeat-ходи — основний сеанс; див. [Heartbeat](/uk/gateway/heartbeat)
+ - Звичайні інтерактивні ходи чату
- Прямі відповіді `/command`
@@ -137,56 +137,56 @@ stateDiagram-v2
running --> lost : session gone > 5 min
```
-| Статус | Що він означає |
+| Статус | Що це означає |
| ----------- | -------------------------------------------------------------------------- |
| `queued` | Створено, очікує запуску агента |
-| `running` | Крок агента активно виконується |
+| `running` | Хід агента активно виконується |
| `succeeded` | Успішно завершено |
| `failed` | Завершено з помилкою |
-| `timed_out` | Перевищено налаштований тайм-аут |
-| `cancelled` | Зупинено оператором через `openclaw tasks cancel` |
-| `lost` | Середовище виконання втратило авторитетний опорний стан після 5-хвилинного пільгового періоду |
+| `timed_out` | Перевищено налаштований час очікування |
+| `cancelled` | Зупинено оператором через `openclaw tasks cancel` |
+| `lost` | Середовище виконання втратило авторитетний базовий стан після 5-хвилинного пільгового періоду |
Переходи відбуваються автоматично — коли пов’язаний запуск агента завершується, статус завдання оновлюється відповідно.
-Завершення запуску агента є авторитетним для активних записів завдань. Успішний відокремлений запуск фіналізується як `succeeded`, звичайні помилки запуску фіналізуються як `failed`, а результати тайм-ауту або переривання фіналізуються як `timed_out`. Якщо оператор уже скасував завдання або середовище виконання вже записало сильніший термінальний стан, як-от `failed`, `timed_out` чи `lost`, пізніший сигнал успіху не знижує цей термінальний статус.
+Завершення запуску агента є авторитетним для активних записів завдань. Успішний відокремлений запуск фіналізується як `succeeded`, звичайні помилки запуску — як `failed`, а результати тайм-ауту або переривання — як `timed_out`. Якщо оператор уже скасував завдання або середовище виконання вже записало сильніший термінальний стан, наприклад `failed`, `timed_out` чи `lost`, пізніший сигнал успіху не понижує цей термінальний статус.
`lost` враховує середовище виконання:
-- Завдання ACP: зникли опорні метадані дочірньої сесії ACP.
-- Завдання субагентів: опорна дочірня сесія зникла зі сховища цільового агента.
-- Завдання Cron: середовище виконання Cron більше не відстежує завдання як активне, а стала
- історія запусків Cron не показує термінального результату для цього запуску. Офлайновий аудит CLI
- не вважає власний порожній внутрішньопроцесний стан середовища виконання Cron авторитетним.
-- CLI-завдання: ізольовані завдання дочірніх сесій використовують дочірню сесію; CLI-завдання на основі чату
- натомість використовують живий контекст запуску, тому залишкові рядки
- сесій каналу/групи/прямого чату не підтримують їхню активність. Запуски
- `openclaw agent` на основі Gateway також фіналізуються за результатом запуску, тому завершені запуски
- не залишаються активними, доки прибиральник не позначить їх як `lost`.
+- ACP-завдання: зникли метадані базового дочірнього сеансу ACP.
+- Завдання підagentів: базовий дочірній сеанс зник із цільового сховища агента.
+- Cron-завдання: cron-середовище виконання більше не відстежує завдання як активне, а довговічна
+ історія запусків cron не показує термінального результату для цього запуску. Офлайн-аудит CLI
+ не вважає власний порожній внутрішньопроцесний стан cron-середовища виконання авторитетним.
+- CLI-завдання: ізольовані завдання дочірнього сеансу використовують дочірній сеанс; CLI-завдання
+ з підтримкою чату натомість використовують живий контекст запуску, тож завислі
+ рядки сеансів каналу/групи/приватного чату не підтримують їх активними. Запуски
+ `openclaw agent` із підтримкою Gateway також фіналізуються за результатом свого запуску, тому завершені запуски
+ не залишаються активними, доки прибиральник позначить їх як `lost`.
## Доставка та сповіщення
Коли завдання досягає термінального стану, OpenClaw сповіщає вас. Є два шляхи доставки:
-**Пряма доставка** — якщо завдання має цільовий канал (`requesterOrigin`), повідомлення про завершення надсилається безпосередньо в цей канал (Telegram, Discord, Slack тощо). Для завершень субагентів OpenClaw також зберігає прив’язану маршрутизацію потоку/теми, коли вона доступна, і може заповнити відсутні `to` / обліковий запис зі збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`), перш ніж відмовитися від прямої доставки.
+**Пряма доставка** — якщо завдання має цільовий канал (`requesterOrigin`), повідомлення про завершення надсилається прямо в цей канал (Telegram, Discord, Slack тощо). Для завершень підagentів OpenClaw також зберігає прив’язану маршрутизацію гілки/теми, коли вона доступна, і може заповнити відсутні `to` / обліковий запис із збереженого маршруту сеансу запитувача (`lastChannel` / `lastTo` / `lastAccountId`), перш ніж відмовитися від прямої доставки.
-**Доставка через чергу сесії** — якщо пряма доставка не вдається або origin не задано, оновлення ставиться в чергу як системна подія в сесії запитувача й з’являється під час наступного Heartbeat.
+**Доставка через чергу сеансу** — якщо пряма доставка не вдається або origin не задано, оновлення ставиться в чергу як системна подія в сеансі запитувача й з’являється під час наступного Heartbeat.
-Завершення завдання запускає негайне пробудження Heartbeat, тож ви швидко бачите результат — не потрібно чекати наступного запланованого кроку Heartbeat.
+Завершення завдання запускає негайне пробудження Heartbeat, щоб ви швидко побачили результат — вам не потрібно чекати наступного запланованого Heartbeat-тику.
-Це означає, що звичайний робочий процес базується на push-механізмі: один раз запустіть відокремлену роботу, а потім дозвольте середовищу виконання пробудити вас або надіслати сповіщення після завершення. Опитуйте стан завдання лише тоді, коли потрібні налагодження, втручання або явний аудит.
+Це означає, що звичайний робочий процес базується на push-механізмі: один раз запустіть відокремлену роботу, а потім дозвольте середовищу виконання пробудити або сповістити вас після завершення. Опитуйте стан завдання лише тоді, коли потрібні налагодження, втручання або явний аудит.
### Політики сповіщень
-Керуйте тим, скільки повідомлень отримуєте про кожне завдання:
+Керуйте тим, скільки повідомлень отримувати про кожне завдання:
-| Політика | Що доставляється |
-| --------------------- | ----------------------------------------------------------------------- |
-| `done_only` (типово) | Лише термінальний стан (succeeded, failed тощо) — **це типове значення** |
-| `state_changes` | Кожен перехід стану та оновлення прогресу |
-| `silent` | Нічого |
+| Політика | Що доставляється |
+| -------------------- | ---------------------------------------------------------------------- |
+| `done_only` (типова) | Лише термінальний стан (succeeded, failed тощо) — **це типове значення** |
+| `state_changes` | Кожен перехід стану та оновлення прогресу |
+| `silent` | Нічого |
Змініть політику, поки завдання виконується:
@@ -202,7 +202,7 @@ openclaw tasks notify state_changes
openclaw tasks list [--runtime ] [--status ] [--json]
```
- Колонки виводу: ID завдання, тип, статус, доставка, ID запуску, дочірня сесія, підсумок.
+ Стовпці виводу: ID завдання, тип, статус, доставка, ID запуску, дочірній сеанс, підсумок.
@@ -210,7 +210,7 @@ openclaw tasks notify state_changes
openclaw tasks show
```
- Токен пошуку приймає ID завдання, ID запуску або ключ сесії. Показує повний запис, включно з часом, станом доставки, помилкою та термінальним підсумком.
+ Токен пошуку приймає ID завдання, ID запуску або ключ сеансу. Показує повний запис, зокрема таймінг, стан доставки, помилку та термінальний підсумок.
@@ -218,7 +218,7 @@ openclaw tasks notify state_changes
openclaw tasks cancel
```
- Для завдань ACP і субагентів це завершує дочірню сесію. Для завдань, що відстежуються CLI, скасування записується в реєстрі завдань (окремого дескриптора дочірнього середовища виконання немає). Статус переходить у `cancelled`, а сповіщення про доставку надсилається, коли застосовно.
+ Для ACP-завдань і завдань підagentів це завершує дочірній сеанс. Для завдань, відстежуваних CLI, скасування записується в реєстрі завдань (окремого дескриптора дочірнього середовища виконання немає). Статус переходить у `cancelled`, а сповіщення про доставку надсилається, коли це застосовно.
@@ -233,37 +233,37 @@ openclaw tasks notify state_changes
Виявляє операційні проблеми. Знахідки також з’являються в `openclaw status`, коли виявлено проблеми.
- | Виявлення | Серйозність | Умова спрацювання |
+ | Виявлення | Серйозність | Тригер |
| ------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------ |
| `stale_queued` | warn | У черзі понад 10 хвилин |
| `stale_running` | error | Виконується понад 30 хвилин |
- | `lost` | warn/error | Власність над завданням із runtime-підтримкою зникла; збережені втрачені завдання попереджають до `cleanupAfter`, потім стають помилками |
- | `delivery_failed` | warn | Доставку не виконано, а політика сповіщень не є `silent` |
+ | `lost` | warn/error | Власність завдання, підтримувана runtime, зникла; збережені втрачені завдання попереджають до `cleanupAfter`, потім стають помилками |
+ | `delivery_failed` | warn | Доставлення не вдалося, а політика сповіщення не є `silent` |
| `missing_cleanup` | warn | Термінальне завдання без часової позначки очищення |
| `inconsistent_timestamps` | warn | Порушення часової шкали (наприклад, завершено до початку) |
-
+
```bash
openclaw tasks maintenance [--json]
openclaw tasks maintenance --apply [--json]
```
- Використовуйте це, щоб попередньо переглянути або застосувати узгодження, проставлення позначок очищення та обрізання для завдань і стану Task Flow.
+ Використовуйте це, щоб попередньо переглянути або застосувати узгодження, проставлення міток очищення та обрізання для завдань і стану Task Flow.
Узгодження враховує runtime:
- Завдання ACP/subagent перевіряють свій базовий дочірній сеанс.
- Завдання subagent, дочірній сеанс яких має tombstone відновлення після перезапуску, позначаються як втрачені, а не обробляються як відновлювані базові сеанси.
- - Завдання Cron перевіряють, чи cron runtime досі володіє завданням, потім відновлюють термінальний стан із збережених журналів запусків cron/стану завдання, перш ніж повернутися до `lost`. Лише процес Gateway є авторитетним для in-memory набору активних завдань cron; офлайн-аудит CLI використовує стійку історію, але не позначає завдання cron втраченим лише тому, що цей локальний Set порожній.
- - CLI-завдання, підкріплені чатом, перевіряють власний live-контекст виконання, а не лише рядок сеансу чату.
+ - Завдання Cron перевіряють, чи runtime cron досі володіє job, потім відновлюють термінальний статус зі збережених журналів запусків cron/стану job, перш ніж fallback до `lost`. Лише процес Gateway є авторитетним для in-memory набору активних job cron; офлайн-аудит CLI використовує довготривалу історію, але не позначає завдання cron як втрачене лише через те, що цей локальний Set порожній.
+ - Завдання CLI на основі чату перевіряють власний live run контекст, а не лише рядок сеансу чату.
Очищення після завершення також враховує runtime:
- - Завершення subagent за принципом best-effort закриває відстежувані вкладки браузера/процеси для дочірнього сеансу, перш ніж продовжиться очищення оголошення.
- - Завершення ізольованого cron за принципом best-effort закриває відстежувані вкладки браузера/процеси для сеансу cron, перш ніж запуск повністю розірветься.
- - Доставка ізольованого cron за потреби очікує на подальші дії descendant subagent і приглушує застарілий текст підтвердження батьківського завдання замість його оголошення.
- - Доставка завершення subagent віддає перевагу найновішому видимому тексту assistant; якщо він порожній, повертається до очищеного найновішого тексту tool/toolResult, а запуски викликів інструментів лише з timeout можуть згортатися до короткого підсумку часткового прогресу. Термінальні невдалі запуски оголошують стан помилки без повторного відтворення захопленого тексту відповіді.
+ - Завершення subagent best-effort закриває відстежувані вкладки браузера/процеси для дочірнього сеансу, перш ніж триває очищення оголошення.
+ - Завершення ізольованого cron best-effort закриває відстежувані вкладки браузера/процеси для сеансу cron, перш ніж запуск повністю завершується.
+ - Доставлення ізольованого cron за потреби очікує подальші дії нащадкового subagent і пригнічує застарілий текст підтвердження батьківського процесу замість його оголошення.
+ - Доставлення завершення subagent віддає перевагу найновішому видимому тексту assistant; якщо він порожній, воно fallback до sanitized найновішого тексту tool/toolResult, а запуски викликів інструментів лише з timeout можуть згортатися до короткого підсумку часткового прогресу. Термінальні невдалі запуски оголошують статус помилки без повторного відтворення захопленого тексту відповіді.
- Помилки очищення не маскують реальний результат завдання.
@@ -281,13 +281,13 @@ openclaw tasks notify state_changes
## Дошка завдань чату (`/tasks`)
-Використовуйте `/tasks` у будь-якому сеансі чату, щоб побачити фонові завдання, пов'язані з цим сеансом. Дошка показує активні та нещодавно завершені завдання з runtime, станом, часом і подробицями прогресу або помилки.
+Використовуйте `/tasks` у будь-якому сеансі чату, щоб побачити фонові завдання, пов’язані з цим сеансом. Дошка показує активні та нещодавно завершені завдання з runtime, статусом, часом, а також прогресом або деталями помилки.
-Коли поточний сеанс не має видимих пов'язаних завдань, `/tasks` повертається до локальних для агента лічильників завдань, щоб ви все одно отримали огляд без розкриття подробиць інших сеансів.
+Коли поточний сеанс не має видимих пов’язаних завдань, `/tasks` fallback до локальних для агента лічильників завдань, тож ви все одно отримуєте огляд без витоку деталей інших сеансів.
Для повного операторського журналу використовуйте CLI: `openclaw tasks list`.
-## Інтеграція стану (навантаження завданнями)
+## Інтеграція статусу (навантаження завдань)
`openclaw status` містить короткий підсумок завдань:
@@ -299,11 +299,11 @@ Tasks: 3 queued · 2 running · 1 issues
- **active** — кількість `queued` + `running`
- **failures** — кількість `failed` + `timed_out` + `lost`
-- **byRuntime** — розбивка за `acp`, `subagent`, `cron`, `cli`
+- **byRuntime** — розподіл за `acp`, `subagent`, `cron`, `cli`
-І `/status`, і інструмент `session_status` використовують знімок завдань з урахуванням очищення: активні завдання мають пріоритет, застарілі завершені рядки приховуються, а нещодавні помилки показуються лише тоді, коли не лишилося активної роботи. Це зосереджує картку стану на тому, що важливо саме зараз.
+І `/status`, і інструмент `session_status` використовують task snapshot з урахуванням очищення: активні завдання мають пріоритет, застарілі завершені рядки приховуються, а нещодавні помилки показуються лише тоді, коли не залишилося активної роботи. Це зберігає картку статусу зосередженою на тому, що важливо зараз.
-## Зберігання й обслуговування
+## Зберігання та обслуговування
### Де зберігаються завдання
@@ -313,66 +313,66 @@ Tasks: 3 queued · 2 running · 1 issues
$OPENCLAW_STATE_DIR/tasks/runs.sqlite
```
-Реєстр завантажується в пам'ять під час запуску gateway і синхронізує записи в SQLite для довговічності між перезапусками.
-Gateway утримує журнал випереджувального запису SQLite в обмежених межах, використовуючи стандартний поріг
-autocheckpoint SQLite, а також періодичні й завершальні контрольні точки `TRUNCATE`.
+Registry завантажується в пам’ять під час запуску gateway і синхронізує записи в SQLite для довговічності між перезапусками.
+Gateway тримає write-ahead log SQLite обмеженим, використовуючи стандартний поріг
+autocheckpoint SQLite, а також періодичні та shutdown `TRUNCATE` checkpoints.
### Автоматичне обслуговування
Sweeper запускається кожні **60 секунд** і виконує чотири дії:
-
- Перевіряє, чи активні завдання досі мають авторитетну runtime-підтримку. Завдання ACP/subagent використовують стан дочірнього сеансу, завдання cron використовують власність активного завдання, а CLI-завдання, підкріплені чатом, використовують власний контекст виконання. Якщо цей базовий стан зник більш ніж на 5 хвилин, завдання позначається як `lost`.
+
+ Перевіряє, чи активні завдання досі мають авторитетну runtime-підтримку. Завдання ACP/subagent використовують стан дочірнього сеансу, завдання cron використовують володіння active-job, а завдання CLI на основі чату використовують власний run context. Якщо цей базовий стан відсутній понад 5 хвилин, завдання позначається як `lost`.
-
- Закриває термінальні або осиротілі одноразові ACP-сеанси, що належать батьківському сеансу, і закриває застарілі термінальні або осиротілі persistent ACP-сеанси лише тоді, коли не лишається активної прив'язки розмови.
+
+ Закриває термінальні або осиротілі parent-owned одноразові сеанси ACP, а також закриває застарілі термінальні або осиротілі persistent сеанси ACP лише тоді, коли не залишається активної прив’язки розмови.
-
- Встановлює часову позначку `cleanupAfter` для термінальних завдань (endedAt + 7 днів). Під час утримання втрачені завдання все ще відображаються в аудиті як попередження; після завершення строку `cleanupAfter` або коли метадані очищення відсутні, вони стають помилками.
+
+ Установлює часову позначку `cleanupAfter` для термінальних завдань (endedAt + 7 днів). Під час retention втрачені завдання все ще з’являються в аудиті як попередження; після завершення строку `cleanupAfter` або коли метадані очищення відсутні, вони є помилками.
-
+
Видаляє записи після їхньої дати `cleanupAfter`.
-**Утримання:** записи термінальних завдань зберігаються **7 днів**, а потім автоматично обрізаються. Конфігурація не потрібна.
+**Retention:** записи термінальних завдань зберігаються **7 днів**, потім автоматично обрізаються. Налаштування не потрібне.
-## Як завдання пов'язані з іншими системами
+## Як завдання пов’язані з іншими системами
-
- [Task Flow](/uk/automation/taskflow) — це шар оркестрації потоків над фоновими завданнями. Один потік може координувати кілька завдань протягом свого життєвого циклу, використовуючи керовані або дзеркальні режими синхронізації. Використовуйте `openclaw tasks`, щоб інспектувати окремі записи завдань, і `openclaw tasks flow`, щоб інспектувати оркеструвальний потік.
+
+ [Task Flow](/uk/automation/taskflow) — це шар оркестрації потоків над фоновими завданнями. Один flow може координувати кілька завдань протягом свого життєвого циклу, використовуючи керовані або mirrored режими sync. Використовуйте `openclaw tasks`, щоб перевіряти окремі записи завдань, і `openclaw tasks flow`, щоб перевіряти оркеструвальний flow.
- Докладніше див. [Task Flow](/uk/automation/taskflow).
+ Див. [Task Flow](/uk/automation/taskflow) для деталей.
-
- **Визначення** cron-завдання зберігається в `~/.openclaw/cron/jobs.json`; runtime-стан виконання зберігається поруч у `~/.openclaw/cron/jobs-state.json`. **Кожне** виконання cron створює запис завдання — як main-session, так і ізольоване. Main-session cron-завдання за замовчуванням мають політику сповіщень `silent`, тож вони відстежуються без створення сповіщень.
+
+ **Визначення** cron job зберігається в `~/.openclaw/cron/jobs.json`; runtime-стан виконання зберігається поруч у `~/.openclaw/cron/jobs-state.json`. **Кожне** виконання cron створює запис завдання — і main-session, і isolated. Завдання cron main-session типово мають політику сповіщення `silent`, щоб їх можна було відстежувати без створення сповіщень.
Див. [Cron Jobs](/uk/automation/cron-jobs).
-
- Запуски Heartbeat є ходами main-session — вони не створюють записи завдань. Коли завдання завершується, воно може запустити пробудження Heartbeat, щоб ви швидко побачили результат.
+
+ Запуски Heartbeat — це ходи main-session, вони не створюють записів завдань. Коли завдання завершується, воно може ініціювати heartbeat wake, щоб ви швидко побачили результат.
Див. [Heartbeat](/uk/gateway/heartbeat).
-
+
Завдання може посилатися на `childSessionKey` (де виконується робота) і `requesterSessionKey` (хто його запустив). Сеанси — це контекст розмови; завдання — це відстеження активності поверх нього.
-
- `runId` завдання пов'язує його з виконанням агента, який виконує роботу. Події життєвого циклу агента (початок, завершення, помилка) автоматично оновлюють стан завдання — вам не потрібно керувати життєвим циклом вручну.
+
+ `runId` завдання пов’язує його із запуском агента, який виконує роботу. Події життєвого циклу агента (початок, завершення, помилка) автоматично оновлюють статус завдання — вам не потрібно керувати життєвим циклом вручну.
-## Пов'язане
+## Пов’язане
-- [Automation & Tasks](/uk/automation) — усі механізми автоматизації наочно
-- [CLI: Tasks](/uk/cli/tasks) — довідник команд CLI
+- [Автоматизація і завдання](/uk/automation) — усі механізми автоматизації з першого погляду
+- [CLI: Завдання](/uk/cli/tasks) — довідник команд CLI
- [Heartbeat](/uk/gateway/heartbeat) — періодичні ходи main-session
-- [Scheduled Tasks](/uk/automation/cron-jobs) — планування фонової роботи
-- [Task Flow](/uk/automation/taskflow) — оркестрація потоків над завданнями
+- [Заплановані завдання](/uk/automation/cron-jobs) — планування фонової роботи
+- [Task Flow](/uk/automation/taskflow) — оркестрація flow над завданнями
diff --git a/docs/uk/gateway/config-tools.md b/docs/uk/gateway/config-tools.md
index ed68b6fac..554b2608f 100644
--- a/docs/uk/gateway/config-tools.md
+++ b/docs/uk/gateway/config-tools.md
@@ -1,30 +1,30 @@
---
read_when:
- - Налаштування політики `tools.*`, списків дозволеного або експериментальних функцій
- - Реєстрація власних провайдерів або перевизначення базових URL-адрес
- - Налаштування самостійно розміщених кінцевих точок, сумісних з OpenAI
+ - Налаштування політики `tools.*`, списків дозволених елементів або експериментальних функцій
+ - Реєстрація користувацьких провайдерів або перевизначення базових URL-адрес
+ - Налаштування самостійно розгорнутих кінцевих точок, сумісних з OpenAI
sidebarTitle: Tools and custom providers
-summary: Конфігурація інструментів (політика, експериментальні перемикачі, інструменти на базі провайдера) і налаштування користувацького провайдера/базової URL-адреси
-title: Конфігурація — інструменти та власні провайдери
+summary: Конфігурація інструментів (політика, експериментальні перемикачі, інструменти на базі провайдера) і налаштування власного провайдера/базової URL-адреси
+title: Конфігурація — інструменти та користувацькі провайдери
x-i18n:
- generated_at: "2026-04-28T11:10:50Z"
+ generated_at: "2026-05-01T02:52:46Z"
model: gpt-5.5
provider: openai
- source_hash: 1790c92ecaf822c837326d8e22e9d72cc44e5d4cc0bcc00c154ba5160975002a
+ source_hash: 97e6bd8c762f6f7a9985b99ec016dde22c8ea8adc925778b11c2ae5103b887a8
source_path: gateway/config-tools.md
workflow: 16
---
-Ключі конфігурації `tools.*` і налаштування користувацького провайдера / базової URL-адреси. Для агентів, каналів та інших ключів конфігурації верхнього рівня див. [Довідник конфігурації](/uk/gateway/configuration-reference).
+`tools.*` ключі конфігурації та налаштування користувацького провайдера / базового URL. Для агентів, каналів та інших ключів конфігурації верхнього рівня див. [довідник конфігурації](/uk/gateway/configuration-reference).
## Інструменти
### Профілі інструментів
-`tools.profile` задає базовий список дозволів перед `tools.allow`/`tools.deny`:
+`tools.profile` задає базовий список дозволених інструментів перед `tools.allow`/`tools.deny`:
-Локальне початкове налаштування за замовчуванням встановлює для нових локальних конфігурацій `tools.profile: "coding"`, якщо значення не задано (наявні явні профілі зберігаються).
+Локальний онбординг за замовчуванням встановлює для нових локальних конфігурацій `tools.profile: "coding"`, якщо значення не задано (наявні явно задані профілі зберігаються).
| Профіль | Включає |
@@ -32,13 +32,13 @@ x-i18n:
| `minimal` | лише `session_status` |
| `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `video_generate` |
| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` |
-| `full` | Без обмежень (те саме, що й не задано) |
+| `full` | Без обмежень (так само, як якщо не задано) |
### Групи інструментів
-| Група | Інструменти |
+| Група | Інструменти |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------- |
-| `group:runtime` | `exec`, `process`, `code_execution` (`bash` приймається як псевдонім для `exec`) |
+| `group:runtime` | `exec`, `process`, `code_execution` (`bash` приймається як псевдонім для `exec`) |
| `group:fs` | `read`, `write`, `edit`, `apply_patch` |
| `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` |
| `group:memory` | `memory_search`, `memory_get` |
@@ -49,11 +49,11 @@ x-i18n:
| `group:nodes` | `nodes` |
| `group:agents` | `agents_list` |
| `group:media` | `image`, `image_generate`, `video_generate`, `tts` |
-| `group:openclaw` | Усі вбудовані інструменти (крім provider plugins) |
+| `group:openclaw` | Усі вбудовані інструменти (за винятком плагінів провайдерів) |
### `tools.allow` / `tools.deny`
-Глобальна політика дозволу/заборони інструментів (заборона має пріоритет). Не чутлива до регістру, підтримує символи узагальнення `*`. Застосовується навіть тоді, коли пісочниця Docker вимкнена.
+Глобальна політика дозволу/заборони інструментів (заборона має пріоритет). Не враховує регістр, підтримує символи узагальнення `*`. Застосовується навіть коли пісочницю Docker вимкнено.
```json5
{
@@ -63,7 +63,7 @@ x-i18n:
### `tools.byProvider`
-Додатково обмежує інструменти для конкретних провайдерів або моделей. Порядок: базовий профіль → профіль провайдера → allow/deny.
+Додатково обмежує інструменти для конкретних провайдерів або моделей. Порядок: базовий профіль → профіль провайдера → дозвіл/заборона.
```json5
{
@@ -96,8 +96,8 @@ x-i18n:
```
- Перевизначення для окремого агента (`agents.list[].tools.elevated`) може лише додатково обмежувати.
-- `/elevated on|off|ask|full` зберігає стан для кожної сесії; вбудовані директиви застосовуються до одного повідомлення.
-- Підвищений `exec` обходить пісочницю й використовує налаштований шлях виходу (`gateway` за замовчуванням або `node`, коли ціль `exec` — `node`).
+- `/elevated on|off|ask|full` зберігає стан для кожного сеансу; вбудовані директиви застосовуються до одного повідомлення.
+- Підвищений `exec` обходить пісочницю та використовує налаштований шлях виходу (`gateway` за замовчуванням або `node`, коли ціль `exec` — `node`).
### `tools.exec`
@@ -155,17 +155,17 @@ x-i18n:
Поріг жорсткої зупинки для будь-якого виконання без прогресу.
- Попереджати про повторні виклики того самого інструмента з тими самими аргументами.
+ Попереджати про повторювані виклики того самого інструмента з тими самими аргументами.
- Попереджати/блокувати для відомих інструментів опитування (`process.poll`, `command_status` тощо).
+ Попереджати/блокувати відомі інструменти опитування (`process.poll`, `command_status` тощо).
- Попереджати/блокувати для шаблонів чергування пар без прогресу.
+ Попереджати/блокувати чергування парних шаблонів без прогресу.
-Якщо `warningThreshold >= criticalThreshold` або `criticalThreshold >= globalCircuitBreakerThreshold`, валідація не проходить.
+Якщо `warningThreshold >= criticalThreshold` або `criticalThreshold >= globalCircuitBreakerThreshold`, перевірка завершується помилкою.
### `tools.web`
@@ -200,7 +200,7 @@ x-i18n:
### `tools.media`
-Налаштовує розуміння вхідних медіа (зображення/аудіо/відео):
+Налаштовує розуміння вхідних медіа (зображень/аудіо/відео):
```json5
{
@@ -208,7 +208,7 @@ x-i18n:
media: {
concurrency: 2,
asyncCompletion: {
- directSend: false, // opt-in: send finished async music/video directly to the channel
+ directSend: false, // opt-in: send finished async video directly to the channel
},
audio: {
enabled: true,
@@ -238,30 +238,30 @@ x-i18n:
```
-
+
**Запис провайдера** (`type: "provider"` або пропущено):
- - `provider`: ідентифікатор API-провайдера (`openai`, `anthropic`, `google`/`gemini`, `groq` тощо)
- - `model`: перевизначення ідентифікатора моделі
+ - `provider`: id API-провайдера (`openai`, `anthropic`, `google`/`gemini`, `groq` тощо)
+ - `model`: перевизначення id моделі
- `profile` / `preferredProfile`: вибір профілю `auth-profiles.json`
**Запис CLI** (`type: "cli"`):
- `command`: виконуваний файл для запуску
- - `args`: шаблонізовані аргументи (підтримує `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` тощо; `openclaw doctor --fix` мігрує застарілі заповнювачі `{input}` до `{{MediaPath}}`)
+ - `args`: шаблонізовані аргументи (підтримує `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` тощо; `openclaw doctor --fix` мігрує застарілі плейсхолдери `{input}` до `{{MediaPath}}`)
**Спільні поля:**
- `capabilities`: необов’язковий список (`image`, `audio`, `video`). Типові значення: `openai`/`anthropic`/`minimax` → зображення, `google` → зображення+аудіо+відео, `groq` → аудіо.
- `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: перевизначення для окремого запису.
- - Записи `tools.media.image.timeoutSeconds` і відповідні записи `timeoutSeconds` для моделі зображень також застосовуються, коли агент викликає явний інструмент `image`.
+ - `tools.media.image.timeoutSeconds` і відповідні записи `timeoutSeconds` моделі зображень також застосовуються, коли агент викликає явний інструмент `image`.
- У разі збоїв використовується наступний запис.
- Автентифікація провайдера виконується у стандартному порядку: `auth-profiles.json` → змінні середовища → `models.providers.*.apiKey`.
+ Автентифікація провайдера дотримується стандартного порядку: `auth-profiles.json` → змінні середовища → `models.providers.*.apiKey`.
**Поля асинхронного завершення:**
- - `asyncCompletion.directSend`: коли `true`, завершені асинхронні завдання `music_generate` і `video_generate` спершу намагаються виконати пряму доставку в канал. Типове значення: `false` (застарілий шлях пробудження сеансу запитувача/доставки моделлю).
+ - `asyncCompletion.directSend`: коли `true`, завершені асинхронні медіазавдання, які підтримують пряму доставку завершення, спершу намагаються доставити результат напряму в канал. Типове значення: `false` (шлях пробудження сеансу-запитувача/доставки моделлю). Наразі це застосовується до асинхронного `video_generate`; завершення асинхронного `music_generate` залишаються опосередкованими сеансом-запитувачем, навіть коли це ввімкнено.
@@ -281,9 +281,9 @@ x-i18n:
### `tools.sessions`
-Керує тим, на які сеанси можуть бути спрямовані інструменти сеансів (`sessions_list`, `sessions_history`, `sessions_send`).
+Керує тим, на які сеанси можуть націлюватися інструменти сеансів (`sessions_list`, `sessions_history`, `sessions_send`).
-Типове значення: `tree` (поточний сеанс + сеанси, породжені ним, наприклад субагенти).
+Типове значення: `tree` (поточний сеанс + сеанси, породжені ним, як-от субагенти).
```json5
{
@@ -297,12 +297,12 @@ x-i18n:
```
-
+
- `self`: лише ключ поточного сеансу.
- `tree`: поточний сеанс + сеанси, породжені поточним сеансом (субагенти).
- - `agent`: будь-який сеанс, що належить поточному ідентифікатору агента (може включати інших користувачів, якщо ви запускаєте сеанси для кожного відправника під тим самим ідентифікатором агента).
+ - `agent`: будь-який сеанс, що належить до id поточного агента (може включати інших користувачів, якщо ви запускаєте сеанси для окремих відправників під тим самим id агента).
- `all`: будь-який сеанс. Націлювання між агентами все одно потребує `tools.agentToAgent`.
- - Обмеження пісочниці: коли поточний сеанс перебуває в пісочниці й `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, видимість примусово встановлюється в `tree`, навіть якщо `tools.sessions.visibility="all"`.
+ - Обмеження пісочниці: коли поточний сеанс ізольовано в пісочниці й `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, видимість примусово встановлюється на `tree`, навіть якщо `tools.sessions.visibility="all"`.
@@ -328,13 +328,13 @@ x-i18n:
```
-
- - Вкладення підтримуються лише для `runtime: "subagent"`. Середовище виконання ACP їх відхиляє.
+
+ - Вкладення підтримуються лише для `runtime: "subagent"`. Середовище виконання ACP відхиляє їх.
- Файли матеріалізуються в дочірньому робочому просторі за шляхом `.openclaw/attachments//` з `.manifest.json`.
- - Вміст вкладень автоматично редагується під час збереження транскрипта.
- - Вхідні дані Base64 перевіряються суворими перевірками алфавіту/заповнення та запобіжником розміру перед декодуванням.
+ - Вміст вкладень автоматично редагується під час збереження транскрипту.
+ - Вхідні дані Base64 перевіряються суворими перевірками алфавіту/заповнення та захистом розміру перед декодуванням.
- Права доступу до файлів: `0700` для каталогів і `0600` для файлів.
- - Очищення відповідає політиці `cleanup`: `delete` завжди видаляє вкладення; `keep` зберігає їх лише коли `retainOnSessionKeep: true`.
+ - Очищення дотримується політики `cleanup`: `delete` завжди видаляє вкладення; `keep` зберігає їх лише коли `retainOnSessionKeep: true`.
@@ -343,7 +343,7 @@ x-i18n:
### `tools.experimental`
-Експериментальні прапорці вбудованих інструментів. Типово вимкнено, якщо не застосовується правило автоматичного ввімкнення strict-agentic GPT-5.
+Експериментальні прапорці вбудованих інструментів. Типово вимкнено, якщо не застосовується правило автоматичного ввімкнення для strict-agentic GPT-5.
```json5
{
@@ -356,7 +356,7 @@ x-i18n:
```
- `planTool`: вмикає структурований інструмент `update_plan` для відстеження нетривіальної багатоетапної роботи.
-- Типово: `false`, якщо `agents.defaults.embeddedPi.executionContract` (або перевизначення для окремого агента) не встановлено в `"strict-agentic"` для запуску OpenAI або OpenAI Codex сімейства GPT-5. Установіть `true`, щоб примусово ввімкнути інструмент поза цією областю, або `false`, щоб залишити його вимкненим навіть для strict-agentic запусків GPT-5.
+- За замовчуванням: `false`, якщо `agents.defaults.embeddedPi.executionContract` (або перевизначення для окремого агента) не встановлено в `"strict-agentic"` для запуску OpenAI або OpenAI Codex сімейства GPT-5. Встановіть `true`, щоб примусово ввімкнути інструмент поза цією областю, або `false`, щоб тримати його вимкненим навіть для strict-agentic запусків GPT-5.
- Коли ввімкнено, системний промпт також додає настанови з використання, щоб модель застосовувала його лише для суттєвої роботи й тримала щонайбільше один крок `in_progress`.
### `agents.defaults.subagents`
@@ -377,14 +377,14 @@ x-i18n:
}
```
-- `model`: типова модель для створених під-агентів. Якщо пропущено, під-агенти успадковують модель викликача.
-- `allowAgents`: типовий список дозволених ідентифікаторів цільових агентів для `sessions_spawn`, коли агент-запитувач не встановлює власний `subagents.allowAgents` (`["*"]` = будь-який; типово: лише той самий агент).
-- `runTimeoutSeconds`: типовий тайм-аут (у секундах) для `sessions_spawn`, коли виклик інструмента пропускає `runTimeoutSeconds`. `0` означає без тайм-ауту.
-- Політика інструментів для окремого під-агента: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`.
+- `model`: модель за замовчуванням для створених підагентів. Якщо пропущено, підагенти успадковують модель викликача.
+- `allowAgents`: стандартний список дозволених цільових ідентифікаторів агентів для `sessions_spawn`, коли агент-запитувач не задає власне `subagents.allowAgents` (`["*"]` = будь-який; за замовчуванням: лише той самий агент).
+- `runTimeoutSeconds`: стандартний тайм-аут (у секундах) для `sessions_spawn`, коли виклик інструмента пропускає `runTimeoutSeconds`. `0` означає відсутність тайм-ауту.
+- Політика інструментів для окремого підагента: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`.
---
-## Користувацькі провайдери й базові URL-адреси
+## Користувацькі провайдери та базові URL-адреси
OpenClaw використовує вбудований каталог моделей. Додавайте користувацьких провайдерів через `models.providers` у конфігурації або `~/.openclaw/agents//agent/models.json`.
@@ -416,19 +416,19 @@ OpenClaw використовує вбудований каталог модел
```
-
+
- Використовуйте `authHeader: true` + `headers` для користувацьких потреб автентифікації.
- Перевизначте корінь конфігурації агента за допомогою `OPENCLAW_AGENT_DIR` (або `PI_CODING_AGENT_DIR`, застарілого псевдоніма змінної середовища).
- - Пріоритет злиття для збігів ID провайдерів:
+ - Пріоритет злиття для збіжних ідентифікаторів провайдерів:
- Непорожні значення `baseUrl` з агентського `models.json` мають перевагу.
- - Непорожні значення `apiKey` агента мають перевагу лише тоді, коли цей провайдер не керується SecretRef у поточному контексті конфігурації/профілю автентифікації.
- - Значення `apiKey` провайдера, керованого SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для посилань на змінні середовища, `secretref-managed` для посилань на файл/exec) замість збереження розвʼязаних секретів.
+ - Непорожні значення `apiKey` агента мають перевагу лише тоді, коли цим провайдером не керує SecretRef у поточному контексті конфігурації/профілю автентифікації.
+ - Значення `apiKey` провайдера, керованого SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для посилань на змінні середовища, `secretref-managed` для посилань на файл/exec) замість збереження розв'язаних секретів.
- Значення заголовків провайдера, керованого SecretRef, оновлюються з маркерів джерела (`secretref-env:ENV_VAR_NAME` для посилань на змінні середовища, `secretref-managed` для посилань на файл/exec).
- - Порожні або відсутні агентські `apiKey`/`baseUrl` повертаються до `models.providers` у конфігурації.
- - Для моделі, що збігається, `contextWindow`/`maxTokens` використовують більше значення між явною конфігурацією та неявними значеннями каталогу.
- - Для моделі, що збігається, `contextTokens` зберігає явне обмеження середовища виконання, коли воно наявне; використовуйте його, щоб обмежити ефективний контекст без зміни нативних метаданих моделі.
- - Використовуйте `models.mode: "replace"`, коли потрібно, щоб конфігурація повністю переписала `models.json`.
- - Збереження маркерів спирається на джерело як авторитетне: маркери записуються з активного знімка конфігурації джерела (до розвʼязання), а не з розвʼязаних значень секретів середовища виконання.
+ - Порожні або відсутні `apiKey`/`baseUrl` агента повертаються до `models.providers` у конфігурації.
+ - Збіжні `contextWindow`/`maxTokens` моделі використовують більше значення між явною конфігурацією та неявними значеннями каталогу.
+ - Збіжний `contextTokens` моделі зберігає явне обмеження часу виконання, коли воно присутнє; використовуйте його, щоб обмежити ефективний контекст без зміни нативних метаданих моделі.
+ - Використовуйте `models.mode: "replace"`, коли хочете, щоб конфігурація повністю перезаписувала `models.json`.
+ - Збереження маркерів є авторитетним щодо джерела: маркери записуються з активного знімка конфігурації джерела (до розв'язання), а не з розв'язаних значень секретів часу виконання.
@@ -436,50 +436,50 @@ OpenClaw використовує вбудований каталог модел
### Подробиці полів провайдера
-
+
- `models.mode`: поведінка каталогу провайдерів (`merge` або `replace`).
- - `models.providers`: мапа користувацьких провайдерів, індексована за ID провайдера.
- - Безпечні редагування: використовуйте `openclaw config set models.providers. '' --strict-json --merge` або `openclaw config set models.providers..models '' --strict-json --merge` для адитивних оновлень. `config set` відмовляється від руйнівних замін, якщо не передати `--replace`.
+ - `models.providers`: мапа користувацьких провайдерів, ключована за ідентифікатором провайдера.
+ - Безпечні редагування: використовуйте `openclaw config set models.providers. '' --strict-json --merge` або `openclaw config set models.providers..models '' --strict-json --merge` для адитивних оновлень. `config set` відмовляється від руйнівних замін, якщо ви не передасте `--replace`.
-
- - `models.providers.*.api`: адаптер запиту (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` тощо). Для самостійно розгорнутих бекендів `/v1/chat/completions`, як-от MLX, vLLM, SGLang і більшість локальних серверів, сумісних з OpenAI, використовуйте `openai-completions`. Користувацький провайдер із `baseUrl`, але без `api`, типово використовує `openai-completions`; установлюйте `openai-responses` лише тоді, коли бекенд підтримує `/v1/responses`.
+
+ - `models.providers.*.api`: адаптер запиту (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` тощо). Для самостійно розгорнутих бекендів `/v1/chat/completions`, таких як MLX, vLLM, SGLang і більшість локальних серверів, сумісних з OpenAI, використовуйте `openai-completions`. Користувацький провайдер із `baseUrl`, але без `api`, за замовчуванням використовує `openai-completions`; встановлюйте `openai-responses` лише тоді, коли бекенд підтримує `/v1/responses`.
- `models.providers.*.apiKey`: облікові дані провайдера (надавайте перевагу SecretRef/підстановці зі змінних середовища).
- `models.providers.*.auth`: стратегія автентифікації (`api-key`, `token`, `oauth`, `aws-sdk`).
- - `models.providers.*.contextWindow`: типове нативне вікно контексту для моделей цього провайдера, коли запис моделі не встановлює `contextWindow`.
- - `models.providers.*.contextTokens`: типове ефективне обмеження контексту середовища виконання для моделей цього провайдера, коли запис моделі не встановлює `contextTokens`.
- - `models.providers.*.maxTokens`: типове обмеження вихідних токенів для моделей цього провайдера, коли запис моделі не встановлює `maxTokens`.
- - `models.providers.*.timeoutSeconds`: необовʼязковий тайм-аут HTTP-запиту моделі для окремого провайдера в секундах, включно з підключенням, заголовками, тілом і загальним обробленням переривання запиту.
- - `models.providers.*.injectNumCtxForOpenAICompat`: для Ollama + `openai-completions` вставляти `options.num_ctx` у запити (типово: `true`).
+ - `models.providers.*.contextWindow`: стандартне нативне вікно контексту для моделей цього провайдера, коли запис моделі не задає `contextWindow`.
+ - `models.providers.*.contextTokens`: стандартне ефективне обмеження контексту часу виконання для моделей цього провайдера, коли запис моделі не задає `contextTokens`.
+ - `models.providers.*.maxTokens`: стандартне обмеження вихідних токенів для моделей цього провайдера, коли запис моделі не задає `maxTokens`.
+ - `models.providers.*.timeoutSeconds`: необов'язковий тайм-аут HTTP-запиту моделі для окремого провайдера в секундах, включно з обробкою підключення, заголовків, тіла та переривання всього запиту.
+ - `models.providers.*.injectNumCtxForOpenAICompat`: для Ollama + `openai-completions` вставляє `options.num_ctx` у запити (за замовчуванням: `true`).
- `models.providers.*.authHeader`: примусово передавати облікові дані в заголовку `Authorization`, коли це потрібно.
- - `models.providers.*.baseUrl`: базова URL-адреса вищестоящого API.
+ - `models.providers.*.baseUrl`: базова URL-адреса upstream API.
- `models.providers.*.headers`: додаткові статичні заголовки для маршрутизації через проксі/тенанта.
-
+
`models.providers.*.request`: перевизначення транспорту для HTTP-запитів до провайдера моделей.
- - `request.headers`: додаткові заголовки (обʼєднуються з типовими значеннями провайдера). Значення приймають SecretRef.
- - `request.auth`: перевизначення стратегії автентифікації. Режими: `"provider-default"` (використовувати вбудовану автентифікацію провайдера), `"authorization-bearer"` (із `token`), `"header"` (із `headerName`, `value`, необовʼязковим `prefix`).
- - `request.proxy`: перевизначення HTTP-проксі. Режими: `"env-proxy"` (використовувати змінні середовища `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (із `url`). Обидва режими приймають необовʼязковий підобʼєкт `tls`.
- - `request.tls`: перевизначення TLS для прямих зʼєднань. Поля: `ca`, `cert`, `key`, `passphrase` (усі приймають SecretRef), `serverName`, `insecureSkipVerify`.
- - `request.allowPrivateNetwork`: коли `true`, дозволяє HTTPS до `baseUrl`, якщо DNS розвʼязується в приватні, CGNAT або подібні діапазони, через захист HTTP fetch провайдера (добровільне ввімкнення оператором для довірених самостійно розгорнутих кінцевих точок, сумісних з OpenAI). URL-адреси потоків провайдера моделей через local loopback, як-от `localhost`, `127.0.0.1` і `[::1]`, дозволено автоматично, якщо це явно не встановлено в `false`; хости LAN, tailnet і приватного DNS усе ще потребують добровільного ввімкнення. WebSocket використовує той самий `request` для заголовків/TLS, але не цей fetch SSRF gate. Типово `false`.
+ - `request.headers`: додаткові заголовки (зливаються зі стандартними значеннями провайдера). Значення приймають SecretRef.
+ - `request.auth`: перевизначення стратегії автентифікації. Режими: `"provider-default"` (використовувати вбудовану автентифікацію провайдера), `"authorization-bearer"` (з `token`), `"header"` (з `headerName`, `value`, необов'язковим `prefix`).
+ - `request.proxy`: перевизначення HTTP-проксі. Режими: `"env-proxy"` (використовувати змінні середовища `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (з `url`). Обидва режими приймають необов'язковий підоб'єкт `tls`.
+ - `request.tls`: перевизначення TLS для прямих підключень. Поля: `ca`, `cert`, `key`, `passphrase` (усі приймають SecretRef), `serverName`, `insecureSkipVerify`.
+ - `request.allowPrivateNetwork`: коли `true`, дозволяє HTTPS до `baseUrl`, якщо DNS розв'язується в приватні, CGNAT або подібні діапазони, через захист HTTP fetch провайдера (явне ввімкнення оператором для довірених самостійно розгорнутих OpenAI-сумісних кінцевих точок). Потокові URL-адреси провайдера моделей через loopback, такі як `localhost`, `127.0.0.1` і `[::1]`, дозволені автоматично, якщо це явно не встановлено в `false`; LAN, tailnet і приватні DNS-хости все ще потребують явного ввімкнення. WebSocket використовує той самий `request` для заголовків/TLS, але не цей fetch SSRF gate. За замовчуванням `false`.
-
+
- `models.providers.*.models`: явні записи каталогу моделей провайдера.
- - `models.providers.*.models.*.input`: модальності введення моделі. Використовуйте `["text"]` для моделей лише з текстом і `["text", "image"]` для нативних моделей зображень/компʼютерного зору. Вкладення зображень вставляються в ходи агента лише тоді, коли вибрану модель позначено як здатну працювати із зображеннями.
+ - `models.providers.*.models.*.input`: модальності введення моделі. Використовуйте `["text"]` для моделей лише з текстом і `["text", "image"]` для нативних моделей із зображеннями/vision. Вкладення зображень додаються до ходів агента лише тоді, коли вибрану модель позначено як здатну працювати із зображеннями.
- `models.providers.*.models.*.contextWindow`: метадані нативного вікна контексту моделі. Це перевизначає `contextWindow` рівня провайдера для цієї моделі.
- - `models.providers.*.models.*.contextTokens`: необовʼязкове обмеження контексту середовища виконання. Це перевизначає `contextTokens` рівня провайдера; використовуйте його, коли потрібен менший ефективний бюджет контексту, ніж нативний `contextWindow` моделі; `openclaw models list` показує обидва значення, коли вони відрізняються.
- - `models.providers.*.models.*.compat.supportsDeveloperRole`: необовʼязкова підказка сумісності. Для `api: "openai-completions"` із непорожнім ненативним `baseUrl` (хост не `api.openai.com`) OpenClaw примусово встановлює це значення в `false` під час виконання. Порожній/пропущений `baseUrl` зберігає типову поведінку OpenAI.
- - `models.providers.*.models.*.compat.requiresStringContent`: необовʼязкова підказка сумісності для сумісних з OpenAI чат-ендпоінтів, що приймають лише рядки. Коли `true`, OpenClaw сплющує масиви чисто текстового `messages[].content` у звичайні рядки перед надсиланням запиту.
+ - `models.providers.*.models.*.contextTokens`: необов'язкове обмеження контексту часу виконання. Це перевизначає `contextTokens` рівня провайдера; використовуйте його, коли потрібен менший ефективний бюджет контексту, ніж нативний `contextWindow` моделі; `openclaw models list` показує обидва значення, коли вони відрізняються.
+ - `models.providers.*.models.*.compat.supportsDeveloperRole`: необов'язкова підказка сумісності. Для `api: "openai-completions"` із непорожнім ненативним `baseUrl` (хост не `api.openai.com`) OpenClaw примусово встановлює це в `false` під час виконання. Порожній/пропущений `baseUrl` зберігає стандартну поведінку OpenAI.
+ - `models.providers.*.models.*.compat.requiresStringContent`: необов'язкова підказка сумісності для OpenAI-сумісних чат-кінцевих точок, що приймають лише рядки. Коли `true`, OpenClaw вирівнює масиви чистого тексту `messages[].content` у звичайні рядки перед надсиланням запиту.
-
- - `plugins.entries.amazon-bedrock.config.discovery`: корінь налаштувань автоматичного виявлення Bedrock.
+
+ - `plugins.entries.amazon-bedrock.config.discovery`: корінь налаштувань автовиявлення Bedrock.
- `plugins.entries.amazon-bedrock.config.discovery.enabled`: увімкнути/вимкнути неявне виявлення.
- `plugins.entries.amazon-bedrock.config.discovery.region`: регіон AWS для виявлення.
- - `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: необовʼязковий фільтр ID провайдера для цільового виявлення.
+ - `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: необов'язковий фільтр за ідентифікатором провайдера для цільового виявлення.
- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: інтервал опитування для оновлення виявлення.
- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: резервне вікно контексту для виявлених моделей.
- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: резервна максимальна кількість вихідних токенів для виявлених моделей.
@@ -487,13 +487,13 @@ OpenClaw використовує вбудований каталог модел
-Інтерактивний онбординг користувацького провайдера визначає введення зображень для поширених ID моделей компʼютерного зору, як-от GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V і GLM-4V, та пропускає додаткове запитання для відомих сімейств лише з текстом. Невідомі ID моделей усе ще запитують про підтримку зображень. Неінтерактивний онбординг використовує те саме визначення; передайте `--custom-image-input`, щоб примусово встановити метадані здатності працювати із зображеннями, або `--custom-text-input`, щоб примусово встановити метадані лише для тексту.
+Інтерактивне налаштування користувацького провайдера визначає введення зображень для поширених ідентифікаторів vision-моделей, таких як GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V і GLM-4V, і пропускає додаткове запитання для відомих сімейств лише з текстом. Невідомі ідентифікатори моделей усе ще запитують про підтримку зображень. Неінтерактивне налаштування використовує те саме визначення; передайте `--custom-image-input`, щоб примусово задати метадані з підтримкою зображень, або `--custom-text-input`, щоб примусово задати метадані лише з текстом.
### Приклади провайдерів
- Вбудований Plugin провайдера `cerebras` може налаштувати це через `openclaw onboard --auth-choice cerebras-api-key`. Використовуйте явну конфігурацію провайдера лише під час перевизначення типових значень.
+ Вбудований Plugin провайдера `cerebras` може налаштувати це через `openclaw onboard --auth-choice cerebras-api-key`. Використовуйте явну конфігурацію провайдера лише під час перевизначення стандартних значень.
```json5
{
@@ -547,7 +547,7 @@ OpenClaw використовує вбудований каталог модел
- Див. [Локальні моделі](/uk/gateway/local-models). Коротко: запускайте велику локальну модель через LM Studio Responses API на потужному обладнанні; залишайте хостингові моделі об'єднаними для резервного варіанта.
+ Див. [Локальні моделі](/uk/gateway/local-models). TL;DR: запускайте велику локальну модель через LM Studio Responses API на серйозному обладнанні; залишайте розміщені моделі об’єднаними для резервного варіанта.
```json5
@@ -584,7 +584,7 @@ OpenClaw використовує вбудований каталог модел
}
```
- Установіть `MINIMAX_API_KEY`. Скорочення: `openclaw onboard --auth-choice minimax-global-api` або `openclaw onboard --auth-choice minimax-cn-api`. Каталог моделей за замовчуванням містить лише M2.7. На Anthropic-сумісному шляху потокової передачі OpenClaw типово вимикає мислення MiniMax, якщо ви явно не встановите `thinking` самостійно. `/fast on` або `params.fastMode: true` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
+ Задайте `MINIMAX_API_KEY`. Скорочення: `openclaw onboard --auth-choice minimax-global-api` або `openclaw onboard --auth-choice minimax-cn-api`. Каталог моделей за замовчуванням містить лише M2.7. На Anthropic-сумісному шляху потокового передавання OpenClaw за замовчуванням вимикає мислення MiniMax, якщо ви явно не задасте `thinking` самостійно. `/fast on` або `params.fastMode: true` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
@@ -621,9 +621,9 @@ OpenClaw використовує вбудований каталог модел
}
```
- Для китайського endpoint: `baseUrl: "https://api.moonshot.cn/v1"` або `openclaw onboard --auth-choice moonshot-api-key-cn`.
+ Для китайської кінцевої точки: `baseUrl: "https://api.moonshot.cn/v1"` або `openclaw onboard --auth-choice moonshot-api-key-cn`.
- Нативні endpoint Moonshot оголошують сумісність використання потокової передачі на спільному транспорті `openai-completions`, і OpenClaw визначає це за можливостями endpoint, а не лише за вбудованим ідентифікатором провайдера.
+ Нативні кінцеві точки Moonshot оголошують сумісність використання потокового передавання на спільному транспорті `openai-completions`, а OpenClaw визначає це за можливостями кінцевої точки, а не лише за вбудованим ідентифікатором провайдера.
@@ -638,7 +638,7 @@ OpenClaw використовує вбудований каталог модел
}
```
- Установіть `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`). Використовуйте посилання `opencode/...` для каталогу Zen або посилання `opencode-go/...` для каталогу Go. Скорочення: `openclaw onboard --auth-choice opencode-zen` або `openclaw onboard --auth-choice opencode-go`.
+ Задайте `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`). Використовуйте посилання `opencode/...` для каталогу Zen або посилання `opencode-go/...` для каталогу Go. Скорочення: `openclaw onboard --auth-choice opencode-zen` або `openclaw onboard --auth-choice opencode-go`.
@@ -675,7 +675,7 @@ OpenClaw використовує вбудований каталог модел
}
```
- Базова URL-адреса має не містити `/v1` (клієнт Anthropic додає його). Скорочення: `openclaw onboard --auth-choice synthetic-api-key`.
+ Базовий URL має не містити `/v1` (клієнт Anthropic додає його). Скорочення: `openclaw onboard --auth-choice synthetic-api-key`.
@@ -690,18 +690,18 @@ OpenClaw використовує вбудований каталог модел
}
```
- Установіть `ZAI_API_KEY`. `z.ai/*` і `z-ai/*` приймаються як псевдоніми. Скорочення: `openclaw onboard --auth-choice zai-api-key`.
+ Задайте `ZAI_API_KEY`. `z.ai/*` і `z-ai/*` приймаються як псевдоніми. Скорочення: `openclaw onboard --auth-choice zai-api-key`.
- - Загальний endpoint: `https://api.z.ai/api/paas/v4`
- - Endpoint для кодування (за замовчуванням): `https://api.z.ai/api/coding/paas/v4`
- - Для загального endpoint визначте власного провайдера з перевизначенням базової URL-адреси.
+ - Загальна кінцева точка: `https://api.z.ai/api/paas/v4`
+ - Кінцева точка для кодування (за замовчуванням): `https://api.z.ai/api/coding/paas/v4`
+ - Для загальної кінцевої точки визначте власного провайдера з перевизначенням базового URL.
---
-## Пов'язане
+## Пов’язане
- [Конфігурація — агенти](/uk/gateway/config-agents)
- [Конфігурація — канали](/uk/gateway/config-channels)