Das amtliche Register für Agenten-Gedächtnis v0.7.0 · pre-release · AGPL-3.0

Das Problem mit dem Gedächtnis von Agenten

Agenten-Gedächtnis speichert alles. Ob wahr oder nicht.

Verimem ist eine persistente Gedächtnisschicht, deren add() jeden Schreibvorgang durch ein Anti-Konfabulations-Zulassungsgate leitet — impliziert die Quelle den Fakt wirklich? — und deren search() bei jedem Lesen die Provenienz zurückgibt. Ein Hippocampus mit einem Notar an der Tür.

100 % kostenlos & Open Source — AGPL-3.0-Lizenz. Selbst gehostet, local-first: kein Konto, kein API-Key, keine Abrechnung.

Zugelassengrounding 0.97
Schreibkandidat
„Das Deployment nutzt PostgreSQL 16.“
Quelle ⊢ Fakt — die zitierte Release-Note impliziert die Aussage.
Status ZUGELASSEN · mit Provenienz gespeichert.
§01 Das Zulassungsgate

Andere Gedächtnisschichten speichern, was immer ihr Extraktor ausgibt. Verimem nicht.

Beim Schreiben wird ein Kandidat-Fakt zugelassen, herabgestuft oder abgelehnt — je nachdem, ob die zitierte Quelle ihn tatsächlich impliziert. Ein günstiger, LLM-freier lexikalischer Filter stuft zuerst unbelegte Aussagen wie „funktioniert / verifiziert / erledigt“ herab; dann weist eine seit v0.5.0 standardmäßig aktive Quelle⊢Fakt-Implikationsprüfung jede Aussage zurück, die die zitierte Quelle nicht wirklich stützt. Auf SNLI gemessen erreicht sie AUROC 0.971, und diese Zahl ist richter-unabhängig.

Eine strukturierte Überprüfung von mem0, Zep, Letta, Cognee und MemOS ergab, dass keines von ihnen ein Zulassungsgate beim Schreiben hat. Dieses Gate — plus die Provenienz, die jedes Lesen zurückbringt — ist der ganze Punkt. — und eine unabhängige 2026er-Studie zu Always-on-Agenten (arXiv 2606.30306) stellt fest, dass sich das Feld weit stärker auf das Ansammeln und Abrufen von Agentenzustand konzentriert als auf dessen Steuerung — genau die Write-Admission-Lücke.

Illustrativ — das Gate in drei Urteilen

Zugelassen0.97
Schreiben · impliziert
„Das Deployment nutzt PostgreSQL 16.“
ZUGELASSEN · mit Provenienz gespeichert
Herabgestuft0.41
Schreiben · unbelegt
„Die Migration ist fertig und alles funktioniert.“
HERABGESTUFT · behalten, als wenig vertrauenswürdig markiert
Abgelehnt0.08
Schreiben · widersprochen
„Das API-Rate-Limit ist 10.000 req/s.“
ABGELEHNT · Quelle sagt 1.000 — nicht gespeichert

Provenienz bei jedem Lesen

Lesevorgänge geben nicht nur Text zurück — sie geben für jeden Fakt seinen status und den grounding_score zum Schreibzeitpunkt zurück, sodass dein Code auf Vertrauen konditionieren kann, statt blind zu vertrauen. Und update() zerstört den alten Fakt nie: es ersetzt ihn und hinterlässt eine prüfbare history()-Spur. explain() liefert einen vollständigen TrustReport — Provenienz, Prüfungen und jeden Konflikt, deklariert oder mit begründeter Enthaltung.

memory.py · das Schreiben passiert das Gate, das Lesen liefert die Provenienz

