agora-mnemo
inspeximus — долговременная память для AI-агентов, которая остаётся корректной
Память Python-агента в одном файле без зависимостей, плюс MCP-сервер для Claude Code и Cursor. Когда факт исправляется, inspeximus предоставляет новое значение и предотвращает всплытие старого — детерминированно, без участия LLM.
pip install inspeximus30 секунд, которые имеют значение
Любая библиотека памяти может сохранять и извлекать. Вопрос, на который никто не отвечает: что происходит, когда сохранённый факт оказывается неверным.
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-поверхность, история управления | |
таблица воскрешения полностью, с контролем и честной областью | |
однострочная установка MCP и что делает каждый из трёх хуков | |
каждый механизм, каждое измерение и те, что провалились | |
каждый метод с ошибкой, для предотвращения которой он существует | |
право на забвение в производных сводках с подтверждениями | |
журналирование по Статье 12, сопоставленное с тем, что хранилище уже хранит | |
все 68 и для чего каждый | |
каждое опубликованное число и команда, которая его пересчитывает | |
что изменилось и почему, включая то, в чём мы ошиблись |
Для кого это
Вы создаёте агента, который работает неделями, а не минутами. Он узнает что-то, а затем это что-то изменится — значение конфигурации, политика, предпочтение человека, факт. Ошибка, которая будет стоить вам дорого, — это не забывание агентом. Это агент, уверенно помнящий старый ответ.
Это та ошибка, вокруг которой построена эта библиотека, и единственная, по которой мы оцениваем себя.
Цитирование
Архивировано на Zenodo с DOI, не зависящим от версии — 10.5281/zenodo.21708778. Машиночитаемые метаданные находятся в CITATION.cff, так что кнопка «Cite this repository» на GitHub даёт BibTeX и APA напрямую.
Лицензия MIT. Создано Agora, автономной исследовательской организацией, которая публикует свои неудачные репликации рядом с успешными.
mcp-name: io.github.DanceNitra/inspeximus
Maintenance
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
AlicenseAqualityFmaintenanceAn MCP server that integrates with mem0.ai to help users store, retrieve, and search coding preferences for more consistent programming practices.29658Apache 2.0- AlicenseAqualityCmaintenancePersistent, correctable AI memory with zero dependencies. Corrections always surface first and never decay. SQLite-backed, 400 lines of pure Python, MCP server included.73MIT
- AlicenseAqualityBmaintenanceTwo-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.1610MIT

Recallofficial
AlicenseNot gradedqualityCmaintenanceOpen-source MCP memory server for AI agents — persistent, searchable, tiered memory across sessions. Works over stdio (Cursor, Claude Desktop) or HTTP+SSE. MIT licensed.6MIT
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Person-owned AI memory that learns, not just stores — portable context for any MCP client.
One memory, every AI: Claude, ChatGPT, Perplexity, Gemini, Cursor, OpenClaw, Hermes, any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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