Официальный реестр памяти агентов v0.3.0 · pre-release · MIT

Проблема памяти агентов

Память агентов сохраняет всё подряд. Правда или нет.

Verimem — это постоянный слой памяти, чей add() пропускает каждую запись через шлюз допуска против конфабуляции — действительно ли источник влечёт факт? — а чей search() возвращает происхождение при каждом чтении. Гиппокамп с нотариусом у двери.

100% бесплатно и open source — лицензия MIT. Self-hosted, local-first: без аккаунта, без API-ключа, без оплаты.

Принятоgrounding 0.97
Кандидат на запись
«Развёртывание использует PostgreSQL 16.»
источник ⊢ факт — процитированная заметка о релизе влечёт утверждение.
статус ПРИНЯТО · сохранено с происхождением.
§01 Шлюз допуска

Другие слои памяти сохраняют всё, что выдаёт их экстрактор. Verimem — нет.

При записи кандидат-факт принимается, понижается или отклоняется — в зависимости от того, действительно ли процитированный источник его влечёт. Дешёвый лексический фильтр без LLM сначала понижает неподтверждённые утверждения вида «работает / проверено / готово»; самый строгий режим добавляет проверку следования источник⊢факт. На SNLI он достигает AUROC 0.971, и это число независимо от судьи.

Структурированный разбор mem0, Zep, Letta, Cognee и MemOS показал, что ни у одного из них нет шлюза допуска при записи. Этот шлюз — плюс происхождение, которое возвращает каждое чтение — и есть весь смысл.

Иллюстрация — шлюз в трёх вердиктах

Принято0.97
Запись · влечётся
«Развёртывание использует PostgreSQL 16.»
ПРИНЯТО · сохранено с происхождением
Понижено0.41
Запись · без подтверждения
«Миграция сделана и всё работает.»
ПОНИЖЕНО · оставлено, помечено низким доверием
Отклонено0.08
Запись · противоречие
«Лимит API — 10 000 req/s.»
ОТКЛОНЕНО · источник говорит 1 000 — не сохранено

Происхождение при каждом чтении

Чтения возвращают не только текст — по каждому факту они возвращают его 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
§02 Доказательства — измерены, а не заявлены
МетрикаРезультатДля протокола
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, поэтому напрямую не сопоставимы.

§03 Отличие — честная комбинация

01Шлюз допуска при записи

Принимает, понижает или отклоняет каждую запись по следованию из источника. Ни у одного конкурента здесь его нет.

02Происхождение при чтении

Каждый факт возвращает status + grounding_score; update() замещает, history() остаётся проверяемой.

03Битемпоральное valid-time

valid_until с жёстким истечением — память, которая знает, когда факт перестал быть правдой.

04Работает на вашей подписке

Режим hosted MCP: без API-ключа, без потокенной оплаты — LLM хоста делает работу.

05Многоязычный экран против инъекций

Экран против prompt-injection при записи — с итальянским, не только английским.

06MCP-native

228 инструментов памяти при старте сессии в Claude Code, Cursor, Cline, Continue, Zed.

СистемаШлюз записиПроисхождение при чтенииПодходЗрелость
Mem0 Плоский вектор + LLM-резюме Устоявшийся, широко принятый
Zep / Graphiti частично (темпорально) Темпоральный граф знаний Коммерческий, зрелый
HippoRAG OpenIE + PageRank Исследование
Verimem Fusion recall + шлюз + консолидация во сне Совсем новый · пока 0 внедрений

Оценки и внедрение конкурентов меняются по источнику и со временем; две колонки, на которых мы стоим — шлюз записи и происхождение при чтении — взяты из структурированного разбора, а не из маркетинговой таблицы.

§04 Чем Verimem НЕ является
для протокола
  • 0 внедрений.

    Совсем свежий публичный релиз. Пока никто на него не полагается — включая нас, кроме ежедневного использования мейнтейнером.

  • Нет на PyPI.

    Пока установка из исходников / git. Пакет engram-memory — цель после v0.4.0.

  • Собственные бенчмарки.

    Каждое число воспроизводимо из репо, но ни одно не проверено третьей стороной. Считайте их воспроизводимыми, а не сертифицированными.

  • Одноузловой SQLite.

    Один пользователь и локально. Мульти-тенант скоупинг есть на уровне фактов; хостящегося / распределённого хранилища нет.

  • Граф сущностей на regex.

    Движок сущности+PageRank работает на реальных данных, но экстрактор — детерминированный regex, запускаемый как backfill — ещё не встроен в живой путь записи.

  • Answer-path не доказан.

    Состязательный разбор нашёл первую демо answer-conditioning раздутой. Только ров пути записи стоит на собственных доказательствах — это всё, что мы утверждаем.

§05 Установить за 2 минуты

① 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 идёт.