from verimem 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 Belege — gemessen, nicht behauptet
MetrikErgebnisAktenkundig
Entailment des Schreib-Gates AUROC 0.971 Quelle⊢Fakt, richter-unabhängig (SNLI). Der Burggraben des Schreibpfads.
End-to-End-QA · HaluMem, volle Pipeline 0.66–0.68 Unsere Extraktion → Gated Store → Antwort: sieben aufeinanderfolgende volle Läufe clustern bei 0.66–0.68 (Mittel 0.667, n=3 sauber) gegenüber MemOS' selbst berichteten 0.672Parität, kein Sieg, und so sagen wir es auch. Richter ist Claude, nicht GPT-4; Rohdaten im Repo.
Cross-User-Generalisierung 0.716 Dasselbe Rezept bei einem nie gesehenen Nutzer (n=169): 0.716. Das Rezept ist nicht auf die Daten eines Nutzers getunt.
Memory-Boundary-Abstention 1.000 × 7 Läufe Verweigert das Erfinden, wenn der Store eine Antwort nicht stützt — 1.000 über sieben aufeinanderfolgende End-to-End-Läufe. Die Achse, die Wettbewerber nicht messen.
Mehrsprachiges Gate-Loch — geschlossen 8/10 → 0/10 Aus Live-Tests reproduziert: dieselbe unbelegte Hype-Behauptung passierte das Gate sauber in 8 von 10 Sprachen (der lexikalische Screen war nur EN/IT). Behoben mit einem semantischen Dual-Check, der den mehrsprachigen Embedder selbst als Detektor nutzt, dann gehärtet durch ein adversariales Review, das den ersten „0 FP"-Claim auf Held-out-Sätzen falsifizierte: Fragen, Verneinungen und berichtete Rede werden jetzt per deterministischer Guards ausgeschlossen — by design. Nach dem Fix auf dem echten Write-Path: Hype in 10/10 Sprachen geflaggt, Held-out-Falsch-Positive 0/14 — Kalibrierskript, Review-Findings und Rohdaten im Repo.
Auflösung von Gedächtniskonflikten 0.15 → 0.82 Ein widersprechendes Update gewinnt nach dem Fix 5,5× häufiger; falsche Rücknahmen von 99 → 7 mit dem Präzisions-Floor (0 Cross-Attribut). Urteil des adversarialen Critic: claim_holds.
Halluzinationsrate (ein Regler) 0.233 → 0.111 −52% als Schalter (ENGRAM_GROUNDING_GATE), unter Beibehaltung der korrekten Antworten. Du wählst recall-first oder trust-first — bei QA und auf dem Schreibpfad.
Retrieval recall@5 · LongMemEval-s 0.8745 Vollständige 500, richter-frei, gleicher e5-Embedder, null externe APIs. Fusion ON vs 0.8525 OFF (+2,2 pp). Das ist recall@k, nicht End-to-End-QA-Genauigkeit.
Latenz · Nebenläufigkeit 38ms / 166–237ms Schreiben 38ms p50 mit vollem Gate; Lesen 166–237ms mit Historie + TrustReport bei 5k Fakten. 500 gleichzeitige Prozesse auf einem SQLite-Store, 0 Fehler (leichte Worker).
Test-Suite 7.761 grün Selbst ausgeführt, aus dem Repo reproduzierbar. Keine Drittanbieter-Rangliste. Ein Live-Smoke-Test gegen den LLM-Provider ist umgebungsabhängig (gehosteter Provider nötig) und aus der Zählung ausgenommen.
TrustMem-Bench · Trust-Achsen Verimem 60/60 Unser deterministischer Trust-Benchmark — kein LLM, kein Netz: sechs Achsen, ein Befehl. Verimem schafft 60/60; mem0 OSS deckt 40/60 (0/10 bei Abwesenheit, Vergessen, Herkunft). Eine Raw-Store-Baseline mit Absicht — Wettbewerber sind eingeladen, ihn auszuführen.
VeriBench · der Trust-Standard deterministisch · self-run Das offene Benchmark für vertrauenswürdige Memory — es misst, was recall@k nicht sieht, denn ein symmetrischer Score unterscheidet keine selbstsichere Falschantwort von einem ehrlichen „Ich weiß es nicht". Auf der kausalen Achse landet ein Trust-only-Store, der eine Scheinkorrelation bestätigt hat, selbst bei λ=1 im Minus (Provenienz ≠ Kausalität). Auf der adversarialen Achse — Kollusion plus vertrauter Sleeper — bleibt nur eine Zwei-Kanal-Policy (unabhängige Bestätigung und Ergebnis) im Plus; jeder Einzelkanal fällt bei einem Angriff. Modellfrei, ein Befehl, Spec im Repo — Wettbewerber sind eingeladen, es auszuführen. Vollständige Ergebnisse, Protokoll und Head-to-Head →
Source-Trust auf ECHTEM Korpus Kartell 0.90 → 0.20 · 3/3 Seeds HaluEval held-out, Kriterien vor dem ersten Lauf prä-registriert: ein Kartell aus 4 Identitäten, das sich unter naiver ≥2-Quellen-Zählung auf 0.90 selbst bestätigt, wird durch Unabhängigkeit + Audit-Dekonfundierung auf 0.20 zerlegt; ehrliche Quellen steigen auf 0.95, die halluzinierten Antworten des Kartells verschwinden aus dem Recall (→ 0.0). Robustheitskurve (18 Punkte): Falschantworten von Täuschern = 0/18 auf jedem Rauschniveau; der Rest sind ehrliche Ausrutscher — eine Per-Claim-Krankheit, deklariert, nicht versteckt.
SLA-Regler · arbeitet am deklarierten Risiko TCE ≤ 0.011 · Risiko 1,1 % @ 73 % Coverage Ein starker AUROC sagt, dass Scores diskriminieren; er sagt nicht, dass der λ-Regler am deklarierten Risiko arbeitet (Oxford 2603.21172). Held-out gemessen, Kalibrierung nur auf dev gefittet: rohe Scores ranken fast-orakelhaft (E-AURC 0.0008), versprechen aber ein anderes Risiko als geliefert; nach reiner isotonischer Kalibrierung wird jedes deklarierte λ-Ziel eingehalten — TCE ≤ 0.011 über λ ∈ {0.5–9}, beobachtetes Risiko 1,1 % bei 73 % Coverage. Deklarierter Trade-off: Kalibrierung glättet das feine Ranking — roh zum Ranken, kalibriert zum Betreiben.

