01Шлюз допуска при записи
Принимает, понижает или отклоняет каждую запись по следованию из источника. Ни у одного конкурента здесь его нет.
Проблема памяти агентов
Verimem — это постоянный слой памяти, чей add() пропускает каждую запись через шлюз допуска против конфабуляции — действительно ли источник влечёт факт? — а чей search() возвращает происхождение при каждом чтении. Гиппокамп с нотариусом у двери.
✓ 100% бесплатно и open source — лицензия MIT. Self-hosted, local-first: без аккаунта, без API-ключа, без оплаты.
Другие слои памяти сохраняют всё, что выдаёт их экстрактор. Verimem — нет.
При записи кандидат-факт принимается, понижается или отклоняется — в зависимости от того, действительно ли процитированный источник его влечёт. Дешёвый лексический фильтр без LLM сначала понижает неподтверждённые утверждения вида «работает / проверено / готово»; самый строгий режим добавляет проверку следования источник⊢факт. На SNLI он достигает AUROC 0.971, и это число независимо от судьи.
Структурированный разбор mem0, Zep, Letta, Cognee и MemOS показал, что ни у одного из них нет шлюза допуска при записи. Этот шлюз — плюс происхождение, которое возвращает каждое чтение — и есть весь смысл.
Иллюстрация — шлюз в трёх вердиктах
Чтения возвращают не только текст — по каждому факту они возвращают его status и grounding_score на момент записи, чтобы ваш код мог опираться на доверие вместо слепой веры. А update() никогда не уничтожает старый факт: он его замещает, оставляя проверяемый след history().
memory.py · запись проходит через шлюз, чтение возвращает происхождение
from engram import Memory
mem = Memory() # local SQLite, offline
mem.add("The deployment uses PostgreSQL 16.") # write goes THROUGH the gate
for hit in mem.search("which database?"): # read returns provenance
print(hit["text"], hit["status"], hit["grounding_score"])
# -> The deployment uses PostgreSQL 16. ADMITTED 0.97 | Метрика | Результат | Для протокола |
|---|---|---|
| Entailment шлюза записи | AUROC 0.971 | Источник⊢факт, независимо от судьи (SNLI). Ров на пути записи. |
| Галлюцинации на выходе | 95.9% → 12.2% | −83,7 pp; McNemar p≈6e-44, воспроизведено на 2 сидах. Работает, превращая конфабуляцию в воздержание (пропуск 3%→85%), а не повышая точность — и это плечо связано с судьёй. |
| Over-rejection чистых фактов | 30–39% | Честная цена на строгом пороге. Дистиллированный локальный шлюз (v2) допускает 0,924 чистых фактов, во многом закрывая это. |
| Retrieval recall@5 · LongMemEval-s | 0.8745 | Полные 500, без судьи, тот же эмбеддер e5, ноль внешних API. Fusion ON vs 0.8525 OFF (+2,2 pp). Более раннее n=300 давало 0.909 — оптимистично; число на полных 500 — честное. Это recall@k, а не сквозная точность QA. |
| Retrieval на итальянском | MRR +52% | 0.466 → 0.710 при переходе на эмбеддер e5, при нулевой регрессии в английском. |
| Обнаружение противоречий · HaluMem | TPR 0.66 / FPR 0.0125 | После исправления временного замещения. |
| Набор тестов | 5 830 зелёных | 764 тестовых файла, ~84k строк. Запущено самостоятельно, воспроизводимо из репозитория. |
Каждая цифра здесь запущена самостоятельно и воспроизводима из репозитория — это не место в стороннем рейтинге. Числа retrieval — это recall@k, а не сквозная точность QA, которой хвалятся Mem0 и Zep, поэтому напрямую не сопоставимы.
Принимает, понижает или отклоняет каждую запись по следованию из источника. Ни у одного конкурента здесь его нет.
Каждый факт возвращает status + grounding_score; update() замещает, history() остаётся проверяемой.
valid_until с жёстким истечением — память, которая знает, когда факт перестал быть правдой.
Режим hosted MCP: без API-ключа, без потокенной оплаты — LLM хоста делает работу.
Экран против prompt-injection при записи — с итальянским, не только английским.
228 инструментов памяти при старте сессии в Claude Code, Cursor, Cline, Continue, Zed.
| Система | Шлюз записи | Происхождение при чтении | Подход | Зрелость |
|---|---|---|---|---|
| Mem0 | ✗ | ✗ | Плоский вектор + LLM-резюме | Устоявшийся, широко принятый |
| Zep / Graphiti | ✗ | частично (темпорально) | Темпоральный граф знаний | Коммерческий, зрелый |
| HippoRAG | ✗ | ✗ | OpenIE + PageRank | Исследование |
| Verimem | ✓ | ✓ | Fusion recall + шлюз + консолидация во сне | Совсем новый · пока 0 внедрений |
Оценки и внедрение конкурентов меняются по источнику и со временем; две колонки, на которых мы стоим — шлюз записи и происхождение при чтении — взяты из структурированного разбора, а не из маркетинговой таблицы.
Совсем свежий публичный релиз. Пока никто на него не полагается — включая нас, кроме ежедневного использования мейнтейнером.
Пока установка из исходников / git. Пакет engram-memory — цель после v0.4.0.
Каждое число воспроизводимо из репо, но ни одно не проверено третьей стороной. Считайте их воспроизводимыми, а не сертифицированными.
Один пользователь и локально. Мульти-тенант скоупинг есть на уровне фактов; хостящегося / распределённого хранилища нет.
Движок сущности+PageRank работает на реальных данных, но экстрактор — детерминированный regex, запускаемый как backfill — ещё не встроен в живой путь записи.
Состязательный разбор нашёл первую демо answer-conditioning раздутой. Только ров пути записи стоит на собственных доказательствах — это всё, что мы утверждаем.
① Python — из исходников
pip install "git+https://github.com/aureliocpr-ctrl/verimem.git" Даёт команду engram и SDK from engram import Memory. Локальный SQLite, офлайн, шлюз включён по умолчанию.
github.com/aureliocpr-ctrl/verimem ↗ · MIT · README · BENCHMARKS.md
② Как MCP-сервер — Claude Code, Cursor, Cline, Zed
{
"mcpServers": {
"engram": {
"command": "engram",
"args": ["mcp"],
"env": { "ENGRAM_HOSTED": "1" }
}
}
} Перезапустите хост; инструменты памяти становятся доступны с нулевым API-ключом. Движок сейчас поставляется как engram — переименование в Verimem идёт.