inspeximus

Tools & Infrastructure 💻 Python ⚖️ MIT 🟢 Actively maintained
6 stars

inspeximus is a zero-dependency Python library and MCP server that provides long-term memory for AI agents, with a focus on correcting and reverting outdated facts. It solves the problem of agents confidently remembering old answers after a correction, and offers tamper-evident receipts and provenance tracking. It is for developers building AI agents or applications that need reliable, auditable memory.

✨ Key features

  • Zero-dependency Python file plus MCP server
  • Correct facts by key and revert corrections
  • Tamper-evident hash chain receipts
  • Provenance and erasure certificates
  • Static transparency log with witness verification
  • Adapters for LangChain, LlamaIndex, and more

🎯 Use cases

  • Store and correct user preferences in agent memory
  • Audit memory changes with provenance and receipts
  • Prove erasure of personal data for GDPR compliance
  • Run a transparency log for published numbers
  • Witness external logs to detect rewrites

📦 Installation

🧰 Requirements: Python 3.x, no API keys required for core features; optional embedder for semantic recall.

pip install inspeximus

🚀 Usage

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'

⚠️ Good to know

The guard is keyed: statements written without a key are not protected from resurrection, and the project is not compliance or certification.

❓ FAQ

How does inspeximus prevent old facts from coming back after a correction?

It retires the old value by key, and writing the old value again under the same key does not make it current unless you explicitly reaffirm with remember(..., reaffirm=True).

Can I prove that memory has not been tampered with?

Yes, enable receipts with receipts=True and use verify_writes() to check that the stored text and keys match their write receipts.

Does inspeximus support semantic search?

Yes, you can bring your own embedder for semantic recall, as shown in example 03_semantic_recall.py.

Is inspeximus compliant with the EU AI Act?

No, it is not compliance. It provides features that go beyond the text of the Act, but it is not a certification.

📊 Repository

Stars★ 6
Forks🍴 0
Open issues🐛 1
Last commit🕒 Sep 3, 2026
Created📅 Jul 2026
Language💻 Python
License⚖️ MIT

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.