Skip to content

Задачи по расписанию ​

Задачи по расписанию позволяют автоматизировать повторяющиеся действия Bot с помощью cron-выражений. Это удобно для периодических отчётов, проверки внешних данных, обслуживания — любой рутинной задачи без ручного вмешательства.

Концепция: автоматизация на cron ​

Schedule (расписание) — это правило на основе cron, привязанное к конкретному Bot. Когда расписание срабатывает, оно передаёт агенту команду, и тот выполняет её, используя доступные инструменты, навыки и контекст. Результаты Bot может доставить в любой подключённый канал.


Поля расписания ​

ПолеОписание
NameОтображаемое имя задачи (например, «Утренняя сводка новостей»).
DescriptionКраткое объяснение, что делает задача.
PatternCron-выражение, задающее, когда задача выполняется (например, 0 9 * * * — ежедневно в 9:00).
CommandИнструкция на естественном языке, отправляемая агенту при срабатывании расписания (например, «Собери главные технические новости за сегодня и отправь их в канал Telegram»).
EnabledАктивно ли расписание сейчас.
Max CallsНеобязательный предел общего числа выполнений. Оставьте пустым, чтобы не ограничивать.
Current CallsСколько раз это расписание уже сработало.

Справка по шаблонам cron ​

Поле pattern использует стандартный синтаксис cron из пяти полей. Оно вычисляется в часовом поясе Bot — поле Timezone на вкладке General Bot; если оно не задано, используется серверная настройка timezone верхнего уровня (по умолчанию UTC).

┌───────────── minute (0–59)
│ ┌───────────── hour (0–23)
│ │ ┌───────────── day of month (1–31)
│ │ │ ┌───────────── month (1–12)
│ │ │ │ ┌───────────── day of week (0–6, Sun=0)
│ │ │ │ │
* * * * *

Частые примеры:

ШаблонЗначение
0 9 * * *Каждый день в 9:00
*/30 * * * *Каждые 30 минут
0 0 * * 1Каждый понедельник в полночь
0 8,20 * * *Каждый день в 8:00 и 20:00
0 0 1 * *Первого числа каждого месяца в полночь

Просмотр расписаний ​

  1. Перейдите на страницу Detail Page нужного Bot.
  2. Выберите вкладку Schedule.
  3. Список показывает все расписания этого Bot: имя, cron-шаблон, состояние включения и счётчики выполнений.
  4. Нажмите Refresh, чтобы перезагрузить список.

Создание расписаний ​

Расписания создаются в основном двумя способами:

Через Bot (в разговоре) ​

У самого Bot есть инструмент schedule. Можно попросить его создать расписание естественным языком:

«Создай расписание „Daily Digest“, которое каждый день в 8 утра присылает мне сводку вчерашней активности в репозитории».

Bot сам переведёт это в cron-выражение и зарегистрирует расписание.

Через API ​

Расписания можно создавать и программно, через REST API:

POST /api/bots/{bot_id}/schedule
json
{
  "name": "Daily Digest",
  "description": "Summarize repository activity every morning",
  "pattern": "0 8 * * *",
  "command": "Summarize yesterday's repository activity and send the result to Telegram.",
  "enabled": true,
  "max_calls": null
}

Как проходит выполнение ​

Когда расписание срабатывает:

  1. Cron-сервис запускает расписание.
  2. Счётчик current_calls увеличивается.
  3. Если max_calls задан и достигнут, расписание автоматически отключается.
  4. Агент получает command вместе с контекстом расписания.
  5. Агент выполняет команду своими инструментами (например, веб-поиск, чтение файла, отправка сообщения).
  6. Результаты могут быть доставлены в любой подключённый канал.

Published under AGPLv3