chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-21 06:42:05 +00:00
parent 2a13cab86d
commit 6bc17e00d8
2 changed files with 1067 additions and 1068 deletions

View File

@ -6,17 +6,17 @@ read_when:
summary: Заплановані завдання, Webhook-и та тригери Gmail PubSub для планувальника Gateway
title: Заплановані завдання
x-i18n:
generated_at: "2026-04-20T18:25:02Z"
generated_at: "2026-04-21T06:32:46Z"
model: gpt-5.4
provider: openai
source_hash: e25f4dc8ee7b8f88e22d5cbc86e4527a9f5ac0ab4921e7874f76b186054682a3
source_hash: ac08f67af43bc85a1713558899a220c935479620f1ef74aa76336259daac2828
source_path: automation/cron-jobs.md
workflow: 15
---
# Заплановані завдання (Cron)
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може повертати результат назад у канал чату або на кінцеву точку Webhook.
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може повертати результат назад у канал чату або до endpoint Webhook.
## Швидкий старт
@ -32,6 +32,7 @@ openclaw cron add \
# Check your jobs
openclaw cron list
openclaw cron show <job-id>
# See run history
openclaw cron runs --id <job-id>
@ -39,41 +40,41 @@ openclaw cron runs --id <job-id>
## Як працює cron
- Cron працює **всередині процесу Gateway** (а не всередині моделі).
- 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 після завершення намагаються закрити відстежувані вкладки браузера/процеси для своєї сесії `cron:<jobId>`, щоб відокремлена автоматизація браузера не залишала осиротілі процеси.
- Ізольовані запуски cron також захищають від застарілих відповідей-підтверджень. Якщо
перший результат — це лише проміжне оновлення статусу (`on it`, `pulling everything
together` та подібні підказки) і жоден дочірній запуск субагента більше не
відповідає за фінальну відповідь, OpenClaw повторно надсилає запит один раз, щоб отримати фактичний
результат перед доставленням.
<a id="maintenance"></a>
Узгодження завдань для cron належить середовищу виконання: активне завдання cron залишається активним, поки
середовище cron усе ще відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує.
Щойно середовище виконання перестає володіти завданням і минає 5-хвилинне вікно очікування, обслуговування може
Узгодження завдань для cron належить до середовища виконання: активне завдання cron залишається активним, поки
середовище cron і далі відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує.
Щойно середовище виконання перестає володіти цим завданням і спливає 5-хвилинне вікно відстрочки, обслуговування може
позначити завдання як `lost`.
## Типи розкладу
| Тип | Прапорець CLI | Опис |
| ------- | ------------- | ------------------------------------------------------- |
| `at` | `--at` | Одноразова часова позначка (ISO 8601 або відносна, наприклад `20m`) |
| `every` | `--every` | Фіксований інтервал |
| `cron` | `--cron` | Cron-вираз із 5 або 6 полів з необов’язковим `--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"
@ -81,80 +82,76 @@ Cron-вирази розбираються за допомогою [croner](http
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>` | Звітів, фонових задач |
| Стиль | Значення `--session` | Виконується в | Найкраще підходить для |
| --------------- | -------------------- | ------------------------- | ----------------------------------- |
| Основна сесія | `main` | Наступний такт heartbeat | Нагадувань, системних подій |
| Ізольований | `isolated` | Виділена `cron:<jobId>` | Звітів, фонових завдань |
| Поточна сесія | `current` | Прив’язується під час створення | Періодичної роботи з урахуванням контексту |
| Користувацька сесія | `session:custom-id` | Постійна іменована сесія | Процесів, що будуються на історії |
| Користувацька сесія | `session:custom-id` | Постійна іменована сесія | Робочих процесів, що спираються на історію |
Завдання **основної сесії** ставлять у чергу системну подію та за потреби пробуджують heartbeat (`--wake now` або `--wake next-heartbeat`). **Ізольовані** завдання запускають окремий хід агента з новою сесією. **Користувацькі сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу будувати процеси на кшталт щоденних стендапів, які спираються на попередні підсумки.
Завдання **основної сесії** ставлять системну подію в чергу та за потреби пробуджують heartbeat (`--wake now` або `--wake next-heartbeat`). **Ізольовані** завдання виконують окремий хід агента з новою сесією. **Користувацькі сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу реалізовувати робочі процеси на кшталт щоденних стендапів, які спираються на попередні підсумки.
Для ізольованих завдань завершення середовища виконання тепер включає best-effort очищення браузера для цієї cron-сесії. Помилки очищення ігноруються, щоб пріоритет залишався за фактичним результатом cron.
Для ізольованих завдань завершення виконання тепер включає найкращу спробу очищення браузера для цієї cron-сесії. Помилки очищення ігноруються, щоб фактичний результат cron усе одно мав пріоритет.
Коли ізольовані запуски cron оркеструють субагентів, доставка також надає перевагу фінальному
результату нащадка над застарілим проміжним текстом батьківського процесу. Якщо нащадки все ще
виконуються, OpenClaw пригнічує це часткове батьківське оновлення замість того, щоб оголошувати його.
Коли ізольовані запуски cron оркеструють субагентів, під час доставлення також
перевага надається фінальному результату дочірнього запуску, а не застарілому проміжному тексту батьківського.
Якщо дочірні запуски все ще виконуються, OpenClaw пригнічує це часткове оновлення батьківського процесу, замість того щоб оголошувати його.
### Параметри payload для ізольованих завдань
- `--message`: текст prompt-а (обов’язковий для isolated)
- `--message`: текст prompt (обов’язковий для ізольованих)
- `--model` / `--thinking`: перевизначення моделі та рівня thinking
- `--light-context`: пропустити ін’єкцію файла bootstrap робочого простору
- `--light-context`: пропустити ін’єкцію bootstrap-файлів робочого простору
- `--tools exec,read`: обмежити, які інструменти може використовувати завдання
`--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель
не дозволена, cron записує попередження в журнал і повертається до вибору моделі агента/типової
моделі для цього завдання. Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне
перевизначення моделі без явного списку fallback для завдання більше не додає основну модель агента
як приховану додаткову ціль для повторної спроби.
не дозволена, cron записує попередження в журнал і повертається до вибору моделі агента/типової моделі для цього завдання.
Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення
моделі без явного списку fallback для конкретного завдання більше не додає основну модель агента як приховану додаткову ціль повторної спроби.
Пріоритет вибору моделі для ізольованих завдань такий:
1. Перевизначення моделі Gmail hook (коли запуск надійшов із Gmail і це перевизначення дозволене)
1. Перевизначення моделі hook Gmail (коли запуск походить із Gmail і це перевизначення дозволене)
2. `model` у payload конкретного завдання
3. Збережене перевизначення моделі cron-сесії
3. Збережене перевизначення моделі сесії cron
4. Вибір моделі агента/типової моделі
Fast mode також дотримується визначеного активного вибору. Якщо в конфігурації вибраної моделі
є `params.fastMode`, ізольований cron типово використовує його. Збережене перевизначення
`fastMode` сесії все одно має пріоритет над конфігурацією в будь-який бік.
Швидкий режим також дотримується визначеного активного вибору. Якщо вибрана конфігурація моделі
має `params.fastMode`, ізольований cron використовує його типово. Збережене перевизначення
`fastMode` сесії все одно має пріоритет над конфігурацією в будь-якому напрямку.
Якщо ізольований запуск натрапляє на live-передавання керування перемиканню моделі, cron повторює спробу з
перемкненим провайдером/моделлю та зберігає цей активний вибір перед повтором. Коли перемикання
також містить новий профіль автентифікації, cron зберігає і це перевизначення профілю автентифікації.
Кількість повторів обмежена: після початкової спроби та ще 2 повторів через перемикання cron перериває роботу,
а не входить у нескінченний цикл.
Якщо ізольований запуск потрапляє на живе передавання керування під час перемикання моделі, cron повторює спробу з
перемкненим провайдером/моделлю та зберігає цей активний вибір перед повторною спробою. Коли
перемикання також несе новий профіль автентифікації, cron також зберігає це перевизначення профілю автентифікації.
Кількість повторних спроб обмежена: після початкової спроби та ще 2 повторних спроб через перемикання
cron переривається, а не зациклюється назавжди.
## Доставка та вивід
## Доставлення і результат
| Режим | Що відбувається |
| ---------- | -------------------------------------------------------- |
| `announce` | Доставити підсумок у цільовий канал (типово для isolated) |
| `webhook` | Надіслати payload події завершення методом POST на URL |
| `none` | Лише внутрішнє використання, без доставки |
| Режим | Що відбувається |
| ---------- | ------------------------------------------------------------------ |
| `announce` | Запасне доставлення фінального тексту до цілі, якщо агент не надіслав |
| `webhook` | POST payload завершеної події на URL |
| `none` | Немає запасного доставлення з боку runner |
Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставки в канал. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Для цілей Slack/Discord/Mattermost слід використовувати явні префікси (`channel:<id>`, `user:<id>`).
Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставлення в канал. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Цілі Slack/Discord/Mattermost мають використовувати явні префікси (`channel:<id>`, `user:<id>`).
Для ізольованих завдань, що належать cron, runner володіє фінальним шляхом доставки. Агент
отримує запит повернути підсумок у вигляді простого тексту, а потім цей підсумок надсилається
через `announce`, `webhook` або зберігається лише внутрішньо для `none`. `--no-deliver`
не повертає доставку під контроль агента; він залишає запуск внутрішнім.
Для ізольованих завдань доставлення в чат є спільним. Якщо маршрут чату доступний,
агент може використовувати інструмент `message` навіть коли завдання використовує `--no-deliver`. Якщо
агент надсилає повідомлення до налаштованої/поточної цілі, OpenClaw пропускає запасне
оголошення. Інакше `announce`, `webhook` і `none` лише керують тим, що
runner робить із фінальною відповіддю після ходу агента.
Якщо початкове завдання явно вказує написати якомусь зовнішньому отримувачу, агент
має зазначити, кому/куди має надійти це повідомлення, у своєму виводі, а не
намагатися надіслати його безпосередньо.
Сповіщення про помилки використовують окремий шлях призначення:
Сповіщення про помилки йдуть окремим маршрутом призначення:
- `cron.failureDestination` задає глобальне типове значення для сповіщень про помилки.
- `job.delivery.failureDestination` перевизначає це для окремого завдання.
- Якщо жодне не задано, а завдання вже доставляє через `announce`, сповіщення про помилки тепер типово використовують цю ж основну ціль `announce`.
- `delivery.failureDestination` підтримується лише для завдань із `sessionTarget="isolated"`, якщо основний режим доставки не є `webhook`.
- `job.delivery.failureDestination` перевизначає це для конкретного завдання.
- Якщо не задано жодного з них і завдання вже доставляє результат через `announce`, сповіщення про помилки тепер запасно надсилаються до цієї ж основної цілі announce.
- `delivery.failureDestination` підтримується лише для завдань із `sessionTarget="isolated"`, якщо основний режим доставлення не є `webhook`.
## Приклади CLI
@ -169,7 +166,7 @@ openclaw cron add \
--wake now
```
Періодичне ізольоване завдання з доставкою:
Періодичне ізольоване завдання з доставленням:
```bash
openclaw cron add \
@ -199,7 +196,7 @@ openclaw cron add \
## Webhook-и
Gateway може відкривати кінцеві точки HTTP Webhook для зовнішніх тригерів. Увімкніть це в конфігурації:
Gateway може відкривати HTTP endpoint-и Webhook для зовнішніх тригерів. Увімкніть це в конфігурації:
```json5
{
@ -213,12 +210,12 @@ Gateway може відкривати кінцеві точки HTTP Webhook д
### Автентифікація
Кожен запит має включати токен hook через заголовок:
Кожен запит має містити токен hook через заголовок:
- `Authorization: Bearer <token>` (рекомендовано)
- `x-openclaw-token: <token>`
Токени в рядку запиту відхиляються.
Токени в query string відхиляються.
### POST /hooks/wake
@ -247,25 +244,25 @@ curl -X POST http://127.0.0.1:18789/hooks/agent \
Поля: `message` (обов’язково), `name`, `agentId`, `wakeMode`, `deliver`, `channel`, `to`, `model`, `thinking`, `timeoutSeconds`.
### Відображені hook-и (POST /hooks/\<name\>)
### Зіставлені hook-и (POST /hooks/\<name\>)
Користувацькі назви hook-ів визначаються через `hooks.mappings` у конфігурації. Відображення можуть перетворювати довільний payload на дії `wake` або `agent` за допомогою шаблонів або перетворень коду.
Користувацькі назви hook-ів визначаються через `hooks.mappings` у конфігурації. Зіставлення можуть перетворювати довільний payload на дії `wake` або `agent` за допомогою шаблонів або кодових трансформацій.
### Безпека
- Тримайте кінцеві точки hook-ів за loopback, tailnet або довіреним reverse proxy.
- Використовуйте окремий токен hook-а; не використовуйте повторно токени автентифікації gateway.
- Тримайте endpoint-и hook-ів за loopback, tailnet або довіреним reverse proxy.
- Використовуйте окремий токен 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-ів типово обгортаються межами безпеки.
## Інтеграція Gmail PubSub
Підключіть тригери вхідних Gmail до OpenClaw через Google PubSub.
Підключіть тригери вхідної пошти Gmail до OpenClaw через Google PubSub.
**Передумови**: CLI `gcloud`, `gog` (gogcli), увімкнені hooks OpenClaw, Tailscale для публічної кінцевої точки HTTPS.
**Передумови**: CLI `gcloud`, `gog` (gogcli), увімкнені hooks OpenClaw, Tailscale для публічного HTTPS endpoint.
### Налаштування через майстер (рекомендовано)
@ -273,11 +270,11 @@ curl -X POST http://127.0.0.1:18789/hooks/agent \
openclaw webhooks gmail setup --account openclaw@gmail.com
```
Це записує конфігурацію `hooks.gmail`, вмикає preset Gmail і використовує Tailscale Funnel для push-кінцевої точки.
Це записує конфігурацію `hooks.gmail`, вмикає preset Gmail і використовує Tailscale Funnel для push endpoint.
### Автозапуск 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`, щоб відмовитися від цього.
### Ручне одноразове налаштування
@ -289,7 +286,7 @@ gcloud config set project <project-id>
gcloud services enable gmail.googleapis.com pubsub.googleapis.com
```
2. Створіть topic і надайте Gmail доступ на push:
2. Створіть topic і надайте Gmail доступ для push:
```bash
gcloud pubsub topics create gog-gmail-watch
@ -326,6 +323,9 @@ gog gmail watch start \
# List all jobs
openclaw cron list
# Show one job, including resolved delivery route
openclaw cron show <jobId>
# Edit a job
openclaw cron edit <jobId> --message "Updated prompt" --model "opus"
@ -349,12 +349,12 @@ openclaw cron edit <jobId> --clear-agent
Примітка щодо перевизначення моделі:
- `openclaw cron add|edit --model ...` змінює вибрану модель завдання.
- Якщо модель дозволена, саме цей провайдер/модель передається ізольованому
- Якщо модель дозволена, саме цей провайдер/модель використовується в ізольованому
запуску агента.
- Якщо вона не дозволена, cron видає попередження і повертається до вибору
моделі агента/типової моделі для цього завдання.
- Якщо її не дозволено, cron попереджає й повертається до вибору моделі
агента/типової моделі завдання.
- Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення `--model`
без явного списку fallback для завдання більше не переходить до основної моделі агента
без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента
як до тихої додаткової цілі повторної спроби.
## Конфігурація
@ -377,21 +377,21 @@ openclaw cron edit <jobId> --clear-agent
}
```
Файл sidecar стану виконання виводиться з `cron.store`: сховище `.json`, таке як
`~/clawd/cron/jobs.json`, використовує `~/clawd/cron/jobs-state.json`, тоді як до шляху сховища
Sidecar стану виконання виводиться з `cron.store`: сховище `.json`, таке як
`~/clawd/cron/jobs.json`, використовує `~/clawd/cron/jobs-state.json`, а до шляху сховища
без суфікса `.json` додається `-state.json`.
Вимкнути cron: `cron.enabled: false` або `OPENCLAW_SKIP_CRON=1`.
**Повтор одноразового завдання**: тимчасові помилки (rate limit, overload, network, server error) повторюються до 3 разів з експоненційною затримкою. Постійні помилки вимикаються негайно.
**Повтор одноразового завдання**: тимчасові помилки (обмеження швидкості, перевантаження, мережа, помилка сервера) повторюються до 3 разів з експоненційною затримкою. Постійні помилки одразу вимикають завдання.
**Повтор періодичного завдання**: експоненційна затримка (від 30 с до 60 хв) між повторними спробами. Після наступного успішного запуску затримка скидається.
**Обслуговування**: `cron.sessionRetention` (типово `24h`) очищає записи сесій ізольованих запусків. `cron.runLog.maxBytes` / `cron.runLog.keepLines` автоматично очищають файли журналу запусків.
## Усунення проблем
## Усунення неполадок
### Послідовність команд
### Набір команд
```bash
openclaw status
@ -408,30 +408,30 @@ openclaw doctor
- Перевірте `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`, і час виконання завдання ще не настав.
### Cron спрацював, але доставки немає
### Cron спрацював, але доставлення немає
- Режим доставки `none` означає, що зовнішнє повідомлення не очікується.
- Відсутня/некоректна ціль доставки (`channel`/`to`) означає, що вихідне надсилання було пропущено.
- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставку було заблоковано обліковими даними.
- Режим доставлення `none` означає, що запасне надсилання з боку runner не очікується. Агент
усе ще може надіслати повідомлення безпосередньо через інструмент `message`, якщо маршрут чату доступний.
- Відсутня/невалідна ціль доставлення (`channel`/`to`) означає, що вихідне надсилання було пропущено.
- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставлення було заблоковано обліковими даними.
- Якщо ізольований запуск повертає лише silent token (`NO_REPLY` / `no_reply`),
OpenClaw пригнічує пряме вихідне надсилання, а також пригнічує резервний
шлях доставки підсумку через чергу, тому назад у чат нічого не публікується.
- Для ізольованих завдань, що належать cron, не очікуйте, що агент використовуватиме message tool
як fallback. Runner володіє фінальною доставкою; `--no-deliver` залишає її
внутрішньою замість того, щоб дозволяти пряме надсилання.
OpenClaw пригнічує пряме вихідне доставлення, а також пригнічує запасний
шлях зведення через чергу, тому назад у чат нічого не публікується.
- Якщо агент має сам надіслати повідомлення користувачу, перевірте, що завдання має придатний
маршрут (`channel: "last"` із попереднім чатом або явний канал/ціль).
### Особливості часових поясів
### Поширені проблеми з часовими поясами
- Cron без `--tz` використовує часовий пояс хоста gateway.
- Розклади `at` без часового поясу трактуються як UTC.
- Heartbeat `activeHours` використовує налаштоване визначення часового поясу.
- `activeHours` Heartbeat використовує налаштоване визначення часового поясу.
## Пов’язане
- [Автоматизація та завдання](/uk/automation) — усі механізми автоматизації з першого погляду
- [Автоматизація й завдання](/uk/automation) — огляд усіх механізмів автоматизації
- [Фонові завдання](/uk/automation/tasks) — журнал завдань для виконань cron
- [Heartbeat](/uk/gateway/heartbeat) — періодичні ходи основної сесії
- [Часовий пояс](/uk/concepts/timezone) — налаштування часового поясу
- [Часовий пояс](/uk/concepts/timezone) — конфігурація часового поясу

File diff suppressed because it is too large Load Diff