# Email Assistant — Context & Architecture ## Vision Полноценный email-ассистент на локальных данных: 1. **Архив** — вся почта в файлах (Фаза 1) 2. **Векторизация** — поиск по смыслу через bge-m3 + Qdrant (Фаза 2) 3. **Граф знаний** — связи между письмами, проектами, людьми (Фаза 3) 4. **Интеллект** — авто-извлечение фактов, задач, рекомендации (Фаза 4) ## Почему файлы, а не БД? - Версионность и бэкапы (Yandex Disk) - Прозрачность — можно grep, jq, find без SQL - Совместимость с Obsidian и другими инструментами - Поэтапная миграция в Qdrant без потери данных ## Связь с существующей инфраструктурой ### Memory OS - Уже есть: Qdrant (1024d COSINE + sparse), bge-m3 (Ollama) - Можно повторно использовать для индексации писем - Icarus threshold = 0.40 ### Yandex Disk - Путь: `/mnt/yandex-disk/` - Монтирован как WebDAV/FUSE — работает как локальная ФС - Файлы доступны из Obsidian и других приложений ## Структура проекта ``` /opt/hermes/email-assistant/ ├── STATUS.md # Статус и план работ ├── context/ │ ├── CONTEXT.md # Этот файл — архитектура │ └── SKILL.md # Навык для Hermes ├── scripts/ │ ├── mail_archive.py # Python-архиватор │ └── mail-archive.sh # Shell-обёртка └── data/ # Временные данные/эксперименты ``` ## Pipeline ``` IMAP (mail.vinogorod.ru:143) ↓ Himalaya CLI mail_archive.py ↓ инкрементальная запись /mnt/yandex-disk/hermes/email//YYYY/MM/UID/ ├── meta.json ├── body.md └── attachments/ ↓ (Фаза 2) bge-m3 (Ollama) → эмбеддинги ↓ (Фаза 2) Qdrant (1024d, COSINE) ↓ (Фаза 3) Граф: люди, проекты, организации, ключевые даты ↓ (Фаза 4) Извлечение фактов, формирование задач, рекомендации ``` ## Известные ограничения 1. Himalaya v1.2.0 — page-size 2000, нет пагинации по дате (только page/page-size) 2. Нет `danger_accept_invalid_certs` в конфиге — используем `mail.corpoffice.tech` (валидный сертификат) 3. SMTP не настроен — только чтение 4. Пароль в raw-виде в конфиге (потом в keyring)