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)