Skip to main content
Glama

inspeximus — долговременная память для AI-агентов, которая остаётся корректной

Память Python-агента в одном файле без зависимостей, плюс MCP-сервер для Claude Code и Cursor. Когда факт исправляется, inspeximus предоставляет новое значение и предотвращает всплытие старого — детерминированно, без участия LLM.

PyPI Downloads CI Claims audit Python Zero dependencies Tests License DOI

pip install inspeximus

30 секунд, которые имеют значение

Любая библиотека памяти может сохранять и извлекать. Вопрос, на который никто не отвечает: что происходит, когда сохранённый факт оказывается неверным.

from inspeximus import Inspeximus

m = Inspeximus("memory.json")

m.remember("The staging database is db-3.internal", key="staging-db")
m.remember("The staging database is db-7.internal", key="staging-db")   # a correction

m.recall("which staging database")[0]["text"]
# 'The staging database is db-7.internal'          <- the correction wins, every time

m.revert("staging-db")                              # and it is reversible
m.recall("which staging database")[0]["text"]
# 'The staging database is db-3.internal'

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


Related MCP server: NeverOnce

Зачем ещё одна библиотека памяти

Потому что мы измерили то, что другие не публикуют: как часто исправленный факт возвращается.

Каждая система запускалась в своей родной конфигурации, с одинаковой задачей, те же 30 испытаний:

система

сохраняет исправление

воскрешает старое значение

inspeximus

100%

0%

Graphiti 0.x (Neo4j + OpenAI)

86.7%

13.3%  95% ДИ [3.3, 26.7]

mem0 2.0.11 (OpenAI native)

53.3%

46.7%  95% ДИ [30.0, 63.3]

inspeximus, защита отключена

0%

контроль: это то, что делает защита

n = 30 на систему. mem0 измерена на 2.0.11 (2026-07); сейчас mem0 на версии 2.0.18, и мы не перезапускали её — версия зафиксирована, а не утверждение представлено как актуальное. Полный метод, исходные массивы и перезапускаемый стенд: RAMR · echo_resistance_backends_result.json

Прочитайте строку Graphiti правильно — её защита от эха не дала сбоя. Наши собственные необработанные выходные данные фиксируют echo_attributable_flips: 0 из 26 исправлений, которые были корректно извлечены до запуска эха. Битемпоральная инвалидация Graphiti удержала каждое из них. Указанные 13.3% — это четыре промаха извлечения до эха — исправление никогда не попало в граф — что является другой ошибкой, нежели та, о которой говорит эта таблица. Сказано как о механизме, а не заголовке: по воскрешению, связанному с эхом, Graphiti набирает 0%, так же как и мы, сохраняя ссылку на замещение во время записи. Это и есть реальный вывод: эти системы разделяет то, записана ли ссылка, а не то, кто её записал.

Нижняя строка — суть. Отключите нашу защиту, и мы получим ноль — так что число — это механизм, а не то, что бенчмарк к нам благосклонен.


Использование в Claude Code (одна строка)

inspeximus install --ide claude     # also: cursor, windsurf, codex, cline

Это подключает MCP-сервер с 71 инструментом и тремя хуками. Со следующей сессии ваш агент начинает знать, что решил предыдущий — никакого редактирования CLAUDE.md, никаких повторных объяснений:

  • SessionStart внедряет решения, всё ещё действующие

  • PostToolUse фиксирует, что на самом деле произошло, с привязкой к файлу

  • PreToolUse показывает решение, относящееся к действию, до того, как оно выполнится


Что вы получаете

Исправление как операция первого класса. remember(key=...) отзывает предыдущее значение для этого ключа. revert(key) восстанавливает его. history(key) показывает цепочку. Всё детерминированно, всё проверяемо.

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

Происхождение, которое можно проверить, а не просто хранить. check_sources() перечитывает источник каждой записи и возвращает FRESH / DRIFTED / ORPHANED / UNCHECKABLE, плюс четыре показателя охвата, которые намеренно разделены — потому что поле source, заполненное на 98.3% и повторно извлекаемое на 0.01%, — это схема, а не гарантия. (Эти два числа — наши, измеренные на нашем собственном рабочем хранилище.)

