Персональный AI-ассистент в Telegram - собрал и потом сознательно закрыл
Личный ассистент в мессенджере: пишешь ему как человеку, он помнит предыдущий разговор, читает почту и календарь, понимает голосовые и присылает утреннюю сводку. Работал на своём сервере круглосуточно под systemd.
Что внутри
Постоянная сессия с моделью, поэтому диалог не начинается заново с каждым сообщением. Голос распознаётся через Whisper, картинки принимаются как есть, почта читается по IMAP из двух ящиков, календарь - по CalDAV, ответы форматируются в HTML под ограничения мессенджера. 65 зелёных юнит-тестов на всём этом хозяйстве.
Самая интересная часть - извлечение памяти. Ночной и недельный обработчики разбирали переписку и писали факты прямо в личную базу знаний, без ручного шага. То есть ассистент не просто отвечал, а пополнял ту же память, которой пользуются мои рабочие агенты.
Решение об архитектуре памяти
Разобрал готовые системы - Mem0, Zep, Letta - и осознанно отказался от всех. Причина не в неприязни к чужому коду: их модель памяти рассчитана на другой сценарий, с векторным поиском и внешним сервисом посередине. Мне же нужен был предсказуемый, читаемый глазами и версионируемый набор - markdown, JSONL и git, - тот же, что и в остальной личной инфраструктуре. Память, которую можно открыть в редакторе и поправить руками, отлаживается несравнимо проще.
Почему закрыл
Ассистент работал и был полезен, но дублировал то, что я и так делаю в терминале, а обслуживание отдельного сервиса стоило внимания каждую неделю. Остановил сервис, снёс код с сервера, сохранил архив. Это решение, а не поломка - умение закрыть свой проект вовремя мне кажется отдельным навыком, которому учишься дороже, чем запуску.