まだ OpenClaw をインストールしていませんか?
パソコンへの影響が心配?ClawTank なら60秒でクラウドデプロイ、ファイルへのリスクゼロ。
OpenClaw を Telegram グループチャットに設定:設定、権限、マルチエージェント
OpenClaw は Telegram をファーストクラスのメッセージングインターフェースとしてサポートしています。1対1のボット会話は簡単ですが、グループチャットではメッセージルーティング、メンション検出、スパム防止、マルチエージェント調整に関する課題が生じます。このガイドでは、Telegram グループで OpenClaw ボットを運用するライフサイクル全体を解説します。
前提条件
- 動作する OpenClaw インストール(バージョン 0.9+)
- BotFather からの Telegram ボットトークン[1]
openclaw.json でダイレクトメッセージ用にボットが設定済み
- ターゲット Telegram グループの管理者アクセス
Telegram をまったく設定していない場合は、openclaw pairing approve telegram <CODE> から始めてください。
BotFather でボットを作成
- Telegram で
@BotFather を検索し、/newbot を送信
- 表示名とユーザー名(
bot で終わる必要あり)を選択
- トークンをコピー:
7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ボットをグループに追加
グループ設定から: グループ情報を開き、「メンバーを追加」をタップし、ボットを検索。
ボットプロフィールから: ボットチャットを開き、名前をタップし、「グループに追加」をタップし、ターゲットグループを選択。
グループチャット ID の発見
Telegram グループ ID は UI に表示されない負の数値です。OpenClaw はこの ID を設定に必要とします。
方法 1:ゲートウェイログを確認。 グループで任意のメッセージを送信し、以下を実行:
sudo journalctl -u openclaw.service -n 100 --no-pager | grep "chat"
以下を探します:[gateway] incoming message from chat_id: -1001234567890
方法 2:Telegram API に直接クエリ。 OpenClaw がポーリングしている場合、getUpdates はメッセージがすでに消費されているため空の結果を返す可能性があります[2]。まず OpenClaw を停止してください:
openclaw stop
# グループでメッセージを送信し、以下を実行:
curl -s "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates" | python3 -m json.tool
方法 3: グループメッセージを @getidsbot または @userinfobot に転送。
グループ ID の形式
| グループタイプ |
ID 形式 |
例 |
| 通常グループ |
負の数 |
-123456789 |
| スーパーグループ |
-100 で始まる |
-1001234567890 |
グループは一定のサイズに達するとスーパーグループに自動アップグレードされます(新しい ID を取得)。常に現在のスーパーグループ ID を使用してください。
グループ用の openclaw.json 設定
{
"telegram": {
"token": "7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"groups": {
"-1001234567890": {
"enabled": true,
"groupPolicy": "closed",
"requireMention": true,
"responseStyle": "concise",
"allowedCommands": ["ask", "summarize", "translate"],
"cooldown": 5
}
}
}
}
groupPolicy
open:グループ内の誰でもインタラクション可能。小規模で信頼できるグループ向け。
closed:登録された OpenClaw ユーザーのみがインタラクション可能。部外者が API クレジットを消費するのを防止。
admin-only:Telegram グループ管理者のみがインタラクション可能。
requireMention
true の場合、ボットは @yourbotname を含むメッセージにのみ応答します。グループではこれがほぼ常に望ましい設定です。これがないと、ボットはすべてのメッセージに応答しようとし、API クレジットを消費してチャットをスパムします。
responseStyle
concise:1-3文、グループの流れに最適
standard:通常の長さ、ダイレクトメッセージと同様
detailed:より多くのコンテキストを含む長い応答
cooldown
応答間の最小秒数。5秒以内に3つの @bot メッセージが到着した場合、最初のメッセージだけに返信されます。
@メンション動作
ボットはいくつかのメンション形式を認識します:
@openclaw_bot what is the weather? # 標準的なメンション
@openclaw_bot, summarize this thread # コンマ付きメンション
Reply to bot message: "tell me more" # 返信もメンションとしてカウント
メンションはメッセージのどこにでも配置できます。OpenClaw はメンションテキストを除去してから LLM に送信します。
返信ベースのコンテキスト: ボットのメッセージへの返信は継続としてカウントされ、繰り返し @メンションせずに自然なマルチターン会話が可能になります。
1つのグループに複数のエージェント
複数の OpenClaw エージェント(別々のインスタンスと別々のボットトークン)を同じグループで実行できます。それぞれ独自のパーソナリティ、スキル、ナレッジベースを持ちます。
{
"telegram": { "token": "TOKEN_1", "groups": { "-1001234567890": { "enabled": true, "requireMention": true } } },
"agent": { "name": "Research", "personality": "You are a research assistant..." }
}
{
"telegram": { "token": "TOKEN_2", "groups": { "-1001234567890": { "enabled": true, "requireMention": true } } },
"agent": { "name": "CodeReview", "personality": "You are a code reviewer..." }
}
エージェント間通信の Lobstalk スキル
openclaw skills install lobstalk
lobstalk を使用すると、エージェントは互いのメッセージを参照できます:
User: @research_bot find papers on transformer attention
Research: Here are 3 relevant papers...
User: @codereview_bot look at Research's summary and find implementations
CodeReview: Based on Research's findings...
連携パターン: シーケンシャルパイプライン(A の出力が B に供給)、パラレルコンサルテーション(同じ質問を複数のエージェントに)、スペシャリストルーティング(ルーターエージェントが委任)。
BotFather のプライバシーモード
Telegram ボットにはグループで受信するメッセージを制御するプライバシーモードがあります[3]。
有効(デフォルト): ボットは @メンション、自分のメッセージへの返信、/commands、サービスメッセージのみを受信。これは requireMention: true と一致します。
無効: ボットはすべてのメッセージを受信。切り替えるには:
- BotFather を開き、
/mybots を送信
- ボットを選択 > Bot Settings > Group Privacy > Disable
ボットが完全な会話認識を必要とする場合のみ無効にしてください。これにより requireMention: true でも OpenClaw インスタンスへのトラフィックが増加します。
混雑したグループでのスパム防止
レート制限(cooldown 使用):
{ "cooldown": 15 }
メッセージ長フィルター:
{ "messageFilters": { "minLength": 10, "maxLength": 2000, "ignoreForwarded": true } }
静かな時間帯:
{ "quietHours": { "enabled": true, "start": "23:00", "end": "07:00", "timezone": "UTC" } }
特定のユーザーをブロック:
{ "groups": { "-1001234567890": { "blockedUsers": [123456789] } } }
グループごとのカスタマイズ
各グループは個別のシステムプロンプトを含む独立した設定を取得します:
{
"telegram": {
"token": "YOUR_TOKEN",
"groups": {
"-1001234567890": {
"enabled": true,
"groupPolicy": "open",
"requireMention": true,
"systemPrompt": "You are a DevOps assistant. Focus on Docker, Kubernetes, and CI/CD."
},
"-1009876543210": {
"enabled": true,
"groupPolicy": "closed",
"systemPrompt": "You are a data science assistant. Focus on Python, pandas, and ML."
}
}
}
}
グループ管理コマンド
/status - ボットのステータスと稼働時間
/config - 現在のグループ設定(サニタイズ済み)
/pause - このグループでの応答を停止
/resume - 応答を再開
/clear - 会話コンテキストをクリア
/stats - 使用統計
スキルにマッピングするカスタムコマンドを定義:
{
"commands": {
"summarize": { "skill": "text-summarizer", "description": "Summarize last N messages" },
"translate": { "skill": "translator", "description": "Translate text" }
}
}
トラブルシューティング
ボットが応答しない: プライバシーモード、グループ ID、groupPolicy、requireMention 設定、ログ(journalctl -u openclaw -f)を確認してください。
ボットがすべてに応答する: requireMention: true を設定し、BotFather でプライバシーモードを有効にし、cooldown を増やしてください。
重複する応答: 複数のインスタンスが同じトークンをポーリング。1つのトークンにつき1つのインスタンスを確保してください。
コンテキストウィンドウの枯渇:
{ "groups": { "-1001234567890": { "maxContextMessages": 50, "contextWindow": "sliding" } } }
マネージド代替
インフラ管理なしでグループチャットボットを使いたいチームには、ClawTank が Web ダッシュボードを通じた Telegram グループ統合をサポートし、手動の JSON 編集やログ解析を不要にします。
まとめ
Telegram グループ統合の主要な設定判断は以下の通りです:
- グループポリシー(open/closed/admin-only)でアクセスを制御
- メンション必須 ですべてのメッセージへの応答を防止
- クールダウンとフィルター で API コストを管理
- グループごとのシステムプロンプト で動作をカスタマイズ
- プライバシーモード(BotFather)でメッセージの可視性を制御
これらの設定を正しく調整すれば、OpenClaw ボットは煩わしくならずにグループ会話に自然に参加します。
参考資料
- BotFather - Telegram Bot API
- Telegram Bot API - getUpdates
- Telegram Bot API - Privacy Mode