Mga channel at routing¶
Iri-route ng OpenClaw ang mga tugon pabalik sa channel kung saan nanggaling ang isang mensahe. Ang model does not choose a channel; routing is deterministic and controlled by the host configuration.
Mga pangunahing termino¶
- Channel:
whatsapp,telegram,discord,slack,signal,imessage,webchat. - AccountId: per‑channel na instance ng account (kapag supported).
- AgentId: isang isolated na workspace + session store (“utak”).
- SessionKey: ang bucket key na ginagamit para mag-store ng context at magkontrol ng concurrency.
Mga hugis ng session key (mga halimbawa)¶
Ang mga direct message ay nagsasama-sama sa main session ng agent:
agent:<agentId>:<mainKey>(default:agent:main:main)
Ang mga group at channel ay nananatiling isolated bawat channel:
- Mga grupo:
agent:<agentId>:<channel>:group:<id> - Mga channel/room:
agent:<agentId>:<channel>:channel:<id>
Mga thread:
- Ang mga Slack/Discord thread ay nagdadagdag ng
:thread:<threadId>sa base key. - Ang mga Telegram forum topic ay ine-embed ang
:topic:<topicId>sa group key.
Mga halimbawa:
agent:main:telegram:group:-1001234567890:topic:42agent:main:discord:channel:123456:thread:987654
Mga patakaran sa routing (kung paano napipili ang agent)¶
Pinipili ng routing ang isang agent para sa bawat inbound na mensahe:
- Eksaktong peer match (
bindingsna maypeer.kind+peer.id). - Guild match (Discord) sa pamamagitan ng
guildId. - Team match (Slack) sa pamamagitan ng
teamId. - Account match (
accountIdsa channel). - Channel match (anumang account sa channel na iyon).
- Default agent (
agents.list[].default, kung hindi ay unang entry sa listahan, fallback samain).
Tinutukoy ng matched agent kung aling workspace at session store ang gagamitin.
Mga broadcast group (patakbuhin ang maraming agent)¶
Pinapayagan ka ng mga broadcast group na magpatakbo ng maraming agent para sa parehong peer kapag normal na magre-reply ang OpenClaw (halimbawa: sa mga WhatsApp group, pagkatapos ng mention/activation gating).
Config:
{
broadcast: {
strategy: "parallel",
"120363403215116621@g.us": ["alfred", "baerbel"],
"+15555550123": ["support", "logger"],
},
}
Tingnan: Broadcast Groups.
Pangkalahatang-ideya ng config¶
agents.list: mga pinangalanang definition ng agent (workspace, model, atbp.).bindings: pagma-map ng inbound channels/accounts/peers papunta sa mga agent.
Halimbawa:
{
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 storage¶
Ang mga session store ay nasa ilalim ng state directory (default ~/.openclaw):
~/.openclaw/agents/<agentId>/sessions/sessions.json- Ang mga JSONL transcript ay naka-store katabi ng store
Maaari mong i-override ang store path sa pamamagitan ng session.store at {agentId} templating.
Behavior ng WebChat¶
WebChat attaches to the selected agent and defaults to the agent’s main session. Because of this, WebChat lets you see cross‑channel context for that agent in one place.
Context ng reply¶
Kasama sa mga inbound reply ang:
ReplyToId,ReplyToBody, atReplyToSenderkapag available.- Ang quoted context ay idinadagdag sa
Bodybilang isang[Replying to ...]block.
Pare-pareho ito sa lahat ng channel.