5.3 KiB
| type | source_url | retrieved | title | tags | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| other | https://neoneye.github.io/agent-memory-atlas/systems/plur1bus/ | 2026-09-05 | Agent Memory Atlas: PLUR1BUS (7.11.0 Update) |
|
Agent Memory Atlas: PLUR1BUS — 7.11.0 Update
Die Seite „PLUR1BUS" im Agent Memory Atlas wurde aktualisiert und analysiert nun den Release-Stand 7.11.0 (vorher: 7.4.0).
Neue Metriken gegenüber 7.4.0
- 12.418 Zeilen in
index.js(war ~10.900 bei 7.4.0) - 73.743 Zeilen über 254 Dateien in
lib/(war ~61.000) - 50 Konfigurationsgruppen in
openclaw.plugin.json(war 47) - 361 Testdateien — „test suite is larger than the implementation it covers"
Neue Details gegenüber der 7.4.0-Dokumentation
Safe-Update und Drift-Gate
lib/safe-update.js (414 Zeilen) wird detaillierter beschrieben:
- Content-Änderung wird verweigert, wenn Aufrufer keine Update-Quelle und kein Evidenzzitat liefert
- Ersatzzeile wird geschrieben und durable gemacht, bevor die alte Zeile als
supersededmarkiert wird - Ganzer Übergang wird an ein Reconsolidation-Event-Log mit Idempotency-Hash angehängt
- Drift-Gate (
safe-update.js:398): Kosinus-Distanz > 0,45 → Update wird abgelehnt. Der/correct-Aufruf anindex.js:8995setzt bewusstskipDriftGate: true— mit Begründung an der Aufrufstelle: das Gate wirft statt zu degradieren, eine große Korrektur ist genau was ein User bei/correctbeabsichtigt, der Bestätigungsdialog zeigt alt und neu vollständig vor dem Schreiben. Gemessener Drift wird trotzdem im Reconsolidation-Event aufgezeichnet. „A gate that is off by argument is a different thing from a gate that is off by accident."
ACL und Scope
checkAccess (lib/acl-middleware.js:103):
- Denies by default
- Denies on missing owner
- Denies on conflicting ownership tuple
- Angewendet als Filter auf dem Read-Pfad an drei Stellen
- Tests assert die Denials, nicht die Permissions
Conflict-Handling mit Messung
conflict bleibt eine Ranking-Penalty, kein Hard-Filter — mit einer konkreten Messung als Begründung:
- Detector ist „an unvalidated LLM"
- Live-Probe am 16. August 2026: 4.017 newest-revision Records mit
conflict(2.505 auf einem einzigen Agent) - „No resolve path that clears the status"
- 20-Row-Sample war nicht pairwise contradiction
- „Hard-filtering on that signal would have withheld thousands of records on a flag the system cannot yet clear"
- Distinktion: withhold on a state a person set, rank on a state a model guessed
Status-/Trust-Arithmetik
scoreNeoRecallItem returns -Infinity für pruned, tombstoned und demoted — drei States genuinely withheld. conflict bleibt in der Arithmetik:
const trustBoost = ({ curated: 0.3, validated: 0.25, user_asserted: 0.18,
tool_observed: 0.18, assistant_asserted: -0.2, untrusted: -0.3 })[item.origin?.trustLevel] ?? 0;
// ...
const penalties = (item.origin?.role === "assistant" ? 0.2 : 0)
+ (item.status === "demoted" ? 0.35 : 0)
+ (item.status === "conflict" ? 0.3 : 0)
+ (item.stale === true ? 0.15 : 0);
Curation-Subcommands
/plur1bus curation resolve <id> keep|drop(lib/curation-resolve.js, dispatched atindex.js:8065)/plur1bus curation drop-injected(lib/drop-injected-conflicts.js,index.js:8082) — Bulk-Form, doppelt begrenzt:previewDropInjectedzeigt Set vor Apply, Apply verweigert Records derenstatus !== "conflict"oder deren Text nichtisInjectedContextTexterfüllt- Kein Auto-Resolve: ein
conflictden nie jemand ansieht bleibt eine Penalty für immer — „the honest cost of leaving an unvalidated detector's output in the ranking rather than in a filter"
Epistemic Status — drei Read-Layer
invalidated wird an allen drei Read-Layern ausgeschlossen:
recall-pipeline.js:157neo-arch.js:1464- SQL clause at
db-adapter.js:562
LanceDB-Karten: Status-Filter
lib/recall-pipeline.js:153: jeder Eintrag mit gesetztem status der nicht active ist wird gedroppt — nicht ranked-down, sondern „gone from the read path".
Neo-Status-Aufteilung
Die Neo-Status trennen sich jetzt dreifach statt zweifach:
- Deletion-States +
demoted→ withhold (-Infinity) conflict+ Trust-Ladder → rank (mit Penalties)- Die Trennung folgt dem Verursacher: Person setzt → withhold; LLM rät → rank
Validitätsfenster und Tombstones (unverändert zu 7.4.0)
validFrom/validUntilgetrennt voncreatedAt/updatedAt, abfragbar viavalidAt/forgetschreibt Content-Fingerprint in durable append-only Registry, wird als Schritt 0 jedes Capture geprüft
Zwei Stores
- LanceDB: Memory-Karten, eine Tabelle pro Agent
- Neo (JSONL): Turn-Journal, Kandidaten, Behavior-Cards, Graph-Kanten, Dream-Diary, Episoden — tragen die Epistemics
Einordnung
Das Atlas-Dokument ist die umfassendste externe Architektur-Analyse von PLUR1BUS. Der Sprung von 7.4.0 auf 7.11.0 bringt signifikant neue Details insbesondere zu Conflict-Handling (mit Live-Messung), Curation-Subcommands und der dreifachen Status-Aufteilung. Die Atlas-Seite ist unabhängig von den Release-Ankündigungen im OME und ergänzt sie um Code-Ebene-Details.