课程大纲
课程大纲系列主页
学习进度已完成 0/12

消息渠道(Channels)与交互体验优化

入门进行中

适用版本: OpenClaw v2026.4.11(stable) 验证日期: 2026-04-12 目标读者: 已理解 OpenClaw 架构,想让它能在手机/电脑上回复消息 难度: ⭐⭐ 入门偏中 适合首次阅读: 是——接好一个渠道就能继续学后面的技能篇

目标

成功接入至少一个消息渠道,实现手机、电脑随时和 OpenClaw 对话。

完成后你的 AI 助手能在真实的聊天软件里回复消息:私聊秒回、群聊 @触发、会话隔离、访问策略可控。

前置条件


渠道选择矩阵

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 设置独立策略

⚠️ 重要: 私聊配对审批不会自动授权群聊权限。群聊需要单独配置 groupPolicygroups

如何找到你的用户 ID

大多数渠道的 allowFrom 需要填数字 ID(不是用户名)。最可靠的方法:

  1. 给你的 Bot 发一条消息
  2. 运行 openclaw logs --follow
  3. 在日志中找到 from.id 字段

二、渠道接入实操

每个渠道按统一结构:适用场景 → 前置条件 → 最小接入 → 安全配置 → 验证

Telegram ✅ 推荐首选

适用场景: 个人自用、移动端体验好、接入最简单。

前置条件: Telegram 账号 + 能访问 @BotFather。

最小接入步骤:

  1. 在 Telegram 中搜索 @BotFather,发送 /newbot,按提示创建,拿到 Bot Token
  2. 配置 openclaw.json(JSON5 格式):
json5
{
  channels: {
    telegram: {
      // ⚠️ 请替换:把下面的 Token 换成 BotFather 给你的真实值
      botToken: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz",
      dmPolicy: "pairing",  // 首次对话需配对审批
      groups: {
        "*": { requireMention: true },  // 群聊必须 @Bot
      },
    },
  },
}
  1. 重启 Gateway 并完成配对:
bash
openclaw 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。

⚠️ 注意: 建议用专用微信号接入,不要用个人主力号。

最小接入步骤:

  1. 安装微信渠道插件:
bash
openclaw plugins install "@tencent-weixin/openclaw-weixin"
  1. 扫码登录:
bash
openclaw channels login --channel openclaw-weixin

终端会显示二维码,用微信扫码确认授权。

  1. 配置访问策略(openclaw.json):
json5
{
  channels: {
    "openclaw-weixin": {
      dmPolicy: "pairing",
      groups: {
        "*": { requireMention: true },
      },
    },
  },
}
bash
openclaw daemon restart

安全注意:

  • 微信插件目前仅支持私聊
  • 和其他渠道一样通过 dmPolicy 控制访问

验证: 用另一个微信号给你发消息,完成配对后收到 AI 回复即成功。

飞书(Feishu)— 国内团队推荐

适用场景: 国内团队协作,企业内部使用。

前置条件: 飞书工作区管理员权限(或能创建自建应用)。

最小接入步骤:

  1. 登录飞书开放平台,创建企业自建应用

  2. 在「凭证与基本信息」中复制 App IDcli_xxx)和 App Secret

  3. 在「权限管理」中批量导入所需权限(im:messageim:message:send_as_botim:resource 等)

  4. 在「应用能力」中启用机器人

  5. 在「事件与回调」中选择使用长连接接收事件,订阅 im.message.receive_v1

  6. 创建版本并提交发布

  7. 配置 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 助手",
        },
      },
    },
  },
}
bash
openclaw daemon restart

安全注意:

  • WebSocket 模式不需要公网 IP 或回调 URL,OpenClaw 主动连接飞书服务器
  • verificationTokenencryptKey 仅 Webhook 模式需要,WebSocket 模式无需配置
  • 国际版 Lark 只需改 domain: "lark" 和使用 open.larksuite.com

验证: 在飞书中找到 Bot 私聊发消息 → 终端出现配对码 → openclaw pairing approve feishu <配对码> → 收到回复即成功。

Discord

适用场景: 海外团队 / 社区。

前置条件: Discord 账号 + 在 Developer Portal 创建 Application。

最小接入步骤:

  1. 在 Developer Portal 创建 Application → Bot → 复制 Token
  2. 必须开启 Privileged Gateway Intents 中的 Message Content Intent,否则 Bot 无法读取消息内容
  3. 配置:
json5
{
  channels: {
    discord: {
      // ⚠️ 请替换:换成你的 Discord Bot Token
      token: "你的 Discord Bot Token",
      dmPolicy: "pairing",
    },
  },
}
bash
openclaw daemon restart

安全注意: 记得在 Developer Portal 生成 OAuth2 邀请链接(勾选 bot + applications.commands 权限)并把 Bot 加入你的服务器。

验证: 在 Discord 私聊或 @Bot 发消息 → 配对审批 → 收到回复。

Slack

适用场景: 工作场景,已有 Slack Workspace。

前置条件: Slack Workspace 管理员权限 + 在 Slack API 创建 App。

最小接入步骤:

  1. 创建 Slack App → 启用 Socket Mode → 获取 Bot Token(xoxb-)和 App Token(xapp-
  2. 配置:
json5
{
  channels: {
    slack: {
      // ⚠️ 请替换:换成你的真实 Token
      token: "xoxb-your-bot-token",
      appToken: "xapp-your-app-token",
      dmPolicy: "pairing",
    },
  },
}
bash
openclaw daemon restart

安全注意: Socket Mode 不需要公网 URL,和飞书的 WebSocket 模式类似。

验证: 在 Slack 私聊 Bot 或 @Bot → 配对审批 → 收到回复。

WhatsApp(Baileys)

适用场景: 海外即时通讯,个人使用。

前置条件: WhatsApp 账号(强烈建议用专用号码)+ Node.js 运行时(Bun 不兼容)。

最小接入步骤:

  1. 添加 WhatsApp 渠道并扫码登录:
bash
openclaw channels add --channel whatsapp
openclaw channels login --channel whatsapp
  1. 终端显示 QR 码,用 WhatsApp 扫码完成配对

  2. 配置访问策略:

json5
{
  channels: {
    whatsapp: {
      dmPolicy: "pairing",
      // ⚠️ 请替换:换成你的手机号(含国际区号)
      allowFrom: ["+8613800138000"],
    },
  },
}
bash
openclaw daemon restart

安全注意:

  • WhatsApp 使用 Baileys(非官方 API),有封号风险,务必用专用号码
  • Session 可能过期需要重新扫码
  • 媒体上限 50MB,文字上限 4000 字符

验证: 用另一个 WhatsApp 号给你发消息 → 配对审批 → 收到回复。


三、可选:体验优化

📌 以下都是可选配置。接好渠道、安全策略到位后,这些可以慢慢调。

多渠道并行

所有渠道可以同时启用。每个渠道、每个用户的会话完全独立:

  • Telegram 私聊 ≠ 微信私聊 ≠ Discord 私聊
  • 同一个群里不同用户各自独立
  • 切换渠道不会丢失上下文(但也不会共享)

媒体支持

OpenClaw 支持处理图片、语音、文档等多种媒体类型,但不同渠道支持程度不同:

媒体类型Telegram微信DiscordSlack飞书WhatsApp
图片
语音-
文档
视频-
  • 图片分析:直接发图给 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 助手」。

消息渠道(Channels)与交互体验优化 | 资讯狗 | Zixungou