Jede Zahl hier ist selbst ausgeführt und aus dem Repository reproduzierbar — es ist keine Platzierung in einer Drittanbieter-Rangliste. Retrieval-Zahlen sind recall@k, nicht die End-to-End-QA-Genauigkeit, mit der Mem0 und Zep werben, also nicht direkt vergleichbar.

§03 Der Unterschied — eine ehrliche Kombination

01Schreib-Zulassungs-Gate

Jede Schreibung per Quellen-Entailment zulassen, herabstufen oder ablehnen. Kein Wettbewerber hier liefert eines — und seit Juli ist es mehrsprachig: derselbe semantische Screen in 10 Sprachen, kalibriert auf 0 Falsch-Positive.

02Provenienz + TrustReport

Jeder Fakt liefert status + grounding_score; update() ersetzt, history() bleibt auditierbar; explain() liefert das volle „Woher weißt du das?"-Dossier.

03Bi-temporal + Zeitreise

Zwei Uhren (wann gelernt vs. wann wahr), Antwort-mit-Historie („änderte sich von X zu Y am Z"), as_of-Zeitreise und Deep Recall schlafender Fakten — nicht nur valid_until.

04Self-Host-Team-Gateway

verimem gateway serve: mandantenfähige HTTP-API auf eigener Maschine — gehashte Keys, isolierte Stores pro Tenant, Rate-Limiting, Hot-Backups, Remote-Provisioning. Deine Daten verlassen deine Infrastruktur nie.

05Trust-Odometer + Dashboard

Persistente Zähler dessen, was das Gate wirklich TAT — zugelassene, quarantänisierte, abgelehnte Schreibungen, ehrliche Enthaltungen — pro Store und Tenant, mit einer abhängigkeitsfreien /dashboard-Seite. Beobachtbare Aktionen, keine Marketing-Claims.

06Dokumenten-Gedächtnis mit exakten Zitaten

Indiziere PDF / DOCX / HTML / EPUB; Passagen kommen mit Datei, Version und Zeichen-Offsets zurück und können durchs Gate zu Erinnerungen befördert werden.

07Consent-First-Import

Starte aus deinem ChatGPT-/Claude-Export: Konversationen werden erst gelistet, filterbar nach Titel, Datum oder Projekt — nichts wird ohne explizite Auswahl ingestiert.

08DSGVO-Vergessen, das hält

delete(purge_history=True) kollabiert die ganze Kette — gelöschte Daten tauchen nicht aus history, as_of oder Deep Recall wieder auf.

09MCP-nativ + TypeScript-SDK

Memory-Tools beim Sessionstart in Claude Code, Cursor, Cline, Zed — plus ein typisierter, abhängigkeitsfreier TypeScript-Client fürs Gateway, contract-getestet gegen den Live-Server.

10Läuft auf deinem Abo

Hosted-MCP-Modus: kein API-Key, kein Token-Billing — die LLM des Hosts macht die Arbeit. Läuft air-gapped (verimem airgap prüft Zero-Egress).

11Abgeleitetes Wissen, mit Gate

Der Kompositionsring leitet NEUE Fakten aus verifizierten ab und schickt sie durch DASSELBE Admission-Gate wie jeden Schreiber — Überlebende werden signiert (Engine-Writes zeugen nie für sich selbst), nachverfolgt (widerrufbar, wenn ein Elternteil fällt) und mit dem exakt bestandenen Check etikettiert: proven / unbeaten(bound) / refuted(Gegenbeispiel). „Hielt bis 10^6" und „bewiesen" werden nie verwechselt.

12Read-Path-Guardian + aktive Proben

Ein Read enthält sich nicht nur — wenn der Store eine besser garantierte Wahrheit zum selben Subjekt hält, KORRIGIERT er und zitiert beide Fakten (ein widerlegter Fakt wird nie ausgeliefert). Und der Store prüft SICH SELBST: er baut die Query, die einen Fakt widerlegen würde — unabhängige Gegenevidenz schlägt das refuted-Label vor, Überleben lässt die unbeaten-Schranke wachsen. Falsifikation, auf die man nicht warten muss.

13Provenienz-Signatur

Ein fälschungssicheres HMAC über WER spricht reist im Provenienz-Ref jedes Writes mit, als Ergänzung zum Entailment-Gate über WAS Admission verdient. Inhalts- und Kanal-Authentizität — die zwei Hälften, die kein deterministischer Inhaltsfilter allein gegen einen adaptiven Angreifer zertifizieren kann. Opt-in; der Audit meldet Coverage und benennt Verstöße.

SystemSchreib-GateProvenienz beim LesenAnsatzReife
Mem0 Flacher Vektor + LLM-Zusammenfassung Etabliert, weit verbreitet
Zep / Graphiti teilweise (temporal) Temporaler Wissensgraph Kommerziell, ausgereift
HippoRAG OpenIE + PageRank Forschung
Verimem Fusion-Recall + Gate + Schlaf-Konsolidierung Brandneu · noch 0 Verbreitung

Wettbewerber-Werte und Verbreitung schwanken je nach Quelle und Zeit; die zwei Spalten, auf denen wir stehen — ein Schreib-Gate und Provenienz beim Lesen — stammen aus einer strukturierten Überprüfung, nicht aus einer Marketing-Tabelle.

§04 Was Verimem NICHT ist
aktenkundig
  • 0 Verbreitung.

    Eine brandneue Veröffentlichung. Noch niemand hängt davon ab — wir eingeschlossen, über den Daily Driver des Maintainers hinaus.

  • Auf PyPI · öffentliches Repo.

    pip install verimem — v0.7.0 live auf PyPI (AGPL-3.0); das öffentliche Repo ist auf GitHub, mit dem ersten grünen CI-Lauf. Trotzdem brandneu.

  • Source-Trust-Wachen — auf echtem Korpus reproduziert, weiterhin opt-in.

    Provenienz-Unabhängigkeit und Audit-Dekonfundierung halten jetzt auf einem echten Held-out-Korpus (HaluEval, prä-registrierte Kriterien, 3/3 Seeds): ein fabriziertes Konsens-Kartell, das sich unter naiver Zählung auf 0.90 selbst bestätigt, wird auf 0.20 zerlegt, ehrliche Quellen steigen auf 0.95, seine halluzinierten Antworten verschwinden aus dem Recall. Ehrliche, gemessene Grenze: unter starkem ehrlichem Rauschen (vertrauenswürdige Quellen mit ~15 %+ Fehlern) degradiert die Trennung — der Rest sind 100 % ehrliche Ausrutscher, Per-Claim-Krankheit, kein Angriff. Die Flags bleiben default OFF: die Evidenz informiert den Umschalter, der Umschalter ist eine Produktentscheidung.

  • Scope: Provenienz, nicht Kausalität.

    Jeder TrustReport deklariert es jetzt — Verimem zertifiziert, wer einen Fakt behauptet hat, wie unabhängig er bestätigt ist und wie frisch er ist, nicht dass er kausal wahr ist. Eine do(X)-Frage braucht einen interventionellen Fakt; ein bestätigter beobachtender kann sie nicht beantworten.

  • Selbst ausgeführte Benchmarks.

    Jede Zahl ist aus dem Repo reproduzierbar, aber keine ist von Dritten auditiert. Die Zahl QA vs MemOS nutzt einen Claude-Richter (nicht GPT-4) über n=2 Nutzer. Als reproduzierbar behandeln, nicht als zertifiziert.

  • End-to-End-Parität — selbst gerichtet.

    Die volle Pipeline (eigene Extraktion → QA) clustert bei 0.66–0.68 über sieben aufeinanderfolgende Läufe (Mittel 0.667 auf n=3 sauberen Stores) gegenüber MemOS' 0.672 und hält 0.716 bei einem nie gesehenen Nutzer. Der Vorbehalt bleibt: Richter ist Claude, nicht GPT-4, kein Dritt-Audit. Wir sagen Parität, nicht „schlägt".

  • Self-Host ja — Managed Cloud nein.

    Das mandantenfähige Gateway (isolierte Stores pro Tenant, gehashte Keys, Backups, Metering) ist real und getestet — auf deiner Infrastruktur. Einen Managed-Cloud-Dienst gibt es noch nicht.

  • Entitätsgraph: typisiert, opt-in, jung.

    Die konversationale Entitätsextraktion (typisierter Tier) ist shipped, aber standardmäßig aus; Multi-Hop-Reasoning über den Graphen ist die schwächste gemessene Achse (0.39–0.44) und die aktuelle Baustelle.

§05 Installieren

① Python — aus Quelle

pip install verimem

Stellt den Befehl verimem und das from verimem import Memory-SDK bereit — add() / search() / history() / explain(). Lokales SQLite, offline, Gate standardmäßig aktiv.

github.com/aureliocpr-ctrl/verimem ↗ · AGPL-3.0 · README · BENCHMARKS.md

② Als MCP-Server — Claude Code, Cursor, Cline, Zed

{
  "mcpServers": {
    "verimem": {
      "command": "verimem",
      "args": ["mcp"],
      "env": { "ENGRAM_HOSTED": "1" }
    }
  }
}

Starte deinen Host neu; die Gedächtnis-Tools werden mit null API-Key aufrufbar — das LLM des Hosts erledigt die Arbeit.

③ Self-Host-Team-Gateway

verimem gateway keys create --tenant acme
verimem gateway serve   # 127.0.0.1:8377 · /ui

verimem gateway keys create --tenant acme, dann verimem gateway serve — mandantenfähige HTTP-API mit isolierten Stores pro Tenant, Rate-Limiting und Hot-Backups. Öffne /ui für den Trust-Odometer; ein typisierter TypeScript-Client liegt im Repo.

④ Beim Arbeiten zusehen — die Trust-Konsole

verimem console   # your store · odometer · graph · live

verimem console öffnet Ihren eigenen lokalen Speicher im Browser — Vertrauens-Odometer, Wissensgraph, in dem jede Schlussfolgerung ihre Beweiskette trägt, Protokoll der blockierten Behauptungen, live über SSE. Das Team-Gateway liefert dieselbe Konsole unter /ui; Agenten lesen den Gesamtzustand über /v1/snapshot.