Python-агент по расписанию: загружает входящие по IMAP, классифицирует через Gemini (срочно / к сведению / спам / дайджест), отправляет ежедневную сводку в Telegram. Личное использование, ~50–200 писем/день. Несколько прошлых инцидентов с тихой потерей писем сформировали путь к L3: каждый баг получил явный фикс и новую запись в иерархии исключений.
Что умеет
- Сканирование почты через настроенный Gmail (IMAP)
- Классификация Gemini с явной иерархией ошибок ImapErrorClass
- Ежедневный дайджест в Telegram с разбивкой по категориям
- Карантин спама без автоудаления (оператор проверяет сам)
- Работает по расписанию, без постоянного процесса
- Виртуальное окружение защищено от дрейфа зависимостей
- Повторные попытки по классу ошибки с ключами идемпотентности
Текущий уровень автономии
Слабое звено
Прошлый инцидент: широкий `except:` поглотил PermissionError, и 54 письма потерялись тихо. Исправлено; явная иерархия исключений теперь обязательна. Внешнего сигнала живости пока нет — если cron перестанет работать, узнаёшь только по отсутствию дайджеста.
Roadmap до L3
- L2 — касание файла живости + Ops Bot отслеживает время изменения; классифицированные ошибки через ImapErrorClass (сделано).
- L3 — структурированные pino-логи в файл, отчёт о числе писем в дайджесте в Ops Bot, проверка каждого ответа Gemini по схеме через Pydantic.
- Верификация — хаос-тест: отозвать IMAP-токен в середине прогона, убедиться в фатальном событии в Ops Bot за 60 с.
Следующий шаг
Проверьте доступный продукт и его текущие ограничения
Статус LIVE означает, что проект доступен сейчас; указанные выше слабое звено и roadmap честно описывают границы текущей версии.
Посмотреть путь к целевому уровню