接入 WhatsApp / Telegram / Discord
OpenClaw 原生支持三大国际主流通讯平台:WhatsApp、Telegram 和 Discord。这三个渠道都是 OpenClaw 内置的,不需要额外安装插件。本篇将分别介绍每个平台的接入方式、配置方法和注意事项。
一、WhatsApp 接入
WhatsApp 是全球用户量最大的即时通讯应用。OpenClaw 通过 Baileys(WhatsApp Web 协议的开源实现)来接入 WhatsApp,需要通过手机扫码配对建立连接。
1.1 准备工作
你需要一个可用的手机号码来注册 WhatsApp。强烈建议使用一个独立的手机号,而不是你的个人号码。原因如下:
- 独立号码可以让路由更清晰,避免个人消息和 AI 回复混淆
- 减少误触发的风险
- 如果出现问题,不会影响你的个人 WhatsApp
号码获取建议:
- 使用当地运营商的 eSIM 或预付费 SIM 卡
- 号码只需接收一次验证短信,之后 WhatsApp Web 会话通过
creds.json保持 - 避免使用 TextNow、Google Voice 等虚拟号码,WhatsApp 会封锁这些号码
1.2 QR 扫码配对
配置完成后,使用以下命令进行 QR 扫码配对:
# 默认账号登录
openclaw channels login
# 指定账号登录(多账号场景)
openclaw channels login --account work终端会显示一个 QR 码,用你的 WhatsApp 手机端扫描即可完成配对。操作路径:WhatsApp → 设置 → 已关联的设备 → 关联设备。
登录凭证会保存在 ~/.openclaw/credentials/whatsapp/<accountId>/creds.json,下次启动时自动使用。
1.3 配置示例
最简配置(推荐新手使用):
{
"channels": {
"whatsapp": {
"dmPolicy": "allowlist",
"allowFrom": ["+8613800138000"]
}
}
}完整配置示例:
{
"channels": {
"whatsapp": {
"dmPolicy": "allowlist",
"allowFrom": ["+8613800138000", "+8613900139000"],
"groupPolicy": "allowlist",
"groups": {
"*": {
"requireMention": true
}
},
"sendReadReceipts": true,
"ackReaction": {
"emoji": "👀",
"direct": true,
"group": "mentions"
},
"textChunkLimit": 4000,
"mediaMaxMb": 50
}
}
}1.4 DM 策略(dmPolicy)
WhatsApp 的 DM 策略有以下几种模式:
| 策略 | 说明 |
|---|---|
pairing | 默认值。未知发送者会收到一个配对码,你需要手动批准 |
allowlist | 只有 allowFrom 列表中的号码才能与 AI 对话 |
open | 对所有人开放(需要 allowFrom: ["*"]) |
disabled | 关闭所有 DM |
批准配对码的命令:
openclaw pairing approve whatsapp <code>1.5 群聊支持
WhatsApp 群组默认需要 @mention 才会触发 AI 回复。可以通过 /activation always 命令切换为始终回复模式(仅群主可操作)。
群组会话隔离在独立的 session 中:agent:<agentId>:whatsapp:group:<jid>。
1.6 多账号支持
OpenClaw 支持在同一个 Gateway 中运行多个 WhatsApp 账号:
{
"channels": {
"whatsapp": {
"accounts": {
"personal": {
"allowFrom": ["+8613800138000"],
"sendReadReceipts": false
},
"work": {
"allowFrom": ["+8613900139000"],
"ackReaction": {
"emoji": "✅"
}
}
}
}
}
}每个账号需要单独执行 openclaw channels login --account <id> 进行扫码配对。
二、Telegram 接入
Telegram 是最容易接入的平台之一。OpenClaw 使用 grammY 框架(TypeScript 实现的 Telegram Bot API 客户端)来连接 Telegram Bot。
2.1 创建 Telegram Bot
- 在 Telegram 中搜索 @BotFather 并开始对话
- 发送
/newbot命令 - 按提示输入 Bot 名称(显示名)和用户名(必须以
bot结尾,如my_openclaw_bot) - BotFather 会返回一个 Bot Token,格式类似:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - 妥善保管这个 Token,它就是你 Bot 的”密码”
额外设置(可选但推荐):
- 发送
/setprivacy→ 选择你的 Bot → 设为Disable,这样 Bot 能看到群组中的所有消息(而不仅仅是 @mention 和命令) - 发送
/setdescription为你的 Bot 添加描述
2.2 配置示例
最简配置:
{
"channels": {
"telegram": {
"botToken": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
}
}
}完整配置示例:
{
"channels": {
"telegram": {
"botToken": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz",
"dmPolicy": "pairing",
"allowFrom": ["your_telegram_username"],
"groupPolicy": "allowlist",
"groupAllowFrom": ["*"],
"groups": {
"*": {
"requireMention": true
}
},
"linkPreview": false,
"mediaMaxMb": 50
}
}
}你也可以通过环境变量设置 Token(配置文件优先级更高):
export TELEGRAM_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrsTUVwxyz"2.3 DM 策略与 allowFrom
Telegram 的 DM 策略与 WhatsApp 类似,支持 pairing、allowlist、open、disabled 四种模式。
allowFrom 使用 Telegram 用户名(不是数字 ID):
{
"channels": {
"telegram": {
"dmPolicy": "allowlist",
"allowFrom": ["alice", "bob"]
}
}
}2.4 群组支持
Telegram 群组中,Bot 默认需要被 @mention 才会响应。群组会话隔离在:agent:<agentId>:telegram:group:<chatId>。
群组配置选项:
groupPolicy:open、allowlist(默认)、disabledgroupAllowFrom:群组发送者白名单groups:按群组 ID 配置特定规则
2.5 Webhook 模式(可选)
默认情况下,OpenClaw 使用**长轮询(long-poll)**模式接收 Telegram 消息。如果你的服务器有公网地址,可以切换为 Webhook 模式以获得更低延迟:
{
"channels": {
"telegram": {
"botToken": "...",
"webhookUrl": "https://your-domain.com/telegram/webhook",
"webhookSecret": "your-random-secret-string"
}
}
}2.6 代理设置
如果你的网络环境无法直接访问 Telegram API,可以配置代理:
{
"channels": {
"telegram": {
"botToken": "...",
"proxy": "http://127.0.0.1:7890"
}
}
}三、Discord 接入
Discord 是全球最受欢迎的社群通讯平台之一。OpenClaw 通过 Discord Bot API + Gateway 实现接入,支持服务器频道、DM 和群组 DM。
3.1 创建 Discord Bot
- 前往 Discord Developer Portal
- 点击 New Application,输入应用名称
- 在左侧菜单中进入 Bot 页面
- 点击 Reset Token 获取 Bot Token(只显示一次,请妥善保存)
- 重要: 开启以下 Intents:
- ✅ Message Content Intent(必须,否则无法读取消息内容)
- ✅ Server Members Intent(推荐,用于 allowlist 和用户名查找)
- 进入 OAuth2 → URL Generator:
- Scopes 选择
bot - Bot Permissions 至少选择:
Send Messages、Read Message History、View Channels - 复制生成的邀请链接,在浏览器中打开,选择你的服务器完成邀请
- Scopes 选择
3.2 配置示例
最简配置:
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_DISCORD_BOT_TOKEN"
}
}
}你也可以通过环境变量设置:
export DISCORD_BOT_TOKEN="YOUR_DISCORD_BOT_TOKEN"完整配置示例:
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_DISCORD_BOT_TOKEN",
"dm": {
"policy": "pairing",
"allowFrom": ["your_discord_user_id"],
"groupEnabled": false
},
"guilds": {
"123456789012345678": {
"channels": {
"general": {
"requireMention": true
},
"ai-chat": {
"requireMention": false
}
}
}
},
"historyLimit": 20
}
}
}3.3 DM 支持
Discord DM 默认使用 pairing 策略。DM 消息会合并到 agent 的主会话(agent:main:main)中。
DM 策略选项:
pairing(默认):未知用户收到配对码,需手动批准allowlist:只允许allowFrom中的用户 IDopen:对所有人开放(需allowFrom: ["*"])disabled:关闭 DM
批准配对码:
openclaw pairing approve discord <code>3.4 服务器(Guild)频道支持
每个服务器频道会映射到独立的会话:agent:<agentId>:discord:channel:<channelId>。
默认行为是需要 @mention Bot 才会触发回复。你可以针对特定频道设置 requireMention: false 让 Bot 响应所有消息。
3.5 斜杠命令
OpenClaw 默认会自动注册 Discord 斜杠命令(commands.native 默认为 "auto")。用户可以通过 / 触发各种命令。如果不需要,可以在配置中关闭:
{
"channels": {
"discord": {
"commands": {
"native": false
}
}
}
}3.6 Reactions 表情回复
OpenClaw 的 agent 可以在 Discord 中发送表情 reactions。通过 discord 工具实现,需要当前渠道为 Discord 时才可用。
通用注意事项
- 安全第一:三个平台的 DM 都默认启用
pairing策略,防止陌生人未经授权使用你的 AI 助手 - 配置文件位置:所有配置都在
~/.openclaw/openclaw.json的channels字段中 - 启动 Gateway:配置完成后,运行
openclaw gateway start或openclaw gateway restart使配置生效 - 多渠道并行:WhatsApp、Telegram、Discord 可以同时运行,OpenClaw 会自动按聊天来源路由消息
- 群聊上下文:群聊中 OpenClaw 会注入最近的历史消息作为上下文,通过
historyLimit控制数量
💬 有问题或建议? 欢迎在下方评论区留言讨论。