概述


一、一句话理解 Channel

Channel = 消息入口

你在飞书发消息,飞书就是一个 Channel 你在钉钉发消息,钉钉就是一个 Channel

Channel 的作用就是:把各个平台的消息格式统一成一种格式,让 Agent 不需要关心消息来自哪里。


二、为什么需要 Channel 这个概念

想象没有 Channel 的世界:

你的飞书 → AI 必须专门写代码理解飞书消息格式
你的钉钉 → AI 必须专门写代码理解钉钉消息格式
你的微信 → AI 必须专门写代码理解微信消息格式

每接入一个平台 = 多一套代码 = 维护成本翻倍

有了 Channel:

飞书 ──→ Channel ──→ 统一格式 ──→ Agent
钉钉 ──→ Channel ──→ 统一格式 ──→ Agent
微信 ──→ Channel ──→ 统一格式 ──→ Agent

一个 Agent,服务所有平台

Channel 就是"翻译器",把各种方言统一成普通话。


三、OpenClaw 支持哪些 Channel

Channel平台状态
飞书(Lark)飞书✅ 已配置
钉钉(DingTalk)钉钉✅ 已配置
企业微信(Wecom)企业微信✅ 已配置
TelegramTelegram✅ 已配置
DiscordDiscord✅ 已配置
WhatsAppWhatsApp✅ 已配置
iMessagemacOS iMessage✅ 已配置

四、Channel 的工作原理

用户(飞书) ──发送消息──→ 飞书服务器
                              │
                              ↓
                        飞书 Channel
                        (OpenClaw 接收)
                              │
                              ↓ 统一格式
                        Gateway
                              │
                              ↓
                         Agent 处理
                              │
                              ↓
                         Gateway
                              │
                              ↓
                        飞书 Channel
                        (OpenClaw 发送)
                              │
                              ↓
                        飞书服务器
                              │
                              ↓
                        用户(飞书)

五、你系统中的 Channel 配置

在你当前的配置文件里:

{
  "channels": {
    "feishu": {
      "appId": "cli_xxx",
      "appSecret": "*",
      "dmPolicy": "allowlist",   // 私聊权限:白名单模式
      "allowFrom": ["罗文的open_id"],  // 只有这个人能私聊
      "groupPolicy": "open"       // 群聊:开放
    },
    "dingtalk": {
      "enabled": false            // 钉钉目前未启用
    },
    "wecom": {
      // 企业微信配置
    }
  }
}

六、dmPolicy:谁可以私聊

dmPolicy 有三种模式:

模式含义适用场景
allowlist只有白名单里的人能私聊私人 AI 助手
open任何人都能私聊公开客服机器人
deny所有人都不能私聊仅支持群聊

七、allowFrom:白名单机制

dmPolicyallowlist 时,allowFrom 数组里列出的用户 ID 才能发消息:

"allowFrom": [
  "ou_ad46e84e3a350383501abd6297e89988",  // 罗文
  "ou_8e84452b9ef004b1ae39b546ceca0901"   // 陈心怡
]

如果不在白名单里,AI 会直接忽略这条消息。


八、Channel 和 Plugin 的关系

Channel 和 Plugin 是两个不同的概念:

概念作用类比
Channel接收和发送消息耳朵和嘴巴
Plugin扩展工具能力手和脚
Channel 负责"听和说",Plugin 负责"做"。


九、常见问题

Q: 我想同时用飞书和钉钉,需要两个 OpenClaw 吗?
A: 不需要。一个 OpenClaw 可以同时配置多个 Channel。
Q: 一个 Channel 挂了会影响其他 Channel 吗?
A: 不会。Channel 之间相互独立,一个挂了其他继续运行。
Q: 频道消息延迟很高?
A: 检查网络延迟,可能是跨区域部署导致。优先选择同区域的服务器。
Q: 如何限制频道消息频率?
A: 在 channel 配置中添加 rateLimit 参数,设置每分钟最大消息数。
Q: 频道断开后数据会丢失吗?
A: 不会。用户消息会暂存队列,重连后继续处理。

十、下一步学什么

  • 1.7 核心概念四:Plugin(插件)是什么 → 理解 OpenClaw 的扩展机制
  • 1.8 核心概念五:Skill(技能)是什么 → 理解 AI 是怎么调用工具的

如有疑问,欢迎在群内提问!