chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-01 02:54:25 +00:00
parent 864e1b7b35
commit a9abbe69dd
2 changed files with 199 additions and 199 deletions

View File

@ -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), щоб вибрати правильний механізм. Ця сторінка є журналом активності для фонової роботи, а не планувальником.
</Note>
Фонові завдання відстежують роботу, яка виконується **поза вашою основною сесією розмови**: запуски ACP, породження субагентів, ізольовані виконання завдань Cron і операції, ініційовані з CLI.
Фонові завдання відстежують роботу, що виконується **поза основним сеансом розмови**: запуски ACP, створення підagentів, ізольовані виконання cron-завдань і операції, ініційовані з CLI.
Завдання **не** замінюють сесії, завдання Cron чи Heartbeat — це **журнал активності**, який записує, яка відокремлена робота відбулася, коли саме та чи була вона успішною.
Завдання **не** замінюють сеанси, cron-завдання чи heartbeats — це **журнал активності**, який записує, яка відокремлена робота відбулася, коли саме та чи завершилася вона успішно.
<Note>
Не кожен запуск агента створює завдання. Кроки Heartbeat і звичайний інтерактивний чат не створюють. Усі виконання Cron, породження ACP, породження субагентів і CLI-команди агента створюють.
Не кожен запуск агента створює завдання. Heartbeat-ходи та звичайний інтерактивний чат не створюють. Усі виконання cron, створення ACP, створення підagentів і команди агента з CLI створюють.
</Note>
## 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:
```
</Tab>
<Tab title="Перевірка">
<Tab title="Перегляд">
```bash
# Show details for a specific task (by ID, run ID, or session key)
openclaw tasks show <lookup>
@ -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` |
<AccordionGroup>
<Accordion title="Типові сповіщення для Cron і медіа">
Завдання Cron основної сесії типово використовують політику сповіщень `silent` — вони створюють записи для відстеження, але не генерують сповіщення. Ізольовані завдання Cron також типово мають `silent`, але вони помітніші, бо виконуються у власній сесії.
<Accordion title="Типові сповіщення для cron і медіа">
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` залишаються на шляху пробудження сеансу запитувача.
</Accordion>
<Accordion title="Обмежувач паралельних video_generate">
Поки завдання `video_generate` на основі сесії ще активне, інструмент також діє як обмежувач: повторні виклики `video_generate` у тій самій сесії повертають статус активного завдання замість запуску другої паралельної генерації. Використовуйте `action: "status"`, коли потрібен явний запит прогресу/статусу з боку агента.
<Accordion title="Запобіжник для одночасного video_generate">
Поки завдання `video_generate` із підтримкою сеансу ще активне, інструмент також працює як запобіжник: повторні виклики `video_generate` у тому самому сеансі повертають статус активного завдання замість запуску другої паралельної генерації. Використовуйте `action: "status"`, коли потрібен явний перегляд прогресу/статусу з боку агента.
</Accordion>
<Accordion title="Що не створює завдання">
- Кроки Heartbeat — основна сесія; див. [Heartbeat](/uk/gateway/heartbeat)
- Звичайні інтерактивні кроки чату
<Accordion title="Що не створює завдань">
- Heartbeat-ходи — основний сеанс; див. [Heartbeat](/uk/gateway/heartbeat)
- Звичайні інтерактивні ходи чату
- Прямі відповіді `/command`
</Accordion>
@ -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.
<Tip>
Завершення завдання запускає негайне пробудження Heartbeat, тож ви швидко бачите результат — не потрібно чекати наступного запланованого кроку Heartbeat.
Завершення завдання запускає негайне пробудження Heartbeat, щоб ви швидко побачили результат — вам не потрібно чекати наступного запланованого Heartbeat-тику.
</Tip>
Це означає, що звичайний робочий процес базується на push-механізмі: один раз запустіть відокремлену роботу, а потім дозвольте середовищу виконання пробудити вас або надіслати сповіщення після завершення. Опитуйте стан завдання лише тоді, коли потрібні налагодження, втручання або явний аудит.
Це означає, що звичайний робочий процес базується на push-механізмі: один раз запустіть відокремлену роботу, а потім дозвольте середовищу виконання пробудити або сповістити вас після завершення. Опитуйте стан завдання лише тоді, коли потрібні налагодження, втручання або явний аудит.
### Політики сповіщень
Керуйте тим, скільки повідомлень отримуєте про кожне завдання:
Керуйте тим, скільки повідомлень отримувати про кожне завдання:
| Політика | Що доставляється |
| --------------------- | ----------------------------------------------------------------------- |
| `done_only` (типово) | Лише термінальний стан (succeeded, failed тощо) — **це типове значення** |
| `state_changes` | Кожен перехід стану та оновлення прогресу |
| `silent` | Нічого |
| Політика | Що доставляється |
| -------------------- | ---------------------------------------------------------------------- |
| `done_only` (типова) | Лише термінальний стан (succeeded, failed тощо) — **це типове значення** |
| `state_changes` | Кожен перехід стану та оновлення прогресу |
| `silent` | Нічого |
Змініть політику, поки завдання виконується:
@ -202,7 +202,7 @@ openclaw tasks notify <lookup> state_changes
openclaw tasks list [--runtime <acp|subagent|cron|cli>] [--status <status>] [--json]
```
Колонки виводу: ID завдання, тип, статус, доставка, ID запуску, дочірня сесія, підсумок.
Стовпці виводу: ID завдання, тип, статус, доставка, ID запуску, дочірній сеанс, підсумок.
</Accordion>
<Accordion title="tasks show">
@ -210,7 +210,7 @@ openclaw tasks notify <lookup> state_changes
openclaw tasks show <lookup>
```
Токен пошуку приймає ID завдання, ID запуску або ключ сесії. Показує повний запис, включно з часом, станом доставки, помилкою та термінальним підсумком.
Токен пошуку приймає ID завдання, ID запуску або ключ сеансу. Показує повний запис, зокрема таймінг, стан доставки, помилку та термінальний підсумок.
</Accordion>
<Accordion title="tasks cancel">
@ -218,7 +218,7 @@ openclaw tasks notify <lookup> state_changes
openclaw tasks cancel <lookup>
```
Для завдань ACP і субагентів це завершує дочірню сесію. Для завдань, що відстежуються CLI, скасування записується в реєстрі завдань (окремого дескриптора дочірнього середовища виконання немає). Статус переходить у `cancelled`, а сповіщення про доставку надсилається, коли застосовно.
Для ACP-завдань і завдань підagentів це завершує дочірній сеанс. Для завдань, відстежуваних CLI, скасування записується в реєстрі завдань (окремого дескриптора дочірнього середовища виконання немає). Статус переходить у `cancelled`, а сповіщення про доставку надсилається, коли це застосовно.
</Accordion>
<Accordion title="tasks notify">
@ -233,37 +233,37 @@ openclaw tasks notify <lookup> 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 | Порушення часової шкали (наприклад, завершено до початку) |
</Accordion>
<Accordion title="tasks maintenance">
<Accordion title="обслуговування завдань">
```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 можуть згортатися до короткого підсумку часткового прогресу. Термінальні невдалі запуски оголошують статус помилки без повторного відтворення захопленого тексту відповіді.
- Помилки очищення не маскують реальний результат завдання.
</Accordion>
@ -281,13 +281,13 @@ openclaw tasks notify <lookup> 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 секунд** і виконує чотири дії:
<Steps>
<Step title="Reconciliation">
Перевіряє, чи активні завдання досі мають авторитетну runtime-підтримку. Завдання ACP/subagent використовують стан дочірнього сеансу, завдання cron використовують власність активного завдання, а CLI-завдання, підкріплені чатом, використовують власний контекст виконання. Якщо цей базовий стан зник більш ніж на 5 хвилин, завдання позначається як `lost`.
<Step title="Узгодження">
Перевіряє, чи активні завдання досі мають авторитетну runtime-підтримку. Завдання ACP/subagent використовують стан дочірнього сеансу, завдання cron використовують володіння active-job, а завдання CLI на основі чату використовують власний run context. Якщо цей базовий стан відсутній понад 5 хвилин, завдання позначається як `lost`.
</Step>
<Step title="ACP session repair">
Закриває термінальні або осиротілі одноразові ACP-сеанси, що належать батьківському сеансу, і закриває застарілі термінальні або осиротілі persistent ACP-сеанси лише тоді, коли не лишається активної прив'язки розмови.
<Step title="Відновлення сеансу ACP">
Закриває термінальні або осиротілі parent-owned одноразові сеанси ACP, а також закриває застарілі термінальні або осиротілі persistent сеанси ACP лише тоді, коли не залишається активної прив’язки розмови.
</Step>
<Step title="Cleanup stamping">
Встановлює часову позначку `cleanupAfter` для термінальних завдань (endedAt + 7 днів). Під час утримання втрачені завдання все ще відображаються в аудиті як попередження; після завершення строку `cleanupAfter` або коли метадані очищення відсутні, вони стають помилками.
<Step title="Проставлення міток очищення">
Установлює часову позначку `cleanupAfter` для термінальних завдань (endedAt + 7 днів). Під час retention втрачені завдання все ще з’являються в аудиті як попередження; після завершення строку `cleanupAfter` або коли метадані очищення відсутні, вони є помилками.
</Step>
<Step title="Pruning">
<Step title="Обрізання">
Видаляє записи після їхньої дати `cleanupAfter`.
</Step>
</Steps>
<Note>
**Утримання:** записи термінальних завдань зберігаються **7 днів**, а потім автоматично обрізаються. Конфігурація не потрібна.
**Retention:** записи термінальних завдань зберігаються **7 днів**, потім автоматично обрізаються. Налаштування не потрібне.
</Note>
## Як завдання пов'язані з іншими системами
## Як завдання повязані з іншими системами
<AccordionGroup>
<Accordion title="Tasks and Task Flow">
[Task Flow](/uk/automation/taskflow) — це шар оркестрації потоків над фоновими завданнями. Один потік може координувати кілька завдань протягом свого життєвого циклу, використовуючи керовані або дзеркальні режими синхронізації. Використовуйте `openclaw tasks`, щоб інспектувати окремі записи завдань, і `openclaw tasks flow`, щоб інспектувати оркеструвальний потік.
<Accordion title="Завдання і Task 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) для деталей.
</Accordion>
<Accordion title="Tasks and cron">
**Визначення** cron-завдання зберігається в `~/.openclaw/cron/jobs.json`; runtime-стан виконання зберігається поруч у `~/.openclaw/cron/jobs-state.json`. **Кожне** виконання cron створює запис завдання — як main-session, так і ізольоване. Main-session cron-завдання за замовчуванням мають політику сповіщень `silent`, тож вони відстежуються без створення сповіщень.
<Accordion title="Завдання і cron">
**Визначення** 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).
</Accordion>
<Accordion title="Tasks and heartbeat">
Запуски Heartbeat є ходами main-session — вони не створюють записи завдань. Коли завдання завершується, воно може запустити пробудження Heartbeat, щоб ви швидко побачили результат.
<Accordion title="Завдання і Heartbeat">
Запуски Heartbeat — це ходи main-session, вони не створюють записів завдань. Коли завдання завершується, воно може ініціювати heartbeat wake, щоб ви швидко побачили результат.
Див. [Heartbeat](/uk/gateway/heartbeat).
</Accordion>
<Accordion title="Tasks and sessions">
<Accordion title="Завдання і сеанси">
Завдання може посилатися на `childSessionKey` (де виконується робота) і `requesterSessionKey` (хто його запустив). Сеанси — це контекст розмови; завдання — це відстеження активності поверх нього.
</Accordion>
<Accordion title="Tasks and agent runs">
`runId` завдання пов'язує його з виконанням агента, який виконує роботу. Події життєвого циклу агента (початок, завершення, помилка) автоматично оновлюють стан завдання — вам не потрібно керувати життєвим циклом вручну.
<Accordion title="Завдання і запуски агента">
`runId` завдання пов’язує його із запуском агента, який виконує роботу. Події життєвого циклу агента (початок, завершення, помилка) автоматично оновлюють статус завдання — вам не потрібно керувати життєвим циклом вручну.
</Accordion>
</AccordionGroup>
## Пов'язане
## Повязане
- [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 над завданнями

View File

@ -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`:
<Note>
Локальне початкове налаштування за замовчуванням встановлює для нових локальних конфігурацій `tools.profile: "coding"`, якщо значення не задано (наявні явні профілі зберігаються).
Локальний онбординг за замовчуванням встановлює для нових локальних конфігурацій `tools.profile: "coding"`, якщо значення не задано (наявні явно задані профілі зберігаються).
</Note>
| Профіль | Включає |
@ -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:
Поріг жорсткої зупинки для будь-якого виконання без прогресу.
</ParamField>
<ParamField path="detectors.genericRepeat" type="boolean">
Попереджати про повторні виклики того самого інструмента з тими самими аргументами.
Попереджати про повторювані виклики того самого інструмента з тими самими аргументами.
</ParamField>
<ParamField path="detectors.knownPollNoProgress" type="boolean">
Попереджати/блокувати для відомих інструментів опитування (`process.poll`, `command_status` тощо).
Попереджати/блокувати відомі інструменти опитування (`process.poll`, `command_status` тощо).
</ParamField>
<ParamField path="detectors.pingPong" type="boolean">
Попереджати/блокувати для шаблонів чергування пар без прогресу.
Попереджати/блокувати чергування парних шаблонів без прогресу.
</ParamField>
<Warning>
Якщо `warningThreshold >= criticalThreshold` або `criticalThreshold >= globalCircuitBreakerThreshold`, валідація не проходить.
Якщо `warningThreshold >= criticalThreshold` або `criticalThreshold >= globalCircuitBreakerThreshold`, перевірка завершується помилкою.
</Warning>
### `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:
```
<AccordionGroup>
<Accordion title="Поля запису медіамоделі">
<Accordion title="Media model entry fields">
**Запис провайдера** (`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` залишаються опосередкованими сеансом-запитувачем, навіть коли це ввімкнено.
</Accordion>
</AccordionGroup>
@ -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:
```
<AccordionGroup>
<Accordion title="Області видимості">
<Accordion title="Visibility scopes">
- `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"`.
</Accordion>
</AccordionGroup>
@ -328,13 +328,13 @@ x-i18n:
```
<AccordionGroup>
<Accordion title="Примітки щодо вкладень">
- Вкладення підтримуються лише для `runtime: "subagent"`. Середовище виконання ACP їх відхиляє.
<Accordion title="Attachment notes">
- Вкладення підтримуються лише для `runtime: "subagent"`. Середовище виконання ACP відхиляє їх.
- Файли матеріалізуються в дочірньому робочому просторі за шляхом `.openclaw/attachments/<uuid>/` з `.manifest.json`.
- Вміст вкладень автоматично редагується під час збереження транскрипта.
- Вхідні дані Base64 перевіряються суворими перевірками алфавіту/заповнення та запобіжником розміру перед декодуванням.
- Вміст вкладень автоматично редагується під час збереження транскрипту.
- Вхідні дані Base64 перевіряються суворими перевірками алфавіту/заповнення та захистом розміру перед декодуванням.
- Права доступу до файлів: `0700` для каталогів і `0600` для файлів.
- Очищення відповідає політиці `cleanup`: `delete` завжди видаляє вкладення; `keep` зберігає їх лише коли `retainOnSessionKeep: true`.
- Очищення дотримується політики `cleanup`: `delete` завжди видаляє вкладення; `keep` зберігає їх лише коли `retainOnSessionKeep: true`.
</Accordion>
</AccordionGroup>
@ -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/<agentId>/agent/models.json`.
@ -416,19 +416,19 @@ OpenClaw використовує вбудований каталог модел
```
<AccordionGroup>
<Accordion title="Auth and merge precedence">
<Accordion title="Автентифікація та пріоритет злиття">
- Використовуйте `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`.
- Збереження маркерів є авторитетним щодо джерела: маркери записуються з активного знімка конфігурації джерела (до розв'язання), а не з розв'язаних значень секретів часу виконання.
</Accordion>
</AccordionGroup>
@ -436,50 +436,50 @@ OpenClaw використовує вбудований каталог модел
### Подробиці полів провайдера
<AccordionGroup>
<Accordion title="Top-level catalog">
<Accordion title="Каталог верхнього рівня">
- `models.mode`: поведінка каталогу провайдерів (`merge` або `replace`).
- `models.providers`: мапа користувацьких провайдерів, індексована за ID провайдера.
- Безпечні редагування: використовуйте `openclaw config set models.providers.<id> '<json>' --strict-json --merge` або `openclaw config set models.providers.<id>.models '<json-array>' --strict-json --merge` для адитивних оновлень. `config set` відмовляється від руйнівних замін, якщо не передати `--replace`.
- `models.providers`: мапа користувацьких провайдерів, ключована за ідентифікатором провайдера.
- Безпечні редагування: використовуйте `openclaw config set models.providers.<id> '<json>' --strict-json --merge` або `openclaw config set models.providers.<id>.models '<json-array>' --strict-json --merge` для адитивних оновлень. `config set` відмовляється від руйнівних замін, якщо ви не передасте `--replace`.
</Accordion>
<Accordion title="Provider connection and auth">
- `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`.
<Accordion title="Підключення провайдера та автентифікація">
- `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`: додаткові статичні заголовки для маршрутизації через проксі/тенанта.
</Accordion>
<Accordion title="Request transport overrides">
<Accordion title="Перевизначення транспорту запитів">
`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`.
</Accordion>
<Accordion title="Model catalog entries">
<Accordion title="Записи каталогу моделей">
- `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` у звичайні рядки перед надсиланням запиту.
</Accordion>
<Accordion title="Amazon Bedrock discovery">
- `plugins.entries.amazon-bedrock.config.discovery`: корінь налаштувань автоматичного виявлення Bedrock.
<Accordion title="Виявлення Amazon 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 використовує вбудований каталог модел
</Accordion>
</AccordionGroup>
Інтерактивний онбординг користувацького провайдера визначає введення зображень для поширених 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`, щоб примусово задати метадані лише з текстом.
### Приклади провайдерів
<AccordionGroup>
<Accordion title="Cerebras (GLM 4.7 / GPT OSS)">
Вбудований Plugin провайдера `cerebras` може налаштувати це через `openclaw onboard --auth-choice cerebras-api-key`. Використовуйте явну конфігурацію провайдера лише під час перевизначення типових значень.
Вбудований Plugin провайдера `cerebras` може налаштувати це через `openclaw onboard --auth-choice cerebras-api-key`. Використовуйте явну конфігурацію провайдера лише під час перевизначення стандартних значень.
```json5
{
@ -547,7 +547,7 @@ OpenClaw використовує вбудований каталог модел
</Accordion>
<Accordion title="Локальні моделі (LM Studio)">
Див. [Локальні моделі](/uk/gateway/local-models). Коротко: запускайте велику локальну модель через LM Studio Responses API на потужному обладнанні; залишайте хостингові моделі об'єднаними для резервного варіанта.
Див. [Локальні моделі](/uk/gateway/local-models). TL;DR: запускайте велику локальну модель через LM Studio Responses API на серйозному обладнанні; залишайте розміщені моделі обєднаними для резервного варіанта.
</Accordion>
<Accordion title="MiniMax M2.7 (напряму)">
```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`.
</Accordion>
<Accordion title="Moonshot AI (Kimi)">
@ -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 визначає це за можливостями кінцевої точки, а не лише за вбудованим ідентифікатором провайдера.
</Accordion>
<Accordion title="OpenCode">
@ -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`.
</Accordion>
<Accordion title="Synthetic (Anthropic-сумісний)">
@ -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`.
</Accordion>
<Accordion title="Z.AI (GLM-4.7)">
@ -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.
</Accordion>
</AccordionGroup>
---
## Пов'язане
## Повязане
- [Конфігурація — агенти](/uk/gateway/config-agents)
- [Конфігурація — канали](/uk/gateway/config-channels)