chore(i18n): refresh uk translations
This commit is contained in:
parent
2a13cab86d
commit
6bc17e00d8
@ -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
|
||||
```
|
||||
|
||||
Це спрацьовує приблизно 5–6 разів на місяць замість 0–1 разу на місяць. OpenClaw тут використовує стандартну OR-поведінку Croner. Щоб вимагати виконання обох умов, використовуйте модифікатор дня тижня `+` із Croner (`0 9 15 * +1`) або плануйте за одним полем, а інше перевіряйте в prompt чи команді свого завдання.
|
||||
Це спрацьовує приблизно 5–6 разів на місяць замість 0–1 разу на місяць. 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) — конфігурація часового поясу
|
||||
|
||||
1913
docs/uk/help/faq.md
1913
docs/uk/help/faq.md
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user