グループ
OpenClaw は、WhatsApp、Telegram、Discord、Slack、Signal、iMessage、Microsoft Teams といった各サーフェスにおいて、グループチャットを一貫した形で扱います。初心者向けイントロ(2 分)
あなた自身のメッセージングアカウントでOpenClawの「ライブ」。 別のWhatsAppボットユーザーはありません。 あなた自身のメッセージングアカウントでOpenClawの「ライブ」。 別のWhatsAppボットユーザーはありません。 あなたがグループにいる場合、OpenClawはそのグループを見ることができ、そこで応答します。 デフォルトの挙動:- グループは制限されています(
groupPolicy: "allowlist")。 - 明示的にメンションゲーティングを無効化しない限り、返信にはメンションが必要です。
TL;DRクイックフロー(グループメッセージで何が起きるか):
- DM アクセスは
*.allowFromにより制御されます。- グループアクセスは
*.groupPolicyと許可リスト(*.groups、*.groupAllowFrom)により制御されます。- 返信トリガーはメンションゲーティング(
requireMention、/activation)により制御されます。
| 目的 | 設定するもの |
|---|---|
| すべてのグループを許可し、@メンション時のみ返信 | groups: { "*": { requireMention: true } } |
| すべてのグループ返信を無効化 | groupPolicy: "disabled" |
| 特定のグループのみ許可 | groups: { "<group-id>": { ... } }("*" キーなし) |
| グループでトリガーできるのは自分のみ | groupPolicy: "allowlist"、groupAllowFrom: ["+1555..."] |
セッションキー
- グループセッションは
agent:<agentId>:<channel>:group:<id>セッションキーを使用します(ルーム / チャンネルはagent:<agentId>:<channel>:channel:<id>を使用)。 - Telegram のフォーラムトピックでは、グループ ID に
:topic:<threadId>が追加され、各トピックが独立したセッションになります。 - ダイレクトチャットはメインセッション(または設定により送信者ごと)を使用します。
- グループセッションではハートビートはスキップされます。
パターン:個人 DM + 公開グループ(単一エージェント)
はい。これは「個人的」なトラフィックが DM、「公開」トラフィックが グループである場合に非常によく機能します。 理由:単一エージェントモードでは、DM は通常 メイン セッションキー(agent:main:main)に入り、グループは常に 非メイン セッションキー(agent:main:<channel>:group:<id>)を使用します。mode: "non-main" でサンドボックス化を有効にすると、グループセッションは Docker 上で実行され、メインの DM セッションはホスト上に残ります。 mode: "non-main"でサンドボックス化を有効にした場合、メインDMセッションがホスト上にとどまりながら、Dockerで実行されます。 mode: "non-main"でサンドボックス化を有効にした場合、メインDMセッションがホスト上にとどまりながら、Dockerで実行されます。
これにより、1 つのエージェントの「頭脳」(共有ワークスペース + メモリ)を保ちつつ、2 種類の実行形態を持てます。
- DM:フルツール(ホスト)
- グループ:サンドボックス + 制限付きツール(Docker)
「個人」と「公開」を完全に分離したワークスペース / ペルソナ(決して混在させない)が必要な場合は、2 つ目のエージェントとバインディングを使用してください。マルチエージェントルーティング を参照してください。 マルチエージェントルーティングを参照。 マルチエージェントルーティングを参照。例(DM はホスト、グループはサンドボックス化 + メッセージング専用ツール):
workspaceAccess: "none" を維持し、許可リストにあるパスのみをサンドボックスにマウントしてください。 「ホストへのアクセスなし」ではなく「グループからはフォルダ X のみ参照可能」にしたい場合は、workspaceAccess: "none" を維持し、許可リストにあるパスのみをサンドボックスにマウントしてください。 \`workspaceAccess: “none”を保持し、許可されているパスのみサンドボックスにマウントします。
- 設定キーとデフォルト値:Gateway 設定
- ツールがブロックされる理由のデバッグ:サンドボックス vs ツールポリシー vs 昇格
- バインドマウントの詳細:サンドボックス化
表示ラベル
- UI ラベルは、利用可能な場合
displayNameを使用し、<channel>:<token>形式で表示されます。 #roomはルーム / チャンネル用に予約されています。グループチャットはg-<slug>を使用します(小文字、スペースは-に変換し、#@+._-は維持します)。
グループポリシー
チャンネルごとに、グループ / ルームメッセージの扱いを制御します。| ポリシー | 挙動 |
|---|---|
"open" | グループは許可リストをバイパスしますが、メンションゲーティングは適用されます。 |
"disabled" | すべてのグループメッセージを完全にブロックします。 |
"allowlist" | 設定された許可リストに一致するグループ / ルームのみ許可します。 |
groupPolicyはメンションゲーティング(@メンション必須)とは別物です。- WhatsApp / Telegram / Signal / iMessage / Microsoft Teams:
groupAllowFromを使用します(フォールバック:明示的なallowFrom)。 - Discord:許可リストは
channels.discord.guilds.<id>.channelsを使用します。 - Slack:許可リストは
channels.slack.channelsを使用します。 - Matrix: allowlist は
channels.matrix.groups(ルーム ID、エイリアス、または名前) を使用します。 Matrix:許可リストはchannels.matrix.groups(ルーム ID、エイリアス、または名前)を使用します。送信者を制限するにはchannels.matrix.groupAllowFromを使用してください。ルーム単位のusers許可リストもサポートされています。 Matrix:許可リストはchannels.matrix.groups(ルーム ID、エイリアス、または名前)を使用します。送信者を制限するにはchannels.matrix.groupAllowFromを使用してください。ルーム単位のusers許可リストもサポートされています。 - グループ DM は別途制御されます(
channels.discord.dm.*、channels.slack.dm.*)。 - Telegram の許可リストは、ユーザー ID(
"123456789"、"telegram:123456789"、"tg:123456789")またはユーザー名("@alice"または"alice")に一致させられます。プレフィックスは大文字小文字を区別しません。 - デフォルトは
groupPolicy: "allowlist"です。グループ許可リストが空の場合、グループメッセージはブロックされます。
groupPolicy(open / disabled / allowlist)- グループ許可リスト(
*.groups、*.groupAllowFrom、チャンネル固有の許可リスト) - メンションゲーティング(
requireMention、/activation)
メンションゲーティング(デフォルト)
グループメッセージは、グループごとに上書きされない限り、メンションが必要です。デフォルト設定は*.groups."*" 配下の各サブシステムに存在します。 グループメッセージは、グループごとに上書きされない限り、メンションが必要です。デフォルト設定は *.groups."*" 配下の各サブシステムに存在します。 デフォルトは *.groups."*"のサブシステム毎に動作します。
ボットのメッセージに返信する行為は、暗黙のメンションとして扱われます(チャンネルが返信メタデータをサポートしている場合)。これは Telegram、WhatsApp、Slack、Discord、Microsoft Teams に適用されます。 Telegram、WhatsApp、Slack、Discord、Microsoft Teamsに適用されます。
mentionPatternsは大文字小文字を区別しない正規表現です。- 明示的な言及を提供する表面は依然として通過します; パターンはフォールバックです。
- エージェント単位の上書き:
agents.list[].groupChat.mentionPatterns(複数エージェントが同じグループを共有する場合に有用)。 - メンションゲーティングは、メンション検出が可能な場合(ネイティブメンション、または
mentionPatternsが設定されている場合)にのみ適用されます。 - Discord のデフォルトは
channels.discord.guilds."*"にあります(ギルド / チャンネル単位で上書き可能)。 - グループ履歴コンテキストはチャンネル間で均一にラップされ、保留のみ (gatingへの言及により飛ばされたメッセージ);
messagesを使用します。 グローバルデフォルトの roupChat.historyLimitおよびchannel.<channel>.historyLimit(またはchannels.<channel>.accounts.*.historyLimit)を使用します。無効化するには0を設定してください。0を無効にします。0を無効にします。
グループ / チャンネルのツール制限(任意)
一部のチャンネル設定では、特定のグループ / ルーム / チャンネル内で利用可能なツールを制限できます。tools:グループ全体に対するツールの許可 / 拒否。toolsBySender:グループ内での送信者単位の上書き(キーはチャンネルに応じて送信者 ID / ユーザー名 / メール / 電話番号)。ワイルドカードには"*"を使用します。 ワイルドカードとして"*"を使用します。 ワイルドカードとして"*"を使用します。
- グループ / チャンネルの
toolsBySender一致 - グループ / チャンネルの
tools - デフォルト(
"*")のtoolsBySender一致 - デフォルト(
"*")のtools
- グループ / チャンネルのツール制限は、グローバル / エージェントのツールポリシーに追加で適用されます(拒否が常に優先)。
- 一部のチャンネルでは、ルーム / チャンネルのネスト構造が異なります(例:Discord
guilds.*.channels.*、Slackchannels.*、Microsoft Teamsteams.*.channels.*)。
グループ許可リスト
channels.whatsapp.groups、channels.telegram.groups、または channels.imessage.groups が設定されている場合、これらのキーはグループ許可リストとして機能します。すべてのグループを許可しつつ、デフォルトのメンション挙動を設定したい場合は "*" を使用してください。 デフォルトのメンション動作を設定しながら、すべてのグループを許可するには、"*" を使用します。 デフォルトのメンション動作を設定しながら、すべてのグループを許可するには、"*" を使用します。
よくある意図(コピー & ペースト):
- すべてのグループ返信を無効化
- 特定のグループのみ許可(WhatsApp)
- すべてのグループを許可し、メンション必須(明示)
- グループでトリガーできるのはオーナーのみ(WhatsApp)
アクティベーション(オーナーのみ)
グループオーナーは、グループ単位で有効 / 無効を切り替えられます。/activation mention/activation always
channels.whatsapp.allowFrom により判定されます(未設定の場合はボット自身の E.164)。コマンドは単独のメッセージとして送信してください。他のサーフェスでは現在 /activation は無視されます。 このコマンドをスタンドアロンメッセージとして送信します。 他のサーフェスは現在 /activation を無視します。
コンテキストフィールド
グループの受信ペイロードには以下が設定されます。ChatType=groupGroupSubject(既知の場合)GroupMembers(既知の場合)WasMentioned(メンションゲーティングの結果)- Telegram のフォーラムトピックでは、さらに
MessageThreadIdとIsForumが含まれます。
\nシーケンス。
iMessage 固有の注意点
- ルーティングや許可リストでは
chat_id:<id>を優先してください。 - チャット一覧:
imsg chats --limit 20。 - グループ返信は常に同じ
chat_idに返されます。