Полная история долгого диалога со временем становится слишком большой, чтобы каждый раз передавать её целиком языковой модели — но просто обрезать старые сообщения означает терять важный контекст о собеседнике.
История хранится в локальной базе данных, а по мере роста старые фрагменты переписки сворачиваются в сжатую смысловую выжимку (rolling-суммаризация), сохраняя ключевой контекст при заметно меньшем объёме, плюс автоматическая очистка данных неактивных пользователей.
Python, SQLite, периодическая суммаризация истории той же языковой моделью.
Готово и используется.