Sessions and memory
Dreaming
Dreaming is het systeem voor geheugenconsolidatie op de achtergrond in memory-core. Het zet sterke kortetermijnsignalen om in duurzaam geheugen, terwijl het proces uitlegbaar en controleerbaar blijft.
Wat Dreaming schrijft
- Machinestatus in
memory/.dreams/(opslag voor herinneringen, fasesignalen, opnamecontrolepunten, vergrendelingen). - Voor mensen leesbare uitvoer in
DREAMS.md(of een bestaandedreams.md) en optionele faserapportbestanden ondermemory/dreaming/<phase>/YYYY-MM-DD.md.
Promotie naar het langetermijngeheugen schrijft nog steeds alleen naar MEMORY.md.
Fasemodel
Dreaming voert per cyclus drie samenwerkende fasen in deze volgorde uit: light -> REM -> deep. Dit zijn interne implementatiefasen, geen afzonderlijke door de gebruiker geconfigureerde modi.
| Fase | Doel | Duurzame schrijfactie |
|---|---|---|
| Light | Recent kortetermijnmateriaal sorteren en klaarzetten | Nee |
| REM | Reflecteren op thema's en terugkerende ideeën | Nee |
| Deep | Duurzame kandidaten scoren en promoveren | Ja (MEMORY.md) |
Light-fase
- Leest de recente status van kortetermijnherinneringen, dagelijkse geheugenbestanden en geredigeerde sessietranscripten wanneer die beschikbaar zijn.
- Ontdubbelt signalen en zet kandidaatregels klaar.
- Schrijft een beheerd
## Light Sleep-blok wanneer de opslag inline-uitvoer bevat. - Registreert versterkingssignalen voor latere rangschikking in de deep-fase.
- Schrijft nooit naar
MEMORY.md.
REM-fase
- Maakt thema- en reflectiesamenvattingen van recente kortetermijnsporen.
- Schrijft een beheerd
## REM Sleep-blok wanneer de opslag inline-uitvoer bevat. - Registreert REM-versterkingssignalen die voor de rangschikking in de deep-fase worden gebruikt.
- Schrijft nooit naar
MEMORY.md.
Deep-fase
- Rangschikt kandidaten met gewogen scores en drempelpoorten (
minScore,minRecallCountenminUniqueQueriesmoeten allemaal slagen). - Laadt fragmenten vóór het schrijven opnieuw uit actuele dagelijkse bestanden, zodat verouderde of verwijderde fragmenten worden overgeslagen.
- Voegt gepromoveerde vermeldingen toe aan
MEMORY.md. - Schrijft een
## Deep Sleep-samenvatting naarDREAMS.mden optioneelmemory/dreaming/deep/YYYY-MM-DD.md.
Opname van sessietranscripten
Dreaming kan geredigeerde sessietranscripten opnemen in het Dreaming-corpus. Wanneer ze beschikbaar zijn, worden transcripten naast dagelijkse geheugensignalen en herinneringssporen aan de light-fase toegevoegd. Persoonlijke en gevoelige inhoud wordt vóór opname geredigeerd.
Droomdagboek
Dreaming houdt een verhalend Droomdagboek bij in DREAMS.md. Nadat elke fase voldoende materiaal heeft, voert memory-core op de achtergrond naar beste vermogen een subagentbeurt uit en voegt het een korte dagboekvermelding toe. Hiervoor wordt het standaardruntimemodel gebruikt, tenzij dreaming.model is geconfigureerd. Als het geconfigureerde model niet beschikbaar is, wordt de dagboekuitvoering eenmaal opnieuw geprobeerd met het standaardsessiemodel; fouten met vertrouwen of toelatingslijsten worden niet opnieuw geprobeerd en blijven zichtbaar in de logboeken in plaats van stilzwijgend terug te vallen op een algemene dagboekvermelding.
Er is ook een onderbouwd historisch aanvullingstraject voor controle- en herstelwerk:
Aanvulopdrachten
memory rem-harness --path ... --groundedtoont een voorbeeld van onderbouwde dagboekuitvoer uit historischeYYYY-MM-DD.md-notities.memory rem-backfill --path ...schrijft omkeerbare, onderbouwde dagboekvermeldingen naarDREAMS.md.memory rem-backfill --path ... --stage-short-termzet onderbouwde duurzame kandidaten klaar in dezelfde opslag voor kortetermijnbewijs die door de normale deep-fase wordt gebruikt.memory rem-backfill --rollbacken--rollback-short-termverwijderen die klaargezette aanvullingsartefacten zonder gewone dagboekvermeldingen of actuele kortetermijnherinneringen te wijzigen.
De Control UI biedt dezelfde stroom voor aanvulling en reset van het dagboek op het tabblad Memory van de agent (pagina Agents), zodat je de resultaten in de droomscène kunt bekijken voordat je beslist of onderbouwde kandidaten promotie verdienen. Een afzonderlijk onderbouwd Scene-traject toont welke klaargezette kortetermijnvermeldingen afkomstig zijn van historische herhaling, welke gepromoveerde items voornamelijk door onderbouwde gegevens zijn bepaald, en laat je alleen klaargezette vermeldingen verwijderen die uitsluitend onderbouwd zijn, zonder de actuele kortetermijnstatus te wijzigen.
Signalen voor rangschikking in de deep-fase
De rangschikking in de deep-fase gebruikt zes gewogen basissignalen plus faseversterking:
| Signaal | Gewicht | Beschrijving |
|---|---|---|
| Relevantie | 0.30 | Gemiddelde opvraagkwaliteit voor de vermelding |
| Frequentie | 0.24 | Hoeveel kortetermijnsignalen de vermelding heeft verzameld |
| Querydiversiteit | 0.15 | Afzonderlijke query-/dagcontexten waarin deze naar voren kwam |
| Recentheid | 0.15 | In de tijd afnemende versheidsscore |
| Consolidatie | 0.10 | Sterkte van herhaling over meerdere dagen |
| Conceptuele rijkdom | 0.06 | Dichtheid van concepttags uit fragment/pad |
Treffers in de light- en REM-fase voegen een kleine, met de tijd afnemende recentheidsboost toe vanuit memory/.dreams/phase-signals.json.
Resultaten van schaduwproeven kunnen boven op de basisscore als controlesignaal worden toegepast voordat er duurzaam wordt geschreven: een nuttige proef geeft een kandidaat een kleine begrensde boost, een neutrale proef houdt deze uitgesteld en een schadelijke proef markeert deze als afgewezen voor die scoreronde. Dit signaal is uitsluitend voor rapportage: het kan de volgorde van kandidaten of controlemetagegevens wijzigen, maar schrijft nooit naar MEMORY.md en promoveert niet zelfstandig een kandidaat.
Rapportdekking voor QA-schaduwproeven
QA Lab bevat een scenario dat uitsluitend rapporteert om te onderzoeken hoe een toekomstige Dreaming-schaduwproef een kandidaatgeheugen vóór promotie zou kunnen beoordelen: een agent vergelijkt een basisantwoord met een antwoord dat het kandidaatgeheugen kan gebruiken en schrijft vervolgens een lokaal rapport met een oordeel, reden en risicomarkeringen. Deze dekking is beperkt tot QA: ze verifieert dat het rapportartefact gescheiden blijft van MEMORY.md en dat de agent nooit beweert dat de kandidaat is gepromoveerd. Ze voegt geen productieschaduwproefgedrag toe en wijzigt de promotie-engine van de deep-fase niet.
De schaduwproefrunner memory-core behoudt hetzelfde contract van uitsluitend rapporteren voor codepaden die een stabiel artefact nodig hebben. Deze accepteert de kandidaat, proefprompt, basisuitkomst, kandidaatuitkomst, oordeel, reden, risicomarkeringen en bewijsverwijzingen en schrijft vervolgens een rapport met promotion action: report-only. Nuttige oordelen worden gekoppeld aan een aanbeveling voor promote, neutrale oordelen aan defer en schadelijke oordelen aan reject; geen daarvan schrijft naar MEMORY.md of past promotie in de deep-fase toe.
Planning
Wanneer ingeschakeld, beheert memory-core automatisch één Cron-taak voor een volledige Dreaming-cyclus, ontdubbeld over de primaire runtimewerkruimte en alle geconfigureerde agentwerkruimten, zodat uitwaaiering van subagentwerkruimten DREAMS.md en de geheugenstatus van de hoofdagent niet uitsluit.
| Instelling | Standaardmodel |
|---|---|
dreaming.frequency |
0 3 * * * |
dreaming.model |
standaardmodel |
Snel aan de slag
Dreaming inschakelen
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true } } } } }}Aangepast cyclusritme
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true, "timezone": "America/Los_Angeles", "frequency": "0 */6 * * *" } } } } }}Slash-opdracht
/dreaming status/dreaming on/dreaming off/dreaming help/dreaming on en /dreaming off vereisen de eigenaarstatus voor kanaalaanroepers of operator.admin voor Gateway-clients. /dreaming status en /dreaming help zijn alleen-lezen.
CLI-workflow
Promotievoorbeeld / toepassen
openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deepHandmatige memory promote gebruikt standaard de drempels van de deep-fase, tenzij deze met CLI-vlaggen worden overschreven.
Promotie uitleggen
Leg uit waarom een specifieke kandidaat wel of niet zou worden gepromoveerd:
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --jsonVoorbeeld van REM-harnas
Bekijk REM-reflecties, kandidaatwaarheden en uitvoer voor promotie in de deep-fase zonder iets te schrijven:
openclaw memory rem-harnessopenclaw memory rem-harness --jsonBelangrijkste standaardwaarden
Alle instellingen bevinden zich onder plugins.entries.memory-core.config.dreaming.
enabledbooleandefault: falseSchakel de Dreaming-cyclus in of uit.
frequencystringdefault: 0 3 * * *Cron-ritme voor de volledige Dreaming-cyclus.
modelstringOptionele modeloverschrijving voor de Droomdagboek-subagent. Gebruik een canonieke provider/model-waarde wanneer je ook een allowedModels-toelatingslijst voor een subagent instelt.
phases.deep.maxPromotedSnippetTokensnumberdefault: 160Maximaal geschat aantal tokens dat wordt behouden van elk fragment uit kortetermijnherinneringen dat naar MEMORY.md wordt gepromoveerd. De herkomst van de rangschikking blijft zichtbaar.
Dreams-UI
Wanneer ingeschakeld, toont het tabblad Dreams van de Gateway:
- de huidige ingeschakelde status van Dreaming
- de status per fase en de aanwezigheid van een beheerde cyclus
- aantallen voor kortetermijngeheugen, onderbouwde gegevens, signalen en vandaag gepromoveerde items
- het tijdstip van de volgende geplande uitvoering
- een afzonderlijk onderbouwd Scene-traject voor klaargezette vermeldingen uit historische herhaling
- een uitvouwbare Droomdagboeklezer op basis van
doctor.memory.dreamDiary