4.5 KiB
4.5 KiB
Reminders — Система напоминаний
Концепция
Единый интерфейс для создания, управления и доставки напоминаний. Цель — 100% гарантия доставки в нужное время.
Проблема
OpenClaw heartbeat/cron не дают 100% гарантии. Нужно комбинировать внутренние механизмы с внешним cron.
Архитектура (концепт)
Пользователь OpenClaw Внешний cron
│ │ │
│── создаёт ────────→│ │
│ │── пишет в БД ────────│
│ │ │
│←── подтверждение ──│ │
│ │ │── триггер в ~time ──→ Telegram
Способы доставки
| Способ | Гарантия | Сложность | Примечание |
|---|---|---|---|
| OpenClaw cron | ~95% | Низкая | Работает пока контейнер жив |
| Heartbeat | ~90% | Низкая | Только если Слава пишет |
| Внешний cron (VPS) | 100% | Средняя | Нужен доступ к VPS |
| Telegram Bot API | 100% | Средняя | Требует cronjob сервис |
| Pushover / SMS | 100% | Высокая | Дополнительные сервисы |
Компоненты
1. Reminders DB
[
{
"id": "uuid",
"text": "Позвонить Вике",
"time": "2026-04-12T10:00:00Z",
"repeat": null,
"method": "telegram",
"status": "pending",
"created": "2026-04-11T22:42:00Z"
}
]
2. Reminder Manager
- Создание / редактирование / удаление
- Проверка overlaps
- Логирование доставок
3. Delivery Checker
- Периодическая проверка pending напоминаний
- Интеграция с heartbeat
Статус: research ✅
Решение выбрано: Todoist — лучший баланс API, интеграций и UX.
Почему Todoist
| Критерий | Оценка |
|---|---|
| REST API | ✅ Полное, открытое, хорошо документировано |
| Telegram бот | ✅ @SendToTodoist (forward → задача в Inbox) |
| Напоминания | ✅ Push + email + Telegram (Premium: в точное время) |
| Мобильные приложения | ✅ iOS, Android |
| Десктоп | ✅ Web, macOS, Windows |
| Естественный язык | ✅ "завтра в 10", "каждый понедельник" |
| Бесплатный план | ⚠️ 5 проектов, без recurring reminders |
Todoist Premium (~$4/мес) — напоминания в точное время через push/Telegram.
Как это работает
Голос Славы (Telegram)
→ OpenClaw (Whisper: текст)
→ OpenClaw: парсит естественный язык
→ Todoist API: создаёт задачу с due date
→ Todoist: push-уведомление в нужное время
Todoist API ( Rest API v2):
POST /rest/v2/tasks
{
"content": "Позвонить Вике",
"due_string": "tomorrow at 10",
"priority": 3
}
Моя роль:
- Голос → текст ( Whisper)
- Текст → структура задачи (парсинг)
- Todoist API → создание задачи
- Запросы к Todoist (список задач, отчёты)
Двусторонняя интеграция
| Направление | Как |
|---|---|
| Слава → Todoist | Голос/текст → OpenClaw → API |
| Todoist → Слава | Push notification (Todoist native) |
| OpenClaw → Todoist | API (чтение, создание, редактирование) |
| Todoist → OpenClaw | По запросу (Спрашивает "что сегодня?") |
Следующий шаг
- Получить Todoist API токен (todoist.com/settings/integrations/developer)
- Добавить
TODOIST_API_TOKENв.env - Протестировать создание задачи через API
- Создать скилл
todoistс командами: add, list, done, remind