Kanaler & routing¶
OpenClaw ruter besvarer tilbage til kanalen, hvor en meddelelse kom fra. -modellen vælger ikke en kanal; routing er deterministisk og styres af -værtens konfiguration.
Nøglebegreber¶
- Kanal:
whatsapp,telegram,discord,slack,signal,imessage,webchat. - AccountId: pr.-kanal konto-instans (når understøttet).
- AgentId: et isoleret workspace + session‑lager (“hjerne”).
- SessionKey: bucket-nøglen, der bruges til at gemme kontekst og styre samtidighed.
Session key-former (eksempler)¶
Direkte beskeder samles i agentens hoved-session:
agent:<agentId>:<mainKey>(standard:agent:main:main)
Grupper og kanaler forbliver isoleret pr. kanal:
- Grupper:
agent:<agentId>:<channel>:group:<id> - Kanaler/rum:
agent:<agentId>:<channel>:channel:<id>
Tråde:
- Slack/Discord-tråde tilføjer
:thread:<threadId>til basisnøglen. - Telegram-forumemner indlejrer
:topic:<topicId>i gruppenøglen.
Eksempler:
agent:main:telegram:group:-1001234567890:topic:42agent:main:discord:channel:123456:thread:987654
Ruteringsregler (hvordan en agent vælges)¶
Routing vælger én agent for hver indgående besked:
- Præcis peer-match (
bindingsmedpeer.kind+peer.id). - Guild-match (Discord) via
guildId. - Team-match (Slack) via
teamId. - Account-match (
accountIdpå kanalen). - Kanal-match (enhver konto på den kanal).
- Standardagent (
agents.list[].default, ellers første listepost, fallback tilmain).
Den matchede agent afgør, hvilket workspace og hvilket session‑lager der bruges.
Broadcast-grupper (kør flere agenter)¶
Broadcast-grupper lader dig køre flere agenter for den samme peer når OpenClaw normalt ville svare (for eksempel: i WhatsApp-grupper, efter mention/aktiverings-gating).
Konfiguration:
{
broadcast: {
strategy: "parallel",
"120363403215116621@g.us": ["alfred", "baerbel"],
"+15555550123": ["support", "logger"],
},
}
Se: Broadcast Groups.
Konfigurationsoversigt¶
agents.list: navngivne agentdefinitioner (workspace, model m.m.).bindings: kortlægger indgående kanaler/konti/peers til agenter.
Eksempel:
{
agents: {
list: [{ id: "support", name: "Support", workspace: "~/.openclaw/workspace-support" }],
},
bindings: [
{ match: { channel: "slack", teamId: "T123" }, agentId: "support" },
{ match: { channel: "telegram", peer: { kind: "group", id: "-100123" } }, agentId: "support" },
],
}
Session‑lager¶
Session‑lagre ligger under state‑mappen (standard ~/.openclaw):
~/.openclaw/agents/<agentId>/sessions/sessions.json- JSONL‑transkripter ligger side om side med lageret
Du kan tilsidesætte lagerstien via session.store og {agentId} templating.
WebChat-adfærd¶
WebChat knytter sig til den ** valgte agent ** og standard til agentens vigtigste session. På grund af dette, WebChat giver dig mulighed for at se cross-channel sammenhæng for at agent på ét sted.
Svarkontekst¶
Indgående svar indeholder:
ReplyToId,ReplyToBodyogReplyToSendernår tilgængeligt.- Citeret kontekst føjes til
Bodysom en[Replying to ...]‑blok.
Dette er konsistent på tværs af kanaler.