Обзор кода ZaiMem: память как инфраструктура и ловушка при деплое
ZaiMem объединяет детерминированный поиск, MCP, handoff проектов, документы, встречи и GitHub-снимки. Код широк, но постоянный хостинг остаётся главным условием.

ГЛУБОКИЙ ОБЗОР ПРОЕКТА · КОД + ЖИВОЕ ДЕМО
Откройте живую страницу, и ZaiMem выдаст приватный токен раньше, чем спросит, кто вы. Этот маленький выбор многое говорит о продукте: память как инфраструктура, а не ещё одно окно чата. За ним работает сервис на Next.js 16 с 33 MCP-инструментами в восьми паках, модель данных Prisma, детерминированные 384-мерные эмбеддинги, конвейеры документов и встреч и необязательный приватный репозиторий GitHub как читаемая резервная копия. Идея сходится. Обзор о том, сходится ли реализация.
Что здесь удачно
- ZaiMem собирает проблемы непрерывности в один протокол. Агент запоминает, вспоминает, усиливает контекст, сжимает ввод, продолжает сессии, входит в проект, читает документы и встречи и передаёт работу. В репозитории есть отдельные модули памяти, векторов, ingestion, проектов, встреч, поиска, пакетов, GitHub, шифрования, scheduler, rate limit и MCP.
- Live demo · Source repository
Как это устроено
Dashboard и MCP-клиенты встречаются в общем прикладном слое. Route handlers проверяют токен `zm_…` и вызывают доменные модули. Prisma использует SQLite локально и Postgres-схему для managed deployment. Изменения могут ставить четырёхсекундный debounced snapshot в приватный GitHub. Границы протокола, логики, хранения и UI читаются.
Как работает припоминание
Движок локальный: слова и char-4-gram хэшируются FNV-1a в 384 измерения, TF сглаживается, вектор нормализуется. Рейтинг сочетает cosine, ключевые слова, давность, важность, доступ, pin и проект. 0,94 означает дубликат. Нет API-стоимости, но такой embedding лучше ловит лексику, чем глубокий смысл перефразировок и языков.
Решения по безопасности, которые стоит сохранить
Токены создаются из 24 случайных байт и хранятся как SHA-256. Старые plaintext-записи мигрируют. GitHub PAT шифруется AES-256-GCM. Forget имеет preview и confirm. Память проходит quarantine scan. Sync сравнивает blob SHA и пропускает неизменённые файлы.
const score =
cosine(query, memory) * semanticWeight
+ keywordBoost(memory)
+ recencyBoost(memory)
+ importanceBoost(memory)
+ (memory.pinned ? pinBoost : 0);Поясняющий псевдокод по проверенным стадиям ранжирования, а не дословная выдержка из исходников.
Ловушка деплоя
README честен: SQLite в Vercel живёт в эфемерном `/tmp`, поэтому cold start может дать пустое отдельное хранилище. Bootstrap создаёт таблицы, но не сохраняет данные. Для реальной работы нужен managed Postgres или долгоживущий Docker. GitHub помогает восстановлению, но не заменяет согласованную транзакционную БД.
Где обзор кода находит слабые места
Главный риск - ширина раньше сфокусированных тестов. CI запускает lint и build, но не отдельный unit/integration suite. 33 инструмента расширяют матрицу прав и совместимости. Токен в query может попасть в логи и историю; header безопаснее. Wildcard CORS держится на секрете токена. Самодельному embedding нужны публичные retrieval-бенчмарки.
Как он выглядит и звучит
Production landing собран дисциплинированно: чёрный фон, белая типографика, один фиолетовый акцент, один главный CTA и полоса совместимости. Сложная система объясняется рабочими циклами. Dashboard шире, поэтому progressive disclosure важен. Пакеты инструментов хорошо скрывают целые группы возможностей.
Как оценить его по-настоящему
Создайте корпус из дублей, перефразировок, переводов, старых предпочтений, вредных инструкций, похожих проектов и удалённого документа. Измерьте precision@k, утечки между проектами, ложные merge, время forget и восстановление GitHub. Повторите на SQLite, Postgres и после cold start.
Вердикт
ZaiMem силён как прозрачный MCP-стек памяти без внешнего embedding API. Детерминированный поиск, provenance, handoff и читаемый backup продуманы. Честная оговорка: важным данным нужны Postgres или persistent Docker и измеренные тесты retrieval и isolation.
Ссылки и автор
Живое демо: ZaiMem. Исходники: GitHub.
Сильные стороны
- Broad MCP-native continuity surface
- Детерминированный локальный поиск с указанием происхождения
- Encrypted GitHub backup path
Компромиссы
- Эфемерный SQLite небезопасен на serverless-хостингах
- No checked-in retrieval benchmark
- Широкий набор инструментов повышает риск авторизации
Для кого: команды разработчиков, которые могут запустить Postgres или постоянный Docker-хост и хотят проверяемую память агентов.
Частые вопросы
Что такое ZaiMem?
ZaiMem - открытый слой MCP-памяти для ИИ-агентов с локальным поиском, handoff проектов, документами, встречами и GitHub-снимками.
Безопасно ли хранить данные ZaiMem в SQLite на Vercel?
Нет, не для постоянных production-данных. Нужен persistent Docker host или managed Postgres.
Нужен ли ZaiMem внешний embedding API?
Нет. Движок локально хеширует слова и символьные 4-граммы в 384-мерные векторы.
Reviewed source at commit e15c1f9 · Live demo