chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-27 06:38:50 +00:00
parent 83c34c7d90
commit 807245aafb
3 changed files with 482 additions and 479 deletions

View File

@ -7,15 +7,15 @@ sidebarTitle: Scheduled tasks
summary: Заплановані завдання, Webhook-и та тригери Gmail PubSub для планувальника Gateway
title: Заплановані завдання
x-i18n:
generated_at: "2026-04-27T06:22:17Z"
generated_at: "2026-04-27T06:34:27Z"
model: gpt-5.4
provider: openai
source_hash: 81a20982283388b36047bcfffe20af8edf0a9a1eab0ae5f9fee91919e36d0860
source_hash: c7df825e11a574929f221214611ae041db94aec5b8ddd2101ac88a22427af3b1
source_path: automation/cron-jobs.md
workflow: 15
---
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента у потрібний час і може повертати результат назад у чат-канал або на кінцеву точку Webhook.
Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента у потрібний час і може повертати результат назад у чат-канал або до кінцевої точки Webhook.
## Швидкий старт
@ -46,38 +46,38 @@ Cron — це вбудований планувальник Gateway. Він зб
## Як працює 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`.
- 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`.
- Усі виконання cron створюють записи [фонових завдань](/uk/automation/tasks).
- Одноразові завдання (`--at`) за замовчуванням автоматично видаляються після успішного виконання.
- Ізольовані запуски cron після завершення виконують best-effort закриття відстежуваних вкладок/процесів браузера для своєї сесії `cron:<jobId>`, щоб відокремлена автоматизація браузера не залишала після себе осиротілі процеси.
- Ізольовані запуски cron також захищаються від застарілих відповідей-підтверджень. Якщо перший результат — лише проміжне оновлення статусу (`on it`, `pulling everything together` та подібні підказки), і жоден дочірній запуск subagent більше не відповідає за фінальну відповідь, OpenClaw повторно надсилає запит один раз, щоб отримати фактичний результат перед доставленням.
- Ізольовані запуски cron надають перевагу структурованим метаданим про відмову у виконанні з вбудованого запуску, а потім переходять до відомих фінальних маркерів підсумку/виводу, таких як `SYSTEM_RUN_DENIED` і `INVALID_REQUEST`, щоб заблокована команда не позначалася як успішний запуск.
- Ізольовані запуски cron також вважають помилки агента на рівні запуску помилками завдання, навіть якщо жоден payload відповіді не створено, тому збої моделі/провайдера збільшують лічильники помилок і запускають сповіщення про збої замість того, щоб позначати завдання як успішне.
- Одноразові завдання (`--at`) типово автоматично видаляються після успішного виконання.
- Ізольовані запуски cron у межах best-effort закривають відстежувані вкладки браузера/процеси для своєї сесії `cron:<jobId>` після завершення запуску, щоб відокремлена автоматизація браузера не залишала після себе осиротілі процеси.
- Ізольовані запуски cron також захищаються від застарілих відповідей-підтверджень. Якщо перший результат — це лише проміжне оновлення статусу (`on it`, `pulling everything together` та подібні підказки), і жоден дочірній запуск subagent більше не відповідає за фінальну відповідь, OpenClaw повторно формує запит один раз, щоб отримати фактичний результат перед доставленням.
- Ізольовані запуски cron надають перевагу структурованим метаданим відмови виконання з вбудованого запуску, а потім повертаються до відомих маркерів фінального підсумку/виводу, таких як `SYSTEM_RUN_DENIED` і `INVALID_REQUEST`, щоб заблокована команда не була позначена як успішний запуск.
- Ізольовані запуски cron також трактують збої агента на рівні запуску як помилки завдання, навіть якщо жодного payload відповіді не було створено, тож збої моделі/провайдера збільшують лічильники помилок і спричиняють сповіщення про збої, а не очищають завдання як успішне.
<a id="maintenance"></a>
<Note>
Узгодження завдань для cron насамперед належить runtime, а вже потім спирається на стійку історію: активне cron-завдання залишається активним, доки runtime cron усе ще відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує. Щойно runtime перестає володіти завданням і минає 5-хвилинне пільгове вікно, перевірки обслуговування звіряють збережені журнали запусків і стан завдань для відповідного запуску `cron:<jobId>:<startedAt>`. Якщо ця стійка історія містить фінальний результат, реєстр завдань фіналізується на його основі; інакше обслуговування, яке належить Gateway, може позначити завдання як `lost`. Офлайновий аудит CLI може відновитися зі стійкої історії, але він не розглядає власний порожній набір активних завдань у процесі як доказ того, що Gateway-керований запуск cron зник.
Узгодження завдань для 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` |
| Kind | CLI flag | Description |
| ------- | --------- | ------------------------------------------------------- |
| `at` | `--at` | Одноразова позначка часу (ISO 8601 або відносна, як-от `20m`) |
| `every` | `--every` | Фіксований інтервал |
| `cron` | `--cron` | 5-польовий або 6-польовий cron-вираз з необов’язковим `--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.
Cron-вирази розбираються за допомогою [croner](https://github.com/Hexagon/croner). Коли і поля дня місяця, і поля дня тижня не є wildcard, croner виконує збіг, коли **збігається будь-яке** з полів — а не обидва. Це стандартна поведінка Vixie cron.
```
# Intended: "9 AM on the 15th, only if it's a Monday"
@ -85,34 +85,34 @@ 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>` | Звітів, фонових завдань |
| Поточна сесія | `current` | Прив’язується під час створення | Періодичної роботи з урахуванням контексту |
| Власна сесія | `session:custom-id` | Постійна іменована сесія | Робочих процесів, що спираються на історію |
| Стиль | Значення `--session` | Виконується в | Найкраще підходить для |
| --------------- | --------------------- | ------------------------ | ------------------------------- |
| Основна сесія | `main` | Наступний цикл heartbeat | Нагадувань, системних подій |
| Ізольований | `isolated` | Виділений `cron:<jobId>` | Звітів, фонових рутин |
| Поточна сесія | `current` | Прив’язується під час створення | Періодичної роботи з урахуванням контексту |
| Користувацька сесія | `session:custom-id` | Постійна іменована сесія | Робочих процесів, що спираються на історію |
<AccordionGroup>
<Accordion title="Основна сесія vs ізольована vs власна">
Завдання **основної сесії** ставлять системну подію в чергу та за потреби пробуджують 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 для кожного запуску. OpenClaw може переносити безпечні налаштування, як-от параметри thinking/fast/verbose, мітки та явні обрані користувачем перевизначення model/auth, але не успадковує фоновий контекст розмови зі старішого рядка cron: маршрутизацію channel/group, політику send або queue, elevation, origin чи runtime-прив’язку ACP. Використовуйте `current` або `session:<id>`, коли періодичне завдання має свідомо продовжувати роботу в тому самому контексті розмови.
<Accordion title="Що означає 'нова сесія' для ізольованих завдань">
Для ізольованих завдань "нова сесія" означає новий ідентифікатор transcript/session для кожного запуску. OpenClaw може переносити безпечні налаштування, як-от thinking/fast/verbose, мітки та явно вибрані користувачем перевизначення model/auth, але не успадковує фоновий контекст розмови зі старішого рядка 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="Subagent і доставлення в Discord">
Коли ізольовані запуски cron оркеструють subagent, доставлення також надає перевагу фінальному виводу дочірнього запуску перед застарілим проміжним текстом батьківського. Якщо дочірні запуски все ще виконуються, OpenClaw пригнічує це часткове батьківське оновлення замість того, щоб оголошувати його.
Коли ізольовані запуски cron оркеструють subagent, доставлення також надає перевагу фінальному виводу нащадка замість застарілого проміжного тексту батьківського запуску. Якщо нащадки все ще виконуються, OpenClaw пригнічує це часткове батьківське оновлення замість того, щоб оголошувати його.
Для цілей оголошення в Discord лише з текстом OpenClaw надсилає канонічний фінальний текст асистента один раз замість повторного відтворення і streamed/intermediate text payloads, і фінальної відповіді. Медіа та структуровані payloads Discord, як і раніше, доставляються окремо, щоб не втрачалися вкладення й компоненти.
Для цілей оголошення Discord лише з текстом OpenClaw надсилає канонічний фінальний текст помічника один раз, замість повторного відтворення і потокових/проміжних текстових payload, і фінальної відповіді. Медіа та структуровані payload Discord, як і раніше, доставляються окремими payload, щоб не втрачалися вкладення й компоненти.
</Accordion>
</AccordionGroup>
@ -135,39 +135,40 @@ Cron-вирази розбираються за допомогою [croner](http
Обмежити, які інструменти може використовувати завдання, наприклад `--tools exec,read`.
</ParamField>
`--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель не дозволена, cron записує попередження в журнал і натомість повертається до вибору моделі агента/моделі за замовчуванням для завдання. Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення моделі без явного списку fallback для конкретного завдання більше не додає основну модель агента як приховану додаткову ціль повторної спроби.
`--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель не дозволена, cron записує попередження в журнал і натомість повертається до вибору моделі агента/типової моделі для завдання. Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення моделі без явного списку fallback для конкретного завдання більше не додає основну модель агента як приховану додаткову ціль повторної спроби.
Пріоритет вибору моделі для ізольованих завдань такий:
1. Перевизначення моделі Gmail hook (коли запуск надійшов із Gmail і це перевизначення дозволене)
2. `model` у payload для конкретного завдання
3. Збережене перевизначення моделі cron-сесії, вибране користувачем
4. Вибір моделі агента/за замовчуванням
2. `model` у payload конкретного завдання
3. Збережене перевизначення моделі сесії cron, вибране користувачем
4. Вибір моделі агента/типової моделі
Режим fast теж дотримується остаточно вибраного live-вибору. Якщо вибрана конфігурація моделі має `params.fastMode`, ізольований cron використовує його за замовчуванням. Збережене в сесії перевизначення `fastMode`, як і раніше, має пріоритет над конфігурацією в обох напрямах.
Швидкий режим також наслідує розв’язаний активний вибір. Якщо вибрана конфігурація моделі має `params.fastMode`, ізольований cron типово використовує його. Збережене в сесії перевизначення `fastMode` усе одно має пріоритет над конфігурацією в обох напрямках.
Якщо ізольований запуск натрапляє на live-передавання керування зі зміною моделі, cron повторює спробу з перемкненим провайдером/моделлю та зберігає цей live-вибір для активного запуску перед повторною спробою. Якщо перемикання також містить новий auth profile, cron теж зберігає це перевизначення auth profile для активного запуску. Кількість повторних спроб обмежена: після початкової спроби плюс 2 повторні спроби після перемикання cron припиняє виконання замість нескінченного циклу.
Якщо ізольований запуск натрапляє на живий handoff перемикання моделі, cron виконує повторну спробу з переключеним провайдером/моделлю та зберігає цей активний вибір для поточного запуску перед повторною спробою. Коли перемикання також містить новий профіль auth, cron теж зберігає це перевизначення профілю auth для поточного запуску. Кількість повторних спроб обмежена: після початкової спроби плюс 2 повторні спроби через перемикання cron перериває роботу замість безкінечного циклу.
## Доставлення та вивід
| Режим | Що відбувається |
| ---------- | ---------------------------------------------------------------- |
| Режим | Що відбувається |
| ---------- | ------------------------------------------------------------------- |
| `announce` | Резервно доставляє фінальний текст до цілі, якщо агент його не надіслав |
| `webhook` | Надсилає payload події завершення через POST на URL |
| `none` | Немає резервного доставлення з боку виконавця |
| `webhook` | Надсилає POST payload завершеної події на URL |
| `none` | Без резервного доставлення з боку runner |
Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставлення в канал. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Для цілей Slack/Discord/Mattermost слід використовувати явні префікси (`channel:<id>`, `user:<id>`). Ідентифікатори кімнат Matrix чутливі до регістру; використовуйте точний ідентифікатор кімнати або форму `room:!room:server` із Matrix.
Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставлення в канал. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Цілі Slack/Discord/Mattermost мають використовувати явні префікси (`channel:<id>`, `user:<id>`). Ідентифікатори кімнат Matrix чутливі до регістру; використовуйте точний ID кімнати або форму `room:!room:server` із Matrix.
Для ізольованих завдань доставлення в чат є спільним. Якщо маршрут чату доступний, агент може використовувати інструмент `message`, навіть коли завдання використовує `--no-deliver`. Якщо агент надсилає повідомлення до налаштованої/поточної цілі, OpenClaw пропускає резервне оголошення. В іншому разі `announce`, `webhook` і `none` керують лише тим, що виконавець робить із фінальною відповіддю після циклу агента.
Для ізольованих завдань доставлення в чат є спільним. Якщо доступний маршрут чату, агент може використовувати інструмент `message`, навіть коли завдання використовує `--no-deliver`. Якщо агент надсилає повідомлення до налаштованої/поточної цілі, OpenClaw пропускає резервне оголошення. В іншому разі `announce`, `webhook` і `none` керують лише тим, що runner робить із фінальною відповіддю після ходу агента.
Коли агент створює ізольоване нагадування з активного чату, OpenClaw зберігає збережену live-ціль доставлення для маршруту резервного оголошення. Внутрішні ключі сесії можуть бути в нижньому регістрі; цілі доставлення провайдера не відновлюються з цих ключів, коли доступний контекст поточного чату.
Коли агент створює ізольоване нагадування з активного чату, OpenClaw зберігає збережену активну ціль доставлення для резервного маршруту оголошення. Внутрішні ключі сесії можуть бути у нижньому регістрі; цілі доставлення провайдера не відновлюються з цих ключів, коли доступний поточний контекст чату.
Сповіщення про помилки використовують окремий шлях призначення:
Сповіщення про збої використовують окремий маршрут призначення:
- `cron.failureDestination` задає глобальне значення за замовчуванням для сповіщень про помилки.
- `job.delivery.failureDestination` перевизначає його для конкретного завдання.
- Якщо жодне з них не задано, а завдання вже доставляє через `announce`, сповіщення про помилки тепер резервно надсилаються до цієї основної цілі announce.
- `cron.failureDestination` задає глобальне типове призначення для сповіщень про збої.
- `job.delivery.failureDestination` перевизначає це для конкретного завдання.
- Якщо жодне з них не задано і завдання вже доставляє через `announce`, сповіщення про збої тепер резервно надсилаються на цю основну ціль `announce`.
- `delivery.failureDestination` підтримується лише для завдань `sessionTarget="isolated"`, якщо основний режим доставлення не є `webhook`.
- `failureAlert.includeSkipped: true` дає змогу завданню або глобальній політиці сповіщень cron повторно повідомляти про пропущені запуски. Пропущені запуски ведуть окремий лічильник послідовних пропусків, тож вони не впливають на backoff помилок виконання.
## Приклади CLI
@ -212,7 +213,7 @@ Cron-вирази розбираються за допомогою [croner](http
## Webhook-и
Gateway може надавати HTTP-кінцеві точки Webhook для зовнішніх тригерів. Увімкніть це в конфігурації:
Gateway може відкривати HTTP-кінцеві точки Webhook для зовнішніх тригерів. Увімкніть у конфігурації:
```json5
{
@ -231,7 +232,7 @@ Gateway може надавати HTTP-кінцеві точки Webhook для
- `Authorization: Bearer <token>` (рекомендовано)
- `x-openclaw-token: <token>`
Токени в query string відхиляються.
Токени в рядку запиту відхиляються.
<AccordionGroup>
<Accordion title="POST /hooks/wake">
@ -253,7 +254,7 @@ Gateway може надавати HTTP-кінцеві точки Webhook для
</Accordion>
<Accordion title="POST /hooks/agent">
Запустити ізольований цикл агента:
Запустити ізольований хід агента:
```bash
curl -X POST http://127.0.0.1:18789/hooks/agent \
@ -266,7 +267,7 @@ Gateway може надавати HTTP-кінцеві точки Webhook для
</Accordion>
<Accordion title="Зіставлені hooks (POST /hooks/<name>)">
Власні імена hook визначаються через `hooks.mappings` у конфігурації. Зіставлення можуть перетворювати довільні payload на дії `wake` або `agent` за допомогою шаблонів або трансформацій коду.
Користувацькі імена hook розв’язуються через `hooks.mappings` у конфігурації. Зіставлення можуть перетворювати довільні payload на дії `wake` або `agent` за допомогою шаблонів або кодових перетворень.
</Accordion>
</AccordionGroup>
@ -275,10 +276,10 @@ Gateway може надавати HTTP-кінцеві точки Webhook для
- Використовуйте окремий токен hook; не використовуйте повторно токени автентифікації gateway.
- Тримайте `hooks.path` на окремому підшляху; `/` відхиляється.
- Установіть `hooks.allowedAgentIds`, щоб обмежити явну маршрутизацію `agentId`.
- Тримайте `hooks.allowRequestSessionKey=false`, якщо вам не потрібні сесії, обрані викликачем.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також установіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити допустимі форми ключів сесій.
- Payload hook за замовчуванням обгортаються межами безпеки.
- Встановіть `hooks.allowedAgentIds`, щоб обмежити явну маршрутизацію `agentId`.
- Тримайте `hooks.allowRequestSessionKey=false`, якщо вам не потрібні сесії, вибрані викликачем.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також встановіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити дозволені форми ключів сесії.
- Payload hook типово обгортаються межами безпеки.
</Warning>
## Інтеграція Gmail PubSub
@ -295,17 +296,17 @@ 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`.
### Ручне одноразове налаштування
<Steps>
<Step title="Виберіть проєкт GCP">
Виберіть проєкт GCP, якому належить OAuth-клієнт, що використовується `gog`:
Виберіть проєкт GCP, якому належить OAuth client, що використовується `gog`:
```bash
gcloud auth login
@ -314,7 +315,7 @@ openclaw webhooks gmail setup --account openclaw@gmail.com
```
</Step>
<Step title="Створіть topic і надайте Gmail доступ для push">
<Step title="Створіть topic і надайте Gmail доступ на push">
```bash
gcloud pubsub topics create gog-gmail-watch
gcloud pubsub topics add-iam-policy-binding gog-gmail-watch \
@ -348,28 +349,28 @@ openclaw webhooks gmail setup --account openclaw@gmail.com
## Керування завданнями
```bash
# Перелічити всі завдання
# 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"
# Примусово запустити завдання зараз
# 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
```
@ -378,9 +379,9 @@ openclaw cron edit <jobId> --clear-agent
Примітка щодо перевизначення моделі:
- `openclaw cron add|edit --model ...` змінює вибрану модель завдання.
- Якщо модель дозволена, саме ця комбінація провайдера/моделі потрапляє до ізольованого запуску агента.
- Якщо вона не дозволена, cron видає попередження і повертається до вибору моделі агента/моделі за замовчуванням для завдання.
- Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення `--model` без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента як до тихої додаткової цілі повторної спроби.
- Якщо модель дозволена, саме ця пара провайдер/модель передається до ізольованого запуску агента.
- Якщо вона не дозволена, cron видає попередження і повертається до вибору моделі агента/типової моделі для завдання.
- Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення `--model` без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента як до мовчазної додаткової цілі повторної спроби.
</Note>
## Конфігурація
@ -403,23 +404,23 @@ openclaw cron edit <jobId> --clear-agent
}
```
Стан sidecar runtime виводиться з `cron.store`: сховище `.json`, як-от `~/clawd/cron/jobs.json`, використовує `~/clawd/cron/jobs-state.json`, а до шляху сховища без суфікса `.json` додається `-state.json`.
Sidecar стану runtime виводиться з `cron.store`: сховище `.json`, таке як `~/clawd/cron/jobs.json`, використовує `~/clawd/cron/jobs-state.json`, тоді як до шляху сховища без суфікса `.json` додається `-state.json`.
Вимкнути cron: `cron.enabled: false` або `OPENCLAW_SKIP_CRON=1`.
Вимкнення cron: `cron.enabled: false` або `OPENCLAW_SKIP_CRON=1`.
<AccordionGroup>
<Accordion title="Поведінка повторних спроб">
**Повторна спроба для одноразових завдань**: тимчасові помилки (обмеження швидкості, перевантаження, мережа, помилка сервера) повторюються до 3 разів з експоненційною затримкою. Постійні помилки відразу вимикаються.
**Повторна спроба для одноразового завдання**: тимчасові помилки (ліміт швидкості, перевантаження, мережа, помилка сервера) повторюються до 3 разів з експоненційним backoff. Постійні помилки одразу вимикають завдання.
**Повторна спроба для періодичних завдань**: експоненційна затримка (від 30 с до 60 хв) між повторними спробами. Після наступного успішного запуску затримка скидається.
**Повторна спроба для періодичного завдання**: експоненційний backoff (від 30 с до 60 хв) між повторами. Backoff скидається після наступного успішного запуску.
</Accordion>
<Accordion title="Обслуговування">
`cron.sessionRetention` (типово `24h`) очищає записи сесій ізольованих запусків. `cron.runLog.maxBytes` / `cron.runLog.keepLines` автоматично очищають файли журналів запусків.
`cron.sessionRetention` (типово `24h`) очищає записи сесій ізольованих запусків. `cron.runLog.maxBytes` / `cron.runLog.keepLines` автоматично очищають файли журналу запусків.
</Accordion>
</AccordionGroup>
## Усунення проблем
## Усунення несправностей
### Послідовність команд
@ -437,33 +438,33 @@ openclaw doctor
<AccordionGroup>
<Accordion title="Cron не спрацьовує">
- Перевірте `cron.enabled` і змінну середовища `OPENCLAW_SKIP_CRON`.
- Переконайтеся, що Gateway працює безперервно.
- Для розкладів `cron` перевірте часовий пояс (`--tz`) порівняно з часовим поясом хоста.
- `reason: not-due` у виводі запуску означає, що ручний запуск перевірявся командою `openclaw cron run <jobId> --due`, і для завдання ще не настав час.
- Підтвердьте, що Gateway працює безперервно.
- Для розкладів `cron` перевірте часовий пояс (`--tz`) відносно часового поясу хоста.
- `reason: not-due` у виводі запуску означає, що ручний запуск перевірявся через `openclaw cron run <jobId> --due` і час виконання завдання ще не настав.
</Accordion>
<Accordion title="Cron спрацював, але доставлення немає">
- Режим доставлення `none` означає, що резервне надсилання з боку виконавця не очікується. Агент усе ще може надіслати повідомлення безпосередньо через інструмент `message`, коли маршрут чату доступний.
<Accordion title="Cron спрацював, але не було доставлення">
- Режим доставлення `none` означає, що резервне надсилання з боку runner не очікується. Агент усе ще може напряму надсилати через інструмент `message`, коли доступний маршрут чату.
- Відсутня/некоректна ціль доставлення (`channel`/`to`) означає, що вихідне надсилання було пропущено.
- Для Matrix скопійовані або застарілі завдання з `delivery.to` room ID у нижньому регістрі можуть не працювати, оскільки room ID у Matrix чутливі до регістру. Відредагуйте завдання, вказавши точне значення `!room:server` або `room:!room:server` з Matrix.
- Для Matrix скопійовані або застарілі завдання з `delivery.to` room ID у нижньому регістрі можуть не працювати, оскільки room ID Matrix чутливі до регістру. Відредагуйте завдання, вказавши точне значення `!room:server` або `room:!room:server` з Matrix.
- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставлення було заблоковано обліковими даними.
- Якщо ізольований запуск повертає лише тихий токен (`NO_REPLY` / `no_reply`), OpenClaw пригнічує пряме вихідне доставлення, а також резервний шлях підсумку через чергу, тож назад у чат нічого не публікується.
- Якщо агент має сам надіслати повідомлення користувачеві, перевірте, що завдання має придатний маршрут (`channel: "last"` з попереднім чатом або явний канал/ціль).
- Якщо ізольований запуск повертає лише тихий токен (`NO_REPLY` / `no_reply`), OpenClaw пригнічує пряме вихідне доставлення, а також резервний шлях підсумку в черзі, тому назад у чат нічого не публікується.
- Якщо агент має сам написати користувачу, перевірте, що завдання має придатний маршрут (`channel: "last"` із попереднім чатом або явний канал/ціль).
</Accordion>
<Accordion title="Здається, cron або heartbeat заважає перенесенню в стилі /new">
- Свіжість щоденного та неактивного скидання не базується на `updatedAt`; див. [Керування сесіями](/uk/concepts/session#session-lifecycle).
- Пробудження cron, запуски heartbeat, сповіщення exec і службові дії gateway можуть оновлювати рядок сесії для маршрутизації/статусу, але вони не подовжують `sessionStartedAt` або `lastInteractionAt`.
- Для застарілих рядків, створених до появи цих полів, OpenClaw може відновити `sessionStartedAt` із заголовка сесії в transcript JSONL, якщо файл усе ще доступний. Застарілі рядки неактивності без `lastInteractionAt` використовують цей відновлений час початку як базову точку неактивності.
<Accordion title="Cron або heartbeat начебто заважають rollover у стилі /new">
- Свіжість щоденного скидання та скидання через неактивність не базується на `updatedAt`; див. [Керування сесіями](/uk/concepts/session#session-lifecycle).
- Пробудження cron, запуски heartbeat, сповіщення exec і службові операції gateway можуть оновлювати рядок сесії для маршрутизації/статусу, але не подовжують `sessionStartedAt` або `lastInteractionAt`.
- Для застарілих рядків, створених до появи цих полів, OpenClaw може відновити `sessionStartedAt` із заголовка сесії transcript JSONL, якщо файл усе ще доступний. Застарілі рядки неактивності без `lastInteractionAt` використовують цей відновлений час початку як базову точку неактивності.
</Accordion>
<Accordion title="Підводні камені часових поясів">
- Cron без `--tz` використовує часовий пояс хоста gateway.
- Розклади `at` без часового поясу трактуються як UTC.
- `activeHours` у Heartbeat використовує налаштоване визначення часового поясу.
- `activeHours` Heartbeat використовує налаштоване визначення часового поясу.
</Accordion>
</AccordionGroup>
## Пов’язане
- [Автоматизація й завдання](/uk/automation) — огляд усіх механізмів автоматизації
- [Автоматизація та завдання](/uk/automation) — усі механізми автоматизації з одного погляду
- [Фонові завдання](/uk/automation/tasks) — реєстр завдань для виконань cron
- [Heartbeat](/uk/gateway/heartbeat) — періодичні цикли основної сесії
- [Часовий пояс](/uk/concepts/timezone) — налаштування часового поясу
- [Часовий пояс](/uk/concepts/timezone) — конфігурація часового поясу

View File

@ -1,14 +1,14 @@
---
read_when:
- Вам потрібні заплановані завдання і пробудження
- Вам потрібні заплановані завдання та пробудження
- Ви налагоджуєте виконання Cron і журнали
summary: Довідка CLI для `openclaw cron` (планування і запуск фонових завдань)
summary: Довідка CLI для `openclaw cron` (планування та запуск фонових завдань)
title: Cron
x-i18n:
generated_at: "2026-04-27T06:23:55Z"
generated_at: "2026-04-27T06:34:28Z"
model: gpt-5.4
provider: openai
source_hash: 498759e5682d63a2f3f96fd4dcdc7402f1398a6b1a835e6a3b624e526fec5ce3
source_hash: 2997467e11d787009920d5036a2590780839b219d8be6804a9ee61fd9b11a585
source_path: cli/cron.md
workflow: 15
---
@ -18,45 +18,45 @@ x-i18n:
Керуйте завданнями Cron для планувальника Gateway.
<Tip>
Запустіть `openclaw cron --help`, щоб побачити повну поверхню команд. Див. [Завдання Cron](/uk/automation/cron-jobs) для концептуального посібника.
Запустіть `openclaw cron --help`, щоб переглянути повну поверхню команд. Див. [завдання Cron](/uk/automation/cron-jobs) для концептуального посібника.
</Tip>
## Сеанси
## Сесії
`--session` приймає `main`, `isolated`, `current` або `session:<id>`.
<AccordionGroup>
<Accordion title="Ключі сеансу">
- `main` прив’язується до основного сеансу агента.
- `isolated` створює нову стенограму та ідентифікатор сеансу для кожного запуску.
- `current` прив’язується до активного сеансу на момент створення.
- `session:<id>` фіксує прив’язку до явного постійного ключа сеансу.
<Accordion title="Ключі сесій">
- `main` прив’язується до основної сесії агента.
- `isolated` створює новий transcript та ідентифікатор сесії для кожного запуску.
- `current` прив’язується до активної сесії на момент створення.
- `session:<id>` фіксує явний ключ постійної сесії.
</Accordion>
<Accordion title="Семантика ізольованого сеансу">
Ізольовані запуски скидають фоновий контекст розмови. Маршрутизація каналу й групи, політика надсилання/черги, підвищення привілеїв, джерело й прив’язка середовища виконання ACP скидаються для нового запуску. Безпечні налаштування та явно вибрані користувачем перевизначення моделі чи автентифікації можуть зберігатися між запусками.
<Accordion title="Семантика isolated-сесій">
Isolated-запуски скидають фоновий контекст розмови. Маршрутизація каналу й групи, політика надсилання/черги, підвищення привілеїв, origin і прив’язка середовища виконання ACP скидаються для нового запуску. Безпечні параметри та явні перевизначення моделі або автентифікації, вибрані користувачем, можуть зберігатися між запусками.
</Accordion>
</AccordionGroup>
## Доставка
`openclaw cron list` і `openclaw cron show <job-id>` показують попередній перегляд визначеного маршруту доставки. Для `channel: "last"` у попередньому перегляді видно, чи маршрут визначено з основного або поточного сеансу, чи він завершиться безпечною відмовою.
`openclaw cron list` і `openclaw cron show <job-id>` показують попередній перегляд визначеного маршруту доставки. Для `channel: "last"` попередній перегляд показує, чи маршрут визначився з основної або поточної сесії, чи буде безпечно відхилений.
<Note>
Ізольовані завдання `cron add` типово використовують доставку `--announce`. Використовуйте `--no-deliver`, щоб залишити вивід внутрішнім. `--deliver` залишається застарілим псевдонімом для `--announce`.
Isolated-завдання `cron add` за замовчуванням використовують доставку `--announce`. Використовуйте `--no-deliver`, щоб залишити вивід внутрішнім. `--deliver` залишається застарілим синонімом для `--announce`.
</Note>
### Володіння доставкою
### Відповідальність за доставку
Для ізольованої доставки чату Cron відповідальність поділяється між агентом і виконавцем:
Доставка повідомлень у чат для isolated Cron спільно розподіляється між агентом і виконавцем:
- Агент може надсилати напряму через інструмент `message`, якщо маршрут чату доступний.
- Резервна доставка `announce` надсилає лише фінальну відповідь, якщо агент не надіслав її напряму до визначеної цілі.
- `webhook` надсилає завершене навантаження на URL.
- Агент може надсилати напряму за допомогою інструмента `message`, коли маршрут чату доступний.
- `announce` резервно доставляє лише фінальну відповідь, якщо агент не надіслав її напряму до визначеної цілі.
- `webhook` надсилає завершений payload на URL.
- `none` вимикає резервну доставку виконавцем.
`--announce` — це резервна доставка фінальної відповіді виконавцем. `--no-deliver` вимикає цей резервний механізм, але не прибирає в агента інструмент `message`, якщо маршрут чату доступний.
`--announce` — це резервна доставка фінальної відповіді виконавцем. `--no-deliver` вимикає цю резервну доставку, але не прибирає інструмент `message` агента, коли маршрут чату доступний.
Нагадування, створені з активного чату, зберігають активну ціль доставки чату для резервної доставки announce. Внутрішні ключі сеансу можуть бути в нижньому регістрі; не використовуйте їх як джерело істини для чутливих до регістру ідентифікаторів провайдерів, таких як ідентифікатори кімнат Matrix.
Нагадування, створені з активного чату, зберігають ціль доставки активного чату для резервної доставки announce. Внутрішні ключі сесій можуть бути в нижньому регістрі; не використовуйте їх як джерело істини для чутливих до регістру ідентифікаторів провайдерів, таких як ідентифікатори кімнат Matrix.
### Доставка збоїв
@ -67,33 +67,33 @@ x-i18n:
3. Основна ціль announce завдання (коли явну ціль для збоїв не задано).
<Note>
Завдання основного сеансу можуть використовувати `delivery.failureDestination`, лише коли основний режим доставки — `webhook`. Ізольовані завдання приймають його в усіх режимах.
Завдання основної сесії можуть використовувати `delivery.failureDestination`, лише коли основний режим доставки — `webhook`. Isolated-завдання приймають його в усіх режимах.
</Note>
Примітка: ізольовані запуски Cron розглядають збої агента на рівні запуску як помилки завдання, навіть коли
навантаження відповіді не створюється, тому збої моделі/провайдера все одно збільшують лічильники помилок
і запускають сповіщення про збій.
Примітка: isolated Cron-запуски трактують збої агента на рівні запуску як помилки завдання, навіть коли payload відповіді не створено, тому збої моделі/провайдера все одно збільшують лічильники помилок і запускають сповіщення про збій.
## Планування
### Одноразові завдання
`--at <datetime>` планує одноразовий запуск. Дата й час без зсуву трактуються як UTC, якщо ви також не передасте `--tz <iana>`, яке інтерпретує локальний час у вказаному часовому поясі.
`--at <datetime>` планує одноразовий запуск. Дати й час без зміщення трактуються як UTC, якщо ви також не передасте `--tz <iana>`, який інтерпретує локальний час у вказаному часовому поясі.
<Note>
Одноразові завдання типово видаляються після успішного виконання. Використовуйте `--keep-after-run`, щоб зберегти їх.
Одноразові завдання після успішного виконання за замовчуванням видаляються. Використовуйте `--keep-after-run`, щоб зберегти їх.
</Note>
### Повторювані завдання
Повторювані завдання використовують експоненційне збільшення затримки повтору після послідовних помилок: 30с, 1хв, 5хв, 15хв, 60хв. Після наступного успішного запуску розклад повертається до звичайного режиму.
Після послідовних помилок повторювані завдання використовують експоненційне резервне повторення: 30 с, 1 хв, 5 хв, 15 хв, 60 хв. Після наступного успішного запуску розклад повертається до норми.
Пропущені запуски відстежуються окремо від помилок виконання. Вони не впливають на резервне повторення, але `openclaw cron edit <job-id> --failure-alert-include-skipped` може додати до сповіщень про збої повторювані сповіщення про пропущені запуски.
### Ручні запуски
`openclaw cron run` повертається, щойно ручний запуск поставлено в чергу. Успішні відповіді містять `{ ok: true, enqueued: true, runId }`. Використовуйте `openclaw cron runs --id <job-id>`, щоб відстежити підсумковий результат.
<Note>
`openclaw cron run <job-id>` типово примусово запускає завдання. Використовуйте `--due`, щоб зберегти попередню поведінку «запускати лише коли настав час».
`openclaw cron run <job-id>` за замовчуванням примусово запускає завдання. Використовуйте `--due`, щоб зберегти стару поведінку «запускати лише якщо настав час».
</Note>
## Моделі
@ -101,82 +101,82 @@ x-i18n:
`cron add|edit --model <ref>` вибирає дозволену модель для завдання.
<Warning>
Якщо модель не дозволена, Cron попереджає й повертається до вибору моделі агента або типової моделі для завдання. Налаштовані ланцюжки резервного переходу все ще застосовуються, але звичайне перевизначення моделі без явного списку резервних варіантів для завдання більше не додає основну модель агента як приховану додаткову ціль повтору.
Якщо модель не дозволена, Cron показує попередження і повертається до вибору моделі агента або моделі за замовчуванням для завдання. Налаштовані ланцюжки резервного переходу й надалі застосовуються, але звичайне перевизначення моделі без явного списку резервних варіантів для завдання більше не додає основну модель агента як приховану додаткову ціль повторної спроби.
</Warning>
### Пріоритет моделі для ізольованого Cron
### Пріоритет моделей isolated Cron
Ізольований Cron визначає активну модель у такому порядку:
Isolated Cron визначає активну модель у такому порядку:
1. Перевизначення Gmail-hook.
2. `--model` для конкретного завдання.
3. Збережене перевизначення моделі сеансу Cron (коли користувач її вибрав).
4. Вибір моделі агента або типової моделі.
2. `--model` для завдання.
3. Збережене перевизначення моделі cron-session (коли користувач його вибрав).
4. Вибір моделі агента або моделі за замовчуванням.
### Швидкий режим
Швидкий режим ізольованого Cron слідує за визначеним вибором активної моделі. Конфігурація моделі `params.fastMode` застосовується типово, але збережене в сеансі перевизначення `fastMode` усе ще має пріоритет над конфігурацією.
Швидкий режим isolated Cron дотримується визначеного вибору активної моделі. Конфігурація моделі `params.fastMode` застосовується за замовчуванням, але збережене перевизначення `fastMode` сесії все одно має вищий пріоритет за конфігурацію.
### Повторні спроби під час перемикання live-моделі
### Повторні спроби при перемиканні активної моделі
Якщо ізольований запуск викидає `LiveSessionModelSwitchError`, Cron зберігає перевизначений провайдер і модель (а також перевизначення профілю автентифікації, якщо воно є) для активного запуску перед повторною спробою. Зовнішній цикл повторів обмежений двома повторними спробами перемикання після початкової спроби, а потім переривається замість нескінченного циклу.
Якщо isolated-запуск викидає `LiveSessionModelSwitchError`, Cron перед повторною спробою зберігає перемкнений провайдер і модель (а також перевизначення профілю автентифікації після перемикання, якщо воно є) для активного запуску. Зовнішній цикл повторних спроб обмежено двома повторними спробами перемикання після початкової спроби, після чого він переривається замість нескінченного циклу.
## Вивід запуску та відмови
### Приглушення застарілих підтверджень
### Придушення застарілих підтверджень
Ізольовані ходи Cron приглушують застарілі відповіді, що містять лише підтвердження. Якщо перший результат — лише проміжне оновлення стану і жоден субагент-нащадок не відповідає за фінальну відповідь, Cron один раз повторно формує запит для отримання реального результату перед доставкою.
У turns isolated Cron придушуються відповіді, що містять лише застаріле підтвердження. Якщо перший результат — це лише проміжне оновлення стану і жоден дочірній запуск підлеглого агента не відповідає за остаточну відповідь, Cron один раз повторно формує запит для отримання реального результату перед доставкою.
### Приглушення тихого токена
### Придушення тихого токена
Якщо ізольований запуск Cron повертає лише тихий токен (`NO_REPLY` або `no_reply`), Cron приглушує як пряме вихідне доставлення, так і резервний шлях зведення через чергу, тому назад у чат нічого не надсилається.
Якщо isolated Cron-запуск повертає лише тихий токен (`NO_REPLY` або `no_reply`), Cron придушує як пряме вихідне доставлення, так і резервний шлях зведення в черзі, тому назад у чат нічого не публікується.
### Структуровані відмови
Ізольовані запуски Cron надають перевагу структурованим метаданим відмови виконання із вбудованого запуску, а потім переходять до відомих маркерів відмови у фінальному виводі, таких як `SYSTEM_RUN_DENIED`, `INVALID_REQUEST` і фрази відмови прив’язки погодження.
Isolated Cron-запуски надають перевагу структурованим метаданим відмови виконання із вбудованого запуску, а потім повертаються до відомих маркерів відмови у фінальному виводі, таких як `SYSTEM_RUN_DENIED`, `INVALID_REQUEST` і фрази відмови, пов’язані з прив’язкою схвалення.
`cron list` і історія запусків показують причину відмови замість повідомлення про заблоковану команду як `ok`.
`cron list` та історія запусків показують причину відмови замість того, щоб позначати заблоковану команду як `ok`.
## Зберігання
Зберігання й видалення контролюються в конфігурації:
Зберігання та очищення налаштовуються в конфігурації:
- `cron.sessionRetention` (типово `24h`) видаляє завершені сеанси ізольованих запусків.
- `cron.sessionRetention` (типово `24h`) очищає завершені сесії isolated-запусків.
- `cron.runLog.maxBytes` і `cron.runLog.keepLines` очищають `~/.openclaw/cron/runs/<jobId>.jsonl`.
## Міграція старих завдань
## Міграція старіших завдань
<Note>
Якщо у вас є завдання Cron, створені до поточного формату доставки та зберігання, запустіть `openclaw doctor --fix`. Doctor нормалізує застарілі поля Cron (`jobId`, `schedule.cron`, поля доставки верхнього рівня, включно із застарілим `threadId`, псевдоніми доставки `provider` у навантаженні) і мігрує прості резервні завдання webhook з `notify: true` до явної доставки webhook, коли налаштовано `cron.webhook`.
Якщо у вас є завдання Cron, створені до поточного формату доставки та зберігання, запустіть `openclaw doctor --fix`. Doctor нормалізує застарілі поля Cron (`jobId`, `schedule.cron`, поля доставки верхнього рівня, включно із застарілим `threadId`, псевдоніми доставки `provider` у payload) і мігрує прості резервні webhook-завдання `notify: true` до явної доставки webhook, коли налаштовано `cron.webhook`.
</Note>
## Поширені зміни
## Типові зміни
Оновлення параметрів доставки без зміни повідомлення:
Оновіть параметри доставки без зміни повідомлення:
```bash
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
```
Вимкнення доставки для ізольованого завдання:
Вимкніть доставку для isolated-завдання:
```bash
openclaw cron edit <job-id> --no-deliver
```
Увімкнення полегшеного bootstrap-контексту для ізольованого завдання:
Увімкніть полегшений початковий контекст для isolated-завдання:
```bash
openclaw cron edit <job-id> --light-context
```
Оголошення в певний канал:
Оголосіть у конкретний канал:
```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
```
Створення ізольованого завдання з полегшеним bootstrap-контекстом:
Створіть isolated-завдання з полегшеним початковим контекстом:
```bash
openclaw cron add \
@ -188,11 +188,11 @@ openclaw cron add \
--no-deliver
```
`--light-context` застосовується лише до ізольованих завдань ходу агента. Для запусків Cron полегшений режим залишає bootstrap-контекст порожнім замість додавання повного набору bootstrap-контексту робочого простору.
`--light-context` застосовується лише до isolated agent-turn завдань. Для Cron-запусків полегшений режим залишає початковий контекст порожнім замість ін’єкції повного набору початкового контексту робочого простору.
## Поширені команди адміністрування
## Типові команди адміністрування
Ручний запуск і перегляд:
Ручний запуск і перевірка:
```bash
openclaw cron list
@ -202,9 +202,9 @@ openclaw cron run <job-id> --due
openclaw cron runs --id <job-id> --limit 50
```
Записи `cron runs` включають діагностику доставки з цільовою cron-адресою, визначеною ціллю, надсиланнями через інструмент повідомлень, використанням резервного механізму та станом доставки.
Записи `cron runs` включають діагностику доставки з передбаченою ціллю Cron, визначеною ціллю, надсиланнями через інструмент повідомлень, використанням резервного шляху та станом доставки.
Перенаправлення агента й сеансу:
Перенаправлення агента та сесії:
```bash
openclaw cron edit <job-id> --agent ops

File diff suppressed because it is too large Load Diff