乐于分享
好东西不私藏

【OpenClaw 第 4 篇】一个大脑管所有聊天软件?Gateway 多渠道接入实战

【OpenClaw 第 4 篇】一个大脑管所有聊天软件?Gateway 多渠道接入实战

你的 AI 应该活在你已经在用的 App 里,而不是逼你下载一个新 App。

设想一个场景:你在 WhatsApp 上让 AI 查航班,在飞书上收到结果,同时 AI 在 Discord 群里同步了行程更新。三个平台,一个大脑。

这就是 OpenClaw 的 Channel 系统。

支持的渠道(完整列表)

OpenClaw 支持 20+ 消息平台,且持续增加中:

WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, IRC, Microsoft Teams, Matrix, 飞书, LINE, Mattermost, Nextcloud Talk, Nostr, Synology Chat, Tlon, Twitch, Zalo, Zalo Personal, 微信, QQ, WebChat

每个渠道以 Channel Plugin 形式接入 Gateway,统一路由、统一管理。

核心机制:Gateway 统一路由

底层逻辑是:所有渠道的消息先到 Gateway,Gateway 根据配置决定路由到哪个 Agent、哪个 Session,然后 Agent 回复原路返回。

1
2
3
4
5
WhatsApp ──┐Telegram ──┤飞书    ──┼──→ Gateway:18789 ──→ Agent ──→ 回复原路返回Discord ──┤微信    ──┘

这意味着你不需要在每个平台单独配置 AI——配一次 Gateway,所有渠道自动接入。

实战:配置 Telegram Bot

Telegram 是最常用的渠道之一。配置步骤:

1. 在 Telegram 找 @BotFather,创建 Bot,拿到 Token

2. 在 OpenClaw 中注册渠道:

1
openclaw channels login --channel telegram

3. 在 ~/.openclaw/openclaw.json 中配置:

1
2
3
4
5
6
7
8
{  channels: {    telegram: {      botToken: "你的Bot Token",      dmPolicy: "pairing",  // DM配对模式    },  },}

4. 重启 Gateway 或等待自动热加载

实战:配置飞书

飞书是国内常用的企业通讯工具。OpenClaw 通过 App ID + Secret 接入:

1
openclaw channels login --channel feishu

配置示例:

1
2
3
4
5
6
7
8
9
{  channels: {    feishu: {      appId: "你的App ID",      appSecret: "你的App Secret",      dmPolicy: "pairing",    },  },}

飞书渠道还支持 @提及控制——只有 @机器人的消息才会触发回复,避免群聊噪音。

安全机制:DM Pairing

这是 OpenClaw 最核心的安全设计之一。官方 README 原文:

“Treat inbound DMs as untrusted input.”

默认策略是 dmPolicy="pairing"——未知发送者第一次发消息时,会收到一段配对码,Bot 不处理他们的消息内容。需要你手动批准:

1
openclaw pairing approve telegram <配对码>

批准后,发送者被加入本地白名单,下次消息正常处理。

四种 DM 策略:

策略
行为
`pairing`(默认)
未知发送者收到配对码,需手动批准
`open`
所有人可以直接发消息(**不推荐**)
`allowlist`
仅白名单用户可发消息
`closed`
关闭 DM

open 模式需要同时设置 allowFrom: ["*"]——风险很高,只建议在完全可信的私有网络中开启。

安全检查

配置完渠道后,务必跑一次安全检查:

1
openclaw security audit

它会检查:

– DM Policy 是否过于宽松

– 白名单配置是否合理

– 是否有未配对的设备

– Gateway 暴露风险

高级功能:Channel Docking

Channel Docking 允许你将当前对话的回复路由切换到另一个渠道,而不创建新 Session。例如:在 WhatsApp 上发起一个长任务,让结果发到飞书。

具体配置见官方文档 Channel Docking。

Multi-agent 路由

Gateway 支持按渠道/账号/发送者路由到不同的 Agent

1
2
3
4
5
6
7
8
{  agents: {    list: [      { id: "main" },          // 默认 Agent      { id: "work", channels: { telegram: ["*"] } },  // Telegram 消息专门 Agent    ],  },}

每个 Agent 可以有不同的 workspace、skills、model,完全隔离。

避坑

1. dmPolicy 别设 open:除非你知道自己在做什么。pairing 是合理的默认值。

2. 白名单格式:不同渠道的 allowFrom 格式不同——Telegram 用数字 ID,Discord 用 Snowflake ID。

3. 群聊隔离:默认群聊是「按群隔离」的,每个群独立 Session。这是安全设计,不要试图关掉。

4. 敏感渠道用沙箱:对非主 Session 开启 agents.defaults.sandbox.mode: "non-main" 防止群聊中的恶意指令。

下一步

渠道打通后,你的 AI 就「有手有脚」了。下一篇讲 Skills 技能系统——如何给 Agent 装上各种工具,让它能发邮件、操作文件、调用 API。

你最想把 AI 接入哪个聊天平台?为什么?