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.
Kanalen en routering
OpenClaw routeert antwoorden terug naar het kanaal waar een bericht vandaan kwam. Het model kiest geen kanaal; routering is deterministisch en wordt geregeld door de hostconfiguratie.Belangrijke termen
- Kanaal:
telegram,whatsapp,discord,irc,googlechat,slack,signal,imessage,line, plus Plugin-kanalen.webchatis het interne WebChat-UI-kanaal en is geen configureerbaar uitgaand kanaal. - AccountId: accountinstantie per kanaal (wanneer ondersteund).
- Optioneel standaardaccount voor kanaal:
channels.<channel>.defaultAccountkiest welk account wordt gebruikt wanneer een uitgaand pad geenaccountIdopgeeft.- Stel in configuraties met meerdere accounts een expliciete standaard in (
defaultAccountofaccounts.default) wanneer twee of meer accounts zijn geconfigureerd. Zonder dit kan fallback-routering de eerste genormaliseerde account-ID kiezen.
- Stel in configuraties met meerdere accounts een expliciete standaard in (
- AgentId: een geïsoleerde werkruimte + sessieopslag (“brein”).
- SessionKey: de bucketsleutel die wordt gebruikt om context op te slaan en gelijktijdigheid te regelen.
Vormen van sessiesleutels (voorbeelden)
Directe berichten worden standaard samengevoegd in de main-sessie van de agent:agent:<agentId>:<mainKey>(standaard:agent:main:main)
- Groepen:
agent:<agentId>:<channel>:group:<id> - Kanalen/ruimtes:
agent:<agentId>:<channel>:channel:<id>
- Slack/Discord-threads voegen
:thread:<threadId>toe aan de basissleutel. - Telegram-forumonderwerpen voegen
:topic:<topicId>in in de groepssleutel.
agent:main:telegram:group:-1001234567890:topic:42agent:main:discord:channel:123456:thread:987654
Routevastzetting voor main-DM
Wanneersession.dmScope main is, kunnen directe berichten één main-sessie delen.
Om te voorkomen dat de lastRoute van de sessie wordt overschreven door DM’s van niet-eigenaren,
leidt OpenClaw een vastgezette eigenaar af uit allowFrom wanneer al het volgende waar is:
allowFromheeft precies één niet-wildcarditem.- Het item kan worden genormaliseerd naar een concrete afzender-ID voor dat kanaal.
- De inkomende DM-afzender komt niet overeen met die vastgezette eigenaar.
lastRoute van de main-sessie over.
Beveiligde inkomende registratie
Kanaal-plugins kunnen een inkomend sessierecord markeren alscreateIfMissing: false
wanneer een beveiligd pad geen nieuwe OpenClaw-sessie mag maken. In die modus
kan OpenClaw metadata en lastRoute voor een bestaande sessie bijwerken, maar het
maakt geen route-only sessie-item alleen omdat er een bericht is waargenomen.
Routeringsregels (hoe een agent wordt gekozen)
Routering kiest één agent voor elk inkomend bericht:- Exacte peer-overeenkomst (
bindingsmetpeer.kind+peer.id). - Overeenkomst met bovenliggende peer (thread-overerving).
- Guild + rollen-overeenkomst (Discord) via
guildId+roles. - Guild-overeenkomst (Discord) via
guildId. - Team-overeenkomst (Slack) via
teamId. - Accountovereenkomst (
accountIdop het kanaal). - Kanaalovereenkomst (elk account op dat kanaal,
accountId: "*"). - Standaardagent (
agents.list[].default, anders het eerste item in de lijst, fallback naarmain).
peer, guildId, teamId, roles), moeten alle opgegeven velden overeenkomen voordat die binding van toepassing is.
De overeenkomende agent bepaalt welke werkruimte en sessieopslag worden gebruikt.
Broadcastgroepen (meerdere agents uitvoeren)
Met broadcastgroepen kun je meerdere agents uitvoeren voor dezelfde peer wanneer OpenClaw normaal zou antwoorden (bijvoorbeeld: in WhatsApp-groepen, na mention-/activatiecontrole). Configuratie:Configuratieoverzicht
agents.list: benoemde agentdefinities (werkruimte, model, enz.).bindings: koppel inkomende kanalen/accounts/peers aan agents.
Sessieopslag
Sessieopslag staat onder de statusmap (standaard~/.openclaw):
~/.openclaw/agents/<agentId>/sessions/sessions.json- JSONL-transcripten staan naast de opslag
session.store en {agentId}-templates.
Gateway- en ACP-sessiedetectie scant ook schijfgebaseerde agentopslag onder de
standaardhoofdmap agents/ en onder session.store-hoofdmappen met templates. Gedetecteerde
opslag moet binnen die opgeloste agenthoofdmap blijven en een normaal
sessions.json-bestand gebruiken. Symlinks en paden buiten de hoofdmap worden genegeerd.
WebChat-gedrag
WebChat koppelt aan de geselecteerde agent en gebruikt standaard de main-sessie van de agent. Hierdoor kun je met WebChat kanaaloverschrijdende context voor die agent op één plek zien.Antwoordcontext
Inkomende antwoorden bevatten:ReplyToId,ReplyToBodyenReplyToSenderwanneer beschikbaar.- Geciteerde context wordt toegevoegd aan
Bodyals een[Replying to ...]-blok.