znlgis 博客

GIS开发与技术分享

第五章:多通道消息接入与聊天平台配置

通道是 OpenClaw 面向用户的入口层。不同聊天平台负责接收消息,Gateway 负责统一权限、会话、Agent 路由和回复投递。

5.1 支持通道概览

官方文档列出的通道包括 BlueBubbles、Discord、Feishu、Google Chat、iMessage legacy、IRC、LINE、Matrix、Mattermost、Microsoft Teams、Nextcloud Talk、Nostr、QQ Bot、Signal、Slack、Synology Chat、Telegram、Tlon、Twitch、Voice Call、WebChat、WeChat、WhatsApp、Yuanbao、Zalo、Zalo Personal 等。文本基本通用,媒体、引用、反应、编辑、撤回和群管理能力因平台而异。

5.2 新手通道选择

  • WebChat:最简单,适合验证 Gateway 与模型。
  • Telegram:通常只需 Bot token,适合第一个手机入口。
  • Discord/Slack:适合社区和工作区,但权限配置更多。
  • WhatsApp:适合日常使用,但需要 QR 配对和状态持久化。
  • BlueBubbles/Signal/WeChat/QQ:依赖额外平台、系统或插件环境。

5.3 DM policy

私聊触发策略:

策略 含义 建议
pairing 未知发送者收到配对码,审批后允许 默认推荐
allowlist 仅允许 allowFrom 或已配对者 高安全场景
open 允许所有私聊,通常还需 allowFrom: ["*"] 谨慎
disabled 禁用私聊 特定场景

审批示例:

openclaw pairing approve telegram <code>

5.4 allowFrom

allowFrom 限制可触发用户或目标,格式因通道而异。不要猜测 ID,最好通过 pairing 或日志确认真实 ID。共享通道不要使用 "*" 加强工具权限,否则陌生输入可能诱导高风险工具。

5.5 群聊与 mention gating

群聊默认应要求 mention:

{
  agents: {
    list: [
      { id: "main", groupChat: { mentionPatterns: ["@openclaw", "openclaw"] } },
    ],
  },
  channels: {
    whatsapp: { groups: { "*": { requireMention: true } } },
  },
}

群聊 Agent 建议使用独立 workspace 和低权限工具 profile,不要开放个人文件、浏览器登录态或命令执行。

5.6 Telegram 基本流程

  1. 用 BotFather 创建 bot。
  2. 获取 token。
  3. 配置 channels.telegram
  4. 设置 dmPolicy: "pairing"
  5. 给 bot 发消息并完成配对。
  6. 运行 openclaw doctor 检查。

5.7 WhatsApp 基本流程

WhatsApp 通常需要 QR 登录,状态要持久化。建议只让一个 Gateway 控制同一 WhatsApp 会话;群聊必须 requireMention;allowFrom 尽量使用明确手机号;连接异常时检查通道日志、状态目录、平台限制和插件版本。

5.8 Slack 与 Discord

它们适合团队场景,但团队入口不应连接个人强权限 Agent。建议限制频道、开启 mention、使用 messaging profile、避免 exec/browser/gateway/nodes,并使用公司专用凭据。

5.9 通道健康

可配置通道健康检查、stale event 阈值和每小时重启次数。频繁掉线时检查 token、权限、网络、状态目录、平台限制和插件依赖,不要只依赖重启。

5.10 小结

多通道的关键不是“能接多少平台”,而是为每个入口设计恰当的身份、会话、权限和工具边界。新手从 WebChat/Telegram 起步最稳。