Sessions and memory
Sessiebeheer
OpenClaw organiseert gesprekken in sessies. Elk bericht wordt naar een sessie gerouteerd op basis van waar het vandaan kwam -- DM's, groepschats, Cron-taken, enzovoort.
Hoe berichten worden gerouteerd
| Bron | Gedrag |
|---|---|
| Directe berichten | Standaard gedeelde sessie |
| Groepschats | Geïsoleerd per groep |
| Ruimtes/kanalen | Geïsoleerd per ruimte |
| Cron-taken | Nieuwe sessie per run |
| Webhooks | Geïsoleerd per hook |
DM-isolatie
Standaard delen alle DM's één sessie voor continuïteit. Dit is prima voor installaties met één gebruiker.
De oplossing:
{ session: { dmScope: "per-channel-peer", // isolate by channel + sender },}Andere opties:
main(standaard) -- alle DM's delen één sessie.per-peer-- isoleer per afzender (over kanalen heen).per-channel-peer-- isoleer per kanaal + afzender (aanbevolen).per-account-channel-peer-- isoleer per account + kanaal + afzender.
Gekoppelde kanalen docken
Dock-opdrachten laten een gebruiker de antwoordroute van de huidige directe-chatsessie verplaatsen naar een ander gekoppeld kanaal zonder een nieuwe sessie te starten. Zie Kanaaldocking voor voorbeelden, configuratie en probleemoplossing.
Controleer je setup met openclaw security audit.
Sessieleven cyclus
Sessies worden hergebruikt totdat ze verlopen:
- Dagelijkse reset (standaard) -- nieuwe sessie om 4:00 lokale tijd op de Gateway-
host. Dagelijkse versheid is gebaseerd op wanneer de huidige
sessionIdbegon, niet op latere metadata-schrijfacties. - Inactieve reset (optioneel) -- nieuwe sessie na een periode van inactiviteit. Stel
session.reset.idleMinutesin. Inactieve versheid is gebaseerd op de laatste echte gebruikers-/kanaalinteractie, zodat Heartbeat-, Cron- en exec-systeemgebeurtenissen de sessie niet levend houden. - Handmatige reset -- typ
/newof/resetin de chat./new <model>wisselt ook van model.
Wanneer zowel dagelijkse als inactieve resets zijn geconfigureerd, wint degene die het eerst verloopt. Heartbeat-, Cron-, exec- en andere systeemgebeurtenisbeurten kunnen sessiemetadata schrijven, maar die schrijfacties verlengen de dagelijkse of inactieve resetversheid niet. Wanneer een reset de sessie doorschuift, worden in de wachtrij geplaatste systeemgebeurtenismeldingen voor de oude sessie weggegooid, zodat verouderde achtergrondupdates niet vóór de eerste prompt in de nieuwe sessie worden geplaatst.
Sessies met een actieve provider-eigen CLI-sessie worden niet afgebroken door de impliciete
dagelijkse standaard. Gebruik /reset of configureer session.reset expliciet wanneer die
sessies op een timer moeten verlopen.
Waar status leeft
Alle sessiestatus is eigendom van de Gateway. UI-clients vragen de Gateway om sessiegegevens.
- Store:
~/.openclaw/agents/<agentId>/sessions/sessions.json - Transcripties:
~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl
sessions.json houdt afzonderlijke leven cyclustijdstempels bij:
sessionStartedAt: wanneer de huidigesessionIdbegon; dagelijkse reset gebruikt dit.lastInteractionAt: laatste gebruikers-/kanaalinteractie die de inactieve levensduur verlengt.updatedAt: laatste store-rijmutatie; nuttig voor lijsten en opschonen, maar niet gezaghebbend voor dagelijkse/inactieve resetversheid.
Oudere rijen zonder sessionStartedAt worden afgeleid uit de transcript-JSONL-
sessieheader wanneer beschikbaar. Als een oudere rij ook lastInteractionAt mist,
valt inactieve versheid terug op die sessiestarttijd, niet op latere administratieve
schrijfacties.
Sessiebeheer
OpenClaw begrenst sessieopslag automatisch in de loop van de tijd. Standaard draait het
in enforce-modus en past het opschoning toe tijdens onderhoud. Stel
session.maintenance.mode in op "warn" om te rapporteren wat zou worden opgeschoond zonder de store/bestanden te wijzigen:
{ session: { maintenance: { mode: "enforce", pruneAfter: "30d", maxEntries: 500, }, },}Voor productieformaat maxEntries-limieten gebruiken Gateway-runtime-schrijfacties een kleine high-water-buffer en schonen ze in batches terug op tot de geconfigureerde limiet. Lezen uit de sessiestore snoeit of limiteert geen items tijdens het opstarten van de Gateway. Dit voorkomt volledige store-opschoning bij elke opstart of geïsoleerde Cron-sessie. openclaw sessions cleanup --enforce past de limiet onmiddellijk toe.
Gateway model-run-probesessies zijn standaard kortlevend. Overeenkomende rijen met
strikte expliciete sleutels zoals agent:*:explicit:model-run-<uuid> gebruiken vaste 24h-
retentie, maar opschoning is drukgestuurd: het verwijdert alleen verouderde proberijen wanneer
sessie-itemonderhouds-/limietdruk wordt bereikt. Wanneer model-run-opschoning draait,
draait die vóór de bredere leeftijdsgrens voor verouderde items en de itemlimiet. Normale directe,
groeps-, thread-, Cron-, hook-, Heartbeat-, ACP- en sub-agent-sessies erven
deze 24h-retentie niet.
Onderhoud bewaart duurzame externe gesprekspointers, inclusief groeps- sessies en thread-gebonden chatsessies, terwijl synthetische Cron-, hook-, Heartbeat-, ACP- en sub-agent-items nog steeds kunnen verouderen.
Als je eerder directe-berichtisolatie gebruikte en later
session.dmScope terugzette naar main, bekijk dan verouderde peer-keyed DM-rijen vooraf met
openclaw sessions cleanup --dry-run --fix-dm-scope. Het toepassen van dezelfde vlag
pensioneert die oude directe-DM-rijen en bewaart hun transcripties als verwijderde
archieven.
Bekijk vooraf met openclaw sessions cleanup --dry-run.
Sessies inspecteren
openclaw status-- pad van de sessiestore en recente activiteit.openclaw sessions --json-- alle sessies (filter met--active <minutes>)./statusin chat -- contextgebruik, model en toggles./context list-- wat er in de systeemprompt staat.
Verder lezen
- Sessiesnoei -- toolresultaten inkorten
- Compaction -- lange gesprekken samenvatten
- Sessietools -- agenttools voor werk over sessies heen
- Diepgaande sessiebeheeruitleg -- storeschema, transcripties, verzendbeleid, oorsprongsmetadata en geavanceerde configuratie
- Multi-Agent — routing en sessie-isolatie tussen agents
- Achtergrondtaken — hoe losgekoppeld werk taakrecords met sessieverwijzingen maakt
- Kanaalroutering — hoe inkomende berichten naar sessies worden gerouteerd