Automation

Потік завдань

Task Flow — це рівень оркестрації над фоновими завданнями. Потік — це довговічний запис багатоетапної роботи з власним станом, станом JSON, лічильником ревізій і пов’язаними записами завдань. Потоки зберігаються після перезапусків Gateway; окремі завдання залишаються одиницею від’єднаної роботи.

Коли використовувати Task Flow

Сценарій Що використовувати
Одне фонове завдання Звичайне завдання
Багатоетапний конвеєр, керований кодом Plugin Task Flow (керований)
Від’єднаний запуск ACP або субагента Task Flow (дзеркальний, створюється автоматично)
Одноразове нагадування Завдання Cron

Режими синхронізації

Керований режим

Керований потік має контролер: код Plugin, який створює потік через API Task Flow середовища виконання Plugin із ціллю та обов’язковим ідентифікатором контролера, а потім явно керує ним.

  • Кожен етап виконується як фонове завдання, створене в межах потоку; ключ власника потоку та походження запитувача передаються дочірнім завданням.
  • Контролер переводить потік між станами running, waiting і кінцевими станами та зберігає довільний стан етапу у форматі JSON у записі потоку.
  • Кожна зміна передає очікувану ревізію потоку. Запис із застарілою ревізією відхиляється як конфлікт ревізій, а не перезаписує новіший стан.
  • Після запиту скасування нові дочірні завдання відхиляються, а потік завершується зі станом cancelled, коли жодне дочірнє завдання більше не активне.

Приклад: потік щотижневого звіту, який (1) збирає дані, (2) створює звіт і (3) доставляє його, по одному фоновому завданню на етап:

Code
Потік: weekly-report  Етап 1: gather-data     → завдання створено → успішно завершено  Етап 2: generate-report → завдання створено → успішно завершено  Етап 3: deliver         → завдання створено → виконується

Дзеркальний режим

OpenClaw автоматично створює дзеркальний потік з одним завданням, коли починається від’єднаний запуск ACP або субагента (завдання в межах сеансу з результатом, який можна доставити після завершення). Запис потоку віддзеркалює своє єдине базове завдання — стан, ціль і часові параметри — тому від’єднані запуски отримують стабільний дескриптор потоку для перегляду стану та повторних спроб без контролера. Дзеркальні потоки відображають режим синхронізації task_mirrored у CLI.

Стани потоків

Стан Значення
queued Створено, виконання ще не розпочато
running Потік активно виконується
waiting Керований потік призупинено відповідно до метаданих очікування (таймер, зовнішня подія)
blocked Етап завершився без придатного результату; blockedTaskId/підсумок указують, який саме
succeeded Успішно завершено
failed Завершено з помилкою
cancelled Запитано скасування, і всі дочірні завдання завершилися
lost Потік утратив свій авторитетний базовий стан

Довговічний стан і відстеження ревізій

Записи потоків зберігаються у спільній базі даних стану SQLite (~/.openclaw/state/openclaw.sqlite, таблиця flow_runs) разом із записами завдань, тому прогрес зберігається після перезапусків Gateway. Кожен запис збільшує revision потоку; паралельні записувачі, які передають застарілу очікувану ревізію, отримують конфлікт і мають повторно прочитати дані. Зростання WAL обмежується автоматичними контрольними точками SQLite та періодичними пасивними контрольними точками, а під час завершення роботи застосовуються контрольні точки з усіченням. Застарілу допоміжну базу flows/registry.sqlite зі старіших установлень імпортує openclaw doctor.

Поведінка під час скасування

openclaw tasks flow cancel установлює для потоку постійний намір скасування, скасовує його активні дочірні завдання та забороняє нові керовані дочірні завдання. Коли жодне дочірнє завдання більше не активне, потік завершується зі станом cancelled — негайно або під час циклу обслуговування, якщо дочірнім завданням потрібно більше часу для завершення. Намір зберігається, тому скасований потік залишається скасованим, навіть якщо Gateway перезапуститься до завершення всіх дочірніх завдань.

Команди CLI

