OpenClaw Heartbeat и Cron: как сделать AI-агента проактивным
OpenClaw Heartbeat и Cron превращают обычного чат-бота в проактивного AI-агента, который сам проверяет почту, напоминает о встречах и мониторит серверы — без единого вашего запроса. В этой статье разберём, как настроить оба механизма, чтобы агент работал на вас 24/7.
🤔 Что такое Heartbeat в OpenClaw и зачем он нужен?
Heartbeat — это «пульс» вашего AI-агента. Каждые N минут Gateway отправляет агенту сигнал пробуждения. Агент просыпается, читает файл HEARTBEAT.md из рабочей директории и решает: есть ли что-то, требующее внимания?
Если нечего делать — агент отвечает HEARTBEAT_OK и засыпает. Если есть задачи — выполняет их и отправляет результат в указанный чат.
| Параметр | Значение по умолчанию | Описание |
|---|---|---|
| every | 30m | Интервал пробуждения (m — минуты, h — часы, 0m — выключить) |
| target | none | Куда отправлять результат: none, last (последний чат) |
| lightContext | false | Если true — в контекст попадает только HEARTBEAT.md (экономия токенов) |
| model | основная модель | Можно задать дешёвую модель специально для heartbeat |
| activeHours | 24/7 | Окно активности: start и end (например, 09:00–18:00) |
⚙️ Как настроить Heartbeat в openclaw.json?
Вся конфигурация heartbeat находится в файле ~/.openclaw/openclaw.json. Вот рабочий пример с комментариями:
{
"agents": {
"defaults": {
"heartbeat": {
"every": "30m",
"target": "last",
"lightContext": false,
"model": "gpt-4o-mini",
"activeHours": {
"start": "09:00",
"end": "22:00"
}
}
}
}
}Пошаговая настройка:
- 📂 Откройте файл конфигурации:
nano ~/.openclaw/openclaw.json - ⏱️ Установите интервал:
"every": "30m"для проверки каждые полчаса - 📬 Укажите target:
"last"— результат пойдёт в последний активный чат - 💰 Для экономии добавьте:
"model": "gpt-4o-mini"— дешёвая модель для рутинных проверок - 🕐 Ограничьте по времени через
activeHours, чтобы агент не работал ночью - 🔄 Перезапустите:
openclaw gateway restart
📋 HEARTBEAT.md — чеклист для проактивного агента
Файл HEARTBEAT.md в корне workspace — это инструкция для агента на каждое пробуждение. Агент читает его и выполняет по пунктам.
Пример рабочего HEARTBEAT.md:
# Heartbeat Checklist
1. Проверь непрочитанные email — если есть срочные, сообщи
2. Календарь: есть ли встречи в ближайшие 2 часа?
3. Git: есть ли незакоммиченные изменения в проектах?
4. Сервер: CPU > 80%? Диск > 90%? Сообщи.
Если ничего не требует внимания — ответь HEARTBEAT_OKПравила эффективного HEARTBEAT.md:
- 📏 Держите объём до 150–200 слов — каждый символ тратит токены
- 🎯 Пишите конкретные действия, а не абстрактные пожелания
- ✅ Всегда добавляйте условие
HEARTBEAT_OKдля тихого режима - 🔄 Обновляйте регулярно — агент может сам редактировать этот файл
⏰ Cron-задачи в OpenClaw: точное расписание без heartbeat
Cron — второй механизм автоматизации. В отличие от heartbeat, cron срабатывает строго по расписанию и inject'ит системное сообщение в сессию агента.
Когда использовать cron вместо heartbeat?
| Критерий | Heartbeat | Cron |
|---|---|---|
| Точность времени | Приблизительная (±5 мин) | Точная (по минутам) |
| Контекст | Полный (история чата) | Изолированный |
| Расход токенов | Каждый тик (даже HEARTBEAT_OK) | Только при срабатывании |
| Лучший сценарий | Мониторинг, динамические проверки | Ежедневные отчёты, напоминания |
Примеры cron-задач:
# Утренний брифинг в 9:00 по будням
schedule: { kind: "cron", expr: "0 9 * * 1-5", tz: "Europe/Moscow" }
payload: { kind: "agentTurn", message: "Составь утренний брифинг: погода, задачи на день, непрочитанные письма" }
# Еженедельный отчёт в пятницу в 18:00
schedule: { kind: "cron", expr: "0 18 * * 5" }
payload: { kind: "agentTurn", message: "Подведи итоги недели: выполненные задачи, метрики, планы" }
# Напоминание через 20 минут (одноразовое)
schedule: { kind: "at", at: "2026-03-28T15:20:00Z" }
payload: { kind: "systemEvent", text: "Напоминание: созвон через 10 минут" }🚀 Практические кейсы: 5 сценариев проактивного агента
Вот реальные конфигурации, которые можно внедрить за 10 минут:
1. Утренний ассистент
- 📅 Cron на 09:00 — собирает погоду, календарь, задачи
- 📧 Heartbeat каждые 30 мин — проверяет новые письма
- 💬 Target: Telegram или Discord — получаете брифинг в мессенджер
2. Мониторинг сервера
- ⚡ Heartbeat каждые 15 мин с lightContext: true
- 🖥️ HEARTBEAT.md: «Проверь CPU, RAM, диск. Если > 85% — алерт»
- 🔧 Модель: gpt-4o-mini — дёшево и достаточно для метрик
3. Контент-менеджер
- 📝 Cron на 10:00 — публикация запланированной статьи
- 📊 Cron на 18:00 — отчёт по метрикам за день
- 🔍 Heartbeat — проверка комментариев и упоминаний
4. Трекер задач
- ✅ Heartbeat проверяет Git-репозитории на незакоммиченные изменения
- 📋 Cron в пятницу — еженедельный дайджест прогресса
- ⏰ Одноразовые cron — напоминания о дедлайнах
5. Финансовый помощник
- 💰 Cron ежедневно — проверка курсов валют и крипто
- 📈 Heartbeat — мониторинг порогов (курс > X → уведомление)
- 📊 Еженедельный cron — отчёт по расходам и подпискам
💰 Как не сжечь бюджет на heartbeat?
Главная ловушка heartbeat — неконтролируемый расход токенов. Агент просыпается каждые 30 минут, загружает контекст, делает запрос к API. За сутки это 48 пробуждений, за месяц — 1440.
Формула расхода:
Токены/месяц = (контекст + ответ) × (60/интервал_мин) × 24 × 30
Пример: 500 токенов × 48 раз/день × 30 дней = 720 000 токенов/месяц
С GPT-4o-mini: ~$0.10/месяц
С Claude Sonnet: ~$2.16/месяц7 способов оптимизации:
- 🔄 Увеличьте интервал до 1–2 часов после отладки
- 💡 Включите
lightContext: true— только HEARTBEAT.md в контексте - 🤖 Используйте дешёвую модель:
"model": "gpt-4o-mini" - 🕐 Настройте
activeHours— не тратьте токены ночью - 📏 Держите HEARTBEAT.md компактным (до 200 слов)
- 📦 Перенесите повторяющиеся задачи в cron — они экономичнее
- 📊 Мониторьте расход через
/statusв чате с агентом
🔧 Пошаговая инструкция: от нуля до проактивного агента за 10 минут
Если вы уже установили OpenClaw, вот минимальный набор действий:
- ⏰ Добавьте cron для утреннего брифинга (через интерфейс OpenClaw или конфиг)
- 🔄 Перезапустите gateway:
openclaw gateway restart - ✅ Проверьте: напишите агенту «покажи статус heartbeat» — он ответит текущей конфигурацией
⚙️ Настройте heartbeat в openclaw.json:
"heartbeat": {
"every": "30m",
"target": "last",
"model": "gpt-4o-mini",
"activeHours": { "start": "08:00", "end": "23:00" }
}📝 Создайте HEARTBEAT.md в workspace:
echo "1. Проверь email — срочные сообщи
2. Календарь — встречи через 2 часа?
3. Иначе HEARTBEAT_OK" > ~/workspace/HEARTBEAT.mdЧастые вопросы
Что будет, если агент не ответит HEARTBEAT_OK?
Агент выполнит действия из HEARTBEAT.md и отправит результат в указанный target (чат, канал). Если target = "none", результат сохранится только в логах сессии. Следующий heartbeat придёт через заданный интервал независимо от ответа.
Можно ли использовать heartbeat и cron одновременно?
Да, и это рекомендуемый подход. Heartbeat — для динамических проверок (мониторинг, новые письма). Cron — для задач с точным расписанием (утренний брифинг в 09:00, еженедельный отчёт). Они дополняют друг друга.
Сколько стоит heartbeat в месяц?
При интервале 30 минут и модели gpt-4o-mini — около $0.10/месяц. С Claude Sonnet — около $2–3/месяц. С lightContext: true и activeHours экономия достигает 50–75%. Главное — не оставлять полный контекст на дешёвых интервалах.
Как ограничить heartbeat только рабочими часами?
Добавьте в конфигурацию параметр activeHours: {"start": "09:00", "end": "18:00"}. За пределами этого окна агент не будет просыпаться. Часовой пояс определяется настройками сервера или агента.
Можно ли задать разные heartbeat для разных агентов?
Да. В секции agents.list файла openclaw.json можно переопределить heartbeat для конкретного агента: {"name": "monitor", "heartbeat": {"every": "10m"}}. Остальные используют defaults.
Что лучше для напоминаний — heartbeat или cron?
Для одноразовых напоминаний (через 20 минут, завтра в 15:00) — cron с типом "at". Для регулярных (каждый день в 09:00) — cron с типом "cron". Heartbeat для напоминаний избыточен: он тратит токены на каждое пробуждение, даже если напоминать не о чем.
Heartbeat работает, но агент молчит — что делать?
Проверьте параметр target: если он равен "none" (по умолчанию), результат не отправляется в чат. Измените на "last". Также проверьте activeHours — возможно, текущее время вне окна активности. Команда openclaw doctor --fix поможет диагностировать проблему.
OpenClaw Heartbeat и Cron — это то, что отличает настоящего AI-агента от обычного чат-бота. Настройте один раз, и ваш ассистент начнёт работать проактивно — без напоминаний и ручных запросов.
👉 Подписывайтесь на наш Telegram-канал @aaakalsin — делимся практическими гайдами по AI-агентам каждый день.