Kanały i routing
OpenClaw kieruje odpowiedzi z powrotem do kanału, z którego pochodziła wiadomość. Model nie wybiera kanału; routing jest deterministyczny i kontrolowany przez konfigurację hosta.Kluczowe pojęcia
- Kanał:
whatsapp,telegram,discord,slack,signal,imessage,webchat. - AccountId: instancja konta per kanał (jeśli obsługiwane).
- AgentId: izolowany obszar roboczy + magazyn sesji („mózg”).
- SessionKey: klucz koszyka używany do przechowywania kontekstu i kontroli współbieżności.
Kształty klucza sesji (przykłady)
Wiadomości bezpośrednie są łączone do głównej sesji agenta:agent:<agentId>:<mainKey>(domyślnie:agent:main:main)
- Grupy:
agent:<agentId>:<channel>:group:<id> - Kanały/pokoje:
agent:<agentId>:<channel>:channel:<id>
- Wątki Slack/Discord dołączają
:thread:<threadId>do klucza bazowego. - Tematy forum Telegrama osadzają
:topic:<topicId>w kluczu grupy.
agent:main:telegram:group:-1001234567890:topic:42agent:main:discord:channel:123456:thread:987654
Reguły routingu (jak wybierany jest agent)
Routing wybiera jednego agenta dla każdej wiadomości przychodzącej:- Dokładne dopasowanie rozmówcy (
bindingszpeer.kind+peer.id). - Dopasowanie nadrzędnego peera (dziedziczenie wątku).
- Wątki:
- Dopasowanie gildii (Discord) przez
guildId. - Dopasowanie zespołu (Slack) przez
teamId. - Dopasowanie konta (
accountIdna kanale). - Dopasowanie kanału (dowolne konto na tym kanale).
- Agent domyślny (
agents.list[].default, w przeciwnym razie pierwsza pozycja listy, awaryjniemain).
peer, guildId, teamId, roles), wszystkie podane pola muszą się zgadzać, aby to powiązanie miało zastosowanie.
Dopasowany agent determinuje, który obszar roboczy i magazyn sesji są używane.
Grupy rozgłoszeniowe (uruchamianie wielu agentów)
Grupy rozgłoszeniowe pozwalają uruchamiać wielu agentów dla tego samego rozmówcy gdy OpenClaw normalnie by odpowiedział (na przykład: w grupach WhatsApp, po bramkowaniu wzmianką/aktywacją). Konfiguracja:Przegląd konfiguracji
agents.list: nazwane definicje agentów (obszar roboczy, model itp.).bindings: mapowanie kanałów/kont/rozmówców przychodzących na agentów.
Przechowywanie sesji
Magazyny sesji znajdują się w katalogu stanu (domyślnie~/.openclaw):
~/.openclaw/agents/<agentId>/sessions/sessions.json- Transkrypty JSONL znajdują się obok magazynu
session.store oraz szablonowania {agentId}.
Zachowanie WebChat
WebChat dołącza do wybranego agenta i domyślnie używa głównej sesji agenta. Z tego powodu WebChat pozwala zobaczyć w jednym miejscu kontekst międzykanałowy dla tego agenta.Kontekst odpowiedzi
Odpowiedzi przychodzące zawierają:ReplyToId,ReplyToBodyorazReplyToSender, gdy są dostępne.- Cytowany kontekst jest dołączany do
Bodyjako blok[Replying to ...].