CommunityCodierung & Entwicklunggithub.com

Pi × EvoX Loop — 智能体经验继承 Skill

Gib deinem Coding-Agenten eine 'Erfahrungsvererbung'-Laufzeit: Rufe validierte Reparaturen aus einem Evolver-Genpool zu Aufgabenbeginn ab, registriere Treffer, wenn eine Reparatur tatsächlich verwendet wird, und hinterlege neu gelernte Reparaturen nach der Behebung eines nicht offensichtlichen Fehlers. Optional können kontrollierte Closed-Loop-Experimente (R1 Falle → Destillieren → Injizieren → R2) durchgeführt werden, um die Vererbungsgewinne zu messen. Jede Reparatur wird auf ihr Modell/Host zurückverfolgt und modellübergreifend geprüft. Verwende es zu Beginn nicht-trivialer Aufgaben, nach der Behebung eines nicht offensichtlichen Fehlers oder wenn du die Selbstevolution eines Agenten messen möchtest. Auslösewörter: 经验召回, 错题本, 经验继承, 自进化, evolver, 避坑, distill.

Was ist Pi × EvoX Loop — 智能体经验继承 Skill?

Dieses Skill, Pi × EvoX Loop, implementiert ein 'Erfahrungsvererbungs'-System für KI-Coding-Agenten wie Claude Code, Cursor oder Codex. Es ermöglicht dem Agenten, aus vergangenen Fehlern zu lernen, indem validierte Reparaturen (Gene) in einer lokalen Wissensdatenbank gespeichert und bei ähnlichen Aufgaben automatisch abgerufen werden. Das System besteht aus drei Hauptflüssen: Fluss A ruft zu Aufgabenbeginn relevante Reparaturen ab, Fluss B hinterlegt neue Reparaturen nach der Fehlerbehebung, und Fluss C ermöglicht kontrollierte Experimente zur Messung der Effektivität. Es verwendet einen mehrstufigen Qualitäts- und Sicherheitsmechanismus, einschließlich einer Hinterlegungssperre (depositionGate) zur Vermeidung von Rauschen und vier Sicherheits-Gates (Reparatursignal, Erzählung, Injektion, Schwärzung), um schädliche oder private Inhalte zu blockieren. Das System ist plattformunabhängig und erfordert nur Node.js >= 22 für den täglichen Gebrauch, mit optionalen Integrationen für erweiterte Funktionen. Es ist besonders nützlich für nicht-triviale Aufgaben, bei denen Fehler schwer zu diagnostizieren sind und eine kontinuierliche Verbesserung des Agentenverhaltens erwünscht ist.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/stwhwing/pi-evox-lab/tree/HEAD

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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.md Q17.

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/evolver integration 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 -v prüfen; ältere Versionen werden nicht unterstützt, bitte zuerst aktualisieren). Optionale Integration von @evomap/evolver ist GPL-3.0-or-later – betrifft nur, wenn du es aktiv installierst und --engine evolver verwendest. 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)

  1. Node ≥22 installieren (erforderlich für Fallengenerator und pi/evolver; siehe FAQ·Q8);
  2. 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);
  3. 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, needs npm 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 install ist 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; $ENV interpolation 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. --query with 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: --top standardmäß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 automatisch anti_patterns gegenseitig 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 --error auto-extracts signals + pre-fills AVOID + writes anti_patterns; fill in FIX then --commit. Manual path: distill with explicit signals. strategy MUST be an executable fix (params/commands/encodings) - success summaries are filtered by the repair-signal guard. --shareable only 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):

SegmentWas schreibenGrenze
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/KodierungMuss 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 AbrufNur 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);
  • --shareable nur 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 --commit wird jeder Eintrag einzeln geprüft. Bei Nichtkonformität direkte Ablehnung (ohne auf die Festplatte zu schreiben):

AblehnungsgrundBegründungNächster Schritt
FIX ist ein nicht ausgefüllter Platzhalter <Hier ausführbare Reparaturmethode eintragen>Nach der Injektion wertlosIm Entwurf die echte Reparaturmethode ergänzen und dann einreichen
retry with corrected args (Wiederholung des Protokolleintrags)„Wiederholt und dann funktioniert es" ist keine ReparaturmethodeAVOID (warum falsch) + FIX (wie beheben) schreiben
Erzählungseinleitung (Now I understand…)Schlussfolgerungsfluss nicht ausführbarGleicher Vorschlag wie oben
Fehlendes ReparatursignalwortSieht nicht aus wie eine Beschreibung eines Fehlers und einer ReparaturmethodeGleicher 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.

SzenarioStandardverhaltenÜberschreibungsmethode
Lokale interaktive Ablage (draft --commit / distill, mit TTY)Automatisch genehmigtconfig --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 pullofficial 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.jsonl ist LWW-append-only, approve/quarantine sind bidirektional umkehrbar; „ausstehend" in info bedeutet, 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, run evidence <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_kv Komprimierungsschemafamilie); 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) siehe docs/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> (--yes zur Installation); OpenClaw/Hermes verwenden install-hooks; Auslöseregeln können mit install-snippet in 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-signals kann ü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: report Wochenbericht (L1 Aktivität/L2 Rückschreibungsrate/L3 Wiederauftreten, --json maschinenlesbar); 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 siehe docs/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) siehe docs/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.

#TorZuständig fürWirkungsort
1ReparaturwächterOb es eine echte Reparaturmethode gibt (kein ausführbarer Inhalt → keine Injektion; weniger ist besser als nichts)Abruf
2ErzählungswächterOb es sich um erzählenden Text handelt (erzählender Text ist für den Agenten Nullinformation, gemessen entspricht es Rauschen +36pp)Abruf
3InjektionswächterOb 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
4SchwärzungstorOb 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ösepunktZeitpunktBefehlWas passiert, wenn nicht verbunden
T1AufgabenbeginnNicht-triviale Aufgabe erhalten, vor der Planungrecall --query "<Aufgabe>"Prävention fehlgeschlagen: Die zu vermeidenden Fehler werden gemacht
T2Vor der AktionBevor 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 verwendetGleicher Befehl (query=die spezifische Aktion, die ausgeführt werden soll, z.B. „Dateien mit einem Skript stapelweise umschreiben")Engmaschige Prävention (optional)
T3Fehler tritt aufTool gibt Fehler zurück, vor dem Versuch eines erneuten Versuchsrecall --error "<Original-Fehlermeldung>"Am bedauerlichsten: Obwohl es eine Reparaturmethode in der Datenbank gibt, wird blind wiederholt
T4Nach der FehlerbehebungEin nicht offensichtlicher Fehler wurde behobendraft --error ... (Ablage)Erfahrungsverlust, die nächste Maschine macht den gleichen Fehler
T5AufgabenendeAbschluss--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 auf signals_match × query-token Zielabgleich); 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

Verwandte Skills