Перейти к содержимому
arckep.ru — все нейросети в одном месте без VPN Перейти
>AISTUDY_
Поддержать
AUTHORСвежий выпуск №024 → Куда внедрять агентов: фронт или тыл

Модуль 3.3 · Урок 3

Урок 3: Автоматизация: cron, webhooks, Gmail

35 мин
Практика
3.3 / Урок 3 из 3

Чему вы научитесь

  • Создавать cron-задачи для регулярного выполнения действий
  • Настраивать webhooks для реакции на внешние события
  • Интегрировать Gmail через Pub/Sub для автоматической обработки почты
  • Строить автоматические сценарии (workflows)
  • Мониторить и отлаживать автоматизации

Cron-задачи

Cron — это планировщик задач. Вы указываете расписание, и OpenClaw выполняет задачу автоматически в заданное время.

Формат cron-выражений

┌──── минуты (0-59)
│ ┌──── часы (0-23)
│ │ ┌──── день месяца (1-31)
│ │ │ ┌──── месяц (1-12)
│ │ │ │ ┌──── день недели (0-7, 0 и 7 = воскресенье)
│ │ │ │ │
* * * * *

Примеры:

ВыражениеКогда
0 8 * * *Каждый день в 08:00
0 9 * * 1-5Понедельник-пятница в 09:00
*/30 * * * *Каждые 30 минут
0 0 1 * *Первый день каждого месяца в полночь
0 20 * * 5Каждую пятницу в 20:00

Создание cron-задачи

В ~/.openclaw/openclaw.json:

{
  "cron": [
    {
      "name": "morning-briefing",
      "schedule": "0 8 * * *",
      "prompt": "Проверь мою почту, календарь на сегодня и последние новости по AI. Отправь мне сводку в Telegram.",
      "agent": "default",
      "channel": "telegram",
      "peer": "123456789"
    }
  ]
}

Что происходит

  1. В 08:00 каждое утро OpenClaw просыпается.
  2. Выполняет промпт как будто вы отправили сообщение.
  3. Агент использует доступные инструменты (Gmail, Calendar, Search).
  4. Результат отправляется в указанный канал (Telegram) указанному пользователю (peer).

Примеры cron-задач

Утренний брифинг:

{
  "name": "morning-briefing",
  "schedule": "0 8 * * 1-5",
  "prompt": "Доброе утро! Покажи: 1) непрочитанные письма (резюме) 2) встречи на сегодня 3) погоду в Москве",
  "agent": "default",
  "channel": "telegram",
  "peer": "123456789"
}

Еженедельный отчёт:

{
  "name": "weekly-report",
  "schedule": "0 18 * * 5",
  "prompt": "Подведи итоги недели: сколько сессий было, сколько токенов использовано, какие задачи выполнялись чаще всего.",
  "agent": "default",
  "channel": "telegram",
  "peer": "123456789"
}

Мониторинг сервера:

{
  "name": "server-check",
  "schedule": "*/30 * * * *",
  "prompt": "Проверь использование CPU и RAM. Если CPU > 80% или RAM > 90%, напиши предупреждение.",
  "agent": "default",
  "channel": "telegram",
  "peer": "123456789",
  "silent": true
}

Чтобы бот отправлял сообщение только при выполнении условия, добавьте в промпт инструкцию: «Отправь сообщение только если CPU > 80% или RAM > 90%, иначе ничего не делай». Либо используйте логику агента для условной доставки.

Управление cron-задачами

# Список всех cron-задач
openclaw cron list

# Запустить задачу вручную (для тестирования)
openclaw cron run morning-briefing

# Временно отключить
openclaw cron edit morning-briefing --no-deliver

# Включить обратно
openclaw cron edit morning-briefing --announce

# Посмотреть историю выполнения
openclaw cron runs --id morning-briefing --limit 10

Webhooks

Webhook — это URL, на который внешний сервис отправляет HTTP-запрос. OpenClaw может принимать webhooks и выполнять действия в ответ.

Создание webhook

