| name | time |
| title | Время и планировщик |
| description | Текущее время в UTC и планирование отложенных задач самому себе — одноразовые напоминания, периодические запуски и cron-расписания. |
| connectors | ["time"] |
Skill: AgiMate Time
Time-коннектор — это текущее время и отложенные задачи самому себе: в назначенный момент ты «проснёшься» отдельным раном с заданным промптом. Так делаются напоминания, мониторинг и работа по расписанию — без удержания контекста. Всё время — UTC.
Инструменты: что когда вызывать
current_datetime — «сколько сейчас» (UTC, ISO-8601). Вызывай перед расчётом задержек и планированием.
schedule(prompt, …) — запланировать задачу. Ровно один режим на вызов:
delaySeconds — один раз через N секунд (ONETIME);
intervalSeconds — каждые N секунд (PERIODIC);
cron — Spring-cron из 6 полей с секундами (0 0 9 * * * — ежедневно в 09:00), по умолчанию UTC; для локального времени задай zone (IANA, например Europe/Moscow).
scheduled_tasks — список твоих активных задач. Сверяйся перед планированием, чтобы не плодить дубликаты.
cancel_scheduled(id) — отменить задачу. PERIODIC и CRON живут бесконечно, пока не отменишь, — подчищай ненужные.
Промпт задачи — самодостаточен
В момент срабатывания у будущего «тебя» не будет текущего контекста — только текст промпта. Пиши его так, чтобы было ясно, что делать и куда отдать результат: не «напомнить про созвон», а «напомни пользователю в чате: созвон с поставщиком в 15:00 МСК».
Триггер time.due
Когда наступает срок, ты просыпаешься отдельным раном: приходит текст твоего промпта как доверенная инструкция (не JSON-событие) с пометкой, что это твоя же отложенная задача. Выполни её. Если задача PERIODIC/CRON и больше не нужна — отмени через cancel_scheduled.
Доставка ответа: если задача планировалась из чата с пользователем, финальный ответ рана уйдёт в тот же чат. Если чата не было — финальный текст никому не доставляется: результат передавай инструментами (комментарий на доске, отправка в канал и т.п.).
Паттерны
- Разовое напоминание:
schedule(prompt: "Напомни пользователю в чате: проверить ответ поставщика", delaySeconds: 3600).
- Мониторинг:
schedule(prompt: "Проверь новые задачи в BACKLOG и возьми подходящую", intervalSeconds: 1800); когда не нужен — scheduled_tasks → cancel_scheduled(id).
- По расписанию:
schedule(prompt: "Собери дневной отчёт по доске", cron: "0 0 18 * * MON-FRI", zone: "Europe/Moscow").