Pi × EvoX Loop — Skill zur Erfahrungsvererbung von Agenten
Sorge dafür, dass dein Agent jede Falle nur einmal durchläuft: Fehlschläge werden automatisch in die Datenbank aufgenommen (durch eine Wächterprüfung), und bei ähnlichen Aufgaben werden automatisch validierte Reparaturmethoden abgerufen.
Terminologie (0.29): Der Haupttext ist auf Chinesisch, technische Felder werden beim ersten Auftreten einmal mit dem englischen Original gekennzeichnet (z.B. „Signalmuster signals_match"), danach wird durchgängig Chinesisch verwendet. Die vollständige chinesisch-englische Gegenüberstellung findest du in
docs/faq.mdQ17.Dokumentationskarte (0.21 Schichtung):
- Neue Benutzer müssen nur drei Abschnitte lesen: 30-Sekunden-Einstieg → Fluss A → Fluss B (ca. 60 Zeilen); der Rest nach Bedarf.
- Minutenentscheidung, ob es verwendet werden soll:
docs/one-pager.md(0.30 neu)- Zentrale Sammlung bewährter Verfahren:
examples/quickstart.md(5-Minuten-Durchlauf) +docs/overview.md(Projektübersicht) +docs/common-mistakes.md(14 Anti-Patterns) – drei Dokumente decken „Einstieg/Gesamtansicht/Vermeidung von Fehlern" ab.- Der Rest dieser Datei = Auslösepunkte/Sicherheitszusammenfassung/Anti-Pattern-Schnellübersicht/Navigation;
docs/advanced.md= Rückschreibadressierung/Zeitplan/Harvest/Concurrency-Locks/Shared-Pool/Host-Integration/Betrieb/Sicherheitstor-Details;docs/common-mistakes.md= Vollständige Liste häufiger Fehler;docs/config-errors.md= Häufige Konfigurationsfehler;docs/faq.md= Vollständiges FAQ.docs/research.md= Fluss C kontrollierte Experimente + Fallendesign-Disziplin – nur für die Forschung, die meisten Benutzer müssen es nicht öffnen.
30-Sekunden-Einstieg (Quick-Start)
EN: Requires Node >= 22. Optional
@evomap/evolverintegration is GPL-3.0-or-later (only if you install and use--engine evolver); the default light backend is MIT, zero-dependency, zero-exfiltration. Three things only: A recall validated fixes at task start, B deposit after fixing a non-obvious failure, C (optional, research) controlled experiments. Daily use = A/B only. ⚠️ Voraussetzung: Node ≥ 22 (node -vprüfen; ältere Versionen werden nicht unterstützt, bitte zuerst aktualisieren). Optionale Integration von@evomap/evolverist GPL-3.0-or-later – betrifft nur, wenn du es aktiv installierst und--engine evolververwendest. Das standardmäßige Light-Backend ist MIT, null Abhängigkeiten, keine Datenweitergabe nach außen.Dieses Skill macht nur drei Dinge: A Zu Aufgabenbeginn validierte Reparaturmethoden abrufen, B Nach der Behebung eines Fehlers ablegen, C (optional, für die Forschung) Kontrollierte Experimente zur Quantifizierung des Nutzens. Im täglichen Gebrauch nur A/B verwenden, C ist standardmäßig deaktiviert. Bitte nicht in der Produktion verwenden.
# A — Zu Aufgabenbeginn gezielt abrufen (ersetze durch eine Kurzbeschreibung deiner Aufgabe)
node code/evolver-recall.mjs --query "Fehler bei Verarbeitung von GBK-codierten Dateien" --top 5
# B — Nach der Behebung eines nicht offensichtlichen Fehlers: Originalfehler einfügen, Entwurf erstellen, dann FIX ablegen
node code/light-cli.mjs draft --error "<Originalfehler>" --tool <Toolname> --context "<Was du gerade gemacht hast>"
node code/light-cli.mjs draft --error "<Originalfehler>" --strategy "AVOID: <Was nicht getan werden sollte> FIX: <Spezifische Parameter/Befehle/Kodierung>" --commit
Befehle werden im Stammverzeichnis dieses Repositorys ausgeführt; wenn Abhängigkeiten nicht installiert sind, siehe unten unter „Installation".
Erste Ausführung · In 3 Schritten bereit (zuerst Selbsttest, dann ablegen)
- Node ≥22 installieren (erforderlich für Fallengenerator und pi/evolver; siehe FAQ·Q8);
- Umgebung prüfen:
node code/light-cli.mjs doctor– Überprüft Node-Version, Schreibbarkeit des Erfahrungsdatenbank-Verzeichnisses, Erreichbarkeit des Trefferregistrierungs-Verzeichnisses (bei Fehlern werden Korrekturhinweise gegeben); - Erfahrungsdatenbank aktivieren: Eine leere Datenbank ohne abrufbare Reparaturmethoden ist normal – führe einmal Fluss B unten aus, um die erste Reparaturmethode abzulegen und die Datenbank zu aktivieren.
Pflichtlektüre für Anfänger (Schnellübersicht zu häufigen Fragen)
- Beim ersten Abruf wird „Keine abrufbaren Reparaturmethoden" angezeigt? Normal – die Datenbank beginnt bei null. Führe einmal Fluss B aus, um sie zu aktivieren (FAQ·Q1).
- Node-Version erforderlich? ≥22 (der Fallengenerator benötigt zusätzlich Python 3). Bei zu niedriger Version starten pi/evolver nicht (FAQ·Q8).
- Weitere Fragen findest du in
docs/faq.md(vollständige 14 Fragen) und in der Anti-Pattern-Schnellübersicht unten.
Installation (Einmalig)
EN: One-time setup. A/B flows need ONLY Node >= 22 — zero npm dependencies. Get the folder by any of three paths below; any location works (a "skill" is just a folder — put it wherever your host expects, e.g.
~/.claude/skills/pi-evox-lab). Default backend = built-in light (pure Node, MIT). evolver is an optional integration (--engine evolver, needsnpm install). Flow C additionally needs Pi CLI + an OpenAI-compatible LLM key.
Drei Wege, um das Repository zu beziehen (einen auswählen):
# Weg 1: git clone (empfohlen)
git clone https://github.com/stwhwing/pi-evox-lab.git && cd pi-evox-lab
# Weg 2: Eingeschränktes Netzwerk → Release-Zip direkt herunterladen (mit sha256), entpacken und loslegen
# https://github.com/stwhwing/pi-evox-lab/releases (Spiegel im Inland erreichbar, siehe FAQ Q7)
# Weg 3: Marktplatz-Ein-Klick-Installation — auf skillhub.cn / ClawHub nach pi-evox-loop suchen (für WorkBuddy/OpenClaw-Benutzer)
node -v # Voraussetzung: Node >= 22 (einzige harte Abhängigkeit)
node code/light-cli.mjs doctor # 30-Sekunden-Selbsttest – bestanden bedeutet sofort einsatzbereit, keine Installationsschritte erforderlich
- A/B Tägliche Arbeitsabläufe haben null npm-Abhängigkeiten; das folgende
npm installist nur für optionale Integration/Experiment-Modus C vorbereitet:
Provider-Konfiguration (Nur für Fluss C erforderlich)
EN: Flow C only - any OpenAI-compatible endpoint;
$ENVinterpolation needs pi >= 0.85.1. Examples + domestic endpoints (DeepSeek/Bailian/SiliconFlow/Zhipu):docs/providers.md.
Fluss A: Aufgabenbeginn – Erfahrungen abrufen (Jede nicht-triviale Aufgabe)
EN: Flow A - recall at task start.
--querywith the task text does targeted recall (unrelated experience is never injected - injection is gated by signals_match x query-token overlap, below threshold = no injection). On error (T3), the raw error text IS the query. Multiple matches: geneConflicts drops anti_patterns-mutual low scorers; no targeted hit = no injection. Register the hit at task end with--register-hit --gene <id>(id-addressed, concurrency-safe).
# Häufiges Szenario im Inland (Chinesische Windows-Protokolle / CSV standardmäßig GBK, Lesen als utf-8 führt zwangsläufig zu Fehlern) – Leere Datenbank, nach Starter zuerst diese ausprobieren, sie ist am effektivsten
node code/evolver-recall.mjs --query "Lesen chinesischer Protokolle führt zu UnicodeDecodeError" --top 5
# Empfohlen: Aufgabenbeschreibung für gezielten Abruf verwenden (Erfahrungen, die nichts mit der Aufgabe zu tun haben, werden nicht injiziert)
node code/evolver-recall.mjs --query "<Ein-Satz-Beschreibung der aktuellen Aufgabe / Schlüsselsignal>" --top 5
# Bei einem Fehler (T3): Der Originalfehler selbst ist die Abfrage – der Fehler selbst ist die Erinnerung
node code/evolver-recall.mjs --error "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4"
- Gibt nur eine Liste von Gene-IDs aus, die geprüft wurden UND die Reparaturwächter-Prüfung bestanden haben UND mit der Abfrage übereinstimmen (bei einer leeren Datenbank gibt es einen klaren Hinweis, das ist normal);
- Parameter-Standardwerte:
--topstandardmäßig 5 Einträge (weiche Prompt-Injektion hat Kontextkosten, weniger ist mehr); die Erfahrungsdatenbank hat keine harte Kapazitätsobergrenze, aber es wird empfohlen, weniger als 500 Einträge pro Datenbank zu halten (darüber hinaus sinkt die Zielgenauigkeit, dann kann man einen gemeinsamen Pool zur Entlastung verwenden); - Zielregel: Bewertung basiert auf der Überschneidung von Gen-
signals_match-Treffern mit Abfragebegriffen, unter dem Schwellenwert wird der gesamte Eintrag nicht injiziert (um zu vermeiden, dass nicht zielgerichtete Injektionen die Kosten erhöhen); - Bei mehreren Gen-Konflikten: Der
geneConflicts-Wächter hat automatischanti_patternsgegenseitig ausschließende, niedrig bewertete Einträge entfernt; wenn es immer noch mehrere gibt, wird der mit der höchsten Punktzahl genommen; Wenn es keinen zielgerichteten Eintrag gibt, wird besser nichts injiziert, es werden keine irrelevanten Gene verwendet; - Wenn es für die aktuelle Aufgabe relevant ist, priorisieren; am Ende, wenn ein Eintrag tatsächlich verwendet wurde, den Treffer registrieren (
--gene <id>Adressierung nach ID, nebenläufigkeitssicher):
node code/evolver-recall.mjs --register-hit --gene <asset_id oder gene_id> --note "<Ein-Satz-Beschreibung der Aufgabe>"
- Unrelevante Erfahrungen nicht erzwingen; nicht verwendete Einträge müssen nicht registriert werden.
Fluss B: Nach der Fehlerbehebung – Erfahrungen ablegen
EN: Flow B - deposit after fixing a non-obvious failure. Deposit bar (any one): docs/2+ tries needed, environment-specific, counter-intuitive error, or second occurrence. Guided path:
draft --errorauto-extracts signals + pre-fills AVOID + writes anti_patterns; fill in FIX then--commit. Manual path:distillwith explicit signals. strategy MUST be an executable fix (params/commands/encodings) - success summaries are filtered by the repair-signal guard.--shareableonly for genes meant for the shared pool. Entscheidungskriterien (mindestens eine erfüllt, es lohnt sich abzulegen):
- Der Fehlerbehebungsprozess erforderte das Nachschlagen in der Dokumentation / Versuch und Irrtum ≥2 Versuche;
- Hängt von Maschinen- oder Umgebungseigenschaften ab (Kodierung, Pfadkonventionen, Shell-Unterschiede, Netzwerkumgebung);
- Die Fehlermeldung ist kontraintuitiv oder stimmt nicht mit der Dokumentation überein;
- Derselbe Fehler ist in einer früheren Aufgabe zum zweiten Mal aufgetreten. (Wenn keine der Bedingungen erfüllt ist, muss ein normaler Fehler nicht abgelegt werden – um Rauschen in der Erfahrungsdatenbank zu vermeiden.)
Empfohlener Weg: Geführt (Originalfehler einfügen, Signal und „negative Erfahrung" werden automatisch extrahiert)
# 1) Entwurf erstellen: Automatic extraction of signals_match + pre-filled AVOID template + writes anti_patterns (negative experience token)
node code/light-cli.mjs draft --error "<Original-Fehlertext>" --tool <Name des fehlerhaften Tools> --context "<Was du gerade gemacht hast>"
# 2) FIX im Entwurf ergänzen und ablegen (--strategy überschreibt Platzhalter im Entwurf)
node code/light-cli.mjs draft --error "<Original-Fehlertext>" \
--strategy "AVOID: <Was nicht getan werden sollte> FIX: <Spezifische Parameter/Befehle/Kodierung>" --commit
# 3) Überprüfung (Vier-Zustands-Automat siehe untenstehenden Abschnitt „Überprüfungsautomat"; approve führt automatisch zuerst eine Beweissicherung durch)
node code/light-cli.mjs approve <gene_id>
Geltungsbereich der AVOID/FIX-Vorlage (klar schreiben, sonst vom Wächter abgelehnt):
| Segment | Was schreiben | Grenze |
|---|---|---|
AVOID: | Was nicht getan werden sollte (negative Erfahrung, kann gefährliche Wörter enthalten – das ist eine Warnung) | Ein bis zwei Sätze; keine Erfolgszusammenfassung schreiben |
FIX: | Konkrete, ausführbare Reparaturmethode, spezifisch für Parameter/Befehle/Kodierung | Muss wirklich ausgefüllt sein – Platzhalter/Wiederholungsprotokolle/Erzählung werden von der depositionGate abgelehnt (fail-closed) |
anti_patterns: | Einzelnes Token-Literal (z.B. assume-default-utf8) | Konflikterkennung erfolgt durch gesamte Zeichenkette, keine kebab-Langstrings schreiben |
signals_match: | Signalbegriffe für den Abruf | Nur abrufbar, wenn eine Überschneidung mit den Abfragebegriffen besteht; keine irrelevanten Begriffe anhäufen |
Alternativer Weg: Manuell (wenn Signale bereits klar sind)
node code/light-cli.mjs distill --category repair --signals bash,exception \
--strategy "<Ein-Satz-Reparaturmethode; bei mehreren Schritten mit Semikolon trennen; muss spezifisch für Parameter/Befehle/Kodierung sein>" \
--summary "<Ein-Satz-Beschreibung des Problems>" [--shareable]
- strategy muss als ausführbare Reparaturmethode geschrieben werden (mit konkreten Parametern/Befehlen), keine Erfolgszusammenfassung – die Abrufseite hat einen Reparaturwächter, Erfolgszusammenfassungen werden gefiltert (weniger ist besser als nichts);
--shareablenur hinzufügen, wenn das Gen in den gemeinsamen Pool soll (Standard: nicht gemeinsam nutzbar = keine Weitergabe nach außen);- Reale Daten zur Ablageschwelle (ehrliche Grenzen): Die Dichte „sauberer Reparaturpaare", die automatisch aus echten Produktionssitzungen extrahiert werden können, ist sehr gering (tatsächlich gemessen
distillablePairs=0) – Die Gene dieser Datenbank stammen hauptsächlich aus manueller/geführter Ablage.
Qualitätsprüfung bei der Ablage depositionGate (0.17.0, fail-closed)
EN: Quality gate at DEPOSITION time (fail-closed): rejects unfilled placeholder / retry-log repetition / narration openings / missing repair-signal words / AVOID-without-FIX. Non-interactive deposits default to quarantined. Full review semantics: the「Überprüfungsautomat」section below. Bei
distill/draft --commitwird jeder Eintrag einzeln geprüft. Bei Nichtkonformität direkte Ablehnung (ohne auf die Festplatte zu schreiben):
| Ablehnungsgrund | Begründung | Nächster Schritt |
|---|---|---|
FIX ist ein nicht ausgefüllter Platzhalter <Hier ausführbare Reparaturmethode eintragen> | Nach der Injektion wertlos | Im Entwurf die echte Reparaturmethode ergänzen und dann einreichen |
retry with corrected args (Wiederholung des Protokolleintrags) | „Wiederholt und dann funktioniert es" ist keine Reparaturmethode | AVOID (warum falsch) + FIX (wie beheben) schreiben |
| Erzählungseinleitung (Now I understand…) | Schlussfolgerungsfluss nicht ausführbar | Gleicher Vorschlag wie oben |
| Fehlendes Reparatursignalwort | Sieht nicht aus wie eine Beschreibung eines Fehlers und einer Reparaturmethode | Gleicher Vorschlag wie oben |
| AVOID ohne FIX (unvollständig) | Nur Fehler ohne Reparaturmethode, nach Injektion wertlos (0.22 Überprüfung bestätigt: 3 abgelehnte Ablagen waren alle dieser Form) | Ausführbare Reparaturmethode (Parameter/Befehle/Kodierung) ergänzen |
Überprüfungsautomat (Single Source of Truth · 0.36 konsolidiert)
Die gesamte Überprüfungssemantik für Gene vom Eintrag bis zur Injektion wird nur in diesem Abschnitt verwaltet, andere Dokumente verweisen hierher (um mehrere sich widersprechende Formulierungen zu vermeiden – von der 0.35 Überprüfung bemängelt). EN: The single source of truth for all review semantics; other docs only point here.
| Szenario | Standardverhalten | Überschreibungsmethode |
|---|---|---|
Lokale interaktive Ablage (draft --commit / distill, mit TTY) | Automatisch genehmigt | config --auto-approve off für manuelle Genehmigung; wirkt nur auf lokale Ablage |
| Lokale nicht-interaktive Ablage (Skript/cron/Pipe, ohne TTY) | Standardmäßig in Quarantäne (quarantined) | Explizites --auto-approve für Genehmigung erforderlich |
approve <gene_id> | Automatisch zuerst Beweissicherung durchführen – Vier lokale Journale (Tool-Fehler/Abruf/Injektion/Rückschreibung) mit drei Ausgabestufen (starke Beweise/schwacher Kontext/keine Beweise), auf Konsistenz prüfen, dann genehmigen | --skip-evidence ist eine explizite Ausstiegsmöglichkeit für bekannte Szenarien ohne Beweise (nicht empfohlen); Gene, deren Schlussfolgerung durch spätere Ereignisse widerlegt wurde, bleiben in Quarantäne mit Prüfvermerk |
Pool-Import gene import / gene pull | official tier Direktdurchleitung (Signaturprüfung); community standardmäßig in Quarantäne | --tier entscheidet |
- Warum approve an die Beweissicherung gebunden ist: 0.20.3 erstellte den
evidence-Befehl, verließ sich aber darauf, dass der Benutzer sich erinnert, ihn auszuführen – am selben Tag wurden alle 6 überprüften Einträge nicht ausgeführt. Der Mechanismus muss an den Aktionsknoten gebunden sein (T3-Philosophie: Der Fehler selbst ist die Erinnerung). - Das Zustandsjournal
review.jsonlist LWW-append-only, approve/quarantine sind bidirektional umkehrbar; „ausstehend" ininfobedeutet, dass der letzte Zustand weder approved noch quarantined ist. - Verhältnis zu den zwei Qualitätstoren: depositionGate lehnt vor dem Eintrag ab (vorheriger Abschnitt), die vier Wächter filtern auf der Abrufseite (nächster Abschnitt) – Ablehnung durch eine der Schichten bedeutet keine Injektion.
- Gene ohne lokale Beweise (gemeinsamer Pool/andere Maschinen/Starterpaket-Quellen) werden nach Inhalt und Quelle überprüft, bei Genehmigung mit Vermerk.
EN: Review-with-evidence (0.20.3): before
approve, runevidence <gene_id>to check the four local ledgers for events matching the gene's claimed failure/fix. Approve only when consistent; genes whose conclusions were overturned by later events stay quarantined with an audit note. Genes without local evidence (pool imports / other machines / starter pack) are reviewed on content and source, noted at approval.
Gen-Signatur und Provenienz (0.21)
EN: Every deposit is signed with this machine's Ed25519 identity (private key 0600, never leaves the machine); pool imports verify signatures - tampered content is REJECTED. Version-by-version details (v2 canonicalization, source attribution, source_kv, decay):
docs/advanced.md§Provenance.
- Ablage automatisch signiert, beim Eintritt in den Pool mitgeführt, beim Import Signaturprüfung: Inhalt manipuliert → Import abgelehnt; alte Gene ohne Signatur werden unverändert akzeptiert (Legacy);
- Privater Schlüssel verlässt die Maschine nicht; öffentlicher Schlüssel wird mit dem Gen in den Pool und aus dem Pool gegeben, damit andere Maschinen die Signatur prüfen können – Das Vertrauensmodell ist „Rückverfolgung nach keyid", nicht zentralisiertes CA;
- Provenienzfelder werden automatisch bei Ablage/Rückschreibung aufgezeichnet (
source_model/source_host/source_kvKomprimierungsschemafamilie); Die Gen-Gültigkeit verfällt basierend auf Rückmeldungen (Halbwertszeit 90 Tage + negativer Druck, Mindestwert 0.25, ohne Rückmeldung kein Verfall) – Detaillierte versionierte Informationen (v2 Kanonisierung / präzise Zuschreibung / Phasenvermerke / Verfallsparameter) siehedocs/advanced.md§Provenance.
Bereitstellung und Verteilung (0.23)
EN: Download paths, host integration, pool collaboration, concurrency semantics and scoring; version-by-version detail in
docs/advanced.md§Deployment.
- Download: GitHub Release zip / npm (Inlandsspiegel siehe FAQ Q7, mit sha256-Prüfung);
- Host-Integration:
light-cli.mjs install <claude-code|cursor|codex|agents-md>(--yeszur Installation); OpenClaw/Hermes verwendeninstall-hooks; Auslöseregeln können mitinstall-snippetin beliebige Anweisungsdateien geschrieben werden; - Gen-Pool-Zusammenarbeit:
gene pull --pool <URL|Name> --tier official [--scene <Szenario>](Signaturprüfung);gene submit --bundle <file>an den Betreuer zurücksenden; benannte Pools siehe~/.evomap/pools.json; Beitragsbedingungen siehe CONTRIBUTING.md (CC-BY-4.0); - Nebenläufigkeitssemantik (drei Ebenen, vollständige Verhaltenstabelle siehe
docs/boundary-and-triggers.md§5): Einzelmaschine, mehrere Sitzungen = withLock-Dateisperre; Maschinenübergreifend = Gen-Pool als Git (LWW-Journal entscheidet); Multi-Host nach gene_id-Adressierung (seit 0.18); - Abrufbewertung und Schwellenwerte (öffentliche Werte): signals Treffer +3/Stück + Text-Token-Überschneidung +1/Stück + Lastausgleichsversatz ±2; Unter Schwelle 2 Punkte keine Injektion (Nicht-zielgerichtete Injektion ist schlechter als keine Injektion, gemessen +36pp); Tokenisierung = ASCII-Token (≥3 Zeichen) + Chinesische 2-Zeichen-Bigramme – Mehrzeilige chinesische Phrasen, die in signals geschrieben werden, sind unwirksam (
fix-signalskann überprüft werden); - Sitzungszaun (0.27):
session open "<Aufgabe>"erledigt in einem Schritt T1-Abruf + Buchhaltung,session close "<Schlussfolgerung>"abschließen – Nicht gepaarte open/close werden von der Bauzaun-Sperre abgelehnt (Prüfungsbindung); - Wirkungsquantifizierung und Rückschreibung:
reportWochenbericht (L1 Aktivität/L2 Rückschreibungsrate/L3 Wiederauftreten,--jsonmaschinenlesbar);recall --record "<Schlussfolgerung>"Validierungsschlussfolgerung rückschreiben;license verify <token>Ed25519-Signatur-Lizenz prüfen; - IO-Resilienz und Fehlercodes (0.34): Transiente Fehler automatische Wiederholung (3x/3s) → Nach 5 aufeinanderfolgenden Fehlern Unterbrechung für 10s (schließt sich bei IO-Erholung); Alle Fehler mit benannten Fehlercodes
[E_USAGE]/[E_ARGS]/[E_GUARD]/[E_NOTFOUND]/[E_INTERNAL](Exit-Codes 0/1/2 bleiben erhalten) – Parameter und vollständige Tabelle siehedocs/advanced.md; - Theoretische Herkunft: Problembewusstsein für heterogene Verifikation von arXiv:2512.05117 (Details im Danksagungsbereich der README und in
docs/research.md); Detaillierte versionierte Informationen (Provenienz/Alias-Auslösewörter/Lizenz/Verfallsparameter) siehedocs/advanced.md§Deployment.
Sicherheit: Vier Tore (0.16.0)
EN: Four gates: repair-signal guard, narration guard, injection guard (malice; AVOID=warning allowed vs FIX=instruction blocked), redaction gate (privacy, fail-closed off-machine). Per-gate details:
docs/security-and-license.md§Gates.
| # | Tor | Zuständig für | Wirkungsort |
|---|---|---|---|
| 1 | Reparaturwächter | Ob es eine echte Reparaturmethode gibt (kein ausführbarer Inhalt → keine Injektion; weniger ist besser als nichts) | Abruf |
| 2 | Erzählungswächter | Ob es sich um erzählenden Text handelt (erzählender Text ist für den Agenten Nullinformation, gemessen entspricht es Rauschen +36pp) | Abruf |
| 3 | Injektionswächter | Ob es sich um bösartige Anweisungen handelt (Prompt-Injektion → keine Injektion; Hauptabwehrlinie gegen „Gen-Manipulation des Hosts") | Abruf (CLI / Vereinfachte Pi-Erweiterungsbrücke / Orchestrator) + Import + Export |
| 4 | Schwärzungstor | Ob private Inhalte durchsickern (IP/Pfade/Schlüssel → Abfangen, kein Verlassen des Netzwerks) | Export + Import |
- Degradierungssemantik: Export/Import fail-closed (Wenn das Wächtermodul fehlt, wird die Ausführung verweigert); Auf der Abrufseite wird nur das Injektionstor übersprungen, die anderen drei Tore arbeiten normal (Der Host-Bootstrap-Pfad blockiert den Benutzer nicht aufgrund eines Wächterfehlers – nur lesen blockiert nicht, schreiben muss closed sein).
- Was jedes Tor genau scannt, das Verhalten nach einem Treffer, die beiden in 0.31 behobenen Fehlalarme und Regressionstestfälle: Einheitlich in
docs/security-and-license.md§Gates – Dieser Artikel wiederholt keine Injektionsauslösemerkmale, um zu vermeiden, dass das Dokument selbst von Scannern als Beispiel verwendet wird (dieses Repository hat Vorfälle mit Veröffentlichungen aus diesem Grund).
Schnellübersicht zu den Fähigkeitsgrenzen (Wann man sich nicht darauf verlassen sollte)
6 Kategorien von ungeeigneten Szenarien (Mehrere Maschinen schreiben in dieselbe Datenbank / 100%ige Vermeidungsgarantie / Echtzeit-Synchronisation der Datenbank / Einmalige Aufgaben / Als autoritative Wissensdatenbank / Direkte Wiederverwendung über Architekturen hinweg) und quantitative Grenzen (Standardinjektion 5 Einträge, Obergrenze der Datenbankgröße nicht getestet, Keine verteilte Sperre über Maschinen hinweg, Node ≥22) einheitlich in
docs/boundary-and-triggers.md§1–§2. EN: Capability limits ("when NOT to use") and quantitative bounds:docs/boundary-and-triggers.md§1–§2.
Wann erinnern: Fünf Auslösepunkte (Kerndesign von 0.16.0)
EN: Recall bound to concrete action nodes, never left to memory: T1 task start, T2 before first side-effecting action, T3 on error (the error text IS the query), T4 after fixing, T5 task end (register-hit/negate). Full spec:
docs/boundary-and-triggers.md. „Skill installiert, aber niemand ruft ihn auf" ist der grundlegendste Ausfallmodus dieses Projekts – Sogar der Autor vergisst es (Gemessen: Verwandte Gene können auf Platz 1 abgerufen werden, aber der Fehler wird wiederholt gemacht, weil der Abruf vor der Aktion nicht ausgeführt wurde). Man kann sich also nicht darauf verlassen, dass der Benutzer sich erinnert; der Abruf muss an bestimmte Aktionsknoten gebunden sein.
| # | Auslösepunkt | Zeitpunkt | Befehl | Was passiert, wenn nicht verbunden |
|---|---|---|---|---|
| T1 | Aufgabenbeginn | Nicht-triviale Aufgabe erhalten, vor der Planung | recall --query "<Aufgabe>" | Prävention fehlgeschlagen: Die zu vermeidenden Fehler werden gemacht |
| T2 | Vor der Aktion | Bevor die erste irreversible Aktion ausgeführt wird (Datei schreiben/Code committen/Bereitstellen/Externe Schnittstelle aufrufen/Daten löschen oder ändern); Innerhalb derselben Aufgabe wird die gleiche Aktion nur einmal ausgelöst, nachfolgende Male wird die diesmalige Schlussfolgerung verwendet | Gleicher Befehl (query=die spezifische Aktion, die ausgeführt werden soll, z.B. „Dateien mit einem Skript stapelweise umschreiben") | Engmaschige Prävention (optional) |
| T3 | Fehler tritt auf | Tool gibt Fehler zurück, vor dem Versuch eines erneuten Versuchs | recall --error "<Original-Fehlermeldung>" | Am bedauerlichsten: Obwohl es eine Reparaturmethode in der Datenbank gibt, wird blind wiederholt |
| T4 | Nach der Fehlerbehebung | Ein nicht offensichtlicher Fehler wurde behoben | draft --error ... (Ablage) | Erfahrungsverlust, die nächste Maschine macht den gleichen Fehler |
| T5 | Aufgabenende | Abschluss | --register-hit --gene <id> / --negate --gene <id> | Nicht messbar, fehlerhafte Reparaturmethoden werden nicht entdeckt |
T3 besonders hervorgehoben (höchster Nutzen, aber am leichtesten zu übersehen): Der einzige Auslösepunkt, bei dem du dich nicht erinnern musst – Der Fehler selbst ist die Erinnerung. Bevor das Tool einen Fehler zurückgibt und du einen erneuten Versuch startest, verwende die Original-Fehlermeldung direkt als Abfrage (nicht selbst zusammenfassen): node code/evolver-recall.mjs --error "<Original-Fehlermeldung>"; bei einem Treffer gemäß der Reparaturmethode erneut versuchen; bei weiterem Fehlschlag → zu T4 Ablage gehen.
Vollständige Auslösespezifikation einheitlich in
docs/boundary-and-triggers.md– Enthält T2-Beurteilungskriterien mit 3 Beispielen, Multi-Host-Nebenläufigkeitsmatrix, Auslösewort↔Befehlszuordnung, drei Arten der Host-Integration, Inlandsspiegel, Selbsttest „Installiert, aber nicht aktiv". Diese Datei behält nur die obige Kernübersicht, beide Stellen driften nicht mehr auseinander. Auslösewörter sind nur Aufrufhinweise, kein Abruf-Mechanismus (Treffer basieren aufsignals_match × query-tokenZielabgleich); Aufgabenbeginn führt T1 aus, sobald die Aufgabe als „nicht trivial" eingestuft wird, ohne dass eine bestimmte Wortgruppe getroffen werden muss.
Häufige Fehlerhafte Verwendungen (Anti-Pattern-Schnellübersicht)
EN: Anti-pattern quick list - each row explains the MECHANISM, not just the symptom. Full 14-item catalog with [A] evidence:
docs/common-mistakes.md. Key ones: success-summary strategies are noise (+36pp worse than nothing), model-may-fail traps have unreliable hit rates, token deltas need a no-injection control group (~-22% repeat-execution baseline), error counting must use authoritative flags (isError=true), cold start needs flow-B deposits first. Jeder Eintrag enthälterklärung „Warum es falsch ist