{
  "webhooks": [
    {
      "name": "github-pr",
      "path": "/webhook/github-pr",
      "secret": "my-webhook-secret-123",
      "prompt": "Получен webhook от GitHub. Данные: {{payload}}. Сделай краткое резюме PR и отправь мне в Telegram.",
      "agent": "default",
      "channel": "telegram",
      "peer": "123456789"
    }
  ]
}

Как это работает

  1. OpenClaw создаёт endpoint: http://localhost:18789/webhook/github-pr
  2. Вы настраиваете GitHub webhook на этот URL
  3. Когда создаётся PR, GitHub отправляет данные на этот URL
  4. OpenClaw получает payload и выполняет промпт
  5. Результат отправляется в Telegram

URL для внешнего доступа

Если OpenClaw работает на VPS с публичным IP:

https://your-vps.com:18789/webhook/github-pr

Если OpenClaw работает локально, используйте туннель (ngrok, cloudflared):

# Через cloudflared
cloudflared tunnel --url http://localhost:18789

Безопасность webhooks

  • Всегда используйте secret для верификации запросов
  • Не открывайте Gateway порт напрямую в интернет без HTTPS
  • Проверяйте User-Agent и X-Hub-Signature для GitHub webhooks

Примеры webhook-сценариев

Оповещение о новом issue на GitHub:

{
  "name": "github-issue",
  "path": "/webhook/github-issue",
  "secret": "secret123",
  "prompt": "Новый issue на GitHub: {{payload.issue.title}}. Автор: {{payload.issue.user.login}}. Описание: {{payload.issue.body}}. Классифицируй по приоритету (высокий/средний/низкий) и отправь мне.",
  "agent": "default",
  "channel": "telegram",
  "peer": "123456789"
}

Оповещение о деплое:

{
  "name": "deploy-notification",
  "path": "/webhook/deploy",
  "prompt": "Деплой завершён. Детали: {{payload}}. Проверь, что сайт доступен (curl), и сообщи результат.",
  "agent": "default",
  "channel": "telegram",
  "peer": "123456789"
}

Gmail Pub/Sub

OpenClaw поддерживает интеграцию с Gmail через Google Pub/Sub с помощью навыков (skills). Это позволяет обрабатывать входящие письма в реальном времени.

Как это работает

  1. Gmail отправляет уведомление в Google Pub/Sub при получении нового письма
  2. OpenClaw подписывается на Pub/Sub через навык (например, gog или специализированный Pub/Sub webhook) и получает уведомления
  3. При получении уведомления агент читает письмо и выполняет действие согласно правилам

Настройка

Настройка включает создание Google Cloud проекта, topic и subscription, а затем подключение через навык или webhook-обработчик. Конкретная структура конфигурации зависит от используемого навыка — см. документацию конкретного skill.

Правила обработки

ПравилоЧто делает
summarizeАгент делает резюме письма и отправляет в канал
notifyАгент отправляет уведомление с темой и отправителем
replyАгент генерирует черновик ответа
forwardАгент пересылает письмо
labelАгент классифицирует и добавляет ярлык

Пример сценария

Вы получаете письмо от клиента с темой “Коммерческое предложение”. OpenClaw:

  1. Читает письмо
  2. Определяет, что это от клиента (по домену)
  3. Делает резюме в 3 пунктах
  4. Отправляет вам в Telegram: “Новое КП от client@company.com: [резюме]”
  5. Создаёт черновик ответа

Всё это — без вашего участия.


Построение автоматических сценариев

Настоящая сила автоматизации — в комбинации cron, webhooks и навыков.

Сценарий 1: Утренний дайджест

Каждое утро в 8:00:

  1. Проверить Gmail — резюме непрочитанных
  2. Проверить Calendar — встречи на сегодня
  3. Поиск новостей по заданным темам
  4. Проверить погоду
  5. Собрать всё в один дайджест
  6. Отправить в Telegram
{
  "cron": [
    {
      "name": "daily-digest",
      "schedule": "0 8 * * *",
      "prompt": "Собери утренний дайджест:\n1. Непрочитанные письма (резюме каждого)\n2. Встречи на сегодня (время, участники, тема)\n3. Новости по темам: AI, TypeScript, open source\n4. Погода в Москве на сегодня\n\nОформи красиво, с заголовками. Отправь в Telegram.",
      "agent": "default",
      "channel": "telegram",
      "peer": "123456789"
    }
  ]
}

