Process: Task Lifecycle
Жизненный цикл задачи от создания до завершения.
Trigger
- Человек отправляет сообщение в @maxnovaocbot
- Агент создаёт child task
- Cron-задача по расписанию
Статусы
┌──────────┐
│ pending │
└────┬─────┘
│ pickup (SKIP LOCKED)
▼
┌──────────┐
┌─────│ running │◀──────┐
│ └────┬─────┘ │
│ │ │ revise (≤3)
│ ▼ │
│ ┌──────────┐ │
│ │ judging │───────┘
│ └────┬─────┘
│ │
│ ┌────┴────┐
│ ▼ ▼
│ ┌──────┐ ┌────────┐
│ │ done │ │ failed │
│ └──────┘ └───┬────┘
│ │
▼ ▼
┌──────────┐ ┌───────────┐
│ timeout │ │ escalated │
└──────────┘ └───────────┘
│
▼
┌──────────┐
│ failed │
└──────────┘
Дополнительные статусы:
blocked— ожидание завершения children (fan-out/fan-in)killed— остановлен по budget или human request
Шаги подробно
1. Creation
Запись в таблицу tasks.
Обязательные поля:
to_agent— кому назначенаtype— тип задачи (определяет routing)payload— данные задачи (JSONB)hypothesis_id— ссылка на гипотезу (если не operational)
Автоматически:
id— UUIDstatus=pendingcreated_at= now()root_id=idдля корневых задач, наследуется от parent для child- Бюджеты наследуются от parent если не указаны явно
2. Pickup
Worker атомарно берёт задачу:
UPDATE tasks SET status = 'running', started_at = now()
WHERE id = (
SELECT id FROM tasks
WHERE status = 'pending' AND to_agent = ANY(%s)
ORDER BY priority, created_at
FOR UPDATE SKIP LOCKED LIMIT 1
) RETURNING *;Если задач нет — sleep(1), retry.
3. Pre-execution Policy Check
Policy-Layer проверяет до выполнения:
- Budget не превышен (tokens, USD, time)
- Agent имеет право на этот тип задачи
- Input schema валиден
- Нет нарушений Codex
При нарушении: status = 'failed', escalation record.
4. Execution
- Загрузка role config из
roles/*.yaml(prompt, tools, budget) - Context assembly: manifest RAG + agent memory + task payload
- LLM вызов с системным промптом
- Tool calls — каждый проходит через Policy Engine
- Финальный result
5. Post-execution Policy Check
- Output соответствует schema
- Нет PII/secrets leak
- Confidence score указан
6. Judging
status = 'judging'. Agent-Judge получает (task, result).
| Verdict | Действие |
|---|---|
accept | → done |
revise | → running (с feedback) |
reject | → failed + escalation |
7. Finalization
Accept → done:
- Artifacts сохраняются
- Parent уведомляется (если есть)
- Метрики записываются в
runs
Revise → running:
revise_counter++- Если
revise_counter ≤ 3→ обратно в running с feedback от Judge - Если
revise_counter > 3→ failed + escalation
Reject → failed:
- Escalation record создаётся
- Parent уведомляется
8. Parent Notification (fan-in)
Если у задачи есть parent_id:
-- Проверка: все ли children завершены?
SELECT parent_id FROM tasks
WHERE parent_id = %s
GROUP BY parent_id
HAVING COUNT(*) = COUNT(*) FILTER (WHERE status IN ('done', 'failed'));Если все children done → parent blocked → running (Director агрегирует).
9. User Reply (для root tasks)
Если задача корневая (parent_id IS NULL):
- Agent-CEO агрегирует результат
- Ответ через OpenClaw → Telegram
Участники
| Этап | Участник |
|---|---|
| Creation | User или Agent |
| Pickup | Worker (queue loop) |
| Policy | PolicyEngine (code) |
| Execution | Target Agent |
| Judging | Agent-Judge |
| Escalation | Agent-CEO или Human |
| Reply | Agent-CEO → OpenClaw |
Failure Modes
| Проблема | Реакция |
|---|---|
| LLM timeout | Retry 2x с backoff → failed |
| Tool error | Retry с exponential backoff → failed |
| Budget exceeded | Hard stop → escalation |
| Policy violation | Hard stop → escalation → security log |
| Invalid output | → revise (Judge feedback) |
| Child task failed | Parent → blocked → escalation |
| Agent unavailable | Task stays pending, watchdog alert |
Sequence Diagram
User OpenClaw CEO IntelDir Scout Researcher Judge Librarian
│ │ │ │ │ │ │ │
│──msg──▶│ │ │ │ │ │ │
│ │──task─▶│ │ │ │ │ │
│ │ │──task─▶│ │ │ │ │
│ │ │ │──task───▶│ │ │ │
│ │ │ │ │──done──▶ │ │ │
│ │ │ │ │ ┌┤ judge │ │
│ │ │ │ │◀accept──┘│ │ │
│ │ │ │──task────┼─────────▶│ │ │
│ │ │ │ │ │──done───▶ │ │
│ │ │ │ │ │◀─accept──┤│ │
│ │ │ │◀─────────┼──done────│ │ │
│ │ │ │──aggregate─────────▶│ │ │
│ │ │◀─done──│ │ │ │ │
│ │ │──aggregate───────▶│ │ │ │
│ │◀─reply─│ │ │ │ │──index─▶│
│◀─reply──│ │ │ │ │ │ │
Связанные документы
- Orchestration-Model — техническая реализация очереди
- Policy-Layer — pre/post checks
- Agent-Judge — этап judging
- Process-Escalation — при failures
- _Processes-Index — реестр процессов