Grupper
OpenClaw behandlar gruppchattar konsekvent över ytor: WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Microsoft Teams.Nybörjarintro (2 minuter)
OpenClaw “lever” på dina egna meddelandekonton. Det finns ingen separat WhatsApp bot användare. Om du är i en grupp, kan OpenClaw se den gruppen och svara där. Standardbeteende:- Grupper är begränsade (
groupPolicy: "allowlist"). - Svar kräver en nämning om du inte uttryckligen inaktiverar nämningsstyrning.
TL;DRSnabbt flöde (vad som händer med ett gruppmeddelande):
- DM-åtkomst styrs av
*.allowFrom.- Gruppåtkomst styrs av
*.groupPolicy+ tillåtelselistor (*.groups,*.groupAllowFrom).- Utlösning av svar styrs av nämningsstyrning (
requireMention,/activation).
| Mål | Vad som ska ställas in |
|---|---|
| Tillåt alla grupper men svara bara på @-nämningar | groups: { "*": { requireMention: true } } |
| Inaktivera alla gruppsvar | groupPolicy: "disabled" |
| Endast specifika grupper | grupper: { "<group-id>": { ... } } (ingen "*" nyckel) |
| Endast du kan trigga i grupper | groupPolicy: "allowlist", groupAllowFrom: ["+1555..."] |
Sessionsnycklar
- Gruppsessioner använder sessionsnycklar
agent:<agentId>:<channel>:group:<id>(rum/kanaler använderagent:<agentId>:<channel>:channel:<id>). - Telegram-forumämnen lägger till
:topic:<threadId>till grupp-ID:t så att varje ämne får sin egen session. - Direktchattar använder huvudsessionen (eller per avsändare om konfigurerat).
- Heartbeats hoppas över för gruppsessioner.
Mönster: personliga DM + offentliga grupper (single agent)
Ja — detta fungerar bra om din ”personliga” trafik är DM och din ”offentliga” trafik är grupper. Varför: I enagent-läge landar DMs vanligtvis i main sessionsnyckeln (agent:main:main), medan grupper alltid använder icke-main sessionsnycklar (agent:main:<channel>:group:<id>). Om du aktiverar sandboxning med mode: "non-main", dessa gruppsessioner körs i Docker medan din huvudsakliga DM-session förblir on-host.
Detta ger dig ett agent-”hjärna” (delad arbetsyta + minne), men två exekveringslägen:
- DM: fulla verktyg (värd)
- Grupper: sandbox + begränsade verktyg (Docker)
Om du verkligen behöver separata arbetsytor/personas (“personliga” och “offentliga” får aldrig blandas), använd en andra agent + bindningar. Se Multi-Agent Routing.Exempel (DM på värd, grupper sandboxade + endast meddelandeverktyg):
workspaceAccess: "none" och montera endast tillåtna sökvägar i sandlådan:
- Konfigurationsnycklar och standardvärden: Gateway-konfiguration
- Felsökning av varför ett verktyg blockeras: Sandbox vs Tool Policy vs Elevated
- Detaljer om bind-mounts: Sandboxing
Visningsetiketter
- UI-etiketter använder
displayNamenär tillgängligt, formaterat som<channel>:<token>. #roomär reserverad för rum/kanaler; gruppchattar använderg-<slug>(gemener, mellanslag ->-, behåll#@+._-).
Gruppolicy
Styr hur grupp-/rumsmeddelanden hanteras per kanal:| Policy | Beteende |
|---|---|
"open" | Grupper kringgår tillåtelselistor; nämningsstyrning gäller fortfarande. |
"disabled" | Blockera alla gruppmeddelanden helt. |
"allowlist" | Tillåt endast grupper/rum som matchar den konfigurerade tillåtelselistan. |
groupPolicyär separat från nämningsstyrning (som kräver @-nämningar).- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams: använd
groupAllowFrom(fallback: explicitallowFrom). - Discord: allowlist använder
channels.discord.guilds.<id>.kanaler. - Slack: tillåtelselistan använder
channels.slack.channels. - Matrix: allowlist använder
channels.matrix.groups(rumsnummer, alias eller namn). Användchannels.matrix.groupAllowFromför att begränsa avsändare; per-rum-usersallowlists stöds också. - Grupp-DM styrs separat (
channels.discord.dm.*,channels.slack.dm.*). - Telegram-tillåtelselistan kan matcha användar-ID:n (
"123456789","telegram:123456789","tg:123456789") eller användarnamn ("@alice"eller"alice"); prefix är skiftlägesokänsliga. - Standard är
groupPolicy: "allowlist"; om din grupp-tillåtelselista är tom blockeras gruppmeddelanden.
groupPolicy(öppen/inaktiverad/tillåtelselista)- grupp-tillåtelselistor (
*.groups,*.groupAllowFrom, kanalspecifik tillåtelselista) - nämningsstyrning (
requireMention,/activation)
Nämningsstyrning (standard)
Gruppmeddelanden kräver ett omnämnande om de inte åsidosätts per grupp. Standard live per delsystem under*.groups."*".
Svaret på en bot meddelande räknas som ett implicit omnämnande (när kanalen stöder svar metadata). Detta gäller Telegram, WhatsApp, Slack, Discord och Microsoft Teams.
mentionPatternsär skiftlägesokänsliga regexar.- Ytor som tillhandahåller explicita nämningar släpps igenom; mönster är en fallback.
- Per-agent-åsidosättning:
agents.list[].groupChat.mentionPatterns(användbart när flera agenter delar en grupp). - Nämningsstyrning tillämpas endast när nämningsdetektion är möjlig (inbyggda nämningar eller när
mentionPatternsär konfigurerade). - Discord-standarder finns i
channels.discord.guilds."*"(kan åsidosättas per guild/kanal). - Grupphistorikkontext är insvept jämnt över kanaler och är väntande (meddelanden överhoppade på grund av omnämnande gating); använd
meddelanden. roupChat.historyLimitför den globala standarden ochkanaler.<channel>.historyLimit(ellerkanaler.<channel>.accounts.*.historyLimit) för åsidosättningar. Sätt0till att inaktivera.
Verktygsbegränsningar för grupp/kanal (valfritt)
Vissa kanal-konfigurer stöder begränsning av vilka verktyg som är tillgängliga inom en specifik grupp/rum/kanal.tools: tillåt/nekade verktyg för hela gruppen.toolsBySender: åsidosätter per avsändare inom gruppen (nycklar är avsändar-ID/användarnamn/e-post/telefonnummer beroende på kanal). Använd"*"som ett jokertecken.
- grupp/kanal
toolsBySender-match - grupp/kanal
tools - standard (
"*")toolsBySender-match - standard (
"*")tools
- Verktygsbegränsningar för grupp/kanal tillämpas utöver global/agent-verktygspolicy (nekande vinner fortfarande).
- Vissa kanaler använder olika häckning för rum/kanaler (t.ex. Discord
guilds.*.channels.*, Slackchannels.*, MS Teamsteams.*.channels.*).
Grupp-tillåtelselistor
Närchannels.whatsapp.groups, channels.telegram.groups, eller channels.imessage.groups är konfigurerad, tangenterna fungerar som en grupptillåten lista. Använd "*" för att tillåta alla grupper medan du fortfarande anger standardbeteende.
Vanliga avsikter (kopiera/klistra in):
- Inaktivera alla gruppsvar
- Tillåt endast specifika grupper (WhatsApp)
- Tillåt alla grupper men kräv nämning (explicit)
- Endast ägaren kan trigga i grupper (WhatsApp)
Aktivering (endast ägare)
Gruppägare kan växla per-grupp-aktivering:/activation mention/activation always
channels.whatsapp.allowFrom (eller botens själv E.164 när unset). Skicka kommandot som ett fristående meddelande. Andra ytor ignorerar för närvarande /activation.
Kontextfält
Inkommande grupppayloads sätter:ChatType=groupGroupSubject(om känt)GroupMembers(om känt)WasMentioned(resultat av nämningsstyrning)- Telegram-forumämnen inkluderar även
MessageThreadIdochIsForum.
\n sekvenser.
iMessage-specifikt
- Föredra
chat_id:<id>vid routing eller tillåtelselistor. - Lista chattar:
imsg chats --limit 20. - Gruppsvar går alltid tillbaka till samma
chat_id.