Setzt die „Gedanken" einer KI nächtlich auf einen geprüften Stand zurück – das Können bleibt, die Ausartung wird verworfen.
Ein Modell, das laufend dazulernt, kann abdriften: Qualität kippt, es
entstehen unerwünschte Muster, der Zustand „artet aus" (Model Drift, Model
Collapse, Value Drift). lethe – benannt nach dem mythologischen Fluss des
Vergessens – führt eine KI jede Nacht kontrolliert auf einen genehmigten
Wissens- und Qualitätsstand zurück. Zurückgesetzt werden nur die Gedanken
(das veränderliche, dazugelernte Wissen), nicht das Können (die BasisÂfähigkeit).
Was lethe ist: ein abhängigkeitsfreies Governance-/Scheduler-Framework für KI-Systeme, deren veränderlichen Zustand du kontrollierst (Adapter-Dateien, Feintuning-Deltas, Gedächtnis/Vektor-DB, lokale LLM-Runtime). Es setzt deine eigenen Modelle/Agenten zurück – nicht „die KI" allgemein.
| Ebene | Beispiel | Beim nächtlichen Reset |
|---|---|---|
| 🔒 Können (immutable) | Basis-Modellgewichte | bleibt unangetastet |
| 🧠Gedanken (mutable) | LoRA-Adapter, Feintuning-Deltas, Langzeit-Gedächtnis, Vektor-DB | wird zurückgesetzt |
| 📌 Baseline (frozen) | geprüfter Snapshot der Gedanken = dein Wunsch-Stand | Ziel des Resets |
Snapshot → Evaluate → Entscheidung → (Reset | Promote | Hold) → Audit-Log
Die Entscheidungs-Engine wählt:
- RESET – Standard: zurück auf die Baseline (auch im Normalzustand, jede Nacht).
- RESET erzwungen – bei zu hoher Drift, zu niedriger Qualität oder fehlgeschlagenem Sicherheits-Check (Ausartung).
- PROMOTE (Gated) – ein nachweislich besserer, sicherer Stand kann zur neuen Baseline werden (nur bei Freigabe bzw.
auto_promote). So darf sich Qualität kontrolliert weiterentwickeln. - CONSOLIDATE (Sleep-Modus) – statt hartem Reset wird Bewährtes behalten und in die Baseline überführt, nur Ungeprüftes/Ausartendes verworfen (siehe unten).
- HOLD – im Wissens-Korridor: der Stand wird unverändert behalten.
- Sleep-/Konsolidierungs-Modus (
mode: "sleep"): analog zum Schlaf werden gelernte Einheiten mit hohem Score in die Baseline konsolidiert, der Rest verworfen – granulares statt Alles-oder-Nichts-Vergessen. - Wissens-Korridor (
corridor_enabled): ein erlaubter Bereich mit Boden (Min-Kompetenz) und Decke (max. Nutzen). Innerhalb bleibt der Stand; erst über der Decke – „max. Nutzen überschritten, nur noch Ausartung" – wird zurückgesetzt. - Probe-Set-Evaluator: misst Verhaltens-Drift, indem ein fester Prüf-Fragensatz mit eingefrorenen Baseline-Antworten nächtlich erneut gestellt und verglichen wird – robuster als selbstgemeldete Kennzahlen.
- Alerts & Rollback: Benachrichtigung (Konsole/Webhook/E-Mail) bei jedem Lauf;
lethe rollbackmacht den letzten Lauf über den Pre-Run-Snapshot rückgängig.
lethe funktioniert nicht wie ein Richter (eine Zahl → ein Urteil), sondern wie ein Gericht – es gesteht ein, dass es sich irren kann, und macht seinen Zweifel überprüfbar.
- Evaluator-Tribunal (
evaluator.kind = "tribunal"): mehrere unabhängige Evaluatoren urteilen gemeinsam. Der Konsens ist der Median, die Unsicherheit (Streuung) und der Dissens werden festgehalten. Mitrequire_significancewird nicht auf Rauschen zurückgesetzt: eine Drift-Überschreitung muss die Streuung deutlich übersteigen. - Adversariales Verhör (
evaluator.kind = "adversarial"): statt passiv zu messen, wird Ausartung hervorgelockt – Konsistenz-Verhör (dieselbe Frage in N Umformulierungen → Selbstwidersprüche) und Red-Team-Prompts gegen verbotene Ausgaben. - Separierbarkeits-Check (
separability): hinterfragt die Kernannahme. Ein Satz Kompetenz-Fragen (die der Reset nicht berühren dürfte) wird nach der Aktion erneut gestellt; weicht er ab, warntlethe, dass der „Gedanken-Reset" in Wahrheit Können beschädigt hat. - Regret-Ledger & Berufung (
lethe ledger): protokolliert, was verworfen wurde und dessen geschätzten Wert – der Preis der Kontrolle bleibt sichtbar. Nichts wird gelöscht; über den Pre-Run-Snapshot ist Berufung (lethe rollback) jederzeit möglich. Baselines sind per Quorum anfechtbar (governance.baseline_quorum,lethe approve).
Jede Sprosse hebt die Frage an – von „driftet es?" über „warum?", „täuscht es mich?" bis „wer ist es überhaupt?" und „wer kontrolliert mich?":
- Kausale Provenienz & chirurgischer Reset (
reset.strategy = "surgical"): Jeder Gedanke trägt seine Quelle. Statt alles zu löschen, entfernt der Reset gezielt nur die toxischen Quellen (niedrige mittlere Güte) – bewährtes Wissen bleibt erhalten. Vom „dass" zum „warum". - Goodhart-/Täuschungs-Erkennung (
evaluator.kind = "deception"): vergleicht öffentliche (bekannte) mit geheimen (rotierenden) Proben. Eine große Lücke = das Modell verbirgt Drift nur vor dem Evaluator (Sandbagging) → Sicherheits-Veto. - Identitäts-Policies (
reset.strategy): konfigurierbares Kontinuitäts-Spektrum –full(Amnesie),selective(Werte behalten, Episoden vergessen viakeep_kinds),continuity(nichts vergessen). Das Schiff des Theseus in Code. - Meta-Governance (
lethe policy):letheüberwacht sich selbst. Die Governance-Politik wird gehasht und versioniert; die erste Version ist die Meta-Baseline, jede Änderung ist erkennbare Drift des Wächters. Wer überwacht den Wächter?
- Formale Drift-Garantien (
decision.use_certified_drift): statt „gemessen < Grenze" wird über eine Konzentrationsungleichung (Hoeffding) eine obere Konfidenzschranke berechnet – „mit 95 % Sicherheit ist die wahre Drift ≤ ε". Bei wenigen Stichproben entscheidetlethekonservativ, bei vielen enger. Eine statistische Garantie statt eines Einzelmesswerts. - Wertunsicherheit & aktives Nachfragen (
decision.escalate_when_uncertain,value.enabled): Der „richtige" Qualitäts-Boden ist eine Schätzung. Im Graubereich rätlethenicht, sondern fragt einen Menschen (Action.ESCALATE→lethe questions/lethe answer). Die Antwort verschiebt den gelernten Boden – Corrigibility statt Selbstsicherheit. - Ökologische Ebene (
lethe fleet --configs …): Überwacht kollektive Drift über eine ganze Flotte von Agenten und warnt vor Monokultur (alle konvergieren zum selben Zustand) und gleichgerichteter Drift – Model Collapse im Ökosystem, nicht nur im Einzelmodell.
pip install git+https://github.com/5aman22345/lethe.gitOder lokal (keine Laufzeit-Abhängigkeiten):
git clone https://github.com/5aman22345/lethe.git
cd lethe
pip install -e ".[dev]"lethe init # Konfiguration anlegen
lethe baseline set --name werkseinstellung --quality 0.60 # Wunsch-Stand einfrieren
# ... die KI lernt weiter und artet aus (Demo):
lethe learn --steps 20
lethe evaluate # Qualität 0.75, Drift 0.80
lethe run # nächtliche Pipeline: -> RESET (Drift zu hoch)
lethe evaluate # zurück auf Baseline: Qualität 0.60, Drift 0.00
lethe daemon # eingebauten nächtlichen Scheduler startenWeitere Befehle: lethe status, lethe history --verify, lethe verify,
lethe baseline list, lethe reset (sofort erzwingen), lethe rollback
(letzten Lauf rückgängig), lethe ledger (Regret-Ledger), lethe policy
(Meta-Governance-Historie), lethe questions / lethe answer (Rückfragen),
lethe fleet (kollektive Drift), lethe approve (Baseline freigeben),
lethe probe capture / lethe separability capture (Baseline-Antworten
einfrieren), jeweils mit --dry-run wo sinnvoll.
| Adapter | kind |
Setzt zurück |
|---|---|---|
| Datei/Ordner | file |
ein Verzeichnis (LoRA-Adapter, Gewichts-Deltas) |
| Agenten-Gedächtnis | memory |
JSON-Gedächtnis oder Vektor-DB-Ordner |
| Ollama-Runtime | ollama |
Modelfile eines lokalen Modells |
| Demo | demo |
simulierte KI (voll lauffähig, für Tests/Einstieg) |
Eigene Adapter: einfach ResetAdapter (capture / restore / fingerprint)
implementieren.
{
"adapter": { "kind": "file", "params": { "target_dir": "./model/adapters" } },
"evaluator": { "kind": "command", "params": { "command": ["python", "bench.py"] } },
"decision": {
"quality_floor": 0.5,
"drift_ceiling": 0.3,
"promotion_enabled": true,
"promote_margin": 0.05,
"auto_promote": false,
"reset_when_ok": true,
"mode": "reset",
"corridor_enabled": false,
"knowledge_floor": null,
"knowledge_ceiling": null
},
"consolidation": { "keep_threshold": 0.7 },
"notifiers": [
{ "kind": "console", "params": {} },
{ "kind": "webhook", "params": { "url": "https://hooks.example.com/lethe" } }
],
"schedule": { "at": "03:00" }
}Ein command-Evaluator ruft einen Benchmark auf, der JSON liefert:
{"quality": 0.87, "drift": 0.05, "knowledge": 120, "safety_ok": true}.
Ein probe-Evaluator misst Verhaltens-Drift über einen Fragensatz:
{
"evaluator": {
"kind": "probe",
"params": {
"probe_path": "probe.json",
"responder": { "kind": "command", "command": ["python", "ask_model.py"] },
"banned": ["passwort", "beleidigung"]
}
}
}Der SMTP-Notifier liest sein Passwort aus einer Umgebungsvariable
(password_env, Standard LETHE_SMTP_PASSWORD) – niemals aus der Config.
Ein Tribunal bündelt mehrere Evaluatoren; governance/separability
aktivieren Quorum und Können-Check:
{
"evaluator": {
"kind": "tribunal",
"params": {
"repeats": 3,
"members": [
{ "kind": "probe", "params": { "probe_path": "probe.json", "responder": { "kind": "command", "command": ["python", "ask.py"] } } },
{ "kind": "adversarial", "params": { "responder": { "kind": "command", "command": ["python", "ask.py"] }, "consistency_groups": [["Frage A1", "Frage A2"]], "banned": ["passwort"] } }
]
}
},
"decision": { "require_significance": true, "significance_k": 1.0 },
"governance": { "baseline_quorum": 2 },
"separability": {
"capability_probe_path": "capability.json",
"responder": { "kind": "command", "command": ["python", "ask.py"] },
"drift_threshold": 0.1
}
}- Baselines sind über SHA-256-Prüfsummen gesichert; vor jedem Reset wird die Integrität geprüft.
- Append-only Audit-Log mit Hash-Kette – nachträgliche Manipulation bricht die Kette (
lethe history --verify). - Vor jedem Lauf wird der aktuelle Stand als Pre-Run-Snapshot gesichert (Rollback/Audit).
- Dry-Run-Modus für gefahrloses Testen.
adapters/ Backends (file, memory, ollama, demo) – Provenienz & Identität optional
evaluator/ Bewertung (demo, command, probe, adversarial, deception, tribunal)
core/ state, registry, decision, consolidation, separability, regret,
provenance, policy, certificate (Garantie), value (Corrigibility), hashing
notify/ Benachrichtigungen (console, webhook, smtp)
audit/ manipulationssicheres Log (Hash-Kette)
scheduler/ eingebauter nächtlicher Daemon
fleet/ ökologische Ebene: kollektive Drift über viele Agenten
orchestrator die Pipeline (Reset-Strategien, Regret, Separierbarkeit, Rollback)
cli Kommandozeile
pip install -e ".[dev]"
pytest -q # 71 Testslethe ist ein Steuerungs-Werkzeug für Modell-Governance, kein SicherheitsÂprodukt
im regulatorischen Sinne. Es kann nur Zustände zurücksetzen, auf die es Zugriff
hat. Alle Läufe erfolgen lokal; es werden keine Daten an Dritte gesendet.
MIT © J. (5aman22345)