Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw organiseert gesprekken in sessies. Elk bericht wordt gerouteerd naar een sessie op basis van waar het vandaan kwam — DM’s, groepschats, cron-jobs, enz.

Hoe berichten worden gerouteerd

BronGedrag
Directe berichtenStandaard gedeelde sessie
GroepschatsGeisoleerd per groep
Kamers/kanalenGeisoleerd per kamer
Cron-jobsNieuwe sessie per run
WebhooksGeisoleerd per hook

DM-isolatie

Standaard delen alle DM’s een sessie voor continuiteit. Dit is prima voor set-ups met een enkele gebruiker.
Als meerdere mensen je agent berichten kunnen sturen, schakel dan DM-isolatie in. Zonder dit delen alle gebruikers dezelfde gesprekscontext — Alice’s priveberichten zouden zichtbaar zijn voor Bob.
De oplossing:
{
  session: {
    dmScope: "per-channel-peer", // isolate by channel + sender
  },
}
Andere opties:
  • main (standaard) — alle DM’s delen een 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.
Als dezelfde persoon contact met je opneemt via meerdere kanalen, gebruik dan session.identityLinks om hun identiteiten te koppelen zodat ze een sessie delen.

Gekoppelde kanalen docken

Dock-commando’s 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 set-up met openclaw security audit.

Levenscyclus van sessies

Sessies worden hergebruikt totdat ze verlopen:
  • Dagelijkse reset (standaard) — nieuwe sessie om 4:00 uur lokale tijd op de Gateway host. Dagelijkse versheid is gebaseerd op wanneer de huidige sessionId begon, niet op latere metadata-schrijfacties.
  • Inactieve reset (optioneel) — nieuwe sessie na een periode van inactiviteit. Stel session.reset.idleMinutes in. Inactieve versheid is gebaseerd op de laatste echte gebruikers-/kanaalinteractie, dus Heartbeat-, Cron- en exec-systeemgebeurtenissen houden de sessie niet actief.
  • Handmatige reset — typ /new of /reset in chat. /new <model> wisselt ook van model.
Wanneer zowel dagelijkse als inactieve resets zijn geconfigureerd, wint wat 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 wachtrijmeldingen voor systeemgebeurtenissen voor de oude sessie verwijderd zodat verouderde achtergrondupdates niet voorafgaan aan de eerste prompt in de nieuwe sessie. 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 volgens een timer moeten verlopen.

Waar statusgegevens staan

Alle sessiestatus wordt beheerd door 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 levenscyclus-tijdstempels bij:
  • sessionStartedAt: wanneer de huidige sessionId begon; dagelijkse reset gebruikt dit.
  • lastInteractionAt: laatste gebruikers-/kanaalinteractie die de inactieve levensduur verlengt.
  • updatedAt: laatste mutatie van de store-rij; handig voor lijsten en opschonen, maar niet gezaghebbend voor dagelijkse/inactieve resetversheid.
Oudere rijen zonder sessionStartedAt worden opgelost vanuit de JSONL-transcriptie sessiekop wanneer beschikbaar. Als een oudere rij ook geen lastInteractionAt heeft, valt inactieve versheid terug op die starttijd van de sessie, niet op latere administratieve schrijfacties.

Sessieonderhoud

OpenClaw begrenst sessieopslag automatisch in de loop van de tijd. Standaard draait het in warn-modus (rapporteert wat zou worden opgeschoond). Stel session.maintenance.mode in op "enforce" voor automatische opschoning:
{
  session: {
    maintenance: {
      mode: "enforce",
      pruneAfter: "30d",
      maxEntries: 500,
    },
  },
}
Voor productie-omvang maxEntries-limieten gebruiken Gateway-runtime-schrijfacties een kleine high-water-buffer en schonen ze in batches terug naar de geconfigureerde limiet. Dit voorkomt dat volledige store-opschoning wordt uitgevoerd bij elke geisoleerde Cron-sessie. openclaw sessions cleanup --enforce past de limiet onmiddellijk toe. Bekijk een voorbeeld met openclaw sessions cleanup --dry-run.

Sessies inspecteren

  • openclaw status — pad van sessiestore en recente activiteit.
  • openclaw sessions --json — alle sessies (filter met --active <minutes>).
  • /status in chat — contextgebruik, model en toggles.
  • /context list — wat er in de systeemprompt staat.

Verder lezen

Gerelateerd