Задачи по расписанию
Задачи по расписанию позволяют автоматизировать повторяющиеся действия Bot с помощью cron-выражений. Это удобно для периодических отчётов, проверки внешних данных, обслуживания — любой рутинной задачи без ручного вмешательства.
Концепция: автоматизация на cron
Schedule (расписание) — это правило на основе cron, привязанное к конкретному Bot. Когда расписание срабатывает, оно передаёт агенту команду, и тот выполняет её, используя доступные инструменты, навыки и контекст. Результаты Bot может доставить в любой подключённый канал.
Поля расписания
| Поле | Описание |
|---|---|
| Name | Отображаемое имя задачи (например, «Утренняя сводка новостей»). |
| Description | Краткое объяснение, что делает задача. |
| Pattern | Cron-выражение, задающее, когда задача выполняется (например, 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 * * | Первого числа каждого месяца в полночь |
Просмотр расписаний
- Перейдите на страницу Detail Page нужного Bot.
- Выберите вкладку Schedule.
- Список показывает все расписания этого Bot: имя, cron-шаблон, состояние включения и счётчики выполнений.
- Нажмите Refresh, чтобы перезагрузить список.
Создание расписаний
Расписания создаются в основном двумя способами:
Через Bot (в разговоре)
У самого Bot есть инструмент schedule. Можно попросить его создать расписание естественным языком:
«Создай расписание „Daily Digest“, которое каждый день в 8 утра присылает мне сводку вчерашней активности в репозитории».
Bot сам переведёт это в cron-выражение и зарегистрирует расписание.
Через API
Расписания можно создавать и программно, через REST API:
POST /api/bots/{bot_id}/schedule{
"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
}Как проходит выполнение
Когда расписание срабатывает:
- Cron-сервис запускает расписание.
- Счётчик
current_callsувеличивается. - Если
max_callsзадан и достигнут, расписание автоматически отключается. - Агент получает
commandвместе с контекстом расписания. - Агент выполняет команду своими инструментами (например, веб-поиск, чтение файла, отправка сообщения).
- Результаты могут быть доставлены в любой подключённый канал.