Note
KI- & Agenten-Indexierung: Dieses Repository bietet eine maschinenlesbare llms.txt-Zusammenfassung für KI-Agenten, LLM-Werkzeuge und Lifecycle-Hooks.
Beitragen: Die Entwicklung findet im privaten Twin memoryhooker-provenance statt; dieses Repository trägt die kuratierte Open-Source-Distribution. Siehe CONTRIBUTING.md.
MemoryHooker verbindet lokale Wissensquellen (Markdown-Verzeichnisse, SQLite-FTS5-Volltextdatenbanken und USMC-kuratierte Tabellen) mit den Lebenszyklus-Hooks von Coding-Agenten. Das Paket kann eine dezente Erinnerung an die Gedächtnissuche ausgeben, einen kurzen thematischen Hinweis liefern oder eine lokale Suche durchführen und ausgewählte, bereinigte Treffer direkt in den Prompt-Stream injizieren. Die Architektur operiert unter strikten Sicherheits- und Resilienz-Invarianten: sie erfordert kein Netzwerk, greift rein lesend auf externe Datenbanken zu, maskiert sensible Token, begrenzt die Ausgabelänge deterministisch und verändert niemals selbstständig die Host-Konfiguration.
- ✨ Highlights & Philosophie
- 🏗️ Systemarchitektur & Visuelle Topologie
- 🔄 End-to-End Lebenszyklus-Sequenz
- 🎯 Zielgruppen & Auffindbarkeit
- ⚖️ Vergleichsmatrix gegenüber Alternativen
- 🧠 Speicher-Backends & Ranking
- 🛡️ Governance- & Laufzeit-Invarianten
- 🎛️ Betriebsmodi & Konfiguration
- 🔌 Unterstützte Provider & Snippets
- 🔒 Datenschutz, Redigierung & Änderungs-Gatter
- 💻 Kommandozeile & Diagnose
- 🧪 Verifikation & Test-Suite
- 🌐 Geschwister-Ökosystem & Partnermatrix
- 📄 Drittanbieter-Lizenzen & Level 1 SBOM
- 🔐 Sicherheitsrichtlinie & 48h-SLA
- 📖 Maschinenlesbarer Kontext & llms.txt
- 🏛️ Autor, Attribution & Kanonische Notice
- 📜 Gesetzlicher Haftungsausschluss (§ 521 BGB) & Lizenz
- 🧠 Mehrstufiges lokales Gedächtnis: Fragt kuratierte USMC-Tabellen (
usmc_facts,usmc_lessons,usmc_working), Gardener-SQLite-FTS5-Datenbanken oder lokale Markdown-Dateibäume mit konfigurierbaren Fallback-Ketten ab. - 🛡️ 100% Zero-Egress Core: Vollständig auf der Python-Standardbibliothek aufgebaut, ohne externe Runtime-Abhängigkeiten, ohne HTTP/TCP-Sockets und im unprivilegierten Anwendermodus (
RunAsInvoker). - 🔒 Deterministische Datenschutzgrenze: Redigiert API-Schlüssel, Bearer-Token, Passwörter und absolute Host-Dateipfade automatisch zu
[redacted], bevor Hook-Ausgaben emittiert werden. - 🎛️ Intelligente Ratenbegrenzung & Cooldown: Schützt Agenten-Kontexte vor Flutung durch Begrenzung je Sitzung (
max_injections_per_session), Cooldown-Intervalle und automatischen Tages-TTL-Reset. - 🚪 Optionales SHA-256 Änderungs-Gatter: Vergleicht Auswahldigests mit früheren Emissionen; unterdrückt identische Treffer (
min_change = 1.0), während nur Hashes persistiert werden—niemals rohe Prompts. - 🔍 Reine Lese-Diagnose: Spezieller
diagnose-Befehl analysiert Konfigurationsstatus, Ratenbegrenzung und Trefferwerte, ohne den Sitzungsstatus zu mutieren oder Quoten zu verbrauchen. - 🤝 Breites Ökosystem für Coding-Agenten: Direkte Snippet-Generatoren für Claude Code, Codex CLI, Kimi Code CLI, Antigravity, Git und manuelle Pipelines.
+-------------------------------------------------------------------------------+
| SICHT 1: AUFRUFER-LAUFZEITEN, LIFECYCLE-HOOKS & AGENTEN-CLIENTS |
| - Coding-Agenten-Schleifen (Claude Code, Codex CLI, Kimi Code, Antigravity) |
| - Lifecycle-Hook-Auslöser (UserPromptSubmit, SessionStart, PreToolUse) |
| - Entwickler-Terminal-CLI (memoryhooker check / diagnose / clear / providers)|
| - Automatisierte CI/CD-Quality-Gates & Multi-OS Test-Runner |
+---------------------------------------+---------------------------------------+
| löst Hook-Payload / Anfrage aus
v
+-------------------------------------------------------------------------------+
| SICHT 2: MEMORYHOOKER SOUVERÄNE CORE-ENGINE & PIPELINE-ORCHESTRIERUNG |
| - Modus-Selektor (remember, clue, remember+search, Trigger-Injektor) |
| - Ingress-Schutzschranken (Sitzungsbudget, Cooldown, Kalendertag-TTL) |
| - Kryptografisches Änderungs-Gatter (SHA-256 Digest-Unterdrückung, 1.0) |
| - Multi-Backend-Dispatcher (USMC, Gardener SQLite FTS5, Files, BACH) |
+---------------------------------------+---------------------------------------+
| fragt ab / bewertet & filtert
v
+-------------------------------------------------------------------------------+
| SICHT 3: LAUFZEIT-PERSISTENZ, GETEILTE SPEICHER-SCHEMATA & AUDIT-LEDGER |
| - USMC kuratierte Tabellen (mode=ro: usmc_facts, usmc_lessons, usmc_working) |
| - Gardener FTS5 Volltextindex (mode=ro: destillierte Lektionen, Filterung) |
| - Lokale Markdown-Dokumentwurzeln (normalisierte TF-Coverage-Sättigung) |
| - Geteilte Trigger-Invarianten (context_triggers: Regelgruppen & Präfixe) |
+---------------------------------------+---------------------------------------+
| bereinigt / begrenzt & emittiert
v
+-------------------------------------------------------------------------------+
| SICHT 4: AIR-GAP DEFENSE PERIMETER, RUNASINVOKER & ZERO-EGRESS-GOVERNANCE |
| - 100% Lokale Offline-Ausführung & Null Netzwerk-Sockets (INV-LOCAL-01) |
| - Unprivilegierte Non-Elevation-Sicherheitsrichtlinie (INV-UNPRIV-03) |
| - Deterministische Datenschutz-Bereinigung (INV-REDACT-04: maskiert Pfade) |
| - Fail-Open Fehlertoleranz (INV-FAILOPEN-08) & Ausgabebegrenzung (BOUND-05) |
| - Level-1-SBOM-Transparenz & Gesetzlicher Hinweis (§ 521 BGB) & 48h SLA |
+-------------------------------------------------------------------------------+
flowchart TD
subgraph INTAKE ["1. Agenten-Lifecycle-Hook Einlass"]
AG[/"Coding-Agenten-Schleife<br/>(Claude Code, Codex, Kimi, AGY)"/] --> EVT["Lifecycle-Hook-Auslöser<br/>(UserPromptSubmit / SessionStart)"]
EVT --> EXTR["memoryhooker.cli<br/>Sitzungs-ID & bereinigten Prompt extrahieren"]
end
subgraph GATING ["2. Ratenbegrenzung & Gatter-Auswertung"]
EXTR --> SESS{"Sitzungslimit &<br/>Cooldown-Prüfung"}
SESS -->|Budget erschöpft oder Cooldown| SILENT["Stumme Weiterleitung<br/>(Fail-Open, kein Kontext-Bloat)"]
SESS -->|Innerhalb des Budgets| GATE{"Änderungs-Gatter<br/>aktiviert?"}
GATE -->|Nein / Deaktiviert| RETR["Weiterleitung an Backend-Kette"]
GATE -->|Ja / Aktiv| CHK{"Bereinigte Auswahl<br/>geändert? (min_change)"}
CHK -->|Identischer Digest| SILENT
CHK -->|Neuer Digest| RETR
end
subgraph RETRIEVAL ["3. Kuratierte Multi-Backend-Suche"]
RETR --> B1["USMC-Backend (mode=ro)<br/>Fakten, Lektionen, Arbeitsgedächtnis"]
B1 -->|Treffer oder Fallback| B2["Gardener-Backend (mode=ro)<br/>Kuratierter SQLite-FTS5-Index"]
B2 -->|Treffer oder Fallback| B3["Dateien-Backend<br/>Markdown-Wurzeln (TF-Coverage)"]
B3 -->|Treffer oder Fallback| B4["BACH-Backend<br/>Reservierter Adapter (Fail-Open)"]
end
subgraph SANITIZE ["4. Datenschutzgrenze & Hook-Lieferung"]
B1 & B2 & B3 & B4 --> DEDUP["Deduplizierung & deterministisches Ranking"]
DEDUP --> REDACT["Datenschutz-Bereinigung<br/>Maskiert Secrets & absolute Pfade"]
REDACT --> BOUND["Ausgabebegrenzung<br/>(max_text, max_meta, max_message)"]
BOUND --> INJECT["Hook-Format-Ausgabe<br/>(Reiner Text / JSON an Agenten-Kontext)"]
BOUND --> STATE["SessionState.save<br/>Persistiert Digest & Zähler"]
end
sequenceDiagram
autonumber
actor Agent as Coding-Agenten-Harness
participant CLI as memoryhooker CLI
participant State as SessionState
participant Gate as Änderungs-Gatter
participant Chain as Backend-Kette (USMC/Gardener/Dateien)
participant Privacy as Datenschutz-Bereinigung
Agent->>CLI: Hook-Payload auslösen (check / hook-run "query")
CLI->>State: Sitzungsstatus laden & Tages-TTL prüfen
State-->>CLI: Sitzungszähler & letzter Injektionszeitstempel
alt Limit erreicht oder Cooldown aktiv
CLI-->>Agent: Stummer Ausstieg (Code 0, keine Ausgabe)
else Budget verfügbar
CLI->>Chain: Konfigurierte Backends in Reihenfolge abfragen (mode=ro)
Chain-->>CLI: Rohe passende Trefferdatensätze
CLI->>Privacy: Treffer bereinigen & Secrets/Pfade maskieren
Privacy-->>CLI: Bereinigte Treffer & deterministischer Tie-Break
opt Gatter ist aktiviert
CLI->>Gate: SHA-256 Digest mit vorheriger Auswahl vergleichen
Gate-->>CLI: Änderungswert (1.0 neu, 0.0 identisch)
end
alt Änderungsschwelle erreicht
CLI->>State: Injektionszähler erhöhen & Digest speichern
CLI-->>Agent: Formatierte, begrenzte Gedächtniserinnerung ausgeben
else Identische Auswahl unterdrückt
CLI-->>Agent: Stummer Ausstieg (Code 0, Duplikat unterdrückt)
end
end
| Persona | Kernprofil & Tech-Stack | Architektonische Reibung & Pain Point | Lösung durch memoryhooker |
|---|---|---|---|
| [PERSONA-01] Autonome Coding-Agenten & Harness-Entwickler | Entwickler von Agenten-Harnesses (Claude Code, Codex CLI, Kimi Code, Antigravity, eigene Loops). | Blinde Prompt-Ausführung ohne historische Projekt-Lektionen; unbegrenztes Context-Stuffing führt zu Latenz und massivem Token-Verbrauch. | Lifecycle-Hooks liefern maßgeschneiderte Erinnerungen (remember, clue, remember+search) mit strikten Obergrenzen und Fail-Open-Resilienz. |
| [PERSONA-02] Local-First & Zero-Egress Systemarchitekten | Verwaltung sicherer, lokaler oder isolierter Air-Gapped-Umgebungen. | Cloud-Vektordatenbanken (Pinecone, Qdrant Cloud) leiten proprietären Code aus, benötigen Anmeldedaten und erzeugen Netzwerk-Fehlerquellen. | 100% Zero-Egress Python-Standardbibliothek, null externe Sockets, lokale SQLite mode=ro Abfragen und unprivilegierte Ausführung (RunAsInvoker). |
| [PERSONA-03] Multi-Agenten-Schwarm-Orchestratoren & Kontext-Ingenieure | Entwurf kollaborativer Multi-Agenten-Architekturen (BACH, USMC, Schwärme). | Konkurrierende Schreibzugriffe beschädigen den Zustand; verrauschte Sitzungsprotokolle überdecken kuratierte Architektur-Leitlinien. | Lese-Adapter für kuratierte USMC/Gardener-Datenbanken, Protokoll-Rauschfilterung und deterministische Multi-Quellen-Deduplizierung. |
| [PERSONA-04] Compliance-, Sicherheits- & Enterprise-DevOps-Beauftragte | Regulierung unternehmensweiter KI-Sicherheitsgrenzen und Schutz vor Datenabfluss. | Prompts und Protokolle exponieren versehentlich API-Schlüssel, interne Pfade oder unkontrolliertes Zustands-Wachstum auf Entwicklergeräten. | Deterministische Regex-Redigierung sensibler Token und Pfade, feste Ausgabegrenzen, täglicher Zustands-Reset und transparente Prüfprotokolle. |
High-Intent Suchbegriffe & Themen-Tags: coding-agent-memory-hook, local-first-memory-retrieval, llm-agent-hook-reminders, claude-code-memory-integration, codex-hook-memory, zero-egress-ai-memory, sqlite-fts5-agent-memory, deterministic-context-injection, privacy-safe-llm-hook, usmc-memory-backend.
| Architektonisches Kriterium | Invarianten-Referenz | memoryhooker |
Ad-hoc-Skripte | Cloud Vector DB RAG | Chat History Buffer | MemGPT / Letta |
|---|---|---|---|---|---|---|
| Lizenz & Open Source | Open Source | MIT (100% Frei) | Unlizenziert | Kommerzielles SaaS | Integriert / Keine | Apache 2.0 / SaaS |
| Netzwerk-Egress & Datenschutz | INV-LOCAL-01 |
100% Zero-Egress (0 Sockets) | Variabel | Cloud Vector DB RAG | Lokaler Speicher | Remote-Server / Cloud |
| Speicher-Mutierbarkeit | INV-READONLY-02 |
Strikter Lesezugriff (mode=ro) |
Unkontrolliert | Verwaltete Cloud | Flüchtiger Prompt | Schreib-/Lese-SQLite |
| Sicherheit & Privilegien | INV-UNPRIV-03 |
Unprivilegiert (RunAsInvoker) |
Unkontrolliert | API-Token-Risiko | Unbehandelt | Server / Daemon |
| Deterministische Redigierung | INV-REDACT-04 |
Ja (Token/Pfade -> [redacted]) |
Keine | Keine | Keine | Keine |
| Ausgabelängen-Obergrenzen | INV-BOUND-05 |
Konfigurierbare Grenzen | Keine | Rohe Payload | Kontext-Limit | Komplexe Pagination |
| Deterministisches Änderungs-Gatter | INV-GATE-06 |
Ja (SHA-256 Unterdrückung) | Keine | Keine | Keine | LLM-Eigenverwaltung |
| Sitzungsbegrenzung & Rate-Limit | INV-SPAM-07 |
Ja (Limits, Cooldown, TTL) | Keine | Kostenlimits | Fenster-Abschneidung | Daemon-Ratenbegrenzung |
| Fehlertoleranz & Sicherheit | INV-FAILOPEN-08 |
Fail-Open (Kein Turn-Absturz) | Fatale Fehler | Netzwerkfehler | Kontextverlust | Daemon-Absturz |
| Verbindliche Sicherheits-SLA | INV-SLA-10 |
Verbindliche 48h-SLA | Keine | Kommerziell | Keine | Community Best Effort |
MemoryHooker verbindet sich mit mehreren in memoryhooker.toml konfigurierten Retrieval-Backends:
Das usmc-Backend liest die drei kuratierten Tabellen von USMC direkt im Nur-Lese-Modus (mode=ro): usmc_facts, usmc_lessons und usmc_working. Es importiert das usmc-Paket niemals direkt (wodurch eine automatische Schema-Initialisierung bei fehlenden Pfaden verhindert wird). Das Ranking gewichtet die Abdeckung distinkter Suchbegriffe mit der Kuratierungs-Dringlichkeit (z. B. überwiegen critical-Lektionen gegenüber low-Lektionen bei identischer Begriffstreffermenge).
Fragt lokale SQLite-Datenbanken ab, die mit FTS5-Volltextindizes ausgestattet sind. Um Kontext-Aufblähung zu vermeiden, filtert der Adapter unkuratierte Rohtranskripte (wie beobachtete Chatverläufe) automatisch heraus und konzentriert sich ausschließlich auf destillierte Gedächtnisinhalte und Lektionen.
Durchsucht konfigurierte Markdown-Verzeichnisse und einzelne Dateipfade. Verwendet eine normalisierte Ranking-Formel, die Begriffabdeckung (60%) und begrenzte Termfrequenz-Sättigung (40%) in (0, 1] kombiniert, inklusive Multi-Wurzel-Deduplizierung.
Ein reservierter Adapter für zukünftige BACH-Ökosystem-Integrationen. Reagiert aktuell fail-open und liefert ohne Datenbankzugriff sauber 0 Treffer.
| Invarianten-ID | Name / Schutzbereich | Durchsetzungs-Ebene & Mechanismus | Architektonische Garantie & Fehlerverhalten |
|---|---|---|---|
INV-LOCAL-01 |
100% Local-First & Zero-Egress | Architektonisch / Null Netzwerk-Sockets | Die Kern-Engine importiert keine Netzwerkbibliotheken und führt keine HTTP/TCP/UDP-Operationen aus. Gedächtnisabfragen verlassen niemals die lokale Maschine. |
INV-READONLY-02 |
Reiner Lesezugriff auf Speicher | Datenbank-Verbindungsvertrag (mode=ro) |
Externe SQLite-Datenbanken (Gardener, USMC) werden strikt schreibgeschützt geöffnet; MemoryHooker erzeugt niemals Schemas oder mutiert Fremddaten. |
INV-UNPRIV-03 |
Unprivilegierter Anwendermodus (RunAsInvoker) | Prozess-Sicherheitsmodell | Läuft vollständig unter Standard-Benutzerrechten ohne Anforderung administrativer Elevation, wodurch das Least-Privilege-Prinzip gewahrt bleibt. |
INV-REDACT-04 |
Deterministische Redigierung von Secrets/Pfaden | Regex-Sanitizer (memoryhooker.policy) |
Redigiert gängige API-Schlüssel, Passwörter, Bearer-Token und absolute lokale Dateisystempfade automatisch zu [redacted] vor jeder Hook-Ausgabe. |
INV-BOUND-05 |
Strikte Begrenzung von Feldern und Nachrichten | Ausgabe-Schutzgrenze | Erzwingt konfigurierbare Höchstgrenzen für Textlängen, Quellpfade, Metadaten-Einträge und die Gesamtnachrichtenlänge (max_message_chars). |
INV-GATE-06 |
Deterministisches Änderungs-Gatter | Kryptografischer Digest-Vergleich | Berechnet den SHA-256-Digest bereinigter Auswahlen; unterdrückt identische wiederholte Treffer (min_change = 1.0), während nur Hashes persistiert werden. |
INV-SPAM-07 |
Sitzungs-Ratenbegrenzung & Tages-TTL | SessionState-Controller | Erzwingt max_injections_per_session und cooldown_seconds. Der Sitzungsstatus setzt sich über Kalendertage automatisch zurück (state_date). |
INV-FAILOPEN-08 |
Fail-Open Fehlertoleranz für Hooks | Ausnahme-Isolationsgrenzen | Fehlende Konfigurationen, nicht erreichbare Backends oder defekte Statusdateien enden sauber mit Statuscode 0 ohne Ausgabe und bringen Agenten nie zum Absturz. |
INV-LLM-09 |
Bilinguale Parität & LLM-Indexierung | Dokumentations-Architektur | Vollständige 18-Punkte-Anker-Parität zwischen Englisch (README.md) und Deutsch (README_de.md), gepaart mit strukturiertem llms.txt. |
INV-SLA-10 |
48-Stunden Antwort- & 5-Tage Triage-SLA | Sicherheitsrichtlinie (SECURITY.md) |
Dedizierte Sicherheitskanäle (security@ellmos.ai, security@open-bricks.org) mit verbindlicher 48-Stunden-Erstprüfungs- und 5-Tage-Triage-Zusage. |
Erstellen Sie memoryhooker.toml im Projekt- oder Benutzer-Stammverzeichnis:
[mode]
active = "remember+search"
search_after_n_searches = 3
max_hits = 3
min_rank = 0.5
max_injections_per_session = 5
cooldown_seconds = 60
[gate]
# Explizite Aktivierung. Wenn false (Standard), gilt das Standard-Modusverhalten.
enabled = false
min_relevance = 0.5
# 1.0 unterdrückt eine identische bereinigte Auswahl im Vergleich zur letzten Emission.
min_change = 1.0
[output]
max_text_chars = 500
max_source_chars = 160
max_meta_chars = 160
max_meta_entries = 32
max_meta_total_chars = 1000
max_message_chars = 2000
redaction_marker = "[redacted]"
truncation_marker = "…[truncated]"
[backend]
order = ["usmc", "gardener", "files"]
[backend.usmc]
db_path = "~/.usmc/usmc_memory.db"
[backend.gardener]
db_path = "~/.gardener/gardener.db"
user_db_path = "~/.gardener/user.db"
[backend.files]
path = "./memory"
[providers]
order = ["claude", "codex", "kimi", "agy", "git", "manual"]remember: Leichtgewichtige Erinnerung, die den Agenten bei Überschreiten von Intervallschwellen an die Gedächtnissuche erinnert.clue: Liefert einen gezielten thematischen Hinweis, sobald Prompt-Begriffe mit konfigurierten Auslösern übereinstimmen.remember+search: Führt eine lokale Suche über die Backends aus und formatiert die am besten bewerteten Treffer direkt in die Hook-Ausgabe.
Unabhängig vom aktiven Modus emittiert [triggers] kuratierte Schlagwort-Hinweise aus der gemeinsamen Tabelle context_triggers (memory_union-Vertrag, gelesen vom usmc-Backend und vom in-process BACH-Backend). Jede Quelle liefert maximal einen Hinweis pro Prompt (erster passender Datensatz nach id) und verfügt über einen eigenen Cooldown; trigger_phrase kann Alternativen getrennt durch | enthalten.
[triggers]
sources = ["strategy"] # context_triggers.source-Werte; leer = aus
agent_id = "default" # Zeilen dieses Agenten plus 'default'
once_per_session = [] # z. B. ["theme"]: eine Regel dieser Quellen feuert einmal pro Sitzung
[triggers.cooldowns]
strategy = 120 # Sekunden; Standard 60
[triggers.groups] # optional: ein Injektor-Schlüssel über mehrere Tabellenquellen
context = ["manual", "theme", "workflow"] # ein Hinweis pro Prompt, erster Treffer nach id
[triggers.prefixes]
context = "[KONTEXT] "MemoryHooker erzeugt Konfigurationsfragmente passend für die Lifecycle-Hooks des Host-Agenten:
# Verfügbare Provider prüfen
python -m memoryhooker providers
# Konfigurations-Snippet für spezifischen Coding-Agenten generieren
python -m memoryhooker install-snippet --provider claude
python -m memoryhooker install-snippet --provider codex
python -m memoryhooker install-snippet --provider kimi
python -m memoryhooker install-snippet --provider agyImportant
install-snippet druckt das exakte Hook-Konfigurationsfragment auf stdout. Gemäß INV-UNPRIV-03 und Sicherheitsprinzipien modifiziert es Host-Konfigurationsdateien niemals automatisch. Überprüfen und integrieren Sie das Fragment manuell in Ihre Agenten-Einstellungen.
MemoryHooker behandelt Prompt-Inhalte und abgerufene Datensätze mit defensiver Datenisolation:
- Deterministische Redigierung: Bevor eine Hook-Ausgabe erfolgt, durchlaufen Zeichenketten Regex-Filter, die Anmeldedaten (API-Schlüssel, Passwörter, Bearer-Token) und absolute Host-Pfade durch
[redacted]ersetzen. - Deterministischer Tie-Break: Gleichrangige Treffer werden nach Quellenschlüssel und Texthash sortiert, was absolute Reproduzierbarkeit über alle Ausführungsläufe sicherstellt.
- Kryptografisches Änderungs-Gatter (
[gate]): Wenn aktiviert, berechnet es einen SHA-256-Digest über die bereinigte Trefferauswahl. Stimmt der Digest mit der vorherigen Ausgabe im Sitzungsstatus überein, bleibt der Hook stumm und verhindert doppelte Erinnerungen.
# Standardmäßige Hook-Prüfung
python -m memoryhooker --config memoryhooker.toml check "deployment checklist"
# Reine Lese-Diagnose (analysiert Konfiguration, Gatter und Trefferränge ohne Statusmutation)
python -m memoryhooker --config memoryhooker.toml diagnose "deployment checklist"
# Sitzungsinjektions-Budget zurücksetzen
python -m memoryhooker clearKonzeptbedingt beenden sich check und hook-run stumm mit Code 0, wenn keine relevanten Treffer vorliegen oder Grenzwerte greifen—ein Hook darf niemals wie ein Fehler des Agenten wirken. Wenn Ihr Hook unerwartet stumm bleibt:
- Stellen Sie sicher, dass
--config,--session-idund--state-dirals Top-Level-Argumente vor dem Unterbefehl übergeben werden (z. B.memoryhooker --config x.toml check "..."). - Führen Sie
diagnosemit dem identischen Prompt und den gleichen Flags aus, um zu sehen, ob Konfigurationsladung, Ratenbegrenzung oder Backend-Verfügbarkeit das Schweigen verursachten.
# Vollständige automatisierte Test-Suite ausführen
python -m pytest
# Code-Stil & statische Analyse ausführen
python -m ruff check .
# Bytecode-Kompilierung verifizieren
python -m compileall -q memoryhooker testsÜber 213 automatisierte Unit-, Integrations-, Verhaltens- und Vertragstests validieren inkrementelles Retrieval, FTS5-Abfragen, USMC-Tabellenkuratierung, deterministische Redigierung, Sitzungsbegrenzung und Manifest-Parität mit 100% grünem Status.
MemoryHooker ist eine Kernkomponente des ellmos-ai-Ökosystems unter dem Open-Source-Dach von open-bricks:
| Komponente / Schicht | Modul / Werkzeug | Rolle im Ökosystem |
|---|---|---|
| Gedächtnis & Kuratiertes Wissen | usmc |
Universal Semantic Memory Core (kuratierte Fakten, Lektionen, Arbeitsgedächtnis) |
| Indexierung & Beobachtung | gardener |
Inkrementelle Dateiindexierung, Wissenskonsolidierung und SQLite-Textsuche |
| Lifecycle-Hooks & Orchestrierung | workflowhooker |
Deklarative Workflow-Hooks und Orchestrierungs-Auslöser für Agenten-Pipelines |
| Kern- & Grundsatz-Protokolle | ellmos-core |
Kern-Fähigkeitsdeskriptoren, Modulverträge und grundlegende Abstraktionen |
| Multi-Agenten-Zustandssicherung | clutch |
Agenten-Zustandssicherung, Ausführungs-Snapshots und Kontext-Kompaktierung |
| Lokale Agentenjob-Koordination | COMA | Lokale dateibasierte Jobkoordination sowie Start und Statusabfrage für Agentenprozesse; ergänzt MemoryHookers Sitzungs-Gedächtnis-Hooks. |
| Planung & Ausführung | ellmos-scheduler |
Lokaler Cron-, Intervall- und autoritätsgepachteter Hintergrund-Job-Runner |
| Steuerung & Governance | ellmos-controlcenter-mcp |
Fähigkeits-Routing, Stack-Erkennung und Werkzeug-Mediation |
| Code-Intelligenz | ellmos-codecommander-mcp |
Strukturelle Code-Manipulation, Import-Diagnostik und AST-Analyse |
| Dateisystem-Triage | ellmos-filecommander-mcp |
Sichere Dateisystem-Operationen, Prüfsummen und Dateiverwaltung |
| Datei-Automatisierung | file-collect-sort-action |
Konfigurationsgesteuerte Ordnerabtastung, Deduplizierung und Aktionen |
| Workflow-Automatisierung | n8n-manager-mcp |
Workflow-Lebenszyklus-Automatisierung, Sicherheits-Governance und APIs |
| Lock-Governance | lock-master |
Zentrale Lock-Verwaltung, Konfliktvermeidung und Multi-Agenten-Koordination |
| Vorfall- & Ticket-Verfolgung | ticket-master |
Lokale Fehlertriage, Ticket-Lebenszyklus-Management und Quittungen |
| Agenten-Bootstrap | safe-start-for-codex |
Deterministische Laufzeit-Initialisierung, Rechte-Gatter, Lock-Prüfungen |
| Entwickler-Arbeitsbereiche | DevCenter, CodeBox |
Interaktive Arbeitsbereiche, Pipeline-Überwachung und UI-Oberflächen |
| Dach-Ökosystem | open-bricks |
Open-Source-Standardbibliotheken, Werkzeugsammlungen und Desktop-Apps |
MemoryHooker führt ein geprüftes Inventar aller Laufzeitkomponenten und Entwicklerwerkzeuge in THIRD_PARTY_LICENSES.md (reine Textbegleitdatei: THIRD_PARTY_LICENSES.txt) sowie die kanonische Attribution in NOTICE. Der gesamte Laufzeitcode basiert auf permissiven Komponenten (MIT und PSFL-2.0), Entwicklungsabhängigkeiten stehen unter MIT und Apache-2.0. Es existieren keine Copyleft-Abhängigkeiten. Zielgruppen, Suchbegriffe und Konkurrenzanalysen werden in MARKETING-LOG.txt gepflegt.
MemoryHooker verfolgt eine strikte Richtlinie zur Offenlegung von Sicherheitslücken in SECURITY.md. Wir verpflichten uns zu einer 48-Stunden-Reaktions-SLA und einem 5-Werktage-Triage-Fenster für vertrauliche Sicherheitsmeldungen über GitHub Security Advisories oder an security@ellmos.ai und security@open-bricks.org.
Dieses Repository stellt eine maschinenlesbare Kontextdatei unter llms.txt gemäß gängigen Agenten-Indexierungsspezifikationen bereit. Sie exponiert zentrale Invarianten, Provider-Schnittstellen und Dateikarten zur direkten Verarbeitung durch autonome Agenten und LLM-Harnesses.
MemoryHooker wird von Lukas Geiger und Mitwirkenden als Teil der Organisation ellmos-ai unter dem Dach der Open-Source-Initiative open-bricks entwickelt und gepflegt. Detaillierte Provenienz-Erklärungen, architektonische Abstammung und Copyright-Ansprüche sind in NOTICE und PROVENANCE.md dokumentiert.
Diese Software wird unentgeltlich unter den Bedingungen der MIT License zur Verfügung gestellt. Gemäß den gesetzlichen Bestimmungen des deutschen Schenkungs- und Gefälligkeitsrechts (§ 521 BGB) ist die Haftung für Sach- und Rechtsmängel auf Vorsatz und arglistiges Verschweigen beschränkt. Die Bereitstellung erfolgt ohne ausdrückliche oder stillschweigende Gewährleistung jeglicher Art.