Применимость к текущему состоянию. evaluate_applicability() отвечает на другой вопрос, нежели «верна ли эта память»: может ли она управлять действием здесь и сейчас? Исторические свидетельства могут быть совершенно верны и больше не авторизованы — ветка переместилась, политика изменилась, арендатор другой, срок действия истёк. Реализует вендеронейтральный контракт CML; две независимые реализации согласны с его замороженным фикстуром.

Мультиарендная изоляция. for_tenant("acme") предоставляет ограниченное представление над одним общим хранилищем, причём арендатор привязан к подписанному сообщению, так что запись нельзя переместить между арендаторами и при этом верифицировать.

Ноль зависимостей. Один файл. Семантический поиск опционален (embed=your_model); лексический запасной вариант ничего не требует. MCP-сервер, шифрование и адаптеры фреймворков — все являются опциональными дополнениями.


Работает с

langchain · langgraph-store · llamaindex · haystack · autogen · pydantic-ai · google-adk · memoryagentbench

10 из 13 проверены на соответствие текущему upstream, 3 зафиксированы как сломанныеcrewai, langgraph-checkpointer и openai-agents, названы, а не молча удалены из списка. Количества считываются из docs/integration_conformance.json аудитом утверждений, так что эта строка не может отклониться от того, что раннер измерил в последний раз.

Список «работает с», в котором указаны только успехи, — это стена логотипов. Этот говорит вам, какой адаптер сломается, прежде чем вы начнёте на нём строить.


Как это тестируется

2 600+ тестов и шлюз мутаций, который является причиной верить им: 175 внесённых дефектов, 175 убито, 0 выжило. Набор тестов, который проходит, — это не доказательство; набор, который ловит каждое преднамеренное нарушение, — это доказательство.

Каждое число на этой странице зарегистрировано в docs/CLAIMS.md, с точной командой, которая его пересчитывает. Если какое-то из них не совпадает с вашим запуском, это отчёт об ошибке, который мы хотим получить.


Документация

Сайт проекта →

экскурсия: бенчмарк, MPC-поверхность, история управления

Сравнение с mem0 и Graphiti

таблица воскрешения полностью, с контролем и честной областью

Настройка Claude Code

однострочная установка MCP и что делает каждый из трёх хуков

Полная версия

каждый механизм, каждое измерение и те, что провалились

Полный API

каждый метод с ошибкой, для предотвращения которой он существует

Удаление и GDPR

право на забвение в производных сводках с подтверждениями

Доказательства для EU AI Act

журналирование по Статье 12, сопоставленное с тем, что хранилище уже хранит

Инструменты MCP

все 68 и для чего каждый

Реестр утверждений

каждое опубликованное число и команда, которая его пересчитывает

Список изменений

что изменилось и почему, включая то, в чём мы ошиблись


Для кого это

Вы создаёте агента, который работает неделями, а не минутами. Он узнает что-то, а затем это что-то изменится — значение конфигурации, политика, предпочтение человека, факт. Ошибка, которая будет стоить вам дорого, — это не забывание агентом. Это агент, уверенно помнящий старый ответ.

Это та ошибка, вокруг которой построена эта библиотека, и единственная, по которой мы оцениваем себя.


Цитирование

Архивировано на Zenodo с DOI, не зависящим от версии — 10.5281/zenodo.21708778. Машиночитаемые метаданные находятся в CITATION.cff, так что кнопка «Cite this repository» на GitHub даёт BibTeX и APA напрямую.


Лицензия MIT. Создано Agora, автономной исследовательской организацией, которая публикует свои неудачные репликации рядом с успешными.

mcp-name: io.github.DanceNitra/inspeximus

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
38dResponse time
0dRelease cycle
7Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Persistent, correctable AI memory with zero dependencies. Corrections always surface first and never decay. SQLite-backed, 400 lines of pure Python, MCP server included.
    7
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Two-layer memory for AI agents. Episodes compress into identity. The only MCP memory server with an immune system. Patterns earn permanence through evidence, false knowledge gets caught and demoted, and stale information fades — so your agent's memory gets smarter over time, not just bigger. Zero dependencies. 5 tools. Works with any MCP client.
    16
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Open-source MCP memory server for AI agents — persistent, searchable, tiered memory across sessions. Works over stdio (Cursor, Claude Desktop) or HTTP+SSE. MIT licensed.
    6
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanceNitra/inspeximus'

If you have feedback or need assistance with the MCP directory API, please join our Discord server