Автоматизация
Устранение неполадок автоматизации
Используйте эту страницу для решения проблем с планировщиком и доставкой (cron + heartbeat).
Лестница команд
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe
Затем выполните проверки автоматизации:
openclaw cron status
openclaw cron list
openclaw system heartbeat last
Cron не запускается
openclaw cron status
openclaw cron list
openclaw cron runs --id <jobId> --limit 20
openclaw logs --follow
Хороший вывод выглядит так:
cron statusсообщает, что cron включен, и показывает будущее времяnextWakeAtMs.- Задача включена и имеет корректное расписание/часовой пояс.
cron runsпоказывает статусokили явную причину пропуска.
Распространённые признаки:
cron: scheduler disabled; jobs will not run automatically→ cron отключен в конфигурации/переменных окружения.cron: timer tick failed→ сбой тика планировщика; проверьте контекст стека/логов вокруг.reason: not-dueв выводе запуска → ручной запуск вызван без--force, и задача ещё не должна выполняться.
Cron запустился, но доставки нет
openclaw cron runs --id <jobId> --limit 20
openclaw cron list
openclaw channels status --probe
openclaw logs --follow
Хороший вывод выглядит так:
- Статус запуска
ok. - Для изолированных задач установлены режим доставки и цель.
- Проверка канала (
probe) сообщает, что целевой канал подключен.
Распространённые признаки:
- Запуск завершился успешно, но режим доставки
none→ внешнее сообщение не ожидается. - Отсутствует или неверна цель доставки (
channel/to) → запуск может завершиться успешно внутренне, но пропустить исходящую отправку. - Ошибки авторизации канала (
unauthorized,missing_scope,Forbidden) → доставка заблокирована из-за проблем с учётными данными/разрешениями канала.
Heartbeat подавлен или пропущен
openclaw system heartbeat last
openclaw logs --follow
openclaw config get agents.defaults.heartbeat
openclaw channels status --probe
Хороший вывод выглядит так:
- Heartbeat включен с ненулевым интервалом.
- Результат последнего heartbeat —
ran(или причина пропуска понятна).
Распространённые признаки:
heartbeat skippedсreason=quiet-hours→ внеactiveHours.requests-in-flight→ основной канал занят; heartbeat отложен.empty-heartbeat-file→ интервальный heartbeat пропущен, потому чтоHEARTBEAT.mdне содержит полезного контента и нет запланированных событий cron с тегами.alerts-disabled→ настройки видимости подавляют исходящие сообщения heartbeat.
Подводные камни часовых поясов и активных часов (activeHours)
openclaw config get agents.defaults.heartbeat.activeHours
openclaw config get agents.defaults.heartbeat.activeHours.timezone
openclaw config get agents.defaults.userTimezone || echo "agents.defaults.userTimezone not set"
openclaw cron list
openclaw logs --follow
Краткие правила:
Config path not found: agents.defaults.userTimezoneозначает, что ключ не установлен; heartbeat использует часовой пояс хоста (илиactiveHours.timezone, если он задан).- Cron без
--tzиспользует часовой пояс хоста шлюза. activeHoursдля heartbeat использует настроенное разрешение часового пояса (user,localили явный IANA tz).- Временные метки ISO без указания часового пояса для расписаний cron
atобрабатываются как UTC.
Распространённые признаки:
- Задачи выполняются в неправильное реальное время после изменения часового пояса хоста.
- Heartbeat всегда пропускается в течение вашего дня, потому что
activeHours.timezoneуказан неверно.
Связанные темы: