课程大纲
消息渠道(Channels)与交互体验优化
适用版本: OpenClaw v2026.4.11(stable) 验证日期: 2026-04-12 目标读者: 已理解 OpenClaw 架构,想让它能在手机/电脑上回复消息 难度: ⭐⭐ 入门偏中 适合首次阅读: 是——接好一个渠道就能继续学后面的技能篇
目标
成功接入至少一个消息渠道,实现手机、电脑随时和 OpenClaw 对话。
完成后你的 AI 助手能在真实的聊天软件里回复消息:私聊秒回、群聊 @触发、会话隔离、访问策略可控。
前置条件
- 已完成第 1 篇《5 分钟跑通 OpenClaw 最小可用环境》和第 2 篇《架构核心概念与配置管理(打地基)》
openclaw daemon status显示运行中- 至少一个消息平台的账号
渠道选择矩阵
OpenClaw 支持 20+ 消息渠道。不需要全接——根据你的场景选一个开始:
| 场景 | 推荐渠道 | 理由 |
|---|---|---|
| 个人自用,快速跑通 | Telegram | 接入最简单,5 分钟搞定,移动端体验好 |
| 国内个人用户 | 微信(WeChat 插件) | 日常用的就是微信,私聊直接用 |
| 国内团队协作 | 飞书(Feishu) | WebSocket 长连接,无需公网 IP,企业内部审批即可 |
| 海外团队 / 社区 | Discord 或 Slack | 社区用 Discord,工作用 Slack |
| 隐私优先 | Signal | 端到端加密,隐私场景首选 |
| 已有 Apple 生态 | iMessage(BlueBubbles) | 需要 macOS 常驻机器 |
| 海外即时通讯 | WhatsApp(Baileys) | 非官方 API,建议用专用号码 |
💡 建议: 先接一个渠道跑通全流程,确认稳定后再加第二个。不要一次接五六个,出问题很难定位。
一、必做:安全基线(先读再接)
📖 无论你接哪个渠道,都必须理解以下安全机制。
DM 访问策略(dmPolicy)
每个渠道都有 dmPolicy 配置,控制谁能给 Bot 发私聊消息:
| 策略 | 行为 | 适用场景 |
|---|---|---|
"pairing"(默认) | 陌生人发消息时收到配对码,需你在终端审批 openclaw pairing approve | ✅ 个人使用推荐 |
"allowlist" | 只有 allowFrom 列表中的用户 ID 能对话,其他人静默忽略 | ✅ 固定成员场景 |
"open" | 任何人都能对话(需显式设置 allowFrom: ["*"]) | ⚠️ 公开服务才用 |
"disabled" | 禁用所有私聊 | 只用群聊的场景 |
群聊安全策略
群聊有独立的访问控制,和私聊互不影响:
groupPolicy:控制群聊中谁能触发 Bot("allowlist"/"open"/"disabled")requireMention:是否必须 @Bot 才触发(强烈建议true)groups:按群 ID 设置独立策略
⚠️ 重要: 私聊配对审批不会自动授权群聊权限。群聊需要单独配置
groupPolicy和groups。
如何找到你的用户 ID
大多数渠道的 allowFrom 需要填数字 ID(不是用户名)。最可靠的方法:
- 给你的 Bot 发一条消息
- 运行
openclaw logs --follow - 在日志中找到
from.id字段
二、渠道接入实操
每个渠道按统一结构:适用场景 → 前置条件 → 最小接入 → 安全配置 → 验证。
Telegram ✅ 推荐首选
适用场景: 个人自用、移动端体验好、接入最简单。
前置条件: Telegram 账号 + 能访问 @BotFather。
最小接入步骤:
- 在 Telegram 中搜索
@BotFather,发送/newbot,按提示创建,拿到 Bot Token - 配置
openclaw.json(JSON5 格式):
json5{ channels: { telegram: { // ⚠️ 请替换:把下面的 Token 换成 BotFather 给你的真实值 botToken: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz", dmPolicy: "pairing", // 首次对话需配对审批 groups: { "*": { requireMention: true }, // 群聊必须 @Bot }, }, }, }
- 重启 Gateway 并完成配对:
bashopenclaw daemon restart # 在 Telegram 给 Bot 发一条消息,会收到配对码 openclaw pairing approve telegram <配对码>
安全注意:
dmPolicy: "pairing"是默认值,首次使用最安全- 如果你是唯一用户,确认 ID 后可以切换到
dmPolicy: "allowlist"+allowFrom: ["你的数字ID"],更持久 - 群聊中 Bot 默认不读取非 @Bot 的消息。如果需要读取所有消息,需在 BotFather 中
/setprivacy关闭隐私模式或将 Bot 设为群管理员
验证: 在 Telegram 私聊 Bot 发送消息,配对审批后收到 AI 回复即成功。
微信(WeChat 插件)
适用场景: 国内个人用户,日常微信直接对话。
前置条件: 微信账号 + OpenClaw >= v2026.3.22。
⚠️ 注意: 建议用专用微信号接入,不要用个人主力号。
最小接入步骤:
- 安装微信渠道插件:
bashopenclaw plugins install "@tencent-weixin/openclaw-weixin"
- 扫码登录:
bashopenclaw channels login --channel openclaw-weixin
终端会显示二维码,用微信扫码确认授权。
- 配置访问策略(
openclaw.json):
json5{ channels: { "openclaw-weixin": { dmPolicy: "pairing", groups: { "*": { requireMention: true }, }, }, }, }
bashopenclaw daemon restart
安全注意:
- 微信插件目前仅支持私聊
- 和其他渠道一样通过
dmPolicy控制访问
验证: 用另一个微信号给你发消息,完成配对后收到 AI 回复即成功。
飞书(Feishu)— 国内团队推荐
适用场景: 国内团队协作,企业内部使用。
前置条件: 飞书工作区管理员权限(或能创建自建应用)。
最小接入步骤:
-
登录飞书开放平台,创建企业自建应用
-
在「凭证与基本信息」中复制 App ID(
cli_xxx)和 App Secret -
在「权限管理」中批量导入所需权限(
im:message、im:message:send_as_bot、im:resource等) -
在「应用能力」中启用机器人
-
在「事件与回调」中选择使用长连接接收事件,订阅
im.message.receive_v1 -
创建版本并提交发布
-
配置
openclaw.json:
json5{ channels: { feishu: { // ⚠️ 请替换:App ID 和 App Secret 换成你的真实值 domain: "feishu", // 国际版 Lark 改为 "lark" connectionMode: "websocket", dmPolicy: "pairing", defaultAccount: "main", accounts: { main: { appId: "cli_xxxxx", appSecret: "你的 App Secret", name: "AI 助手", }, }, }, }, }
bashopenclaw daemon restart
安全注意:
- WebSocket 模式不需要公网 IP 或回调 URL,OpenClaw 主动连接飞书服务器
verificationToken和encryptKey仅 Webhook 模式需要,WebSocket 模式无需配置- 国际版 Lark 只需改
domain: "lark"和使用open.larksuite.com
验证: 在飞书中找到 Bot 私聊发消息 → 终端出现配对码 → openclaw pairing approve feishu <配对码> → 收到回复即成功。
Discord
适用场景: 海外团队 / 社区。
前置条件: Discord 账号 + 在 Developer Portal 创建 Application。
最小接入步骤:
- 在 Developer Portal 创建 Application → Bot → 复制 Token
- 必须开启 Privileged Gateway Intents 中的 Message Content Intent,否则 Bot 无法读取消息内容
- 配置:
json5{ channels: { discord: { // ⚠️ 请替换:换成你的 Discord Bot Token token: "你的 Discord Bot Token", dmPolicy: "pairing", }, }, }
bashopenclaw daemon restart
安全注意: 记得在 Developer Portal 生成 OAuth2 邀请链接(勾选 bot + applications.commands 权限)并把 Bot 加入你的服务器。
验证: 在 Discord 私聊或 @Bot 发消息 → 配对审批 → 收到回复。
Slack
适用场景: 工作场景,已有 Slack Workspace。
前置条件: Slack Workspace 管理员权限 + 在 Slack API 创建 App。
最小接入步骤:
- 创建 Slack App → 启用 Socket Mode → 获取 Bot Token(
xoxb-)和 App Token(xapp-) - 配置:
json5{ channels: { slack: { // ⚠️ 请替换:换成你的真实 Token token: "xoxb-your-bot-token", appToken: "xapp-your-app-token", dmPolicy: "pairing", }, }, }
bashopenclaw daemon restart
安全注意: Socket Mode 不需要公网 URL,和飞书的 WebSocket 模式类似。
验证: 在 Slack 私聊 Bot 或 @Bot → 配对审批 → 收到回复。
WhatsApp(Baileys)
适用场景: 海外即时通讯,个人使用。
前置条件: WhatsApp 账号(强烈建议用专用号码)+ Node.js 运行时(Bun 不兼容)。
最小接入步骤:
- 添加 WhatsApp 渠道并扫码登录:
bashopenclaw channels add --channel whatsapp openclaw channels login --channel whatsapp
-
终端显示 QR 码,用 WhatsApp 扫码完成配对
-
配置访问策略:
json5{ channels: { whatsapp: { dmPolicy: "pairing", // ⚠️ 请替换:换成你的手机号(含国际区号) allowFrom: ["+8613800138000"], }, }, }
bashopenclaw daemon restart
安全注意:
- WhatsApp 使用 Baileys(非官方 API),有封号风险,务必用专用号码
- Session 可能过期需要重新扫码
- 媒体上限 50MB,文字上限 4000 字符
验证: 用另一个 WhatsApp 号给你发消息 → 配对审批 → 收到回复。
三、可选:体验优化
📌 以下都是可选配置。接好渠道、安全策略到位后,这些可以慢慢调。
多渠道并行
所有渠道可以同时启用。每个渠道、每个用户的会话完全独立:
- Telegram 私聊 ≠ 微信私聊 ≠ Discord 私聊
- 同一个群里不同用户各自独立
- 切换渠道不会丢失上下文(但也不会共享)
媒体支持
OpenClaw 支持处理图片、语音、文档等多种媒体类型,但不同渠道支持程度不同:
| 媒体类型 | Telegram | 微信 | Discord | Slack | 飞书 | |
|---|---|---|---|---|---|---|
| 图片 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 语音 | ✅ | ✅ | ✅ | - | ✅ | ✅ |
| 文档 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 视频 | ✅ | ✅ | ✅ | - | ✅ | ✅ |
- 图片分析:直接发图给 Bot,AI 自动调用视觉能力分析(需模型支持多模态)
- 语音消息:OpenClaw 自动转写为文字后处理
- 大文件:超过 50MB 的文件建议先上传到云存储,发链接给 Bot
关于模型选择和工具权限
第 2 篇《架构核心概念与配置管理(打地基)》讲过模型路由的配置方式(agents.defaults.model),那里的配置是全局生效的,所有渠道共享同一个模型和降级策略。
如果你需要针对不同场景使用不同模型或工具权限(比如工作渠道用强模型、个人渠道用低成本模型),可以通过配置多个 Agent(agents.list[])来实现差异化,而不是在渠道配置里指定模型。这属于进阶用法,详见第 8 篇《自动化、多 Agent 与高级执行(核心生产力)》。
隐私保护
- 所有会话数据存储在本地 Workspace,不经过第三方
- 群聊中 Bot 只处理 @它的消息(
requireMention: true时),不会「偷听」其他对话
验证清单
bash# 1. 守护进程运行正常 openclaw daemon status # 2. 渠道在线 openclaw channels status # 3. 私聊正常 # 给 Bot 发消息 → 完成配对 → 确认收到回复 # 4. 群聊 @触发正常(如果配了群聊) # 在群里不 @Bot 发消息 → 不应回复 # 在群里 @Bot 发消息 → 应该回复 # 5. 查看日志排查问题 openclaw logs --follow
常见问题
Q: Bot 创建成功了但不回复消息?
按顺序排查:Token / 凭证是否正确复制(无多余空格)→ openclaw daemon status 是否运行中 → openclaw logs --follow 查看报错 → 配对是否已审批(openclaw pairing list <渠道名>)。
Q: 群聊里 Bot 回复每一条消息,停不下来?
群聊配置中 requireMention 没设为 true。修改后大部分配置会自动热重载生效。
Q: 飞书接入后收不到消息?
按顺序排查:事件订阅是否选了「长连接」模式 → im.message.receive_v1 事件是否已订阅 → App ID / App Secret 是否正确 → 权限是否已批量导入并审批通过 → 应用版本是否已发布。详见官方飞书文档。
Q: WhatsApp 扫码后几天就断了?
Baileys session 会过期,这是非官方 API 的限制。重新执行 openclaw channels login --channel whatsapp 扫码即可。如果频繁断连,检查网络稳定性。
Q: 多渠道同时在线会不会影响性能?
不会。每个渠道只是一个轻量事件监听器,只有收到消息时才触发 Agent Runtime。10 个渠道同时在线的资源消耗可以忽略不计。
Q: 配对码过期了怎么办?
配对码默认 1 小时过期。让用户重新发一条消息即可生成新的配对码。
下一步
接好一个渠道就够了。 不需要一次接完所有平台,后续随时可以回来加新渠道。
现在去第 4 篇《技能(Skills)与工具生态 · ClawHub 实战》,给你的 OpenClaw 装上技能,让它从「聊天工具」变成「能真正做事的 AI 助手」。