chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-27 02:09:27 +00:00
parent e122dce17f
commit ff19cc1eac
3 changed files with 292 additions and 268 deletions

View File

@ -7,15 +7,15 @@ sidebarTitle: Scheduled tasks
summary: Заплановані завдання, Webhook-и та тригери Gmail PubSub для планувальника Gateway
title: Заплановані завдання
x-i18n:
generated_at: "2026-04-26T07:00:02Z"
generated_at: "2026-04-27T02:07:42Z"
model: gpt-5.4
provider: openai
source_hash: 41908a34ddec3359e414ff4fbca128cc30db53273ee96a6dd12026da950b95ec
source_hash: ccc139d66e9461fac4b4304496568e6216234616febef1e8f90d4897a4245378
source_path: automation/cron-jobs.md
workflow: 15
---
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може повертати результат назад у канал чату або до кінцевої точки Webhook.
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може повертати результат у чат-канал або до кінцевої точки Webhook.
## Швидкий старт
@ -44,38 +44,39 @@ Cron — це вбудований планувальник Gateway. Він зб
</Step>
</Steps>
## Як працює Cron
## Як працює cron
- Cron працює **всередині процесу Gateway** (не всередині моделі).
- Визначення завдань зберігаються в `~/.openclaw/cron/jobs.json`, тому перезапуски не призводять до втрати розкладів.
- Стан виконання під час роботи зберігається поруч у `~/.openclaw/cron/jobs-state.json`. Якщо ви відстежуєте визначення cron у git, відстежуйте `jobs.json`, а `jobs-state.json` додайте до gitignore.
- Після розділення старіші версії OpenClaw можуть читати `jobs.json`, але можуть вважати завдання новими, оскільки поля стану виконання тепер містяться в `jobs-state.json`.
- Стан виконання під час роботи зберігається поруч у `~/.openclaw/cron/jobs-state.json`. Якщо ви відстежуєте визначення cron у git, відстежуйте `jobs.json` і додавайте `jobs-state.json` до gitignore.
- Після цього розділення старіші версії OpenClaw можуть читати `jobs.json`, але можуть трактувати завдання як нові, оскільки поля стану виконання тепер зберігаються в `jobs-state.json`.
- Усі виконання cron створюють записи [фонових завдань](/uk/automation/tasks).
- Одноразові завдання (`--at`) типово автоматично видаляються після успішного виконання.
- Ізольовані запуски cron у межах best-effort закривають відстежувані вкладки/процеси браузера для їхньої сесії `cron:<jobId>` після завершення запуску, щоб відокремлена автоматизація браузера не залишала сирітські процеси.
- Ізольовані запуски cron також захищають від застарілих відповідей-підтверджень. Якщо перший результат — це лише проміжне оновлення стану (`on it`, `pulling everything together` та подібні підказки), і жоден дочірній запуск субагента більше не відповідає за фінальну відповідь, OpenClaw повторно надсилає запит один раз, щоб отримати фактичний результат перед доставкою.
- Одноразові завдання (`--at`) автоматично видаляються після успішного виконання за замовчуванням.
- Ізольовані запуски cron у межах best-effort закривають відстежувані вкладки/процеси браузера для своєї сесії `cron:<jobId>` після завершення запуску, щоб відокремлена автоматизація браузера не залишала процеси-сироти.
- Ізольовані запуски cron також захищаються від застарілих відповідей-підтверджень. Якщо перший результат — це лише проміжне оновлення стану (`on it`, `pulling everything together` та подібні підказки), і жоден дочірній запуск субагента більше не відповідає за фінальну відповідь, OpenClaw повторно надсилає запит один раз, щоб отримати фактичний результат перед доставкою.
- Ізольовані запуски cron класифікують відомі маркери відмови у виконанні у фінальному підсумку/виводі як помилки, зокрема маркери хоста на кшталт `SYSTEM_RUN_DENIED` і `INVALID_REQUEST`, щоб заблокована команда не позначалася як успішний запуск.
<a id="maintenance"></a>
<Note>
Узгодження завдань для cron насамперед належить до runtime, а вже потім спирається на стійку історію: активне завдання cron залишається активним, доки runtime cron усе ще відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії ще існує. Щойно runtime перестає володіти завданням і минає 5-хвилинне вікно очікування, перевірки обслуговування переглядають збережені журнали запусків і стан завдання для відповідного запуску `cron:<jobId>:<startedAt>`. Якщо ця стійка історія показує термінальний результат, реєстр завдань фіналізується на її основі; інакше обслуговування, яким керує Gateway, може позначити завдання як `lost`. Офлайновий аудит CLI може відновитися зі стійкої історії, але він не вважає власний порожній внутрішньопроцесний набір активних завдань доказом того, що запуск cron, яким володіє Gateway, зник.
Узгодження завдань для cron насамперед належить до runtime, а вже потім спирається на стійку історію: активне завдання cron залишається активним, доки runtime cron усе ще відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує. Щойно runtime перестає володіти завданням і минає 5-хвилинне вікно пільгового часу, перевірки обслуговування аналізують збережені журнали запусків і стан завдання для відповідного запуску `cron:<jobId>:<startedAt>`. Якщо ця стійка історія показує термінальний результат, журнал завдань фіналізується на її основі; інакше обслуговування, що належить Gateway, може позначити завдання як `lost`. Офлайн-аудит CLI може відновитися зі стійкої історії, але він не розглядає власний порожній внутрішньопроцесний набір активних завдань як доказ того, що запуск cron, яким володіє Gateway, зник.
</Note>
## Типи розкладу
## Типи розкладів
| Вид | Прапорець CLI | Опис |
| ------- | ------------- | ----------------------------------------------------------- |
| `at` | `--at` | Одноразова мітка часу (ISO 8601 або відносний формат, як-от `20m`) |
| `every` | `--every` | Фіксований інтервал |
| `cron` | `--cron` | 5-польовий або 6-польовий вираз cron з необов’язковим `--tz` |
| Вид | Прапорець CLI | Опис |
| ------- | ------------- | ------------------------------------------------------- |
| `at` | `--at` | Одноразова позначка часу (ISO 8601 або відносна, як-от `20m`) |
| `every` | `--every` | Фіксований інтервал |
| `cron` | `--cron` | Cron-вираз із 5 або 6 полів з необов’язковим `--tz` |
Мітки часу без часової зони трактуються як UTC. Додайте `--tz America/New_York` для планування за локальним настінним часом.
Позначки часу без часового поясу трактуються як UTC. Додайте `--tz America/New_York` для планування за локальним настінним часом.
Повторювані вирази на початок години автоматично зсуваються до 5 хвилин, щоб зменшити піки навантаження. Використовуйте `--exact`, щоб примусово встановити точний час, або `--stagger 30s` для явного вікна.
Повторювані вирази на початок години автоматично зміщуються до 5 хвилин, щоб зменшити піки навантаження. Використовуйте `--exact`, щоб примусово встановити точний час, або `--stagger 30s` для явного вікна.
### День місяця та день тижня використовують логіку OR
### День місяця і день тижня використовують логіку OR
Вирази cron парсяться за допомогою [croner](https://github.com/Hexagon/croner). Коли і поле дня місяця, і поле дня тижня не є wildcard, croner виконує збіг, коли **збігається будь-яке** з полів — а не обидва. Це стандартна поведінка Vixie cron.
Cron-вирази аналізуються за допомогою [croner](https://github.com/Hexagon/croner). Коли і поле дня місяця, і поле дня тижня не є wildcard, croner вважає збігом випадок, коли **збігається будь-яке** з цих полів, а не обидва. Це стандартна поведінка Vixie cron.
```
# Intended: "9 AM on the 15th, only if it's a Monday"
@ -83,34 +84,34 @@ Cron — це вбудований планувальник Gateway. Він зб
0 9 15 * 1
```
Це спрацьовує приблизно 56 разів на місяць замість 01 разу на місяць. OpenClaw тут використовує типову OR-поведінку Croner. Щоб вимагати обидві умови, використовуйте модифікатор дня тижня `+` від Croner (`0 9 15 * +1`) або плануйте за одним полем, а інше перевіряйте в prompt чи команді вашого завдання.
Такий вираз спрацьовує приблизно 56 разів на місяць замість 01 разу на місяць. OpenClaw тут використовує стандартну OR-поведінку Croner. Щоб вимагати виконання обох умов, використовуйте модифікатор дня тижня `+` у Croner (`0 9 15 * +1`) або плануйте за одним полем, а інше перевіряйте в prompt або команді свого завдання.
## Стилі виконання
| Стиль | Значення `--session` | Виконується в | Найкраще підходить для |
| ---------------- | -------------------- | ------------------------- | --------------------------------- |
| Основна сесія | `main` | Наступного циклу Heartbeat | Нагадувань, системних подій |
| Ізольований | `isolated` | Окремій `cron:<jobId>` | Звітів, фонових рутинних завдань |
| Поточна сесія | `current` | Прив’язується під час створення | Повторюваної роботи з урахуванням контексту |
| Власна сесія | `session:custom-id` | Постійній іменованій сесії | Процесів, що розвиваються на основі історії |
| Стиль | Значення `--session` | Запускається в | Найкраще підходить для |
| --------------- | -------------------- | ----------------------- | ------------------------------- |
| Основна сесія | `main` | Наступний цикл Heartbeat | Нагадувань, системних подій |
| Ізольований | `isolated` | Виділена `cron:<jobId>` | Звітів, фонових справ |
| Поточна сесія | `current` | Прив’язується під час створення | Повторюваної роботи з урахуванням контексту |
| Користувацька сесія | `session:custom-id` | Постійна іменована сесія | Процесів, що спираються на історію |
<AccordionGroup>
<Accordion title="Основна сесія чи ізольована чи власна">
Завдання **основної сесії** ставлять системну подію в чергу та за потреби пробуджують Heartbeat (`--wake now` або `--wake next-heartbeat`). Такі системні події не подовжують актуальність скидання за днем/неактивністю для цільової сесії. **Ізольовані** завдання запускають окремий цикл агента з новою сесією. **Власні сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу будувати процеси на кшталт щоденних стендапів на основі попередніх підсумків.
<Accordion title="Основна сесія vs ізольована vs користувацька">
Завдання **основної сесії** ставлять у чергу системну подію та за потреби пробуджують heartbeat (`--wake now` або `--wake next-heartbeat`). Такі системні події не подовжують актуальність скидання за днем/простою для цільової сесії. **Ізольовані** завдання запускають окремий цикл агента зі свіжою сесією. **Користувацькі сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу реалізувати сценарії на кшталт щоденних стендапів, які спираються на попередні підсумки.
</Accordion>
<Accordion title="Що означає 'нова сесія' для ізольованих завдань">
Для ізольованих завдань "нова сесія" означає новий transcript/session id для кожного запуску. OpenClaw може переносити безпечні вподобання, як-от налаштування thinking/fast/verbose, мітки та явні користувацькі перевизначення моделі/автентифікації, але не успадковує фоновий контекст розмови зі старішого рядка cron: маршрутизацію каналу/групи, політику надсилання чи черги, підвищення привілеїв, джерело або прив’язку runtime ACP. Використовуйте `current` або `session:<id>`, якщо повторюване завдання має навмисно спиратися на той самий контекст розмови.
<Accordion title="Що означає 'свіжа сесія' для ізольованих завдань">
Для ізольованих завдань «свіжа сесія» означає новий ідентифікатор transcript/session для кожного запуску. OpenClaw може переносити безпечні налаштування, як-от параметри thinking/fast/verbose, мітки та явні обрані користувачем перевизначення моделі/автентифікації, але не успадковує фоновий контекст розмови зі старого рядка cron: маршрутизацію каналу/групи, політику надсилання або постановки в чергу, підвищення привілеїв, походження чи прив’язку runtime ACP. Використовуйте `current` або `session:<id>`, коли повторюване завдання має навмисно спиратися на той самий контекст розмови.
</Accordion>
<Accordion title="Очищення runtime">
Для ізольованих завдань завершення runtime тепер включає best-effort очищення браузера для цієї сесії cron. Помилки очищення ігноруються, тому фактичний результат cron усе одно має пріоритет.
Для ізольованих завдань згортання runtime тепер включає best-effort очищення браузера для цієї cron-сесії. Помилки очищення ігноруються, тож фактичний результат cron усе одно має пріоритет.
Ізольовані запуски cron також звільняють усі вбудовані екземпляри runtime MCP, створені для завдання, через спільний шлях очищення runtime. Це відповідає тому, як завершуються клієнти MCP для основної сесії та власних сесій, тому ізольовані завдання cron не спричиняють витік дочірніх stdio-процесів або довготривалих MCP-з’єднань між запусками.
Ізольовані запуски cron також звільняють усі вбудовані екземпляри runtime MCP, створені для завдання, через спільний шлях очищення runtime. Це відповідає тому, як закриваються клієнти MCP для основної та користувацької сесій, тому ізольовані cron-завдання не витікають у stdio дочірні процеси або довготривалі MCP-з’єднання між запусками.
</Accordion>
<Accordion title="Субагент і доставка в Discord">
Коли ізольовані запуски cron оркеструють субагентів, доставка також надає перевагу фінальному виводу нащадка над застарілим проміжним текстом батьківського запуску. Якщо нащадки все ще виконуються, OpenClaw пригнічує таке часткове оновлення батьківського запуску, а не оголошує його.
<Accordion title="Доставка через субагента і Discord">
Коли ізольовані запуски cron оркеструють субагентів, під час доставки також надається перевага фінальному виводу нащадка, а не застарілому проміжному тексту батьківського запуску. Якщо нащадки все ще виконуються, OpenClaw пригнічує це часткове оновлення батьківського запуску замість того, щоб оголошувати його.
Для текстових цілей оголошення в Discord OpenClaw надсилає канонічний фінальний текст помічника один раз, а не відтворює і потокові/проміжні текстові payload-и, і фінальну відповідь. Медіа та структуровані payload-и Discord усе ще доставляються як окремі payload-и, щоб не втратити вкладення та компоненти.
Для цілей оголошення Discord лише з текстом OpenClaw надсилає канонічний фінальний текст асистента один раз, замість того щоб повторно відтворювати і потокові/проміжні текстові payload-и, і фінальну відповідь. Медіа та структуровані payload-и Discord, як і раніше, доставляються окремо, щоб не втрачалися вкладення та компоненти.
</Accordion>
</AccordionGroup>
@ -118,7 +119,7 @@ Cron — це вбудований планувальник Gateway. Він зб
### Параметри payload для ізольованих завдань
<ParamField path="--message" type="string" required>
Текст prompt (обов’язковий для ізольованих).
Текст prompt (обов’язковий для isolated).
</ParamField>
<ParamField path="--model" type="string">
Перевизначення моделі; використовує вибрану дозволену модель для завдання.
@ -133,39 +134,39 @@ Cron — це вбудований планувальник Gateway. Він зб
Обмежити, які інструменти може використовувати завдання, наприклад `--tools exec,read`.
</ParamField>
`--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель не дозволена, cron записує попередження в журнал і натомість повертається до вибору моделі агента/типової моделі для завдання. Налаштовані ланцюжки fallback усе ще застосовуються, але просте перевизначення моделі без явного списку fallback для конкретного завдання більше не додає основну модель агента як приховану додаткову ціль повторної спроби.
`--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель не дозволена, cron записує попередження в журнал і натомість повертається до вибору моделі агента/моделі за замовчуванням для цього завдання. Налаштовані ланцюжки fallback, як і раніше, застосовуються, але просте перевизначення моделі без явного списку fallback для конкретного завдання більше не додає основну модель агента як приховану додаткову ціль для повторної спроби.
Пріоритет вибору моделі для ізольованих завдань:
1. Перевизначення моделі Gmail hook (коли запуск надійшов із Gmail і це перевизначення дозволене)
1. Перевизначення моделі через Gmail hook (коли запуск прийшов із Gmail і це перевизначення дозволене)
2. `model` у payload конкретного завдання
3. Збережене користувачем перевизначення моделі сесії cron
4. Вибір моделі агента/типової моделі
3. Збережене перевизначення моделі cron-сесії, вибране користувачем
4. Вибір моделі агента/за замовчуванням
Режим fast також слідує за визначеним активним вибором. Якщо конфігурація вибраної моделі має `params.fastMode`, ізольований cron типово використовує це значення. Збережене в сесії перевизначення `fastMode` усе одно має пріоритет над конфігурацією в обох напрямках.
Режим fast також використовує визначений під час виконання вибір. Якщо конфігурація вибраної моделі має `params.fastMode`, ізольований cron використовує це значення за замовчуванням. Збережене в сесії перевизначення `fastMode` усе одно має пріоритет над конфігурацією в будь-який бік.
Якщо ізольований запуск натрапляє на live-передачу керування зі зміною моделі, cron повторює спробу з перемкненими provider/model і зберігає цей live-вибір для активного запуску перед повторною спробою. Якщо перемикання також містить новий профіль автентифікації, cron зберігає і це перевизначення профілю автентифікації для активного запуску. Повторні спроби обмежені: після початкової спроби плюс 2 повторних спроб із перемиканням cron припиняє виконання, а не зациклюється назавжди.
Якщо ізольований запуск натрапляє на live-передавання керування через перемикання моделі, cron виконує повторну спробу з перемкненим provider/model і зберігає цей live-вибір для активного запуску перед повторною спробою. Якщо перемикання також передає новий профіль автентифікації, cron також зберігає це перевизначення auth profile для активного запуску. Повторні спроби обмежені: після початкової спроби плюс 2 повторні спроби через перемикання cron переривається замість безкінечного циклу.
## Доставка та вивід
## Доставка і вивід
| Режим | Що відбувається |
| ---------- | -------------------------------------------------------------------- |
| Режим | Що відбувається |
| ---------- | ------------------------------------------------------------------- |
| `announce` | Резервно доставляє фінальний текст до цілі, якщо агент його не надіслав |
| `webhook` | Надсилає POST із payload завершеної події на URL |
| `none` | Без резервної доставки від runner |
| `webhook` | Надсилає payload завершеної події методом POST на URL |
| `none` | Без резервної доставки з боку виконавця |
Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставки в канал. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Для цілей Slack/Discord/Mattermost слід використовувати явні префікси (`channel:<id>`, `user:<id>`). Ідентифікатори кімнат Matrix чутливі до регістру; використовуйте точний room ID або форму `room:!room:server` із Matrix.
Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставки до каналу. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Цілі Slack/Discord/Mattermost мають використовувати явні префікси (`channel:<id>`, `user:<id>`). Ідентифікатори кімнат Matrix чутливі до регістру; використовуйте точний room ID або форму `room:!room:server` із Matrix.
Для ізольованих завдань доставка в чат є спільною. Якщо маршрут чату доступний, агент може використовувати інструмент `message`, навіть коли завдання використовує `--no-deliver`. Якщо агент надсилає повідомлення до налаштованої/поточної цілі, OpenClaw пропускає резервне оголошення. Інакше `announce`, `webhook` і `none` лише визначають, що runner робить із фінальною відповіддю після циклу агента.
Для ізольованих завдань доставка до чату є спільною. Якщо маршрут чату доступний, агент може використовувати інструмент `message`, навіть коли для завдання використовується `--no-deliver`. Якщо агент надсилає повідомлення до налаштованої/поточної цілі, OpenClaw пропускає резервне оголошення. Інакше `announce`, `webhook` і `none` керують лише тим, що виконавець робить із фінальною відповіддю після циклу агента.
Коли агент створює ізольоване нагадування з активного чату, OpenClaw зберігає збережену live-ціль доставки для резервного маршруту оголошення. Внутрішні ключі сесії можуть бути в нижньому регістрі; цілі доставки provider не реконструюються з цих ключів, коли доступний контекст поточного чату.
Коли агент створює ізольоване нагадування з активного чату, OpenClaw зберігає збережену live-ціль доставки для маршруту резервного оголошення. Внутрішні ключі сесії можуть бути в нижньому регістрі; цілі доставки provider не реконструюються з цих ключів, коли доступний контекст поточного чату.
Сповіщення про помилки надсилаються окремим маршрутом призначення:
Сповіщення про помилки використовують окремий шлях призначення:
- `cron.failureDestination` задає глобальне типове значення для сповіщень про помилки.
- `job.delivery.failureDestination` перевизначає це для окремого завдання.
- Якщо жодне не задано і завдання вже доставляє результат через `announce`, сповіщення про помилки тепер резервно надсилаються до тієї ж основної цілі оголошення.
- `delivery.failureDestination` підтримується лише для завдань `sessionTarget="isolated"`, якщо тільки основний режим доставки не є `webhook`.
- `cron.failureDestination` задає глобальне значення за замовчуванням для сповіщень про помилки.
- `job.delivery.failureDestination` перевизначає його для окремого завдання.
- Якщо не задано жодного з них, а завдання вже використовує доставку через `announce`, сповіщення про помилки тепер резервно надсилаються до тієї самої основної цілі оголошення.
- `delivery.failureDestination` підтримується лише для завдань із `sessionTarget="isolated"`, якщо тільки основний режим доставки не є `webhook`.
## Приклади CLI
@ -193,7 +194,7 @@ Cron — це вбудований планувальник Gateway. Він зб
--to "channel:C1234567890"
```
</Tab>
<Tab title="Перевизначення моделі та thinking">
<Tab title="Перевизначення моделі й thinking">
```bash
openclaw cron add \
--name "Deep analysis" \
@ -224,7 +225,7 @@ Gateway може відкривати HTTP-кінцеві точки Webhook д
### Автентифікація
Кожен запит повинен містити токен hook через заголовок:
Кожен запит має містити токен hook у заголовку:
- `Authorization: Bearer <token>` (рекомендовано)
- `x-openclaw-token: <token>`
@ -233,7 +234,7 @@ Gateway може відкривати HTTP-кінцеві точки Webhook д
<AccordionGroup>
<Accordion title="POST /hooks/wake">
Поставити системну подію в чергу для основної сесії:
Додає системну подію в чергу для основної сесії:
```bash
curl -X POST http://127.0.0.1:18789/hooks/wake \
@ -251,7 +252,7 @@ Gateway може відкривати HTTP-кінцеві точки Webhook д
</Accordion>
<Accordion title="POST /hooks/agent">
Запустити ізольований цикл агента:
Запускає ізольований цикл агента:
```bash
curl -X POST http://127.0.0.1:18789/hooks/agent \
@ -263,25 +264,25 @@ Gateway може відкривати HTTP-кінцеві точки Webhook д
Поля: `message` (обов’язково), `name`, `agentId`, `wakeMode`, `deliver`, `channel`, `to`, `model`, `thinking`, `timeoutSeconds`.
</Accordion>
<Accordion title="Mapped hooks (POST /hooks/<name>)">
Власні назви hook визначаються через `hooks.mappings` у конфігурації. Mappings можуть перетворювати довільні payload на дії `wake` або `agent` за допомогою шаблонів чи перетворень коду.
<Accordion title="Зіставлені hooks (POST /hooks/<name>)">
Користувацькі назви hook-ів визначаються через `hooks.mappings` у конфігурації. Зіставлення можуть перетворювати довільні payload на дії `wake` або `agent` за допомогою шаблонів або перетворень коду.
</Accordion>
</AccordionGroup>
<Warning>
Тримайте кінцеві точки hook за loopback, у tailnet або за довіреним reverse proxy.
Тримайте кінцеві точки hook-ів за loopback, tailnet або довіреним reverse proxy.
- Використовуйте окремий токен hook; не використовуйте повторно токени автентифікації gateway.
- Використовуйте окремий токен hook-ів; не використовуйте повторно токени автентифікації gateway.
- Тримайте `hooks.path` на окремому підшляху; `/` відхиляється.
- Установіть `hooks.allowedAgentIds`, щоб обмежити явну маршрутизацію `agentId`.
- Тримайте `hooks.allowRequestSessionKey=false`, якщо вам не потрібні сесії, вибрані викликачем.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також установіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити дозволені форми ключів сесії.
- Payload hook типово обгортаються межами безпеки.
- Залишайте `hooks.allowRequestSessionKey=false`, якщо вам не потрібні сесії, вибрані викликачем.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також установіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити дозволені форми ключів сесій.
- Payload-и hook-ів за замовчуванням обгортаються межами безпеки.
</Warning>
## Інтеграція Gmail PubSub
Підключіть тригери вхідних Gmail до OpenClaw через Google PubSub.
Підключіть тригери вхідної пошти Gmail до OpenClaw через Google PubSub.
<Note>
**Передумови:** CLI `gcloud`, `gog` (gogcli), увімкнені hooks OpenClaw, Tailscale для публічної кінцевої точки HTTPS.
@ -293,11 +294,11 @@ Gateway може відкривати HTTP-кінцеві точки Webhook д
openclaw webhooks gmail setup --account openclaw@gmail.com
```
Це записує конфігурацію `hooks.gmail`, вмикає preset Gmail і використовує Tailscale Funnel для кінцевої точки push.
Це записує конфігурацію `hooks.gmail`, вмикає пресет Gmail і використовує Tailscale Funnel для push-кінцевої точки.
### Автозапуск Gateway
Коли `hooks.enabled=true` і встановлено `hooks.gmail.account`, Gateway під час запуску запускає `gog gmail watch serve` і автоматично поновлює watch. Установіть `OPENCLAW_SKIP_GMAIL_WATCHER=1`, щоб відмовитися від цього.
Коли `hooks.enabled=true` і задано `hooks.gmail.account`, Gateway під час запуску запускає `gog gmail watch serve` і автоматично поновлює watch. Установіть `OPENCLAW_SKIP_GMAIL_WATCHER=1`, щоб відмовитися від цього.
### Ручне одноразове налаштування
@ -330,7 +331,7 @@ openclaw webhooks gmail setup --account openclaw@gmail.com
</Step>
</Steps>
### Перевизначення моделі Gmail
### Перевизначення моделі для Gmail
```json5
{
@ -376,9 +377,9 @@ openclaw cron edit <jobId> --clear-agent
Примітка щодо перевизначення моделі:
- `openclaw cron add|edit --model ...` змінює вибрану модель завдання.
- Якщо модель дозволена, саме ця provider/model передається в ізольований запуск агента.
- Якщо вона не дозволена, cron видає попередження та повертається до вибору моделі агента/типової моделі для завдання.
- Налаштовані ланцюжки fallback усе ще застосовуються, але просте перевизначення `--model` без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента як до мовчазної додаткової цілі повторної спроби.
- Якщо модель дозволена, саме цей provider/model передається до ізольованого запуску агента.
- Якщо вона не дозволена, cron видає попередження і повертається до вибору моделі агента/моделі за замовчуванням для завдання.
- Налаштовані ланцюжки fallback, як і раніше, застосовуються, але просте перевизначення `--model` без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента як до мовчазної додаткової цілі повторної спроби.
</Note>
## Конфігурація
@ -401,15 +402,15 @@ openclaw cron edit <jobId> --clear-agent
}
```
Sidecar стану runtime виводиться з `cron.store`: для сховища `.json`, такого як `~/clawd/cron/jobs.json`, використовується `~/clawd/cron/jobs-state.json`, а до шляху сховища без суфікса `.json` додається `-state.json`.
Побічний файл стану runtime виводиться з `cron.store`: сховище `.json`, таке як `~/clawd/cron/jobs.json`, використовує `~/clawd/cron/jobs-state.json`, тоді як до шляху сховища без суфікса `.json` додається `-state.json`.
Вимкнення cron: `cron.enabled: false` або `OPENCLAW_SKIP_CRON=1`.
<AccordionGroup>
<Accordion title="Поведінка повторних спроб">
**Повторна спроба для одноразових завдань**: тимчасові помилки (обмеження швидкості, перевантаження, мережа, помилка сервера) повторюються до 3 разів з експоненційним backoff. Постійні помилки негайно вимикаються.
**Повтор для одноразових завдань**: тимчасові помилки (ліміт запитів, перевантаження, мережа, помилка сервера) повторюються до 3 разів з експоненційною затримкою. Постійні помилки одразу вимикають завдання.
**Повторна спроба для повторюваних завдань**: експоненційний backoff (від 30 с до 60 хв) між повторними спробами. Backoff скидається після наступного успішного запуску.
**Повтор для повторюваних завдань**: експоненційна затримка (від 30 с до 60 хв) між повторними спробами. Після наступного успішного запуску затримка скидається.
</Accordion>
<Accordion title="Обслуговування">
@ -419,7 +420,7 @@ Sidecar стану runtime виводиться з `cron.store`: для схов
## Усунення несправностей
### Ланцюжок команд
### Командна драбина
```bash
openclaw status
@ -436,32 +437,32 @@ openclaw doctor
<Accordion title="Cron не спрацьовує">
- Перевірте `cron.enabled` і змінну середовища `OPENCLAW_SKIP_CRON`.
- Підтвердьте, що Gateway працює безперервно.
- Для розкладів `cron` перевірте часовий пояс (`--tz`) порівняно з часовим поясом хоста.
- `reason: not-due` у виводі запуску означає, що ручний запуск було перевірено через `openclaw cron run <jobId> --due`, і для завдання ще не настав час.
- Для розкладів `cron` перевірте часовий пояс (`--tz`) відносно часового поясу хоста.
- `reason: not-due` у виводі запуску означає, що ручний запуск було перевірено через `openclaw cron run <jobId> --due`, але час виконання завдання ще не настав.
</Accordion>
<Accordion title="Cron спрацював, але доставки немає">
- Режим доставки `none` означає, що резервне надсилання runner не очікується. Агент усе ще може надсилати напряму через інструмент `message`, коли маршрут чату доступний.
- Режим доставки `none` означає, що резервне надсилання з боку виконавця не очікується. Агент усе ще може надсилати напряму за допомогою інструмента `message`, коли маршрут чату доступний.
- Відсутня/некоректна ціль доставки (`channel`/`to`) означає, що вихідне надсилання було пропущено.
- Для Matrix скопійовані або застарілі завдання з room ID у `delivery.to`, записаними в нижньому регістрі, можуть завершуватися помилкою, оскільки room ID Matrix чутливі до регістру. Відредагуйте завдання, вказавши точне значення `!room:server` або `room:!room:server` із Matrix.
- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставку було заблоковано обліковими даними.
- Якщо ізольований запуск повертає лише тихий токен (`NO_REPLY` / `no_reply`), OpenClaw пригнічує пряме вихідне надсилання, а також резервний шлях підсумку в черзі, тож у чат нічого не буде опубліковано.
- Якщо агент має сам надіслати повідомлення користувачу, перевірте, що завдання має придатний маршрут (`channel: "last"` із попереднім чатом або явний канал/ціль).
- Для Matrix скопійовані або застарілі завдання з room ID у `delivery.to`, приведеними до нижнього регістру, можуть не працювати, оскільки room ID у Matrix чутливі до регістру. Відредагуйте завдання, вказавши точне значення `!room:server` або `room:!room:server` з Matrix.
- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставку заблоковано обліковими даними.
- Якщо ізольований запуск повертає лише безшумний токен (`NO_REPLY` / `no_reply`), OpenClaw пригнічує пряме вихідне надсилання, а також резервний шлях підсумку в черзі, тож назад у чат нічого не публікується.
- Якщо агент має сам надіслати повідомлення користувачу, перевірте, що завдання має придатний маршрут (`channel: "last"` з попереднім чатом або явний канал/ціль).
</Accordion>
<Accordion title="Схоже, що Cron або Heartbeat заважає rollover у стилі /new">
- Актуальність щоденного скидання та скидання через неактивність не базується на `updatedAt`; див. [Керування сесіями](/uk/concepts/session#session-lifecycle).
- Пробудження cron, запуски heartbeat, сповіщення exec і службові дії gateway можуть оновлювати рядок сесії для маршрутизації/стану, але вони не подовжують `sessionStartedAt` або `lastInteractionAt`.
- Для застарілих рядків, створених до появи цих полів, OpenClaw може відновити `sessionStartedAt` із заголовка сесії в transcript JSONL, якщо файл усе ще доступний. Застарілі рядки неактивності без `lastInteractionAt` використовують цей відновлений час початку як базову точку неактивності.
<Accordion title="Здається, cron або heartbeat заважає ротації у стилі /new">
- Актуальність щоденного скидання та скидання через простій не базується на `updatedAt`; див. [Керування сесіями](/uk/concepts/session#session-lifecycle).
- Пробудження cron, запуски heartbeat, сповіщення exec і службові дії gateway можуть оновлювати рядок сесії для маршрутизації/стану, але вони не продовжують `sessionStartedAt` або `lastInteractionAt`.
- Для застарілих рядків, створених до появи цих полів, OpenClaw може відновити `sessionStartedAt` із заголовка сесії transcript JSONL, якщо файл усе ще доступний. Для застарілих рядків простою без `lastInteractionAt` цей відновлений час початку використовується як базова точка простою.
</Accordion>
<Accordion title="Підводні камені з часовими поясами">
<Accordion title="Особливості часових поясів">
- Cron без `--tz` використовує часовий пояс хоста gateway.
- Розклади `at` без часового поясу трактуються як UTC.
- `activeHours` Heartbeat використовує визначення часового поясу з конфігурації.
- `activeHours` у Heartbeat використовує налаштоване визначення часового поясу.
</Accordion>
</AccordionGroup>
## Пов’язане
- [Автоматизація та завдання](/uk/automation) — усі механізми автоматизації в одному місці
- [Фонові завдання](/uk/automation/tasks) — реєстр завдань для виконань cron
- [Автоматизація і завдання](/uk/automation) — огляд усіх механізмів автоматизації
- [Фонові завдання](/uk/automation/tasks) — журнал завдань для виконань cron
- [Heartbeat](/uk/gateway/heartbeat) — періодичні цикли основної сесії
- [Часовий пояс](/uk/concepts/timezone) — конфігурація часового поясу

View File

@ -2,153 +2,170 @@
read_when:
- Вам потрібні заплановані завдання та пробудження
- Ви налагоджуєте виконання Cron і журнали
summary: Довідка CLI для `openclaw cron` (планувати та запускати фонові завдання)
summary: Довідник CLI для `openclaw cron` (планування та запуск фонових завдань)
title: Cron
x-i18n:
generated_at: "2026-04-26T01:24:10Z"
generated_at: "2026-04-27T02:07:40Z"
model: gpt-5.4
provider: openai
source_hash: 55cadcf73550367d399b7ca78e842f12a8113f2ec8749f59dadf2bbb5f8417ae
source_hash: 1c63cb6418b8ac4a38566f604162ca5d4e202726d1ef6a97e3ce072f90c179c3
source_path: cli/cron.md
workflow: 15
---
# `openclaw cron`
Керування завданнями Cron для планувальника Gateway.
Керуйте завданнями Cron для планувальника Gateway.
Пов’язано:
- Завдання Cron: [Завдання Cron](/uk/automation/cron-jobs)
Порада: виконайте `openclaw cron --help`, щоб побачити повний набір команд.
Порада: запустіть `openclaw cron --help`, щоб побачити повний набір команд.
Примітка: `openclaw cron list` і `openclaw cron show <job-id>` показують попередній перегляд
визначеного маршруту доставки. Для `channel: "last"` попередній перегляд показує, чи
маршрут визначено з головної/поточної сесії, чи він буде безпечно відхилений.
Примітка: `openclaw cron list` і `openclaw cron show <job-id>` попередньо показують
визначений маршрут доставки. Для `channel: "last"` попередній перегляд показує, чи
маршрут визначено з основної/поточної сесії, чи він буде безпечно відхилений.
Примітка: ізольовані завдання `cron add` типово використовують доставку `--announce`. Використовуйте `--no-deliver`, щоб зберегти
вивід внутрішнім. `--deliver` залишається застарілим псевдонімом для `--announce`.
Примітка: ізольовані завдання `cron add` типово використовують доставку `--announce`.
Використовуйте `--no-deliver`, щоб залишити вивід внутрішнім. `--deliver` залишається
застарілим псевдонімом для `--announce`.
Примітка: доставка в чат для ізольованого Cron є спільною. `--announce` — це резервна
доставка виконавцем для фінальної відповіді; `--no-deliver` вимикає цю резервну
поведінку, але не прибирає інструмент `message` агента, якщо маршрут чату доступний.
Примітка: доставка чату для ізольованого cron є спільною. `--announce` — це резервна
доставка виконавця для фінальної відповіді; `--no-deliver` вимикає цей резервний механізм,
але не прибирає інструмент `message` агента, якщо маршрут чату доступний.
Примітка: одноразові завдання (`--at`) типово видаляються після успішного виконання. Використовуйте `--keep-after-run`, щоб зберегти їх.
Примітка: одноразові завдання (`--at`) типово видаляються після успішного виконання.
Використовуйте `--keep-after-run`, щоб зберегти їх.
Примітка: `--session` підтримує `main`, `isolated`, `current` і `session:<id>`.
Використовуйте `current`, щоб прив’язати завдання до активної сесії під час створення, або `session:<id>` для
явного постійного ключа сесії.
Використовуйте `current`, щоб прив’язати до активної сесії під час створення, або
`session:<id>` для явного постійного ключа сесії.
Примітка: `--session isolated` створює новий transcript/session id для кожного запуску.
Безпечні налаштування та явні обрані користувачем перевизначення моделі/автентифікації можуть зберігатися, але
фоновий контекст розмови — ні: маршрутизація каналу/групи, політика надсилання/черги,
підвищення привілеїв, джерело та прив’язка середовища виконання ACP скидаються для нового ізольованого запуску.
Примітка: `--session isolated` створює новий ідентифікатор стенограми/сесії для
кожного запуску. Безпечні налаштування й явні користувацькі перевизначення моделі/автентифікації
можуть переноситися, але фоновий контекст розмови — ні: маршрутизація каналу/групи,
політика надсилання/черги, підвищення привілеїв, походження та прив’язка середовища виконання ACP
скидаються для нового ізольованого запуску.
Примітка: для одноразових завдань CLI дати й час `--at` без зсуву трактуються як UTC, якщо ви також не передасте
`--tz <iana>`, який інтерпретує цей локальний час у вказаному часовому поясі.
Примітка: для одноразових завдань CLI дата й час `--at` без зсуву інтерпретуються як UTC,
якщо ви також не передасте `--tz <iana>`, який тлумачить цей локальний час у вказаному часовому поясі.
Примітка: повторювані завдання тепер використовують експоненційне збільшення затримки повторних спроб після послідовних помилок (30s → 1m → 5m → 15m → 60m), а потім повертаються до звичайного розкладу після наступного успішного запуску.
Примітка: повторювані завдання тепер використовують експоненційне збільшення затримки повторних спроб
після послідовних помилок (30s → 1m → 5m → 15m → 60m), а потім повертаються до звичайного розкладу
після наступного успішного запуску.
Примітка: `openclaw cron run` тепер повертає керування, щойно ручний запуск поставлено в чергу на виконання. Успішні відповіді містять `{ ok: true, enqueued: true, runId }`; використовуйте `openclaw cron runs --id <job-id>`, щоб відстежити підсумковий результат.
Примітка: `openclaw cron run` тепер повертається щойно ручний запуск поставлено в чергу на виконання.
Успішні відповіді містять `{ ok: true, enqueued: true, runId }`; використовуйте
`openclaw cron runs --id <job-id>`, щоб відстежити підсумковий результат.
Примітка: `openclaw cron run <job-id>` типово примусово запускає завдання. Використовуйте `--due`, щоб зберегти
попередню поведінку «запускати, лише якщо настав час».
Примітка: `openclaw cron run <job-id>` типово примусово запускає завдання.
Використовуйте `--due`, щоб зберегти старішу поведінку «запускати лише якщо настав час».
Примітка: ізольовані оберти Cron пригнічують застарілі відповіді, що містять лише підтвердження. Якщо
перший результат — це лише проміжне оновлення стану і жоден дочірній запуск субагента не
відповідає за підсумкову відповідь, Cron повторно формує запит один раз для отримання реального результату
перед доставкою.
Примітка: ізольовані запуски cron пригнічують застарілі відповіді, що містять лише підтвердження.
Якщо перший результат — це лише проміжне оновлення стану й жоден дочірній запуск субагента
не відповідає за підсумкову відповідь, cron повторно формує запит один раз для отримання
реального результату перед доставкою.
Примітка: якщо ізольований запуск повертає лише тихий токен (`NO_REPLY` /
`no_reply`), Cron пригнічує як пряме вихідне надсилання, так і резервний шлях
поставленого в чергу підсумку, тож назад у чат нічого не публікується.
Примітка: якщо ізольований запуск cron повертає лише тихий токен (`NO_REPLY` /
`no_reply`), cron пригнічує як пряму вихідну доставку, так і резервний шлях
поставленого в чергу підсумку, тож у чат нічого не буде надіслано.
Примітка: ізольовані запуски cron розглядають відомі маркери відмови у фінальному виводі, як-от
`SYSTEM_RUN_DENIED`, `INVALID_REQUEST` і фрази відмови, пов’язані з прив’язкою до схвалення,
як помилки. Тоді `cron list` та історія запусків показують відповідний токен у причині помилки,
замість того щоб повідомляти про заблоковану команду як `ok`.
Примітка: `cron add|edit --model ...` використовує для завдання цю вибрану дозволену модель.
Якщо модель не дозволена, Cron попереджає та повертається до вибору моделі агента/типової
для завдання. Налаштовані ланцюжки резервного переходу все ще застосовуються, але звичайне перевизначення
моделі без явного списку резервних моделей для конкретного завдання більше не додає основну модель
агента як приховану додаткову ціль повторної спроби.
Якщо модель не дозволена, cron показує попередження та натомість повертається до вибору
моделі агента/типової моделі для завдання. Налаштовані ланцюжки резервного перемикання все ще
застосовуються, але звичайне перевизначення моделі без явного списку резервних варіантів для завдання
більше не додає основну модель агента як приховану додаткову ціль для повторної спроби.
Примітка: пріоритет моделі для ізольованого Cron такий: спочатку перевизначення Gmail-hook, потім `--model` для
конкретного завдання, потім будь-яке збережене перевизначення моделі cron-session, вибране користувачем, а вже потім
звичайний вибір агента/типової моделі.
Примітка: пріоритет моделей в ізольованому cron такий: спочатку перевизначення Gmail-hook,
потім `--model` для завдання, потім будь-яке збережене користувачем перевизначення моделі cron-сесії,
а далі — звичайний вибір моделі агента/типової моделі.
Примітка: швидкий режим ізольованого Cron дотримується визначеного вибору live-моделі. Конфігурація
моделі `params.fastMode` застосовується типово, але збережене перевизначення `fastMode` для сесії
усе одно має вищий пріоритет за конфігурацію.
Примітка: швидкий режим ізольованого cron дотримується визначеного вибору live-моделі.
Конфігурація моделі `params.fastMode` застосовується типово, але збережене в сесії
перевизначення `fastMode` усе одно має вищий пріоритет над конфігурацією.
Примітка: якщо ізольований запуск викидає `LiveSessionModelSwitchError`, Cron зберігає
змінений provider/model (а також змінене перевизначення профілю автентифікації, якщо воно є) для
активного запуску перед повторною спробою. Зовнішній цикл повторних спроб обмежено 2 повторними спробами
перемикання після початкової спроби, після чого виконання переривається замість нескінченного циклу.
Примітка: якщо ізольований запуск викидає `LiveSessionModelSwitchError`, cron зберігає
перемкнутого провайдера/модель (а також перевизначення профілю автентифікації після перемикання,
якщо воно є) для активного запуску перед повторною спробою. Зовнішній цикл повторних спроб
обмежено 2 спробами перемикання після початкової спроби, після чого виконання переривається,
замість того щоб зациклитися назавжди.
Примітка: сповіщення про помилки спочатку використовують `delivery.failureDestination`, потім
глобальний `cron.failureDestination`, а потім у разі відсутності явно налаштованого
місця призначення для помилок повертаються до основної цілі announce цього завдання.
Примітка: сповіщення про збої спочатку використовують `delivery.failureDestination`, потім
глобальний `cron.failureDestination`, і зрештою повертаються до основної цілі
announce для завдання, якщо явне призначення для збоїв не налаштоване.
Примітка: збереження/очищення контролюється в конфігурації:
Примітка: утримання/очищення контролюється в конфігурації:
- `cron.sessionRetention` (типово `24h`) очищає завершені сесії ізольованих запусків.
- `cron.runLog.maxBytes` + `cron.runLog.keepLines` очищають `~/.openclaw/cron/runs/<jobId>.jsonl`.
Примітка щодо оновлення: якщо у вас є старіші завдання Cron, створені до поточного формату доставки/зберігання, виконайте
`openclaw doctor --fix`. Doctor тепер нормалізує застарілі поля Cron (`jobId`, `schedule.cron`,
поля доставки верхнього рівня, включно із застарілим `threadId`, псевдоніми доставки `provider` у payload) і мігрує прості
резервні завдання Webhook з `notify: true` на явну доставку Webhook, якщо налаштовано `cron.webhook`.
Примітка щодо оновлення: якщо у вас є старіші завдання cron ще до поточного формату доставки/зберігання,
запустіть `openclaw doctor --fix`. Тепер doctor нормалізує застарілі поля cron (`jobId`, `schedule.cron`,
поля доставки верхнього рівня, включно із застарілим `threadId`, псевдоніми доставки `provider` у payload)
і мігрує прості резервні завдання webhook з `notify: true` до явної доставки webhook,
коли налаштовано `cron.webhook`.
## Типові зміни
## Поширені зміни
Оновити параметри доставки без зміни повідомлення:
Оновіть параметри доставки без зміни повідомлення:
```bash
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
```
Вимкнути доставку для ізольованого завдання:
Вимкніть доставку для ізольованого завдання:
```bash
openclaw cron edit <job-id> --no-deliver
```
Увімкнути полегшений початковий контекст для ізольованого завдання:
Увімкніть полегшений початковий контекст для ізольованого завдання:
```bash
openclaw cron edit <job-id> --light-context
```
Оголошувати в конкретний канал:
Оголошуйте в конкретний канал:
```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
```
Створити ізольоване завдання з полегшеним початковим контекстом:
Створіть ізольоване завдання з полегшеним початковим контекстом:
```bash
openclaw cron add \
--name "Lightweight morning brief" \
--name "Легкий ранковий брифінг" \
--cron "0 7 * * *" \
--session isolated \
--message "Summarize overnight updates." \
--message "Підсумуй нічні оновлення." \
--light-context \
--no-deliver
```
`--light-context` застосовується лише до ізольованих завдань типу agent-turn. Для запусків Cron полегшений режим залишає початковий контекст порожнім замість додавання повного набору початкового контексту робочого середовища.
`--light-context` застосовується лише до ізольованих завдань типу agent-turn. Для запусків cron
полегшений режим залишає початковий контекст порожнім замість того, щоб додавати повний
набір початкового контексту робочого простору.
Примітка щодо відповідальності за доставку:
- Доставка в чат для ізольованого Cron є спільною. Агент може надсилати напряму за допомогою
інструмента `message`, якщо маршрут чату доступний.
- `announce` резервно доставляє фінальну відповідь лише тоді, коли агент не надіслав її
напряму до визначеної цілі. `webhook` надсилає завершений payload на URL.
`none` вимикає резервну доставку виконавцем.
- Нагадування, створені з активного чату, зберігають живу ціль доставки чату
для резервної доставки announce. Внутрішні ключі сесій можуть бути у нижньому регістрі; не
використовуйте їх як джерело істини для чутливих до регістру ідентифікаторів provider, таких як ID кімнат Matrix.
- Доставка чату для ізольованого cron є спільною. Агент може надсилати напряму
за допомогою інструмента `message`, коли маршрут чату доступний.
- `announce` резервно доставляє фінальну відповідь лише тоді, коли агент не надіслав
її напряму до визначеної цілі. `webhook` надсилає завершений payload за URL.
`none` вимикає резервну доставку виконавця.
- Нагадування, створені з активного чату, зберігають ціль доставки live-чату
для резервної доставки announce. Внутрішні ключі сесії можуть бути в нижньому регістрі;
не використовуйте їх як джерело істини для чутливих до регістру ідентифікаторів провайдерів,
таких як ідентифікатори кімнат Matrix.
## Типові команди адміністрування
## Поширені команди адміністрування
Ручний запуск:
@ -160,10 +177,11 @@ openclaw cron run <job-id> --due
openclaw cron runs --id <job-id> --limit 50
```
Записи `cron runs` містять діагностику доставки з очікуваною ціллю Cron,
визначеною ціллю, надсиланнями через інструмент message, використанням резервної доставки та станом доставлення.
Записи `cron runs` містять діагностику доставки з цільовою ціллю cron,
визначеною ціллю, надсиланнями через інструмент message, використанням резервного
механізму та станом доставки.
Перепризначення агента/сесії:
Перенаправлення агента/сесії:
```bash
openclaw cron edit <job-id> --agent ops
@ -172,7 +190,7 @@ openclaw cron edit <job-id> --session current
openclaw cron edit <job-id> --session "session:daily-brief"
```
Коригування доставки:
Налаштування доставки:
```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
@ -181,15 +199,15 @@ openclaw cron edit <job-id> --no-best-effort-deliver
openclaw cron edit <job-id> --no-deliver
```
Примітка щодо доставки помилок:
Примітка щодо доставки збоїв:
- `delivery.failureDestination` підтримується для ізольованих завдань.
- Завдання головної сесії можуть використовувати `delivery.failureDestination` лише тоді, коли основний
режим доставки — `webhook`.
- Якщо ви не задаєте жодного місця призначення для помилок і завдання вже оголошує у
канал, сповіщення про помилки повторно використовують ту саму ціль announce.
- Завдання основної сесії можуть використовувати `delivery.failureDestination`
лише тоді, коли основний режим доставки — `webhook`.
- Якщо ви не задаєте жодного призначення для збоїв, а завдання вже оголошує в
канал, сповіщення про збої повторно використовують ту саму ціль announce.
## Пов’язане
## Пов’язано
- [Довідка CLI](/uk/cli)
- [Довідник CLI](/uk/cli)
- [Заплановані завдання](/uk/automation/cron-jobs)

View File

@ -1,48 +1,48 @@
---
read_when:
- Ви хочете запустити OpenClaw із хмарними або локальними моделями через Ollama
- Вам потрібні інструкції з налаштування та конфігурації Ollama
- Ви хочете використовувати моделі бачення Ollama для розуміння зображень
- Ви хочете запустити OpenClaw з хмарними або локальними моделями через Ollama
- Вам потрібні вказівки щодо налаштування та конфігурації Ollama
- Ви хочете моделі бачення Ollama для розуміння зображень
summary: Запустіть OpenClaw з Ollama (хмарні та локальні моделі)
title: Ollama
x-i18n:
generated_at: "2026-04-27T01:36:39Z"
generated_at: "2026-04-27T02:07:43Z"
model: gpt-5.4
provider: openai
source_hash: d1ff7af392874a6c6fafefd73b13dd8454c6589991c817eead7e8ffae6d3ac31
source_hash: aaa8007befc589f1ed5f77bc360fa82762c771c051fbaadc8d56e296b2182980
source_path: providers/ollama.md
workflow: 15
---
OpenClaw інтегрується з нативним API Ollama (`/api/chat`) для розміщених хмарних моделей і локальних/власнорозміщених серверів Ollama. Ви можете використовувати Ollama у трьох режимах: `Cloud + Local` через доступний хост Ollama, `Cloud only` проти `https://ollama.com` або `Local only` проти доступного хоста Ollama.
OpenClaw інтегрується з нативним API Ollama (`/api/chat`) для розміщених хмарних моделей і локальних/self-hosted серверів Ollama. Ви можете використовувати Ollama у трьох режимах: `Cloud + Local` через доступний хост Ollama, `Cloud only` через `https://ollama.com` або `Local only` через доступний хост Ollama.
<Warning>
**Користувачі віддаленого Ollama**: Не використовуйте OpenAI-сумісну URL-адресу `/v1` (`http://host:11434/v1`) з OpenClaw. Це ламає виклик інструментів, і моделі можуть виводити сирий JSON інструментів як звичайний текст. Натомість використовуйте URL нативного API Ollama: `baseUrl: "http://host:11434"` (без `/v1`).
**Користувачі віддаленого Ollama**: Не використовуйте OpenAI-сумісний URL `/v1` (`http://host:11434/v1`) з OpenClaw. Це ламає виклики інструментів, і моделі можуть виводити сирий JSON інструментів як звичайний текст. Натомість використовуйте URL нативного API Ollama: `baseUrl: "http://host:11434"` (без `/v1`).
</Warning>
## Початок роботи
Виберіть бажаний спосіб налаштування та режим.
Оберіть бажаний спосіб і режим налаштування.
<Tabs>
<Tab title="Onboarding (рекомендовано)">
**Найкраще для:** найшвидшого шляху до робочого хмарного або локального налаштування Ollama.
<Tab title="Онбординг (рекомендовано)">
**Найкраще для:** найшвидшого шляху до робочого налаштування Ollama Cloud або локального Ollama.
<Steps>
<Step title="Запустіть onboarding">
<Step title="Запустіть онбординг">
```bash
openclaw onboard
```
Виберіть **Ollama** зі списку провайдерів.
</Step>
<Step title="Виберіть свій режим">
- **Cloud + Local** — локальний хост Ollama плюс хмарні моделі, спрямовані через цей хост
<Step title="Оберіть режим">
- **Cloud + Local** — локальний хост Ollama плюс хмарні моделі, маршрутизовані через цей хост
- **Cloud only** — розміщені моделі Ollama через `https://ollama.com`
- **Local only** — лише локальні моделі
</Step>
<Step title="Виберіть модель">
`Cloud only` запитує `OLLAMA_API_KEY` і пропонує типові розміщені хмарні значення. `Cloud + Local` і `Local only` запитують базову URL-адресу Ollama, виявляють доступні моделі й автоматично завантажують вибрану локальну модель, якщо вона ще недоступна. `Cloud + Local` також перевіряє, чи цей хост Ollama увійшов у систему для хмарного доступу.
<Step title="Оберіть модель">
`Cloud only` запитує `OLLAMA_API_KEY` і пропонує стандартні хмарні значення за замовчуванням. `Cloud + Local` і `Local only` запитують базовий URL Ollama, виявляють доступні моделі та автоматично завантажують вибрану локальну модель, якщо її ще немає. `Cloud + Local` також перевіряє, чи виконано вхід на цьому хості Ollama для доступу до хмари.
</Step>
<Step title="Переконайтеся, що модель доступна">
```bash
@ -59,7 +59,7 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
--accept-risk
```
За бажанням укажіть власну базову URL-адресу або модель:
За бажанням можна вказати власний базовий URL або модель:
```bash
openclaw onboard --non-interactive \
@ -75,12 +75,12 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
**Найкраще для:** повного контролю над хмарним або локальним налаштуванням.
<Steps>
<Step title="Виберіть хмарний або локальний варіант">
- **Cloud + Local**: установіть Ollama, увійдіть через `ollama signin` і маршрутизуйте хмарні запити через цей хост
<Step title="Оберіть хмарний або локальний режим">
- **Cloud + Local**: встановіть Ollama, увійдіть через `ollama signin` і маршрутизуйте хмарні запити через цей хост
- **Cloud only**: використовуйте `https://ollama.com` з `OLLAMA_API_KEY`
- **Local only**: установіть Ollama з [ollama.com/download](https://ollama.com/download)
</Step>
<Step title="Завантажте локальну модель (лише локально)">
<Step title="Завантажте локальну модель (лише локальний режим)">
```bash
ollama pull gemma4
# або
@ -90,7 +90,7 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
```
</Step>
<Step title="Увімкніть Ollama для OpenClaw">
Для `Cloud only` використовуйте свій справжній `OLLAMA_API_KEY`. Для конфігурацій на основі хоста підійде будь-яке значення-заповнювач:
Для `Cloud only` використовуйте свій справжній `OLLAMA_API_KEY`. Для конфігурацій через хост підійде будь-яке заповнювальне значення:
```bash
# Хмара
@ -99,11 +99,11 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
# Лише локально
export OLLAMA_API_KEY="ollama-local"
# Або налаштуйте у своєму файлі конфігурації
# Або налаштуйте у своєму конфігураційному файлі
openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
```
</Step>
<Step title="Перегляньте й установіть свою модель">
<Step title="Перегляньте та встановіть модель">
```bash
openclaw models list
openclaw models set ollama/gemma4
@ -130,27 +130,27 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
<Tabs>
<Tab title="Cloud + Local">
`Cloud + Local` використовує доступний хост Ollama як точку керування і для локальних, і для хмарних моделей. Це рекомендований Ollama гібридний сценарій.
`Cloud + Local` використовує доступний хост Ollama як контрольну точку і для локальних, і для хмарних моделей. Це рекомендований Ollama гібридний сценарій.
Використовуйте **Cloud + Local** під час налаштування. OpenClaw запитує базову URL-адресу Ollama, виявляє локальні моделі з цього хоста й перевіряє, чи хост увійшов у систему для хмарного доступу через `ollama signin`. Коли хост увійшов у систему, OpenClaw також пропонує типові розміщені хмарні моделі, як-от `kimi-k2.5:cloud`, `minimax-m2.7:cloud` і `glm-5.1:cloud`.
Використовуйте **Cloud + Local** під час налаштування. OpenClaw запитує базовий URL Ollama, виявляє локальні моделі на цьому хості та перевіряє, чи виконано вхід на хості для доступу до хмари через `ollama signin`. Якщо вхід на хості виконано, OpenClaw також пропонує розміщені хмарні типові значення, такі як `kimi-k2.5:cloud`, `minimax-m2.7:cloud` і `glm-5.1:cloud`.
Якщо хост ще не увійшов у систему, OpenClaw зберігає налаштування в режимі лише локального доступу, доки ви не виконаєте `ollama signin`.
Якщо вхід на хості ще не виконано, OpenClaw залишає налаштування лише локальним, доки ви не виконаєте `ollama signin`.
</Tab>
<Tab title="Cloud only">
`Cloud only` працює з розміщеним API Ollama за адресою `https://ollama.com`.
`Cloud only` працює через розміщений API Ollama за адресою `https://ollama.com`.
Використовуйте **Cloud only** під час налаштування. OpenClaw запитує `OLLAMA_API_KEY`, установлює `baseUrl: "https://ollama.com"` і заповнює список розміщених хмарних моделей. Цей шлях **не** потребує локального сервера Ollama або `ollama signin`.
Використовуйте **Cloud only** під час налаштування. OpenClaw запитує `OLLAMA_API_KEY`, встановлює `baseUrl: "https://ollama.com"` і заповнює список розміщених хмарних моделей. Цей шлях **не** потребує локального сервера Ollama або `ollama signin`.
Список хмарних моделей, показаний під час `openclaw onboard`, заповнюється в реальному часі з `https://ollama.com/api/tags`, обмежується 500 записами, тому засіб вибору відображає поточний розміщений каталог, а не статичний початковий список. Якщо `ollama.com` недоступний або не повертає моделей під час налаштування, OpenClaw повертається до попередніх жорстко закодованих пропозицій, щоб onboarding усе одно завершився.
Список хмарних моделей, показаний під час `openclaw onboard`, заповнюється динамічно з `https://ollama.com/api/tags`, з обмеженням до 500 записів, тому засіб вибору відображає поточний розміщений каталог, а не статичний початковий список. Якщо `ollama.com` недоступний або не повертає моделей під час налаштування, OpenClaw повертається до попередніх жорстко закодованих підказок, щоб онбординг усе одно завершився.
</Tab>
<Tab title="Local only">
У режимі лише локального доступу OpenClaw виявляє моделі з налаштованого екземпляра Ollama. Цей шлях призначений для локальних або власнорозміщених серверів Ollama.
У режимі лише локально OpenClaw виявляє моделі з налаштованого екземпляра Ollama. Цей шлях призначений для локальних або self-hosted серверів Ollama.
Наразі OpenClaw пропонує `gemma4` як локальну модель за замовчуванням.
OpenClaw наразі пропонує `gemma4` як локальну модель за замовчуванням.
</Tab>
</Tabs>
@ -159,16 +159,16 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
Коли ви встановлюєте `OLLAMA_API_KEY` (або профіль автентифікації) і **не** визначаєте `models.providers.ollama`, OpenClaw виявляє моделі з локального екземпляра Ollama за адресою `http://127.0.0.1:11434`.
| Поведінка | Докладно |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Запит до каталогу | Виконує запит до `/api/tags` |
| Виявлення можливостей | Використовує найкраще можливе визначення через пошуки `/api/show`, щоб зчитати `contextWindow`, розгорнуті параметри Modelfile `num_ctx` і можливості, зокрема vision/tools |
| Моделі vision | Моделі з можливістю `vision`, про яку повідомляє `/api/show`, позначаються як здатні працювати із зображеннями (`input: ["text", "image"]`), тому OpenClaw автоматично додає зображення до запиту |
| Виявлення reasoning | Позначає `reasoning` за евристикою імені моделі (`r1`, `reasoning`, `think`) |
| Ліміти токенів | Установлює `maxTokens` на типовий максимальний ліміт токенів Ollama, який використовує OpenClaw |
| Вартість | Установлює всі значення вартості в `0` |
| Поведінка | Докладно |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Запит каталогу | Виконує запити до `/api/tags` |
| Виявлення можливостей | Використовує best-effort запити до `/api/show`, щоб зчитати `contextWindow`, розгорнуті параметри Modelfile `num_ctx` і можливості, включно з vision/tools |
| Моделі бачення | Моделі з можливістю `vision`, про яку повідомляє `/api/show`, позначаються як здатні працювати із зображеннями (`input: ["text", "image"]`), тому OpenClaw автоматично додає зображення до промпту |
| Виявлення міркування | Позначає `reasoning` за допомогою евристики на основі назви моделі (`r1`, `reasoning`, `think`) |
| Обмеження токенів | Встановлює `maxTokens` на типове максимальне обмеження токенів Ollama, яке використовує OpenClaw |
| Вартість | Встановлює всі вартості в `0` |
Це дає змогу уникнути ручного додавання моделей, водночас зберігаючи каталог узгодженим із локальним екземпляром Ollama.
Це дає змогу уникнути ручного додавання моделей, водночас зберігаючи узгодженість каталогу з локальним екземпляром Ollama.
```bash
# Подивитися, які моделі доступні
@ -182,24 +182,24 @@ openclaw models list
ollama pull mistral
```
Нова модель буде автоматично виявлена й доступна для використання.
Нова модель буде автоматично виявлена й стане доступною для використання.
<Note>
Якщо ви явно встановлюєте `models.providers.ollama`, автоматичне виявлення пропускається, і вам потрібно визначити моделі вручну. Дивіться розділ явної конфігурації нижче.
Якщо ви явно задаєте `models.providers.ollama`, автовиявлення пропускається, і моделі потрібно визначати вручну. Дивіться розділ про явну конфігурацію нижче.
</Note>
## Vision і опис зображень
## Бачення та опис зображень
Вбудований Plugin Ollama реєструє Ollama як провайдера розуміння медіа, здатного працювати із зображеннями. Це дає OpenClaw змогу спрямовувати явні запити на опис зображень і налаштовані типові моделі зображень через локальні або розміщені vision-моделі Ollama.
Вбудований Plugin Ollama реєструє Ollama як провайдера розуміння медіа, здатного працювати із зображеннями. Це дає OpenClaw змогу маршрутизувати явні запити на опис зображень і налаштовані типові моделі для зображень через локальні або розміщені моделі бачення Ollama.
Для локального vision завантажте модель, яка підтримує зображення:
Для локального бачення завантажте модель, що підтримує зображення:
```bash
ollama pull qwen2.5vl:7b
export OLLAMA_API_KEY="ollama-local"
```
Потім перевірте через infer CLI:
Потім перевірте за допомогою CLI infer:
```bash
openclaw infer image describe \
@ -208,7 +208,7 @@ openclaw infer image describe \
--json
```
`--model` має бути повним посиланням формату `<provider/model>`. Коли його встановлено, `openclaw infer image describe` запускає цю модель безпосередньо замість того, щоб пропускати опис, оскільки модель підтримує нативний vision.
`--model` має бути повним посиланням у форматі `<provider/model>`. Якщо його встановлено, `openclaw infer image describe` запускає цю модель безпосередньо замість того, щоб пропускати опис, бо модель підтримує нативне бачення.
Щоб зробити Ollama типовою моделлю розуміння зображень для вхідних медіа, налаштуйте `agents.defaults.imageModel`:
@ -224,7 +224,7 @@ openclaw infer image describe \
}
```
Якщо ви визначаєте `models.providers.ollama.models` вручну, позначте vision-моделі підтримкою вводу зображень:
Якщо ви визначаєте `models.providers.ollama.models` вручну, позначайте моделі бачення підтримкою вхідних зображень:
```json5
{
@ -236,26 +236,26 @@ openclaw infer image describe \
}
```
OpenClaw відхиляє запити на опис зображень для моделей, які не позначені як здатні працювати із зображеннями. За неявного виявлення OpenClaw зчитує це з Ollama, коли `/api/show` повідомляє про можливість vision.
OpenClaw відхиляє запити на опис зображень для моделей, які не позначено як здатні працювати із зображеннями. За неявного виявлення OpenClaw зчитує це з Ollama, коли `/api/show` повідомляє про можливість vision.
## Конфігурація
<Tabs>
<Tab title="Базова (неявне виявлення)">
Найпростіший шлях увімкнення лише локального режиму — через змінну середовища:
Найпростіший спосіб увімкнути режим лише локально — через змінну середовища:
```bash
export OLLAMA_API_KEY="ollama-local"
```
<Tip>
Якщо `OLLAMA_API_KEY` установлено, ви можете не вказувати `apiKey` у записі провайдера, і OpenClaw підставить його для перевірок доступності.
Якщо встановлено `OLLAMA_API_KEY`, ви можете не вказувати `apiKey` у записі провайдера, і OpenClaw підставить його для перевірок доступності.
</Tip>
</Tab>
<Tab title="Явна (ручні моделі)">
Використовуйте явну конфігурацію, коли вам потрібне налаштування розміщеної хмари, Ollama працює на іншому хості/порту, ви хочете примусово задати певні контекстні вікна або списки моделей, або вам потрібні повністю ручні визначення моделей.
Використовуйте явну конфігурацію, якщо вам потрібне розміщене хмарне налаштування, Ollama працює на іншому хості/порті, ви хочете примусово задати конкретні контекстні вікна або списки моделей, або вам потрібні повністю ручні визначення моделей.
```json5
{
@ -284,8 +284,8 @@ OpenClaw відхиляє запити на опис зображень для
</Tab>
<Tab title="Власна базова URL-адреса">
Якщо Ollama працює на іншому хості або порту (явна конфігурація вимикає автоматичне виявлення, тому визначайте моделі вручну):
<Tab title="Власний базовий URL">
Якщо Ollama працює на іншому хості або порту (явна конфігурація вимикає автовиявлення, тому визначайте моделі вручну):
```json5
{
@ -293,8 +293,8 @@ OpenClaw відхиляє запити на опис зображень для
providers: {
ollama: {
apiKey: "ollama-local",
baseUrl: "http://ollama-host:11434", // Без /v1 використовуйте URL нативного API Ollama
api: "ollama", // Укажіть явно, щоб гарантовано забезпечити нативну поведінку виклику інструментів
baseUrl: "http://ollama-host:11434", // Без /v1 - використовуйте URL нативного API Ollama
api: "ollama", // Явно задайте, щоб гарантувати нативну поведінку виклику інструментів
},
},
},
@ -302,7 +302,7 @@ OpenClaw відхиляє запити на опис зображень для
```
<Warning>
Не додавайте `/v1` до URL-адреси. Шлях `/v1` використовує OpenAI-сумісний режим, де виклик інструментів ненадійний. Використовуйте базову URL-адресу Ollama без суфікса шляху.
Не додавайте `/v1` до URL. Шлях `/v1` використовує OpenAI-сумісний режим, де виклик інструментів працює ненадійно. Використовуйте базовий URL Ollama без суфікса шляху.
</Warning>
</Tab>
@ -325,19 +325,19 @@ OpenClaw відхиляє запити на опис зображень для
}
```
Також підтримуються власні ідентифікатори провайдера Ollama. Коли посилання на модель використовує префікс активного провайдера, наприклад `ollama-spark/qwen3:32b`, OpenClaw видаляє лише цей префікс перед викликом Ollama, тому сервер отримує `qwen3:32b`.
Також підтримуються власні ідентифікатори провайдера Ollama. Коли посилання на модель використовує префікс активного провайдера, наприклад `ollama-spark/qwen3:32b`, OpenClaw прибирає лише цей префікс перед викликом Ollama, щоб сервер отримував `qwen3:32b`.
## Вебпошук Ollama
OpenClaw підтримує **Вебпошук Ollama** як вбудований провайдер `web_search`.
OpenClaw підтримує **Ollama Web Search** як вбудований провайдер `web_search`.
| Властивість | Докладно |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Хост | Використовує налаштований вами хост Ollama (`models.providers.ollama.baseUrl`, якщо задано, інакше `http://127.0.0.1:11434`); `https://ollama.com` напряму використовує розміщений API |
| Автентифікація | Без ключа для локальних хостів Ollama, у яких виконано вхід; `OLLAMA_API_KEY` або налаштована автентифікація провайдера для прямого пошуку через `https://ollama.com` або хостів, захищених автентифікацією |
| Вимога | Локальні/власнорозміщені хости мають бути запущені та з виконаним входом через `ollama signin`; прямий розміщений пошук потребує `baseUrl: "https://ollama.com"` плюс справжній ключ API Ollama |
| Автентифікація | Без ключа для локальних хостів Ollama із виконаним входом; `OLLAMA_API_KEY` або налаштована автентифікація провайдера для прямого пошуку через `https://ollama.com` або хостів, захищених автентифікацією |
| Вимога | Локальні/self-hosted хости мають бути запущені й мати виконаний вхід через `ollama signin`; прямий розміщений пошук вимагає `baseUrl: "https://ollama.com"` плюс справжній ключ API Ollama |
Виберіть **Ollama Web Search** під час `openclaw onboard` або `openclaw configure --section web`, або встановіть:
Оберіть **Ollama Web Search** під час `openclaw onboard` або `openclaw configure --section web`, або задайте:
```json5
{
@ -352,7 +352,7 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
```
<Note>
Повні відомості про налаштування та поведінку див. у [Ollama Web Search](/uk/tools/ollama-search).
Повні відомості про налаштування та поведінку дивіться в [Ollama Web Search](/uk/tools/ollama-search).
</Note>
## Розширена конфігурація
@ -360,10 +360,10 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
<AccordionGroup>
<Accordion title="Застарілий OpenAI-сумісний режим">
<Warning>
**Виклик інструментів ненадійний у OpenAI-сумісному режимі.** Використовуйте цей режим лише якщо вам потрібен формат OpenAI для проксі і ви не залежите від нативної поведінки виклику інструментів.
**У OpenAI-сумісному режимі виклик інструментів працює ненадійно.** Використовуйте цей режим лише тоді, коли вам потрібен формат OpenAI для проксі й ви не залежите від нативної поведінки виклику інструментів.
</Warning>
Якщо вам натомість потрібно використовувати OpenAI-сумісну кінцеву точку (наприклад, за проксі, який підтримує лише формат OpenAI), явно встановіть `api: "openai-completions"`:
Якщо вам потрібно використовувати OpenAI-сумісний endpoint замість цього (наприклад, за проксі, який підтримує лише формат OpenAI), явно задайте `api: "openai-completions"`:
```json5
{
@ -381,9 +381,9 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
}
```
У цьому режимі потокове передавання і виклик інструментів можуть не підтримуватися одночасно. Може знадобитися вимкнути потокове передавання за допомогою `params: { streaming: false }` у конфігурації моделі.
У цьому режимі одночасна підтримка потокової передачі та виклику інструментів може бути недоступною. Можливо, вам доведеться вимкнути потокову передачу за допомогою `params: { streaming: false }` у конфігурації моделі.
Коли `api: "openai-completions"` використовується з Ollama, OpenClaw типово впроваджує `options.num_ctx`, щоб Ollama мовчки не повертався до контекстного вікна 4096. Якщо ваш проксі/вищестоящий сервіс відхиляє невідомі поля `options`, вимкніть цю поведінку:
Коли `api: "openai-completions"` використовується з Ollama, OpenClaw типово додає `options.num_ctx`, щоб Ollama не переходив непомітно до контекстного вікна 4096. Якщо ваш проксі/upstream відхиляє невідомі поля `options`, вимкніть цю поведінку:
```json5
{
@ -404,9 +404,9 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
</Accordion>
<Accordion title="Контекстні вікна">
Для автоматично виявлених моделей OpenClaw використовує контекстне вікно, про яке повідомляє Ollama, коли воно доступне, зокрема більші значення `PARAMETER num_ctx` із власних Modelfile. В іншому разі він повертається до типового контекстного вікна Ollama, яке використовує OpenClaw.
Для автоматично виявлених моделей OpenClaw використовує контекстне вікно, про яке повідомляє Ollama, коли воно доступне, включно з більшими значеннями `PARAMETER num_ctx` із власних Modelfile. Інакше він повертається до типового контекстного вікна Ollama, яке використовує OpenClaw.
Ви можете перевизначити `contextWindow` і `maxTokens` у явній конфігурації провайдера:
Ви можете перевизначити `contextWindow` і `maxTokens` у явній конфігурації провайдера. Щоб обмежити контекст Ollama під час виконання для кожного запиту без перебудови Modelfile, задайте `params.num_ctx`; OpenClaw надсилає його як `options.num_ctx` і для нативного Ollama, і для OpenAI-сумісного адаптера Ollama. Некоректні, нульові, від’ємні та нескінченні значення ігноруються, і використовується `contextWindow`.
```json5
{
@ -418,6 +418,9 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
id: "llama3.3",
contextWindow: 131072,
maxTokens: 65536,
params: {
num_ctx: 32768,
},
}
]
}
@ -426,35 +429,37 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
}
```
Також працює `agents.defaults.models["ollama/<model>"].params.num_ctx` для окремої моделі. Якщо налаштовано обидва варіанти, явний запис моделі в провайдері має пріоритет над типовим значенням агента.
</Accordion>
<Accordion title="Моделі reasoning">
OpenClaw типово вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` такими, що підтримують reasoning.
<Accordion title="Моделі міркування">
OpenClaw типово вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` здатними до міркування.
```bash
ollama pull deepseek-r1:32b
```
Жодної додаткової конфігурації не потрібно — OpenClaw позначає їх автоматично.
Додаткова конфігурація не потрібна — OpenClaw позначає їх автоматично.
</Accordion>
<Accordion title="Вартість моделей">
Ollama є безкоштовним і працює локально, тому вартість усіх моделей встановлюється в $0. Це стосується як автоматично виявлених, так і вручну визначених моделей.
Ollama є безкоштовним і працює локально, тому вартість усіх моделей встановлено на рівні $0. Це стосується як автоматично виявлених, так і вручну визначених моделей.
</Accordion>
<Accordion title="Ембедінги пам’яті">
Вбудований Plugin Ollama реєструє провайдера ембедінгів пам’яті для
[пошуку в пам’яті](/uk/concepts/memory). Він використовує налаштовані базову URL-адресу Ollama
та ключ API, викликає поточну кінцеву точку Ollama `/api/embed` і групує
кілька фрагментів пам’яті в один запит `input`, коли це можливо.
<Accordion title="Вбудовування пам’яті">
Вбудований Plugin Ollama реєструє провайдера вбудовувань пам’яті для
[пошуку в пам’яті](/uk/concepts/memory). Він використовує налаштовані базовий URL
і ключ API Ollama, викликає поточний endpoint Ollama `/api/embed` і, коли це можливо, об’єднує
кілька фрагментів пам’яті в один запит `input`.
| Властивість | Значення |
| -------------- | ------------------- |
| Типова модель | `nomic-embed-text` |
| Автозавантаження | Так — модель ембедінгів завантажується автоматично, якщо її немає локально |
| ------------- | ------------------- |
| Типова модель | `nomic-embed-text` |
| Автозавантаження | Так — модель вбудовувань автоматично завантажується, якщо її немає локально |
Щоб вибрати Ollama як провайдера ембедінгів для пошуку в пам’яті:
Щоб вибрати Ollama як провайдера вбудовувань для пошуку в пам’яті:
```json5
{
@ -468,19 +473,19 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
</Accordion>
<Accordion title="Конфігурація потокового передавання">
Інтеграція OpenClaw з Ollama типово використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно потокове передавання і виклик інструментів. Жодної спеціальної конфігурації не потрібно.
<Accordion title="Конфігурація потокової передачі">
Інтеграція Ollama в OpenClaw типово використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно потокову передачу та виклик інструментів. Жодної спеціальної конфігурації не потрібно.
Для нативних запитів `/api/chat` OpenClaw також напряму передає керування thinking до Ollama: `/think off` і `openclaw agent --thinking off` надсилають верхньорівневе `think: false`, а `/think low|medium|high` надсилають відповідний верхньорівневий рядок зусилля `think`. `/think max` зіставляється з найвищим нативним рівнем зусилля Ollama, `think: "high"`.
Для нативних запитів `/api/chat` OpenClaw також напряму передає керування thinking до Ollama: `/think off` і `openclaw agent --thinking off` надсилають верхньорівневе `think: false`, а `/think low|medium|high` надсилають відповідний рядок зусилля верхнього рівня `think`. `/think max` відповідає найвищому нативному рівню зусилля Ollama, `think: "high"`.
<Tip>
Якщо вам потрібно використовувати OpenAI-сумісну кінцеву точку, дивіться розділ «Застарілий OpenAI-сумісний режим» вище. У цьому режимі потокове передавання і виклик інструментів можуть не працювати одночасно.
Якщо вам потрібно використовувати OpenAI-сумісний endpoint, дивіться розділ «Застарілий OpenAI-сумісний режим» вище. У цьому режимі потокова передача та виклик інструментів можуть не працювати одночасно.
</Tip>
</Accordion>
</AccordionGroup>
## Усунення несправностей
## Усунення неполадок
<AccordionGroup>
<Accordion title="Ollama не виявлено">
@ -499,7 +504,7 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
</Accordion>
<Accordion title="Немає доступних моделей">
Якщо вашої моделі немає у списку, або завантажте її локально, або визначте її явно в `models.providers.ollama`.
Якщо ваша модель не відображається у списку, або завантажте її локально, або явно визначте її в `models.providers.ollama`.
```bash
ollama list # Подивитися, що встановлено
@ -525,20 +530,20 @@ OpenClaw підтримує **Вебпошук Ollama** як вбудовани
</AccordionGroup>
<Note>
Більше довідки: [Усунення несправностей](/uk/help/troubleshooting) і [ЧаПи](/uk/help/faq).
Додаткова допомога: [Усунення неполадок](/uk/help/troubleshooting) і [FAQ](/uk/help/faq).
</Note>
## Пов’язане
## Пов’язані матеріали
<CardGroup cols={2}>
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
Огляд усіх провайдерів, посилань на моделі та поведінки перемикання при відмові.
Огляд усіх провайдерів, посилань на моделі та поведінки перемикання на резервні варіанти.
</Card>
<Card title="Вибір моделі" href="/uk/concepts/models" icon="brain">
Як вибирати та налаштовувати моделі.
</Card>
<Card title="Ollama Web Search" href="/uk/tools/ollama-search" icon="magnifying-glass">
Повні відомості про налаштування та поведінку вебпошуку на базі Ollama.
Повні відомості про налаштування та поведінку вебпошуку на основі Ollama.
</Card>
<Card title="Конфігурація" href="/uk/gateway/configuration" icon="gear">
Повний довідник із конфігурації.