memory-core. Het helpt OpenClaw sterke kortetermijnsignalen naar duurzaam geheugen te verplaatsen, terwijl het proces uitlegbaar en controleerbaar blijft.
Dreaming is opt-in en standaard uitgeschakeld.
Wat dreaming schrijft
Dreaming houdt twee soorten uitvoer bij:- Machinestatus in
memory/.dreams/(recall-opslag, fasesignalen, ingestiecheckpoints, locks). - Voor mensen leesbare uitvoer in
DREAMS.md(of bestaandedreams.md) en optionele faserapportbestanden ondermemory/dreaming/<phase>/YYYY-MM-DD.md.
MEMORY.md.
Fasemodel
Dreaming gebruikt drie samenwerkende fasen:| Fase | Doel | Duurzame schrijfactie |
|---|---|---|
| Light | Recent kortetermijnmateriaal sorteren en faseren | Nee |
| Deep | Duurzame kandidaten scoren en promoveren | Ja (MEMORY.md) |
| REM | Reflecteren op thema’s en terugkerende ideeën | Nee |
Light-fase
Light-fase
De Light-fase neemt recente dagelijkse geheugensignalen en recall-sporen op, dedupliceert ze en faseert kandidaatregels.
- Leest uit kortetermijn-recallstatus, recente dagelijkse geheugenbestanden en geredigeerde sessietranscripten wanneer beschikbaar.
- Schrijft een beheerd
## Light Sleep-blok wanneer opslag inline-uitvoer bevat. - Registreert versterkingssignalen voor latere Deep-rangschikking.
- Schrijft nooit naar
MEMORY.md.
Deep-fase
Deep-fase
De Deep-fase bepaalt wat langetermijngeheugen wordt.
- Rangschikt kandidaten met gewogen scores en drempelpoorten.
- Vereist dat
minScore,minRecallCountenminUniqueQueriesslagen. - Hydrateert snippets opnieuw uit live dagelijkse bestanden voordat er wordt geschreven, zodat verouderde/verwijderde snippets worden overgeslagen.
- Voegt gepromoveerde items toe aan
MEMORY.md. - Schrijft een
## Deep Sleep-samenvatting naarDREAMS.mden schrijft optioneelmemory/dreaming/deep/YYYY-MM-DD.md.
REM-fase
REM-fase
De REM-fase extraheert patronen en reflectieve signalen.
- Bouwt thema- en reflectiesamenvattingen uit recente kortetermijnsporen.
- Schrijft een beheerd
## REM Sleep-blok wanneer opslag inline-uitvoer bevat. - Registreert REM-versterkingssignalen die door Deep-rangschikking worden gebruikt.
- Schrijft nooit naar
MEMORY.md.
Ingestie van sessietranscripten
Dreaming kan geredigeerde sessietranscripten opnemen in het dreaming-corpus. Wanneer transcripten beschikbaar zijn, worden ze naast dagelijkse geheugensignalen en recall-sporen aan de Light-fase gevoerd. Persoonlijke en gevoelige inhoud wordt vóór ingestie geredigeerd.Dream Diary
Dreaming houdt ook een narratief Dream Diary bij inDREAMS.md. Nadat elke fase genoeg materiaal heeft, voert memory-core best-effort een achtergrondbeurt met een subagent uit en voegt een kort dagboekitem toe. Het gebruikt het standaard runtimemodel tenzij dreaming.model is geconfigureerd. Als het geconfigureerde model niet beschikbaar is, probeert Dream Diary het eenmaal opnieuw met het standaardsessiemodel.
Dit dagboek is bedoeld voor menselijke lezing in de Dreams-UI, niet als promotiebron. Door Dreaming gegenereerde dagboek-/rapportartefacten worden uitgesloten van kortetermijnpromotie. Alleen onderbouwde geheugensnippets komen in aanmerking voor promotie naar
MEMORY.md.Backfill-opdrachten
Backfill-opdrachten
memory rem-harness --path ... --groundedtoont een preview van onderbouwde dagboekuitvoer uit historischeYYYY-MM-DD.md-notities.memory rem-backfill --path ...schrijft omkeerbare onderbouwde dagboekitems naarDREAMS.md.memory rem-backfill --path ... --stage-short-termfaseert onderbouwde duurzame kandidaten in dezelfde kortetermijn-bewijsopslag die de normale Deep-fase al gebruikt.memory rem-backfill --rollbacken--rollback-short-termverwijderen die gefaseerde backfill-artefacten zonder gewone dagboekitems of live kortetermijn-recall aan te raken.
Deep-rangschikkingssignalen
Deep-rangschikking gebruikt zes gewogen basissignalen plus faseversterking:| Signaal | Gewicht | Beschrijving |
|---|---|---|
| Frequentie | 0.24 | Hoeveel kortetermijnsignalen het item heeft verzameld |
| Relevantie | 0.30 | Gemiddelde ophaalkwaliteit voor het item |
| Querydiversiteit | 0.15 | Afzonderlijke query-/dagcontexten waarin het naar voren kwam |
| Recentheid | 0.15 | Tijdvervalste versheidsscore |
| Consolidatie | 0.10 | Sterkte van herhaling over meerdere dagen |
| Conceptuele rijkdom | 0.06 | Dichtheid van concepttags uit snippet/pad |
memory/.dreams/phase-signals.json.
Schaduwproefresultaten kunnen bovenop die basisscore worden gelegd als reviewsignaal vóór een duurzame schrijfactie. Een nuttige proef geeft de kandidaat een kleine begrensde boost, een neutrale proef houdt hem uitgesteld, en een schadelijke proef markeert hem als afgewezen voor die scoreronde. Dit signaal is nog steeds alleen voor rapportage: het kan de volgorde van kandidaten of reviewmetadata wijzigen, maar schrijft niet naar MEMORY.md en promoveert de kandidaat niet zelfstandig.
Rapportdekking voor QA-schaduwproef
QA Lab bevat een scenario dat alleen rapporteert om te verkennen hoe een toekomstige dreaming-schaduwproef een kandidaatgeheugen vóór promotie zou kunnen beoordelen. Het scenario vraagt een agent een basisantwoord te vergelijken met een antwoord dat het kandidaatgeheugen kan gebruiken, en vervolgens een lokaal rapport te schrijven met een oordeel, reden en risicovlaggen. Deze dekking is bewust beperkt tot QA. Ze verifieert dat het rapportartefact gescheiden blijft vanMEMORY.md en dat de agent niet claimt dat de kandidaat is gepromoveerd. Ze voegt geen productiegedrag voor schaduwproeven toe en wijzigt de promotie-engine van de Deep-fase niet.
De schaduwproefrunner van memory-core houdt hetzelfde alleen-rapportagecontract aan voor codepaden die een stabiel artefact nodig hebben. Hij accepteert de kandidaat, proefprompt, basisuitkomst, kandidaatuitkomst, oordeel, reden, risicovlaggen en bewijsreferenties, en schrijft vervolgens een rapport met promotion action: report-only. Nuttige oordelen mappen naar een aanbeveling promote, neutrale oordelen naar defer, en schadelijke oordelen naar reject; geen van die aanbevelingen schrijft naar MEMORY.md of past Deep-fasepromotie toe.
Planning
Wanneer ingeschakeld beheertmemory-core automatisch één cronjob voor een volledige dreaming-sweep. Elke sweep voert fasen op volgorde uit: Light → REM → Deep.
De sweep omvat de primaire runtimewerkruimte en alle geconfigureerde agentwerkruimten, gededupliceerd op pad, zodat fan-out naar subagentwerkruimten de DREAMS.md en geheugenstatus van de hoofdagent niet uitsluit.
Standaard cadansgedrag:
| Instelling | Standaard |
|---|---|
dreaming.frequency | 0 3 * * * |
dreaming.model | standaardmodel |
Snel starten
- Dreaming inschakelen
- Aangepaste sweep-cadans
Slash-opdracht
/dreaming on en /dreaming off wijzigen gateway-brede configuratie. Kanaalaanroepers moeten eigenaren zijn, en Gateway-clients moeten operator.admin hebben. /dreaming status en /dreaming help blijven alleen-lezen.
CLI-workflow
- Promotiepreview / toepassen
- Promotie uitleggen
- REM-harnesspreview
memory promote gebruikt standaard Deep-fasedrempels, tenzij overschreven met CLI-vlaggen.Belangrijkste standaardwaarden
Alle instellingen staan onderplugins.entries.memory-core.config.dreaming.
Schakel de dreaming-sweep in of uit.
Cron-cadans voor de volledige dreaming-sweep.
Optionele modeloverride voor de Dream Diary-subagent. Gebruik een canonieke
provider/model-waarde wanneer je ook een subagent-allowlist allowedModels instelt.Maximaal geschat aantal tokens dat wordt behouden uit elke kortetermijn-recallsnippet die naar
MEMORY.md wordt gepromoveerd. Rangschikkingsherkomst blijft zichtbaar.De meeste fasebeleidsregels, drempels en opslaggedrag zijn interne implementatiedetails. Zie Referentie voor geheugenconfiguratie voor de volledige lijst met keys.
Dreams-UI
Wanneer ingeschakeld toont het tabblad Dreams van de Gateway:- huidige ingeschakelde dreaming-status
- status op faseniveau en aanwezigheid van beheerde sweep
- aantallen voor kortetermijn-, onderbouwde, signaal- en vandaag-gepromoveerde items
- timing van de volgende geplande uitvoering
- een aparte onderbouwde Scene-lane voor gefaseerde historische replay-items
- een uitklapbare Dream Diary-lezer ondersteund door
doctor.memory.dreamDiary
Dreaming wordt nooit uitgevoerd: status toont geblokkeerd
Alsopenclaw memory status Dreaming status: blocked rapporteert, bestaat de beheerde cron, maar vuurt de Heartbeat van de standaardagent niet. Controleer of Heartbeat is ingeschakeld voor de standaardagent en dat het doel niet none is, en voer daarna na het volgende Heartbeat-interval opnieuw openclaw memory status --deep uit.