はじめに
プライベートチャットでは、AIアシスタントがすべてのメッセージに返信するのは妥当です。しかしグループチャットでは、すべてのメッセージに応答すると、チャンネルが埋め尽くされるだけでなく、不要なAPI呼び出しが大量に発生します。OpenClaw はきめ細かなグループチャット動作ルール設定を提供しており、AIがどのような条件で返信するか、どのように返信するか、誰に返信するかを制御できます。
グループチャットルールの概要
OpenClaw のグループチャットルール設定は openclaw.json の groupRules セクションにあります。
{
"groupRules": {
"triggerMode": "mention",
"mentionName": ["アシスタント", "AI", "bot"],
"commandPrefix": "/",
"replyToBot": true,
"ignoreOtherBots": true,
"cooldown": 0,
"maxResponseLength": 500,
"threadMode": "auto"
}
}
トリガーモード詳解
triggerMode はグループチャット動作の中核的な設定で、AIがどの条件でメッセージを処理するかを決定します。
mention モード(デフォルト)
{
"groupRules": {
"triggerMode": "mention"
}
}
メッセージにボットへの@メンションが含まれている場合のみ応答します。最も一般的なモードで、ほとんどのグループチャットシーンに適しています。各チャンネルの@メンション方式は以下のとおりです。
| チャンネル | メンション方式 |
|---|---|
| Telegram | @botusername |
| Discord | @Bot名 または <@botid> |
| Slack | @Bot名 |
@電話番号 |
|
| Matrix | @bot:server |
keyword モード
{
"groupRules": {
"triggerMode": "keyword",
"mentionName": ["アシスタント", "AIヘルパー", "openclaw"]
}
}
メッセージに mentionName リスト内のいずれかのキーワードが含まれている場合に返信をトリガーします。キーワードマッチングは大文字小文字を区別しません。@メンションが使いにくいプラットフォームでの使用に適しています。
command モード
{
"groupRules": {
"triggerMode": "command",
"commandPrefix": "/"
}
}
指定されたプレフィックスで始まるメッセージのみ処理します。例えばユーザーが /ask 今日の天気は? と送信すると、OpenClaw はプレフィックス以降の内容を質問として抽出します。
always モード
{
"groupRules": {
"triggerMode": "always"
}
}
グループチャットのすべてのメッセージに返信します。通常は小規模なプライベートグループでのみ使用します。
mixed モード
{
"groupRules": {
"triggerMode": "mixed",
"mentionName": ["アシスタント"],
"commandPrefix": "/"
}
}
@メンション、キーワード、コマンドプレフィックスの3つのトリガー方式を同時にサポートし、いずれかの条件を満たせば応答します。
コマンドプレフィックスの設定
AI返信のトリガーに加え、コマンドプレフィックスは特定のコマンドの実行にも使用できます。
{
"groupRules": {
"commandPrefix": "/",
"commands": {
"help": "ヘルプ情報を表示",
"model": "使用中のモデルを切り替え",
"clear": "現在のセッション履歴をクリア",
"status": "システム状態を表示"
}
}
}
ユーザーがグループチャットで /help を送信すると、OpenClaw はAIモデルに渡すのではなくヘルプ情報を返します。/ask あなたの質問 や既知のコマンドに一致しないプレフィックスメッセージは、AIに渡されて処理されます。
返信動作の設定
引用メッセージへの返信
{
"groupRules": {
"replyToBot": true,
"replyChainDepth": 3
}
}
replyToBot が true の場合、ユーザーが「返信」機能でAIの以前のメッセージに返信すると、@メンションがなくてもAIが応答します。replyChainDepth は返信チェーンの最大遡り深度を制御します——ユーザーが「別のユーザーがAIに返信したメッセージ」に返信した場合にもトリガーするかどうかを設定します。
他のボットの無視
{
"groupRules": {
"ignoreOtherBots": true
}
}
グループ内の他のボットとの「会話ループ」を防止します。有効にすると、OpenClaw は他のボットアカウントからのメッセージを無視します。
クールダウン時間
{
"groupRules": {
"cooldown": 5
}
}
2回の返信間の最小間隔(秒)です。活発なグループチャットでは、クールダウンを設定することでAIの返信が過密になるのを防げます。0 に設定するとクールダウン制限なしになります。
応答長の制限
{
"groupRules": {
"maxResponseLength": 500
}
}
グループチャットでのAI返信の最大文字数です。超過分は切り詰められ、「完全な返信を見るにはDMで」という案内が追加されます。この制限はグループチャットのみに有効で、プライベートチャットには影響しません。
スレッドモード
スレッド/トピックをサポートするプラットフォーム(Slack、Discord、Telegramスーパーグループなど)では、OpenClaw はスレッド機能を活用して会話を整理できます。
{
"groupRules": {
"threadMode": "auto",
"autoCreateThread": true,
"threadTitle": "AI会話"
}
}
| threadMode | 動作 |
|---|---|
"auto" |
ユーザーがスレッド内で@AIした場合はスレッド内で返信、それ以外はメインチャンネルで返信 |
"always" |
常にスレッド内で返信し、自動的にスレッドを作成 |
"never" |
常にメインチャンネルで返信し、スレッド機能を使用しない |
スレッドモードの利点は、AI会話を独立したスレッドに集約し、グループの通常のディスカッションを妨げないことです。
チャンネル別ルールのオーバーライド
異なるグループには異なるルールが必要な場合があります。OpenClaw はチャンネルタイプや特定のグループIDごとにグローバルグループチャットルールをオーバーライドできます。
{
"groupRules": {
"triggerMode": "mention",
"channelOverrides": {
"telegram": {
"triggerMode": "mixed",
"mentionName": ["アシスタント"]
},
"discord": {
"triggerMode": "command",
"commandPrefix": "!"
}
},
"groupOverrides": {
"-100123456789": {
"triggerMode": "always",
"maxResponseLength": 1000
}
}
}
}
優先順位は groupOverrides(特定グループ)> channelOverrides(チャンネルタイプ)> グローバル groupRules です。
グループチャットのコンテキスト処理
グループチャットのコンテキスト処理はプライベートチャットとは異なります。OpenClaw は2つのグループチャットコンテキスト戦略をサポートしています。
{
"groupRules": {
"contextMode": "mention-thread",
"includeOtherUsers": false
}
}
| contextMode | 動作 |
|---|---|
"full" |
グループチャットのすべてのメッセージ(他のユーザーのものを含む)をコンテキストに含める |
"mention-thread" |
AIに関連するメッセージチェーンのみをコンテキストに含める |
"isolated" |
各@メンションを独立した会話として扱い、履歴を保持しない |
includeOtherUsers は他のユーザー(質問者以外)のメッセージもコンテキストに含めるかどうかを制御します。「チームディスカッション」シーンでこのオプションを有効にすると、AIが完全なディスカッションの背景を理解できるようになります。
実践的な設定例
技術サポートグループ
{
"groupRules": {
"triggerMode": "mixed",
"mentionName": ["アシスタント"],
"commandPrefix": "/ask",
"replyToBot": true,
"cooldown": 2,
"maxResponseLength": 800,
"threadMode": "always",
"contextMode": "mention-thread"
}
}
雑談グループ
{
"groupRules": {
"triggerMode": "keyword",
"mentionName": ["アシスタント", "AI"],
"cooldown": 10,
"maxResponseLength": 300,
"contextMode": "isolated"
}
}
業務コラボレーショングループ
{
"groupRules": {
"triggerMode": "command",
"commandPrefix": "/",
"threadMode": "always",
"contextMode": "full",
"includeOtherUsers": true,
"maxResponseLength": 1500
}
}
グループチャットルールのデバッグ
グループチャットでAIが期待どおりに応答しない場合は、デバッグログを有効にできます。
openclaw gateway --log-level debug
ログで group-rules 関連のエントリを検索すると、各メッセージのトリガー判定プロセスを確認できます。
[DEBUG] group-rules: メッセージの送信元 telegram グループ -100123456789
[DEBUG] group-rules: トリガーモード=mention, @メンション検出=false, 返信チェーン=false
[DEBUG] group-rules: 判定結果: スキップ
まとめ
グループチャット動作ルールは、OpenClaw のマルチチャンネル管理で最も精密なチューニングが必要な部分です。核心は適切なトリガーモードの選択にあります——ほとんどのシーンで mention モードが最適な出発点となり、実際のグループの活発さや用途に応じてクールダウン時間、応答長、コンテキスト戦略を段階的に調整していきます。channelOverrides と groupOverrides を活用して異なるグループにルールをカスタマイズし、一律的な設定がユーザー体験に影響するのを避けましょう。