bash
# Перелічити активні та нещодавні потокиopenclaw tasks flow list [--status <status>] [--json] # Показати відомості про конкретний потікopenclaw tasks flow show <lookup> [--json] # Скасувати потік, що виконується, та його активні завданняopenclaw tasks flow cancel <lookup>
Команда Опис
openclaw tasks flow list Відстежувані потоки з режимом синхронізації, станом, ревізією, контролером і кількістю завдань
openclaw tasks flow show <id> Перегляд одного потоку за ідентифікатором потоку або ключем власника, включно з пов’язаними завданнями
openclaw tasks flow cancel <id> Скасування потоку, що виконується, та його активних завдань

Потоки також перевіряються командами openclaw tasks audit (виявлення застарілих або пошкоджених потоків) і openclaw tasks maintenance (завершує завислі скасування та видаляє кінцеві потоки через 7 днів).

Шаблон надійного запланованого робочого процесу

Для повторюваних робочих процесів, як-от огляди ринкової аналітики, розглядайте розклад, оркестрацію та перевірки надійності як окремі рівні:

  1. Використовуйте заплановані завдання для визначення часу.
  2. Використовуйте постійний сеанс Cron, якщо робочий процес має спиратися на попередній контекст.
  3. Використовуйте Lobster для детермінованих етапів, шлюзів схвалення та токенів відновлення.
  4. Використовуйте Task Flow для відстеження багатоетапного запуску в дочірніх завданнях, очікуваннях, повторних спробах і перезапусках Gateway.

Приклад структури Cron:

bash
openclaw cron add \  --name "Огляд ринкової аналітики" \  --cron "0 7 * * 1-5" \  --tz "America/New_York" \  --session session:market-intel \  --message "Запусти робочий процес Lobster market-intel. Перевір актуальність джерел перед підсумовуванням." \  --announce \  --channel slack \  --to "channel:C1234567890"

Використовуйте --session session:<id> замість isolated, коли повторюваному робочому процесу потрібні свідомо збережена історія, підсумки попередніх запусків або постійний контекст. Використовуйте isolated, коли кожен запуск має починатися з чистого стану, а весь необхідний стан явно визначено в робочому процесі.

У робочому процесі розміщуйте перевірки надійності перед етапом підсумовування за допомогою LLM:

yaml
name: market-intel-briefsteps:  - id: preflight    command: market-intel check --json  - id: collect    command: market-intel collect --json    stdin: $preflight.json  - id: summarize    command: market-intel summarize --json    stdin: $collect.json  - id: approve    command: market-intel deliver --preview    stdin: $summarize.json    approval: required  - id: deliver    command: market-intel deliver --execute    stdin: $summarize.json    condition: $approve.approved

Рекомендовані попередні перевірки:

  • Доступність браузера та вибір профілю, наприклад openclaw для керованого стану або user, коли потрібен автентифікований сеанс Chrome. Див. Браузер.
  • Облікові дані API та квота для кожного джерела.
  • Доступність необхідних кінцевих точок через мережу.
  • Увімкнення необхідних інструментів для агента, як-от lobster, browser і llm-task.
  • Налаштоване місце призначення для повідомлень про помилки Cron, щоб невдалі попередні перевірки були помітними. Див. Заплановані завдання.

Рекомендовані поля походження даних для кожного зібраного елемента:

json
{  "sourceUrl": "https://example.com/report",  "retrievedAt": "2026-04-24T12:00:00Z",  "asOf": "2026-04-24",  "title": "Приклад звіту",  "content": "..."}

Налаштуйте робочий процес так, щоб він відхиляв або позначав застарілі елементи перед підсумовуванням. Етап LLM має отримувати лише структурований JSON, і йому слід доручити зберігати sourceUrl, retrievedAt і asOf у вихідних даних. Використовуйте Завдання LLM, коли в робочому процесі потрібен етап моделі з перевіркою за схемою.

Для багаторазово використовуваних командних або спільнотних робочих процесів упакуйте CLI, файли .lobster і всі примітки щодо налаштування як skill або Plugin та опублікуйте їх через ClawHub. Зберігайте специфічні для робочого процесу запобіжні обмеження в цьому пакеті, якщо тільки в API Plugin немає потрібної універсальної можливості.

Зв’язок потоків із завданнями

Потоки координують завдання, а не замінюють їх. Один потік може керувати кількома фоновими завданнями протягом свого життєвого циклу. Використовуйте openclaw tasks для перегляду окремих записів завдань і openclaw tasks flow для перегляду потоку оркестрації.

Пов’язані матеріали

Was this useful?
On this page

On this page