MemPalace
- title
- MemPalace
- type
- toolbox
- summary
- Память агентов: сохранение диалогов дословно в ChromaDB со структурой из крыльев и комнат
- tags
- ai-agents, memory, python
- language
- Python
- license
- MIT
- created
- 2026-04-08
- updated
- 2026-04-25
- lang
- ru
- translation_of
- mempalace
- source_updated
- 2026-04-25
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-high
Система памяти для ИИ, сохраняющая историю диалогов дословно в ChromaDB и организующая её с помощью метафоры чертогов разума - архитектурной иерархии вместо плоского поиска. Полностью локальная, ноль вызовов API, интеграция через MCP для Claude/ChatGPT/Cursor/Gemini. Заявлено 96.6% R@5 в бенчмарке LongMemEval (500 вопросов, режим без сжатия verbatim).
Архитектура
Иерархия дворца вдохновлена древнегреческим методом локусов:
- Wings - люди или проекты (без ограничений)
- Rooms - тематические области внутри крыльев (auth, billing, deploy)
- Halls - коридоры по типам воспоминаний (факты, события, находки, предпочтения, советы)
- Tunnels - перекрёстные ссылки между одинаковыми комнатами в разных крыльях
- Closets - краткие сводки со ссылками на исходное содержимое
- Drawers - дословные исходные файлы, никогда не подвергающиеся суммаризации
Структура служит метаданными для фильтрации в ChromaDB. Поиск без фильтрации показал 60.9% R@10 на 22 тысячах реальных воспоминаний; фильтрация по крылу и комнате подняла результат до 94.8% - прирост на 34 процентных пункта от, по сути, стандартной фильтрации по метаданным в обёртке метафоры дворца.
Философия дизайна: дословность вместо суммаризации
MemPalace хранит необработанный текст диалогов без извлечения сущностей или суммаризации. Это противоположность подходу hippo-memory (затухание, консолидация, семантическое сжатие). Ставка сделана на то, что дословное сохранение с качественным поиском превосходит сжатие с потерями. Расплачиваться приходится местом на диске - сохраняется всё, - однако ChromaDB справляется с большими коллекциями, а четырёхуровневый стек памяти контролирует, что именно попадает в контекст.
Четырёхуровневый стек
- L0 (~50 токенов) - сведения об идентичности
- L1 (~120 токенов) - ключевые факты о команде, проектах и предпочтениях
- L2 (по требованию) - недавние сессии и контекст текущего проекта
- L3 (по требованию) - глубокий семантический поиск по всем closets
Контекст пробуждения (L0 + L1) занимает ~170 токенов. Сравнение расходов: вставка всего = 19.5M токенов (нереально), сводки от LLM = 650K токенов ($507/год), пробуждение MemPalace = ~$0.70/год.
Темпоральный граф знаний
Триплеты сущность-связь на базе SQLite с временными метками valid_from и ended. У фактов есть интервалы актуальности, что позволяет выполнять как запросы к текущему состоянию, так и исторические ("что было актуально в январе?"). Это иной подход к memory-conflict-detection: вместо маркировки противоречий система отслеживает жизненный цикл фактов во времени, благодаря чему старые и новые состояния сосуществуют как хронологические записи.
Сжатие AAAK (экспериментальное)
Диалект сокращений с потерями, использующий коды сущностей и структурные маркеры для сжатия контекста. В настоящее время выдаёт 84.2% R@5 против 96.6% в режиме raw - главный результат бенчмарка получен именно на необработанном тексте, а не на сжатом. Раздел "Honest Status" в README открыто признаёт это и другие преувеличения (подсчёт токенов опирался на эвристики, а не на токенизаторы; фильтрация дворца - это стандартная фильтрация по метаданным в ChromaDB; обнаружение противоречий не было подключено к коду).
Использование
pip install mempalace
mempalace init ~/projects/myapp
mempalace mine ~/chats/ --mode convos # ingest conversations
mempalace search "why did we switch to GraphQL"
mempalace wake-up # ~170 token context block
Интеграция через MCP:
claude mcp add mempalace -- python -m mempalace.mcp_server
Предоставляет 19 инструментов, включая поиск, пробуждение (wake-up), операции с графом знаний, ведение дневника и обнаружение агентов.
Режимы добычи данных
- Projects - код, документация, заметки
- Convos - экспорты из Claude, ChatGPT, Slack
- General - автоматическая классификация на решения, вехи, проблемы, предпочтения и эмоциональный контекст
Сравнение с Hippo Memory и Stash
hippo-memory, Stash и MemPalace решают задачу межсессионной памяти агентов с разных философских позиций:
| MemPalace | Hippo Memory | Stash | |
|---|---|---|---|
| Хранение | Дословно, сохранять всё | Затухание по умолчанию, консолидация | Эпизоды -> факты -> паттерны (пайплайн) |
| Поиск | Структурная фильтрация + семантический поиск | hybrid-search (BM25 + эмбеддинги) | Запросы в рамках пространств имён + обход графа знаний |
| Устаревание | Временные метки актуальности | Затухание по периоду полураспада | Снижение уверенности при противоречиях |
| Конфликты | Темпоральное отслеживание фактов | Явное обнаружение конфликтов | Этап разрешения противоречий при консолидации |
| Рассуждения высшего порядка | Нет (только дословный текст) | Семантические паттерны | Причинно-следственные связи, цели, сбои, гипотезы |
| Бэкенд | ChromaDB + SQLite | SQLite, опциональные эмбеддинги | Postgres + pgvector |
| Язык | Python | TypeScript | Go |
Ни один из подходов нельзя назвать безоговорочно лучшим: MemPalace оптимизирован под полноту, Hippo - под релевантность, Stash - под синтез через пайплайн. Компромиссы разобраны на концептуальной странице agent-memory-decay.
Специализированные агенты
Позволяет создавать специализированных агентов с отдельными крыльями, дневниками и предметными областями. Каждый агент ведёт собственную память. Агенты записывают выводы на диалекте AAAK и читают историю по своей предметной области. Механизм обнаружения находит доступных агентов во время выполнения автоматически.
15.3K звёзд, лицензия MIT. Репозиторий: https://github.com/milla-jovovich/mempalace