chore(i18n): refresh uk translations
This commit is contained in:
parent
6d365036f1
commit
7c027e2e89
@ -6,22 +6,22 @@ read_when:
|
||||
summary: Заплановані завдання, вебхуки та тригери Gmail PubSub для планувальника Gateway
|
||||
title: Заплановані завдання
|
||||
x-i18n:
|
||||
generated_at: "2026-04-10T20:41:25Z"
|
||||
generated_at: "2026-04-12T05:18:49Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 04d94baa152de17d78515f7d545f099fe4810363ab67e06b465e489737f54665
|
||||
source_hash: f42bcaeedd0595d025728d7f236a724a0ebc67b6813c57233f4d739b3088317f
|
||||
source_path: automation/cron-jobs.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Заплановані завдання (Cron)
|
||||
|
||||
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може повертати результат назад у канал чату або на endpoint вебхука.
|
||||
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може надсилати результат назад у канал чату або до кінцевої точки вебхука.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
```bash
|
||||
# Додати одноразове нагадування
|
||||
# Add a one-shot reminder
|
||||
openclaw cron add \
|
||||
--name "Reminder" \
|
||||
--at "2026-02-01T16:00:00Z" \
|
||||
@ -30,121 +30,110 @@ openclaw cron add \
|
||||
--wake now \
|
||||
--delete-after-run
|
||||
|
||||
# Перевірити свої завдання
|
||||
# Check your jobs
|
||||
openclaw cron list
|
||||
|
||||
# Переглянути історію запусків
|
||||
# See run history
|
||||
openclaw cron runs --id <job-id>
|
||||
```
|
||||
|
||||
## Як працює cron
|
||||
|
||||
- Cron працює **всередині процесу Gateway** (а не всередині моделі).
|
||||
- Cron працює **всередині** процесу Gateway (не всередині моделі).
|
||||
- Завдання зберігаються в `~/.openclaw/cron/jobs.json`, тому перезапуски не призводять до втрати розкладів.
|
||||
- Усі виконання cron створюють записи [фонових завдань](/uk/automation/tasks).
|
||||
- Одноразові завдання (`--at`) після успішного виконання автоматично видаляються за замовчуванням.
|
||||
- Ізольовані запуски cron після завершення намагаються в найкращий спосіб закрити відстежувані вкладки/процеси браузера для своєї сесії `cron:<jobId>`, щоб відокремлена автоматизація браузера не залишала після себе осиротілі процеси.
|
||||
- Ізольовані запуски cron також захищають від застарілих відповідей-підтверджень. Якщо
|
||||
перший результат — це лише проміжне оновлення статусу (`on it`, `pulling everything
|
||||
together` та подібні підказки), і жоден дочірній запуск subagent більше не
|
||||
відповідає за фінальну відповідь, OpenClaw ще раз надсилає запит на отримання фактичного
|
||||
результату перед доставкою.
|
||||
- Ізольовані запуски cron у режимі best-effort закривають відстежувані вкладки браузера/процеси для своєї сесії `cron:<jobId>`, коли виконання завершується, щоб відокремлена автоматизація браузера не залишала після себе осиротілі процеси.
|
||||
- Ізольовані запуски cron також захищають від застарілих відповідей-підтверджень. Якщо перший результат — це лише проміжне оновлення статусу (`on it`, `pulling everything together` та подібні підказки) і жоден дочірній запуск субагента більше не відповідає за фінальну відповідь, OpenClaw повторно надсилає запит один раз, щоб отримати фактичний результат перед доставкою.
|
||||
|
||||
<a id="maintenance"></a>
|
||||
|
||||
Узгодження завдань для cron належить до runtime: активне завдання cron залишається активним, поки
|
||||
runtime cron все ще відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує.
|
||||
Щойно runtime перестає володіти завданням і спливає 5-хвилинне вікно очікування, обслуговування може
|
||||
позначити завдання як `lost`.
|
||||
Узгодження завдань для cron контролюється під час виконання: активне завдання cron залишається активним, доки середовище виконання cron усе ще відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує.
|
||||
Щойно середовище виконання перестає володіти завданням і минає 5-хвилинне вікно очікування, обслуговування може позначити завдання як `lost`.
|
||||
|
||||
## Типи розкладу
|
||||
|
||||
| Вид | Прапорець CLI | Опис |
|
||||
| Тип | Прапорець CLI | Опис |
|
||||
| ------- | ------------- | ------------------------------------------------------- |
|
||||
| `at` | `--at` | Одноразова мітка часу (ISO 8601 або відносно, наприклад `20m`) |
|
||||
| `at` | `--at` | Одноразова часова мітка (ISO 8601 або відносна, як-от `20m`) |
|
||||
| `every` | `--every` | Фіксований інтервал |
|
||||
| `cron` | `--cron` | 5-польовий або 6-польовий cron-вираз з необов’язковим `--tz` |
|
||||
| `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
|
||||
|
||||
Cron-вирази аналізуються за допомогою [croner](https://github.com/Hexagon/croner). Коли і поле дня місяця, і поле дня тижня не є wildcard, croner вважає збігом випадок, коли збігається **будь-яке** з полів, а не обидва. Це стандартна поведінка Vixie cron.
|
||||
|
||||
```
|
||||
# Intended: "9 AM on the 15th, only if it's a Monday"
|
||||
# Actual: "9 AM on every 15th, AND 9 AM on every Monday"
|
||||
0 9 15 * 1
|
||||
```
|
||||
|
||||
Це спрацьовує приблизно 5–6 разів на місяць замість 0–1 разу на місяць. Тут 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` | Постійній іменованій сесії | Робочих процесів, що спираються на історію |
|
||||
|
||||
Завдання **основної сесії** ставлять системну подію в чергу та за потреби пробуджують heartbeat (`--wake now` або `--wake next-heartbeat`). **Ізольовані** завдання запускають окремий цикл агента з новою сесією. **Користувацькі сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу створювати робочі процеси на кшталт щоденних стендапів, які спираються на попередні підсумки.
|
||||
Завдання **головної сесії** ставлять системну подію в чергу та за потреби пробуджують heartbeat (`--wake now` або `--wake next-heartbeat`). **Ізольовані** завдання запускають окремий цикл агента з новою сесією. **Користувацькі сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу будувати робочі процеси на кшталт щоденних стендапів на основі попередніх підсумків.
|
||||
|
||||
Для ізольованих завдань teardown runtime тепер включає найкращу спробу очищення браузера для цієї cron-сесії. Помилки очищення ігноруються, щоб фактичний результат cron усе одно мав пріоритет.
|
||||
Для ізольованих завдань завершення середовища виконання тепер включає best-effort очищення браузера для цієї cron-сесії. Помилки очищення ігноруються, щоб пріоритет мав фактичний результат cron.
|
||||
|
||||
Коли ізольовані запуски cron оркеструють subagents, доставка також надає перевагу
|
||||
фінальному результату нащадка над застарілим проміжним текстом батьківського запуску. Якщо нащадки все ще
|
||||
виконуються, OpenClaw пригнічує це часткове оновлення від батьківського запуску замість того, щоб його оголошувати.
|
||||
Коли ізольовані запуски cron оркеструють субагентів, доставка також надає перевагу фінальному виводу дочірніх елементів замість застарілого проміжного тексту батьківського елемента. Якщо дочірні елементи все ще виконуються, OpenClaw пригнічує це часткове оновлення батьківського елемента замість того, щоб оголошувати його.
|
||||
|
||||
### Параметри payload для ізольованих завдань
|
||||
|
||||
- `--message`: текст запиту (обов’язково для isolated)
|
||||
- `--message`: текст prompt (обов’язковий для isolated)
|
||||
- `--model` / `--thinking`: перевизначення моделі та рівня thinking
|
||||
- `--light-context`: пропустити ін’єкцію файлів bootstrap робочого простору
|
||||
- `--tools exec,read`: обмежити, які інструменти може використовувати завдання
|
||||
- `--light-context`: пропустити ін’єкцію bootstrap-файлу робочого простору
|
||||
- `--tools exec,read`: обмежити набір інструментів, які завдання може використовувати
|
||||
|
||||
`--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель
|
||||
не дозволена, cron записує попередження в журнал і повертається до вибору моделі агента/за замовчуванням для цього завдання.
|
||||
Налаштовані ланцюжки fallback усе ще застосовуються, але звичайне
|
||||
перевизначення моделі без явного списку fallback для конкретного завдання більше не додає
|
||||
основну модель агента як приховану додаткову ціль для повторної спроби.
|
||||
`--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель не дозволена, cron записує попередження в журнал і натомість повертається до вибору моделі завдання/агента за замовчуванням. Налаштовані ланцюжки fallback усе ще застосовуються, але звичайне перевизначення моделі без явного списку fallback для конкретного завдання більше не додає основну модель агента як приховану додаткову ціль повторної спроби.
|
||||
|
||||
Пріоритет вибору моделі для ізольованих завдань:
|
||||
|
||||
1. Перевизначення моделі Gmail hook (коли запуск походить із Gmail і це перевизначення дозволене)
|
||||
2. `model` у payload конкретного завдання
|
||||
3. Збережене перевизначення моделі cron-сесії
|
||||
3. Збережене перевизначення моделі сесії cron
|
||||
4. Вибір моделі агента/за замовчуванням
|
||||
|
||||
Швидкий режим також дотримується визначеного активного вибору. Якщо конфігурація вибраної моделі
|
||||
має `params.fastMode`, ізольований cron використовує це за замовчуванням. Збережене перевизначення
|
||||
`fastMode` у сесії все одно має пріоритет над конфігурацією в будь-якому напрямку.
|
||||
Швидкий режим також дотримується визначеного активного вибору. Якщо конфігурація вибраної моделі має `params.fastMode`, ізольований cron використовує це за замовчуванням. Збережене перевизначення сесії `fastMode` усе одно має вищий пріоритет над конфігурацією в будь-який бік.
|
||||
|
||||
Якщо ізольований запуск стикається з передачею на іншу модель під час live-перемикання, cron повторює спробу з
|
||||
перемкненим provider/model і зберігає цей live-вибір перед повторною спробою. Якщо
|
||||
перемикання також несе новий профіль автентифікації, cron теж зберігає це перевизначення профілю автентифікації.
|
||||
Кількість повторних спроб обмежена: після початкової спроби та ще 2 повторних спроб через перемикання
|
||||
cron перериває виконання замість того, щоб зациклитися назавжди.
|
||||
Якщо ізольований запуск натрапляє на live-передавання керування під час перемикання моделі, cron виконує повторну спробу з перемкненим provider/model і зберігає цей live-вибір перед повторною спробою. Якщо перемикання також містить новий auth-профіль, cron теж зберігає це перевизначення auth-профілю. Кількість повторних спроб обмежена: після початкової спроби плюс 2 повторних спроб перемикання cron перериває роботу замість нескінченного циклу.
|
||||
|
||||
## Доставка та вивід
|
||||
|
||||
| Режим | Що відбувається |
|
||||
| --------- | -------------------------------------------------------- |
|
||||
| `announce` | Доставити підсумок у цільовий канал (за замовчуванням для isolated) |
|
||||
| `webhook` | Надіслати payload події про завершення методом POST на URL |
|
||||
| `none` | Лише внутрішнє використання, без доставки |
|
||||
| Режим | Що відбувається |
|
||||
| --------- | ------------------------------------------------------ |
|
||||
| `announce` | Надіслати підсумок у цільовий канал (типово для isolated) |
|
||||
| `webhook` | Надіслати payload події завершення POST-запитом на URL |
|
||||
| `none` | Лише внутрішньо, без доставки |
|
||||
|
||||
Використовуйте `--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` не
|
||||
повертає доставку назад агенту; він залишає запуск внутрішнім.
|
||||
Для ізольованих завдань, якими керує cron, виконавець відповідає за фінальний шлях доставки. Агент отримує prompt повернути підсумок простим текстом, і цей підсумок потім надсилається через `announce`, `webhook` або зберігається внутрішньо для `none`. `--no-deliver` не повертає доставку під контроль агента; він залишає запуск внутрішнім.
|
||||
|
||||
Якщо початкове завдання явно вказує на необхідність надіслати повідомлення якомусь зовнішньому одержувачу,
|
||||
агент повинен зазначити у своєму виводі, кому/куди має піти це повідомлення, замість того щоб
|
||||
намагатися надіслати його безпосередньо.
|
||||
Якщо в оригінальному завданні явно сказано надіслати повідомлення якомусь зовнішньому одержувачу, агент має вказати у своєму виводі, кому/куди це повідомлення повинно піти, замість того щоб намагатися надіслати його безпосередньо.
|
||||
|
||||
Сповіщення про збої використовують окремий шлях призначення:
|
||||
Сповіщення про помилки використовують окремий шлях призначення:
|
||||
|
||||
- `cron.failureDestination` задає глобальне значення за замовчуванням для сповіщень про збої.
|
||||
- `job.delivery.failureDestination` перевизначає його для окремого завдання.
|
||||
- Якщо не задано жодного з них, а завдання вже доставляє результат через `announce`, сповіщення про збої тепер за замовчуванням надсилаються до тієї самої основної цілі announce.
|
||||
- `delivery.failureDestination` підтримується лише для завдань `sessionTarget="isolated"`, якщо основний режим доставки не є `webhook`.
|
||||
- `cron.failureDestination` задає глобальне типове призначення для сповіщень про помилки.
|
||||
- `job.delivery.failureDestination` перевизначає його для конкретного завдання.
|
||||
- Якщо жодне з них не задано і завдання вже доставляє результат через `announce`, сповіщення про помилки тепер за замовчуванням надсилаються до тієї ж основної announce-цілі.
|
||||
- `delivery.failureDestination` підтримується лише для завдань із `sessionTarget="isolated"`, якщо основний режим доставки не є `webhook`.
|
||||
|
||||
## Приклади CLI
|
||||
|
||||
Одноразове нагадування (основна сесія):
|
||||
Одноразове нагадування (головна сесія):
|
||||
|
||||
```bash
|
||||
openclaw cron add \
|
||||
@ -155,7 +144,7 @@ openclaw cron add \
|
||||
--wake now
|
||||
```
|
||||
|
||||
Повторюване ізольоване завдання з доставкою:
|
||||
Періодичне ізольоване завдання з доставкою:
|
||||
|
||||
```bash
|
||||
openclaw cron add \
|
||||
@ -185,7 +174,7 @@ openclaw cron add \
|
||||
|
||||
## Вебхуки
|
||||
|
||||
Gateway може відкривати HTTP endpoint вебхуків для зовнішніх тригерів. Увімкніть у конфігурації:
|
||||
Gateway може відкривати HTTP-кінцеві точки вебхуків для зовнішніх тригерів. Увімкніть це в конфігурації:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -199,7 +188,7 @@ Gateway може відкривати HTTP endpoint вебхуків для зо
|
||||
|
||||
### Автентифікація
|
||||
|
||||
Кожен запит має містити токен hook через заголовок:
|
||||
Кожен запит має містити токен hook у заголовку:
|
||||
|
||||
- `Authorization: Bearer <token>` (рекомендовано)
|
||||
- `x-openclaw-token: <token>`
|
||||
@ -208,7 +197,7 @@ Gateway може відкривати HTTP endpoint вебхуків для зо
|
||||
|
||||
### POST /hooks/wake
|
||||
|
||||
Поставити системну подію в чергу для основної сесії:
|
||||
Поставити системну подію в чергу для головної сесії:
|
||||
|
||||
```bash
|
||||
curl -X POST http://127.0.0.1:18789/hooks/wake \
|
||||
@ -218,7 +207,7 @@ curl -X POST http://127.0.0.1:18789/hooks/wake \
|
||||
```
|
||||
|
||||
- `text` (обов’язково): опис події
|
||||
- `mode` (необов’язково): `now` (за замовчуванням) або `next-heartbeat`
|
||||
- `mode` (необов’язково): `now` (типово) або `next-heartbeat`
|
||||
|
||||
### POST /hooks/agent
|
||||
|
||||
@ -233,25 +222,25 @@ curl -X POST http://127.0.0.1:18789/hooks/agent \
|
||||
|
||||
Поля: `message` (обов’язково), `name`, `agentId`, `wakeMode`, `deliver`, `channel`, `to`, `model`, `thinking`, `timeoutSeconds`.
|
||||
|
||||
### Зіставлені hooks (POST /hooks/\<name\>)
|
||||
### Mapped hooks (POST /hooks/\<name\>)
|
||||
|
||||
Користувацькі назви hook визначаються через `hooks.mappings` у конфігурації. Зіставлення можуть перетворювати довільні payload у дії `wake` або `agent` за допомогою шаблонів чи кодових перетворень.
|
||||
Користувацькі імена hook визначаються через `hooks.mappings` у конфігурації. Мапінги можуть перетворювати довільні payload на дії `wake` або `agent` за допомогою шаблонів чи кодових перетворень.
|
||||
|
||||
### Безпека
|
||||
|
||||
- Тримайте endpoint вебхуків за loopback, tailnet або довіреним reverse proxy.
|
||||
- Тримайте кінцеві точки hook за loopback, tailnet або довіреним reverse proxy.
|
||||
- Використовуйте окремий токен hook; не використовуйте повторно токени автентифікації gateway.
|
||||
- Тримайте `hooks.path` на окремому підшляху; `/` відхиляється.
|
||||
- Налаштуйте `hooks.allowedAgentIds`, щоб обмежити явну маршрутизацію `agentId`.
|
||||
- Залишайте `hooks.allowRequestSessionKey=false`, якщо вам не потрібні сесії, вибрані викликачем.
|
||||
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також налаштуйте `hooks.allowedSessionKeyPrefixes`, щоб обмежити дозволені форми ключів сесії.
|
||||
- Payload hooks за замовчуванням обгортаються захисними межами.
|
||||
- Установіть `hooks.allowedAgentIds`, щоб обмежити явну маршрутизацію `agentId`.
|
||||
- Залишайте `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 endpoint.
|
||||
**Передумови**: CLI `gcloud`, `gog` (gogcli), увімкнені hook в OpenClaw, Tailscale для публічної HTTPS-кінцевої точки.
|
||||
|
||||
### Налаштування через майстер (рекомендовано)
|
||||
|
||||
@ -259,15 +248,15 @@ 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 для endpoint 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`, щоб відмовитися від цього.
|
||||
|
||||
### Ручне одноразове налаштування
|
||||
|
||||
1. Виберіть проєкт GCP, якому належить OAuth client, що використовується `gog`:
|
||||
1. Виберіть проєкт GCP, якому належить OAuth-клієнт, що використовується `gog`:
|
||||
|
||||
```bash
|
||||
gcloud auth login
|
||||
@ -309,25 +298,25 @@ gog gmail watch start \
|
||||
## Керування завданнями
|
||||
|
||||
```bash
|
||||
# Перелічити всі завдання
|
||||
# List all jobs
|
||||
openclaw cron list
|
||||
|
||||
# Редагувати завдання
|
||||
# Edit a job
|
||||
openclaw cron edit <jobId> --message "Updated prompt" --model "opus"
|
||||
|
||||
# Примусово запустити завдання зараз
|
||||
# Force run a job now
|
||||
openclaw cron run <jobId>
|
||||
|
||||
# Запустити лише якщо настав час
|
||||
# Run only if due
|
||||
openclaw cron run <jobId> --due
|
||||
|
||||
# Переглянути історію запусків
|
||||
# View run history
|
||||
openclaw cron runs --id <jobId> --limit 50
|
||||
|
||||
# Видалити завдання
|
||||
# Delete a job
|
||||
openclaw cron remove <jobId>
|
||||
|
||||
# Вибір агента (конфігурації з кількома агентами)
|
||||
# Agent selection (multi-agent setups)
|
||||
openclaw cron add --name "Ops sweep" --cron "0 6 * * *" --session isolated --message "Check ops queue" --agent ops
|
||||
openclaw cron edit <jobId> --clear-agent
|
||||
```
|
||||
@ -335,13 +324,9 @@ openclaw cron edit <jobId> --clear-agent
|
||||
Примітка щодо перевизначення моделі:
|
||||
|
||||
- `openclaw cron add|edit --model ...` змінює вибрану модель завдання.
|
||||
- Якщо модель дозволена, саме цей provider/model передається ізольованому
|
||||
запуску агента.
|
||||
- Якщо вона не дозволена, cron видає попередження і повертається до вибору
|
||||
моделі агента/за замовчуванням для завдання.
|
||||
- Налаштовані ланцюжки fallback усе ще застосовуються, але звичайне перевизначення `--model`
|
||||
без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента
|
||||
як до мовчазної додаткової цілі для повторної спроби.
|
||||
- Якщо модель дозволена, саме цей точний provider/model потрапляє до ізольованого запуску агента.
|
||||
- Якщо вона не дозволена, cron видає попередження й повертається до вибору моделі завдання/агента за замовчуванням.
|
||||
- Налаштовані ланцюжки fallback усе ще застосовуються, але звичайне перевизначення `--model` без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента як до тихої додаткової цілі повторної спроби.
|
||||
|
||||
## Конфігурація
|
||||
|
||||
@ -363,13 +348,13 @@ openclaw cron edit <jobId> --clear-agent
|
||||
}
|
||||
```
|
||||
|
||||
Вимкнути cron: `cron.enabled: false` або `OPENCLAW_SKIP_CRON=1`.
|
||||
Вимкнення cron: `cron.enabled: false` або `OPENCLAW_SKIP_CRON=1`.
|
||||
|
||||
**Повторні спроби для одноразових завдань**: тимчасові помилки (обмеження швидкості, перевантаження, мережеві помилки, помилки сервера) повторюються до 3 разів з експоненційною затримкою. Постійні помилки одразу вимикають завдання.
|
||||
**Повтор одноразового завдання**: тимчасові помилки (обмеження швидкості, перевантаження, мережа, помилка сервера) повторюються до 3 разів з експоненційним backoff. Постійні помилки негайно вимикаються.
|
||||
|
||||
**Повторні спроби для повторюваних завдань**: експоненційна затримка (від 30 с до 60 хв) між повторними спробами. Після наступного успішного запуску затримка скидається.
|
||||
**Повтор періодичного завдання**: експоненційний backoff (від 30 с до 60 хв) між повторними спробами. Після наступного успішного запуску backoff скидається.
|
||||
|
||||
**Обслуговування**: `cron.sessionRetention` (типово `24h`) очищає записи сесій ізольованих запусків. `cron.runLog.maxBytes` / `cron.runLog.keepLines` автоматично очищають файли журналу запусків.
|
||||
**Обслуговування**: `cron.sessionRetention` (типово `24h`) очищає записи сесій ізольованих запусків. `cron.runLog.maxBytes` / `cron.runLog.keepLines` автоматично обрізають файли журналу запусків.
|
||||
|
||||
## Усунення несправностей
|
||||
|
||||
@ -391,29 +376,25 @@ openclaw doctor
|
||||
- Перевірте `cron.enabled` і змінну середовища `OPENCLAW_SKIP_CRON`.
|
||||
- Переконайтеся, що Gateway працює безперервно.
|
||||
- Для розкладів `cron` перевірте часовий пояс (`--tz`) порівняно з часовим поясом хоста.
|
||||
- `reason: not-due` у виводі запуску означає, що ручний запуск було перевірено через `openclaw cron run <jobId> --due`, але час виконання завдання ще не настав.
|
||||
- `reason: not-due` у виводі запуску означає, що ручний запуск було перевірено через `openclaw cron run <jobId> --due`, і час виконання завдання ще не настав.
|
||||
|
||||
### Cron спрацював, але доставки немає
|
||||
|
||||
- Режим доставки `none` означає, що зовнішнє повідомлення не очікується.
|
||||
- Відсутня або недійсна ціль доставки (`channel`/`to`) означає, що вихідне надсилання було пропущено.
|
||||
- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставку було заблоковано обліковими даними.
|
||||
- Якщо ізольований запуск повертає лише тихий токен (`NO_REPLY` / `no_reply`),
|
||||
OpenClaw пригнічує пряме вихідне надсилання, а також резервний
|
||||
шлях доставки підсумку через чергу, тому назад у чат нічого не публікується.
|
||||
- Для ізольованих завдань, що належать cron, не очікуйте, що агент використовуватиме інструмент message
|
||||
як резервний варіант. Runner володіє фінальною доставкою; `--no-deliver` зберігає її
|
||||
внутрішньою замість дозволу на пряме надсилання.
|
||||
- Відсутня/некоректна ціль доставки (`channel`/`to`) означає, що вихідне надсилання було пропущено.
|
||||
- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставку заблоковано обліковими даними.
|
||||
- Якщо ізольований запуск повертає лише тихий токен (`NO_REPLY` / `no_reply`), OpenClaw пригнічує пряму вихідну доставку, а також пригнічує резервний шлях із постановкою підсумку в чергу, тому назад у чат нічого не публікується.
|
||||
- Для ізольованих завдань, якими керує cron, не очікуйте, що агент використовуватиме message tool як резервний варіант. Виконавець керує фінальною доставкою; `--no-deliver` натомість залишає її внутрішньою.
|
||||
|
||||
### Особливості часових поясів
|
||||
|
||||
- Cron без `--tz` використовує часовий пояс хоста gateway.
|
||||
- Розклади `at` без часового поясу обробляються як UTC.
|
||||
- Розклади `at` без часового поясу трактуються як UTC.
|
||||
- Heartbeat `activeHours` використовує налаштоване визначення часового поясу.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Автоматизація та завдання](/uk/automation) — огляд усіх механізмів автоматизації
|
||||
- [Автоматизація й завдання](/uk/automation) — усі механізми автоматизації з одного погляду
|
||||
- [Фонові завдання](/uk/automation/tasks) — журнал завдань для виконань cron
|
||||
- [Heartbeat](/uk/gateway/heartbeat) — періодичні цикли основної сесії
|
||||
- [Часовий пояс](/uk/concepts/timezone) — налаштування часового поясу
|
||||
- [Heartbeat](/uk/gateway/heartbeat) — періодичні цикли головної сесії
|
||||
- [Часовий пояс](/uk/concepts/timezone) — конфігурація часового поясу
|
||||
|
||||
Loading…
Reference in New Issue
Block a user