Сценарий 2: Мониторинг конкурентов

Каждую пятницу в 17:00:

  1. Поиск упоминаний конкурентов в интернете
  2. Анализ их обновлений (GitHub, блоги)
  3. Сравнительный отчёт
  4. Отправка в Slack
{
  "name": "competitor-analysis",
  "schedule": "0 17 * * 5",
  "prompt": "Проведи анализ конкурентов за неделю:\n- Competitor A: новости, обновления, блог-посты\n- Competitor B: то же\n- Competitor C: то же\n\nСделай таблицу: что нового у каждого. Выдели ключевые угрозы и возможности.",
  "agent": "work",
  "channel": "slack",
  "peer": "#marketing"
}

Сценарий 3: RSS-мониторинг

Каждые 2 часа:

  1. Проверить RSS-ленты
  2. Отфильтровать по ключевым словам
  3. Отправить новые статьи
{
  "name": "rss-monitor",
  "schedule": "0 */2 * * *",
  "prompt": "Проверь RSS-ленты:\n- https://hnrss.org/frontpage\n- https://dev.to/feed\n\nНайди статьи со словами: AI, agents, LLM, automation.\nЕсли есть новые (за последние 2 часа), отправь заголовок + ссылку.",
  "agent": "default",
  "channel": "telegram",
  "peer": "123456789",
  "silent": true
}

Мониторинг и отладка

Просмотр истории

# Все выполненные автоматизации
openclaw cron history

# Конкретная задача
openclaw cron history daily-digest --limit 7

Логи

# Логи в реальном времени (фильтр по cron)
openclaw logs -f --filter cron

# Логи webhooks
openclaw logs -f --filter webhook

Ручной запуск для тестирования

Перед тем как ставить задачу на расписание, протестируйте её вручную:

# Запустить cron-задачу без ожидания расписания
openclaw cron run daily-digest

# Симулировать webhook
curl -X POST http://localhost:18789/webhook/github-pr \
  -H "Content-Type: application/json" \
  -d '{"action":"opened","pull_request":{"title":"Test PR"}}'

Попробуйте сами

  1. Создайте первую cron-задачу. Добавьте задачу, которая каждый час проверяет время и отправляет его в Telegram (для проверки работоспособности):
{
  "cron": [
    {
      "name": "hourly-ping",
      "schedule": "0 * * * *",
      "prompt": "Скажи текущее время и дату. Одно предложение.",
      "agent": "default",
      "channel": "telegram",
      "peer": "ваш-telegram-id"
    }
  ]
}
  1. Протестируйте вручную:
openclaw cron run hourly-ping
  1. Создайте полезную автоматизацию. Выберите один из сценариев:

    • Утренний дайджест (если подключена почта)
    • Мониторинг сервера (если OpenClaw на VPS)
    • RSS-мониторинг (для новостей)
  2. Проверьте историю через 24 часа:

openclaw cron history --limit 10

Ключевые выводы

  • Cron-задачи выполняют действия по расписанию — от ежедневных дайджестов до мониторинга каждые 30 минут
  • Webhooks позволяют реагировать на внешние события (GitHub, деплой, платёжные системы)
  • Gmail Pub/Sub обрабатывает входящие письма в реальном времени с правилами маршрутизации
  • Сила автоматизации — в комбинации: cron + навыки + каналы доставки
  • Для условной доставки добавьте в промпт инструкцию «отправь только если…» или используйте логику агента
  • Всегда тестируйте автоматизации вручную перед включением расписания

Следующий модуль

Модуль 3.4: Мультиагентная архитектура — создадим несколько изолированных агентов, настроим routing между каналами и построим полноценную систему.

Мы размещаем рекламу, так как это позволяет нам готовить для вас свежие материалы и покрывать наши расходы. Рекламодателей выбираем адекватных.

Скачать урок

Есть идея или нашли ошибку?

// Обсуждение

Можно писать анонимно. Укажите email, чтобы получать уведомления об ответах.