agora-mnemo
inspeximus — Langzeitgedächtnis für KI-Agenten, das korrekt bleibt
Python-Agenten-Gedächtnis in einer Datei ohne Abhängigkeiten, plus einen MCP-Server für Claude Code und Cursor. Wenn eine Tatsache korrigiert wird, liefert inspeximus den neuen Wert und verhindert, dass der alte wieder auftaucht — deterministisch, ohne LLM in der Schleife.
pip install inspeximusDie 30 Sekunden, die zählen
Jede Gedächtnisbibliothek kann speichern und abrufen. Die Frage, die niemand beantwortet, ist, was passiert, wenn eine gespeicherte Tatsache sich als falsch erweist.
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'Kein Embedding-Drift, kein „die KI wählt normalerweise die neuere“. Der alte Wert wird per Schlüssel ausgemustert, und die Ausmusterung ist ein Datensatz, den Sie prüfen, rückgängig machen und belegen können.
Related MCP server: NeverOnce
Warum eine weitere Gedächtnisbibliothek
Weil wir das eine Ding gemessen haben, das die anderen nicht veröffentlichen: wie oft eine korrigierte Tatsache zurückkommt.
Jedes System wurde auf seiner eigenen nativen Konfiguration ausgeführt, gleiche Aufgabe, gleiche 30 Versuche:
System | behält die Korrektur | stellt den alten Wert wieder her |
inspeximus | 100% | 0% |
Graphiti 0.x (Neo4j + OpenAI) | 86.7% | 13.3% 95%-Konfidenzintervall [3.3, 26.7] |
mem0 2.0.11 (OpenAI native) | 53.3% | 46.7% 95%-Konfidenzintervall [30.0, 63.3] |
inspeximus, Sicherung deaktiviert | 0% | — die Kontrolle: das ist, was die Sicherung leistet |
n = 30 pro System. mem0 gemessen bei 2.0.11 (2026-07); mem0 ist jetzt bei 2.0.18 und wir haben es
nicht neu durchgeführt — die Version ist gestempelt, nicht die Behauptung wird als aktuell bezeichnet. Vollständige Methode,
rohe Arrays und das wiederverwendbare Gerüst:
RAMR · echo_resistance_backends_result.json
Lesen Sie die Graphiti-Zeile richtig — seine Echo-Abwehr ist nicht fehlgeschlagen. Unser eigener Rohoutput zeichnet
echo_attributable_flips: 0von 26 Korrekturen, die vor dem Echo korrekt extrahiert wurden. Graphitis bi-temporale Invalidierung hat jede einzelne davon gehalten. Die 13,3 % oben sind vier Vor-Echo-Extraktions-Fehlschläge — die Korrektur hat es nie in den Graphen geschafft — was ein anderer Fehler ist als der, um den es in dieser Tabelle geht. Ausgedrückt als Mechanismus statt als Überschrift: bei der Echo-zuschreibbaren Wiederauferstehung erzielt Graphiti 0 %, genau wie wir, indem es die Ersetzungsverknüpfung zum Zeitpunkt des Schreibens aufzeichnet. Das ist die wirkliche Erkenntnis hier: Was diese Systeme trennt, ist, ob die Verknüpfung aufgezeichnet wird, nicht wer sie aufgezeichnet hat.
Die untere Zeile ist der Punkt. Schalten Sie unsere Sicherung aus und wir erzielen Null — also ist die Zahl der Mechanismus, nicht das Maß, das uns nett behandelt.
Verwendung in Claude Code (eine Zeile)
inspeximus install --ide claude # also: cursor, windsurf, codex, clineDas verdrahtet einen MCP-Server mit 71 Tools und drei Hooks. Von der nächsten Sitzung an kennt Ihr Agent,
was der letzte entschieden hat — keine CLAUDE.md-Bearbeitung, kein erneutes Erklären:
SessionStart injiziert die noch gültigen Entscheidungen
PostToolUse erfasst, was tatsächlich passiert ist, schlüsselig nach Datei
PreToolUse zeigt die Entscheidung an, die auf die Aktion vor deren Ausführung Einfluss hat
Was Sie erhalten
Korrektur als erstklassige Operation. remember(key=...) mustert den vorherigen Wert für diesen Schlüssel aus.
revert(key) stellt ihn wieder her. history(key) zeigt die Kette. Alles deterministisch, alles prüfbar.
Löschung, die nachweisbar ist. forget_subject() löscht hart jedes Gedächtnis, das einem Betreff zuzuschreiben ist —
einschließlich Zusammenfassungen, die es durch Abstammung geerbt haben — und hinterlässt einen signierten, inhaltsleeren Grabstein,
sodass eine spätere Prüfung absichtlich gelöscht von manipuliert unterscheiden kann.
Herkunft, die Sie prüfen können, nicht nur speichern. check_sources() liest den Ursprung jedes Datensatzes erneut und gibt
FRESH / DRIFTED / ORPHANED / UNCHECKABLE zurück, plus vier Abdeckungszahlen, die bewusst getrennt gehalten werden —
den ein source-eld, das zu 98,3 % befüllt ist und zu 0,01 % wiederabrufbar, ist ein Schema, keine Garantie.
(Dies beiden Zahlen sind unsere, gemessen an unserem eigenen Produktionsspeicher.)
Anwendbarkeit des aktuellen Zustands. evaluate_applicability() beantwortet eine andere Frage als „ist dieses Gedächtnis
wahr“: darf es hier und jetzt eine Aktion antreiben? Historische Belege können völlig gültig sein und nicht mehr authorisiert —
Der Branch hat sich bewegt, die Richtlinie hat sich geändert, der Mandant unterscheidet sich, das Fenster is abgelaufen.
Implementiert den herstellerneutralen CML-Vertrag; zwei unabhängige Implementierungen stimmen über sein eingefrorenes Fixture überein.
Multi-Mandanten-Isolierung. for_tenant("acme") gibt eine eingeschränkte Ansicht über einen gemeinsamen Speicher, wobei
der Mandant in die signirte Nachricht eingebunden ist, sodass ein Datensatz nicht zwischen Mandanten bewegt werden kann und dennoch verifiziert.
Null Abhängigkeiten. Eine Datei. Semantisches Abrufen ist optional (embed=your_model); der lexikalische Fallback
benötigt nichts. Der MCP-Server, die Verschlüsselung und die Framework-Adapter sind alle opt-in Extras.
Funktioniert mit
langchain · langgraph-store · llamaindex · haystack · autogen · pydantic-ai ·
google-adk · memoryagentbench
10 von 13 gegenüber aktuellem Upstream verifiziert, 3 als defekt aufgezeichnet — crewai,
langgraph-checkpointer und openai-agents, benannt statt still aus der Liste gestrichen. Die
Zahlen werden aus docs/integration_conformance.json vom
Claims-Audit gelesen, sodass diese Zeile nicht von dem abweichen kann, was der Läufer zuletzt gemessen hat.
Eine „Funktioniert mit“-Liste, die nur Erfolge nennt, ist eine Logo-Wand. Diese Sagt Ihnen, welcher Adapter bricht, befor Sie darauf bauen.
Wie dies getestet wird
2.600+ Tests, und ein Mutations-Gate, das der Grund ist, sie zu glauben: 175 gezielte Fehler, 175 getötet, 0 überlebt. Eine Testsuite, die bestanden wird, ist kein Beweis; eine Suite, die jeden absichtlichen Bruch erwischt, ist es.
Jede Zahl auf dieser Seite ist in docs/CLAIMS.md registriert, mit dem genauen Befehl, der sie neu berechnet. Wenn eine mit Ihrer Ausführung nicht übereinstimt, ist das ein Fehlerbericht, den wir haben wollen.
*** n
Dokmentation
die geführte Tour: der Benchmark, die MCP-Oberfläche, die Governance-Geschichte | |||||||
die Auferstehungstabelle vollständig, mit Kontrolle und ehrlichem Umfang | n | die Einzeilen-MCP-Installation, und was jeder der drei Hooks tut | n | jeder Mechanismus, jede Messung, und die, die fehlgeschlagen sind | |||
jede Methode, mit dem Fehler, den sie zu verhindern existiert | |||||||
Recht auf Löschung über abgeleitete Zusammenfassungen hinweg, mit Quittungen | |||||||
Artikel-12-Protokollierung, abgebildet auf das, was der Speicher bereits führt | |||||||
alle 68, und wofür jedes ist | |||||||
jede veröffentlichte Zahl, und der Befehl, der sie neu berechnet | |||||||
was sich geändert hat und warum, einschließlich dessen, was wir falsch gemacht haben |
Für wen dies ist
Sie bauen einen Agenten, der wochenlang läuft, nicht Minuten. Er wird etwas lernen, und dann wird sich das Ding ändern — ein Konfigurationswert, eine Richtlinie, eine Personenpräferenz, eine Tatsache. Der Fehler, der Sie kosten wird, ist nicht, dass der Agent vergisst. Es ist der Agent, der zuversichtlich die alte Antwort erinnert.
Das ist der Fehler, um den herum diese Bibliothek gebaut ist, und der einzige, nach dem wir uns selbst benchmaken.
Zitieren
Archiviert auf Zenodo mit einem versionsunabhängigen DOI — 10.5281/zenodo.21708778.Maschinenlesbare Metadaten befinden sich in CITATION.cff, sodass GitHub's „Cite this repository“-Knopf Ihnen direkt BibTeX und APA gibt.
MIT-lizenziert. Gebaut von Agora, einer autonomen Forschungsorganisation, die ihre fehlgeschlagenen Replikationen neben ihren erfolgreichen veröffentlicht.
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
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
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