Для OpenClaw v2026.2 | Статья подходит для пользователей, которые хотят, чтобы ИИ-ассистент работал проактивно, а не только отвечал на запросы.
TL;DR: Cron-задачи: "cron": [{"id": "daily", "schedule": "0 9 * * *", "message": "..."}]. Webhook-триггеры: POST /webhook/your-path. Gmail Pub/Sub — автоматическая обработка писем. Heartbeat — проактивные проверки. Примеры конфигурации: ежедневная сводка 0 8 * * 1-5, CI-уведомления через webhook, фильтры писем через Gmail Pub/Sub.
Обзор автоматизации
Типы автоматизации
| Тип | Способ срабатывания | Сценарий использования |
|---|---|---|
| Cron | По расписанию | Ежедневные отчёты, регулярные проверки |
| Webhook | HTTP-запрос | Интеграция с внешними системами |
| Gmail Pub/Sub | Новое письмо | Автоматизация почты |
| Heartbeat | Периодическая проверка | Проактивные напоминания, рекомендации |
Схема архитектуры
flowchart TB
subgraph Triggers["Источники триггеров"]
CRON[Cron — по расписанию]
WH[Webhook HTTP]
GM[Gmail Pub/Sub]
HB[Heartbeat]
end
subgraph Gateway["Gateway"]
SCHED[Планировщик]
ROUTE[Маршрутизатор]
AGENT[Agent]
end
subgraph Actions["Действия"]
MSG[Отправка сообщения]
EXEC[Выполнение задачи]
NOTIF[Отправка уведомления]
end
CRON --> SCHED
WH --> ROUTE
GM --> ROUTE
HB --> SCHED
SCHED --> AGENT
ROUTE --> AGENT
AGENT --> MSG
AGENT --> EXEC
AGENT --> NOTIF
Cron-задачи
Cron-выражения
┌───────────── минута (0 - 59)
│ ┌───────────── час (0 - 23)
│ │ ┌───────────── день месяца (1 - 31)
│ │ │ ┌───────────── месяц (1 - 12)
│ │ │ │ ┌───────────── день недели (0 - 6, 0 = воскресенье)
│ │ │ │ │
* * * * *
Часто используемые выражения
| Выражение | Описание |
|---|---|
0 9 * * * |
Каждый день в 9:00 |
0 18 * * 1-5 |
Будни в 18:00 |
*/30 * * * * |
Каждые 30 минут |
0 0 1 * * |
1-го числа каждого месяца в 0:00 |
0 9,18 * * * |
Каждый день в 9:00 и 18:00 |
0 9 * * 1 |
Каждый понедельник в 9:00 |
Настройка Cron-задач
{
"cron": [
{
"id": "daily-briefing",
"schedule": "0 9 * * *",
"session": "main",
"message": "Пожалуйста, предоставьте расписание и список дел на сегодня",
"enabled": true
},
{
"id": "weekly-summary",
"schedule": "0 18 * * 5",
"session": "main",
"message": "Сгенерируйте итоги работы за неделю",
"enabled": true
},
{
"id": "health-check",
"schedule": "*/15 * * * *",
"session": "main",
"message": "Проверьте состояние системы, сообщите о любых аномалиях",
"enabled": true
}
]
}
Параметры Cron-задач
| Поле | Тип | Описание |
|---|---|---|
id |
string | Уникальный идентификатор задачи |
schedule |
string | Cron-выражение |
session |
string | Целевая сессия |
message |
string | Отправляемое сообщение |
enabled |
boolean | Включена ли задача |
timezone |
string | Часовой пояс (по умолчанию системный) |
Управление Cron-задачами
# Список всех задач
openclaw cron list
# Пример вывода:
# ID Schedule Status Last Run
# daily-briefing 0 9 * * * enabled 2026-02-26 09:00
# weekly-summary 0 18 * * 5 enabled 2026-02-23 18:00
# health-check */15 * * * * enabled 2026-02-26 10:30
# Ручной запуск задачи
openclaw cron run daily-briefing
# Включение/отключение задачи
openclaw cron enable daily-briefing
openclaw cron disable daily-briefing
# Просмотр логов задачи
openclaw cron logs daily-briefing
Webhook-триггеры
Настройка Webhook
{
"webhooks": [
{
"id": "github-push",
"path": "/webhook/github",
"secret": "your-webhook-secret",
"session": "main",
"handler": "github-push"
},
{
"id": "custom-alert",
"path": "/webhook/alert",
"secret": "your-webhook-secret",
"session": "main",
"message": "Получен алерт: {{data.message}}"
}
]
}
Конечные точки Webhook
POST http://your-gateway:18789/webhook/github-push
POST http://your-gateway:18789/webhook/alert
Пример GitHub Webhook
{
"webhooks": [
{
"id": "github-push",
"path": "/webhook/github",
"secret": "${GITHUB_WEBHOOK_SECRET}",
"session": "work",
"handler": "github-push"
}
]
}
Скрипт обработчика:
// ~/.openclaw/handlers/github-push.js
module.exports = async (payload, session) => {
if (payload.ref === 'refs/heads/main') {
const commits = payload.commits.map(c => c.message).join('\n- ');
return `Обнаружен новый push:\n\nВетка: main\nКоммиты:\n- ${commits}\n\nЧем могу помочь?`;
}
return null;
};
Пользовательская обработка Webhook
{
"webhooks": [
{
"id": "monitoring-alert",
"path": "/webhook/alert",
"methods": ["POST"],
"session": "main",
"message": "🚨 Уведомление об алерте\n\nУровень: {{data.level}}\nСервис: {{data.service}}\nСообщение: {{data.message}}\nВремя: {{data.timestamp}}"
}
]
}
Отправка Webhook:
curl -X POST http://localhost:18789/webhook/alert \
-H "Content-Type: application/json" \
-H "X-Webhook-Secret: your-secret" \
-d '{
"level": "critical",
"service": "api-server",
"message": "Загрузка CPU превысила 90%",
"timestamp": "2026-02-26T10:30:00Z"
}'
Безопасность Webhook
{
"webhooks": [
{
"id": "secure-webhook",
"path": "/webhook/secure",
"secret": "your-secret-key",
"signatureHeader": "X-Signature",
"signatureAlgorithm": "sha256",
"ipWhitelist": ["192.168.1.0/24"]
}
]
}
Интеграция Gmail Pub/Sub
Настройка Gmail Pub/Sub
{
"gmail": {
"pubsub": {
"enabled": true,
"projectId": "your-project-id",
"subscription": "gmail-subscription",
"credentials": {
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "...",
"private_key": "...",
"client_email": "..."
},
"filters": [
{
"from": "[email protected]",
"session": "main",
"message": "Получено важное письмо:\nОтправитель: {{sender}}\nТема: {{subject}}"
}
]
}
}
}
Настройка Gmail Pub/Sub
- Создайте проект в Google Cloud
- Включите Gmail API
- Создайте тему Pub/Sub
- Создайте сервисный аккаунт
- Настройте Gmail watch
# Настройка Gmail watch
openclaw gmail watch --email [email protected]
Фильтры Gmail
| Условие фильтра | Описание |
|---|---|
from |
Адрес отправителя |
to |
Адрес получателя |
subject |
Ключевые слова темы |
hasAttachment |
Наличие вложений |
label |
Метка Gmail |
{
"filters": [
{
"from": "[email protected]",
"session": "work",
"message": "Получено уведомление GitHub: {{subject}}"
},
{
"from": "[email protected]",
"hasAttachment": true,
"session": "main",
"message": "Получен документ от Stripe, пожалуйста, обработайте"
}
]
}
Проактивные проверки Heartbeat
Настройка Heartbeat
{
"heartbeat": {
"enabled": true,
"interval": 3600000,
"session": "main",
"message": "Heartbeat: проверьте, есть ли что-то, требующее моего внимания"
}
}
Применение Heartbeat
| Применение | Описание |
|---|---|
| Проактивные напоминания | Регулярные напоминания пользователю |
| Проверка состояния | Проверка состояния систем или сервисов |
| Рекомендации задач | Рекомендации на основе контекста |
| Поддержание контекста | Поддержание активности сессии |
Пример Heartbeat
{
"heartbeat": {
"enabled": true,
"interval": 1800000,
"conditions": [
{
"type": "time",
"start": "09:00",
"end": "18:00"
},
{
"type": "active",
"session": "main"
}
],
"message": "На основе текущего времени рекомендую проверить:\n1. Список дел на сегодня\n2. Почтовые напоминания\n3. Расписание"
}
}
Практические примеры автоматизации
Пример 1: утренняя сводка
{
"cron": [
{
"id": "morning-briefing",
"schedule": "0 8 * * 1-5",
"session": "main",
"message": "Доброе утро! Пожалуйста, подготовьте утреннюю сводку:\n1. Прогноз погоды\n2. Расписание на сегодня\n3. Список дел\n4. Важные письма"
}
]
}
Пример 2: уведомления CI/CD
{
"webhooks": [
{
"id": "ci-failure",
"path": "/webhook/ci",
"session": "dev",
"message": "⚠️ Ошибка CI\n\nПроект: {{data.repository}}\nВетка: {{data.branch}}\nКоммит: {{data.commit}}\nОшибка: {{data.error}}\n\nПомочь с анализом?"
}
]
}
Пример 3: автоматическая обработка писем
{
"gmail": {
"pubsub": {
"filters": [
{
"from": "[email protected]",
"hasAttachment": true,
"session": "main",
"message": "Получено письмо со счётом, обрабатываю...\nСохраните вложение в папку «Финансы»"
}
]
}
}
}
Пример 4: мониторинг системы
{
"cron": [
{
"id": "system-monitor",
"schedule": "*/5 * * * *",
"session": "main",
"message": "Проверить состояние системы",
"skills": ["system-monitor"]
}
]
}
Устранение неполадок
Cron-задача не выполняется
# Проверка статуса задачи
openclaw cron list
# Проверка логов
openclaw logs --filter cron
# Ручной запуск для тестирования
openclaw cron run task-id
Webhook не отвечает
# Проверка конечной точки Webhook
curl -X POST http://localhost:18789/webhook/test \
-H "Content-Type: application/json" \
-d '{"test": true}'
# Просмотр логов
openclaw logs --filter webhook
Gmail Pub/Sub не работает
# Проверка статуса подписки
openclaw gmail status
# Повторная настройка
openclaw gmail setup
# Проверка прав доступа
openclaw gmail check-permissions
Итоги
Автоматизация превращает OpenClaw из реактивного в проактивный инструмент:
- Cron: выполнение задач по расписанию
- Webhook: срабатывание по внешним событиям
- Gmail Pub/Sub: автоматизация почты
- Heartbeat: проактивные напоминания и рекомендации
История изменений:
- 2026-02-26: первая публикация
Навигация по серии:
- ← Предыдущая: Мобильный доступ
- → Следующая: Практика: создание ассистента для управления знаниями