OpenClaw 中的 Channel / 频道,是AI 助理与外部世界通信的“桥梁”

让OpenClaw能够接入各种不同的消息平台,并统一处理这些来源的消息。

具体来说,它的作用体现在以下几个方面:

  1. 统一的通信窗口:Channel 为 AI Agent 集成了”耳朵”和”嘴巴”。
    • 接收指令(输入):它负责监听来自不同平台(如你手机上的 Telegram、微信群等)的消息,并将这些自然语言指令转发给内部的 AI 大脑(Gateway)处理。
    • 发送结果(输出):当 AI 完成任务(如查询文件、生成图片)后,Channel 负责将结果、图片或文件通过原来的平台回复给你。
  2. 消息的“标准化”处理:不同的通信平台(如 WhatsApp、邮件、MQTT)有着完全不同的协议和数据格式。Channel 扮演了“翻译官”的角色,它负责处理这些底层的、平台特定的技术细节,将所有接收到的消息转换成 OpenClaw 内部能够理解的统一格式。这样一来,上层的 AI Agent 就不需要关心消息是从哪里来的,可以专注于理解问题和生成回复,大大简化了系统设计。
  3. 智能的路由与分发:Channel 不仅负责收发,还与系统的路由机制紧密相连。
    • 精准回复:它能确保 AI 生成的回复,能准确无误地发送回最初发起对话的那个聊天(无论是私聊还是群组)。
    • 多Agent分发:通过配置,你可以将不同 Channel(甚至是同一个 Channel 里的不同群聊)收到的消息,分发给不同的 AI Agent 来处理,实现业务隔离。例如,一个 Channel 用于处理技术支持,另一个用于处理销售咨询。

配置中安装:已经支持微信与飞书

openclaw configure --section channels

◆  Select a channel
│  ● ……
│  ○ openclaw-weixin (long-poll)
│  ○ Feishu/Lark (飞书)
│  ○ ……

企业微信/钉钉/飞书

前提:到对应开放平台,创建应用后,获到对应Key与Secret

这个前提,就干倒很多人了,因为需要企业管理员或开发者权限,普通用户是没有创建应用的权限。有没有不需要这些权限的呢?

微信官方插件 by 2026.3.28

注意:一个微信只能绑到一个OpenClaw上,但在配置之后,是支持一个OpenClaw支持绑多个微信。

https://www.npmjs.com/package/@tencent-weixin/openclaw-weixin

# 授权的二维码显示,需要这个依赖 
npm install -g puppeteer

# 微信插件安装,使用其中一个就可以 npx 会自动启动授权,而 openclaw安装,需要手工运行授权。
openclaw plugins install @tencent-weixin/openclaw-weixin
#npx -y @tencent-weixin/openclaw-weixin-cli@latest install

确认是否被启用:

# 确认结果,如果不是 true,需要手工启用。
openclaw config get plugins.entries.openclaw-weixin.enabled

# 启用插件
openclaw config set plugins.entries.openclaw-weixin.enabled true

确认插件 openclaw-weixin 安装状态:Status: loaded

openclaw plugins list --status ready       # 查看所有状态为ready的插件
openclaw plugins inspect openclaw-weixin   # 查看指定插件
openclaw plugins uninstall openclaw-weixin # 卸载指定插件

[openclaw-weixin] 首次连接授权未完成,手动重试:

openclaw channels login --channel openclaw-weixin

可能报错1:plugins.allow is empty

10:08:01+08:00 [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclaw-weixin (C:\Users\xxx\.openclaw\extensions\openclaw-weixin\index.ts). Set plugins.allow to explicit trusted ids.

原因:OpenClaw 默认要求显式信任非捆绑插件。当 plugins.allow 配置为空时,插件虽然被加载,但可能被限制执行某些敏感操作(如启动本地扫码进程),导致登录过程被中止。

解决办法

  1. 信任插件:先确认配置文件路径 openclaw config file
    1. 在OpenClaw 2026.3.24 (cff6dc9)上,是~\.openclaw\openclaw.json,不要被AI说是~/.openclaw/config.json带沟里去了。
    2. 编辑配置文件:notepad ~\.openclaw\openclaw.json,找到plugins节点行,新增下一行里增加以下内容。
    "allow": [
      "openclaw-weixin"
    ],
  1. 确认配置是否正确: openclaw config get plugins.allow
    • 看当前默认模型:openclaw config get agents.defaults.model.primary
    • 要注意,有没有配置openClaw环境变量,也是会有影响的:Get-ChildItem env: | Where-Object { $_.Name -like "*OPENCLAW*" } | Select-Object Name, Value
      • 输出应该为空,如果有输出,则使用删除Remove-Item Env:<Name>
  2. 重启:openclaw gateway restart
  3. 开始授权:openclaw channels login --channel openclaw-weixin

可能报错2:AbortError: This operation was aborted

原因之一openclaw-weixin 渠道通常依赖 puppeteer 或 playwright 来模拟浏览器扫码。如果这些依赖未正确安装,可能导致启动失败。

  • 解决办法:先安装npm install -g puppeteer,再手工开始授权,后在终端里显示一个二维码出来。

飞书 by OpenClaw 2026.7.1

先到 飞书开发者后台 注册应用且发布(注意:发布需要组织的应用管理员审核通过),获得App的 Key 与 Secret。

  • 只有把消息发给机器人,或把机器人加入群,才能处理。除此之外,机器人都看不到。
  • 只有飞书CLI,能以用户身份,获取到飞书中所有内容,但飞书CLI,需要一个channel/TUI与openclaw网关联系上。所以,channel Feishu 不是必装。
  • 官方文档 :Feishu – OpenClaw
$ openclaw configure --section channels

◇  Select a channel
│  Feishu/Lark (飞书)
│
◇  Installed Feishu plugin
│
◇  How do you want to connect Feishu?   
│  Enter App ID and App Secret manually
│
◇  Which Feishu domain?
│  Feishu (feishu.cn) - China
│
◇  Enter Feishu App ID
│  cli_xxxx
│
◇  How do you want to provide this App Secret?
│  Enter App Secret
│
◇  Enter Feishu App Secret
│  xxxx
│
◇  Group chat policy
│  Open - respond in all groups (requires mention)
│
◇  Bot configured.
[info]: [ 'client ready' ]
│
◇  Select a channel
│  Finished
│
◇  Selected channels ─────────────────────────────────────╮
│                                                         │
│  Feishu — 飞书/Lark enterprise messaging. Docs: feishu  │
│                                                         │
├─────────────────────────────────────────────────────────╯
│
◇  Configure DM access policies now? (default: pairing)
│  No
Updated config: ~/.openclaw/openclaw.json
  Backup: ~/.openclaw/openclaw.json.bak
│
└  Configuration updated.

Group chat policy / 群聊策略

  • open:群组中是否只有 @机器器人的消息才会响应,由 channels.feishu.requireMention 值控制 ,值为false时,不用@机器器人,也会响应。
    • 如果在 tools.elevated 和 runtime/filesystem 开启时,意味着这些指令可以直接操作你的服务器文件系统,甚至执行 shell 命令。
    • 所以只能将机器人加入可信任的群里,且开启 requireMention=true
  • allowlist:仅响应 groupAllowFrom 中的群组,或 groups.<chat_id> 下明确配置的群组
  • disabled:禁用所有群组消息;明确的 groups.<chat_id> 条目无法覆盖此设置
$ openclaw config get channels.feishu.groupPolicy
$ openclaw config set channels.feishu.groupPolicy '"open|allowlist|disabled"'

# 适用于 open
$ openclaw config set channels.feishu.requireMention true  

# 适用于 allowlist,替换命令中的 oc_xxx 为实际获取的群 ID
openclaw config set channels.feishu.groupAllowFrom '["oc_xxx"]'

DM access policies / 私聊策略

DM = Direct Message,即飞书一对一私聊 / 私信;DM access policies(简称 dmPolicy)是 OpenClaw 针对飞书机器人的私聊访问权限控制策略,用来规定哪些人可以直接私聊机器人、机器人是否响应私聊消息,和你前面配置的群聊策略(Group chat policy)是两套独立权限体系。

四种策略模式行为注意事项适用场景
pairing
默认
陌生用户私聊机器人,机器人不执行指令,只返回一串8 位配对码; 管理员在服务器终端手动批准配对后,该用户才能正常私聊对话。配对码有效期 1 小时,单个渠道最多缓存 3 条待审批配对请求,超出会直接忽略自用 / 小团队、重视安全、少量固定人员使用。
allowlist
白名单模式
仅配置在 allowFrom 列表内的飞书用户 open_id 能私聊机器人;其他人发私聊完全无响应、静默丢弃。只能填飞书用户 open_id(ou_开头),不能填用户名、手机号、部门 ID;open_id 错误会导致用户私聊无响应,排查时优先核对日志里的 sender id。企业限定仅管理员 / 核心员工使用,长期固定人员。
open
完全开放模式
所有企业内飞书用户都能私聊机器人,必须同时配置 allowFrom: ["*"] 才生效。任何人都可调用机器人全部能力,高危,生产环境严禁使用本地内网临时测试
disabled
关闭私聊
彻底禁用机器人所有私聊功能,仅保留群聊响应。只需要群内 @机器人,完全不需要一对一私聊。

pairing 配套管理命令

# 查看待审批的配对列表,注意:没有查看已审批/已配对用户的命令。
$ openclaw pairing list feishu
# 批准某用户配对码
$ openclaw pairing approve feishu <配对码>

allowlist 配套管理命令

# 修改策略为白名单
$ openclaw config set channels.feishu.dmPolicy "allowlist"
# 添加用户open_id到白名单(多用户逗号分隔)
$ openclaw config set channels.feishu.allowFrom --json '["ou_xxx","ou_yyy"]'
# 重载网关生效
$ openclaw gateway restart
$ openclaw config get channels.feishu.dmPolicy
# 修改 DM 策略
$ openclaw config set channels.feishu.dmPolicy "pairing|allowlist|open|disabled"

消息样式:卡片 & 纯文字

# 两种消息样式各有优缺点
$ openclaw config set channels.feishu.renderMode '"raw|auto"'

openclaw status 中 State=SETUP

$ openclaw status

Channels
┌─────────────────┬─────────┬────────┬─────────────────────────────────────────────
│ Channel         │ Enabled │ State  │ Detail                                      
├─────────────────┼─────────┼────────┼─────────────────────────────────────────────
│ openclaw-weixin │ ON      │ OK     │ configured                                  
│ feishu          │ ON      │ SETUP  │ configured; status unavailable in fast mode 
  • SETUP 状态:仅代表「静态配置存在并启用」,不等于通道实时在线、长连接正常、收发消息可用;
  • status unavailable in fast mode:你执行普通 openclaw status 属于fast 快速快照模式,只会读取本地配置文件,不会向网关 / 飞书服务发起真实连通探测(probe),所以拿不到真实运行健康状态,只能标记为 SETUP。
$ openclaw channels status --probe

Gateway reachable.
- Feishu default: enabled, configured, running, connected, works
- openclaw-weixin xxx-im-bot: enabled, configured, running

Tip: status --deep adds gateway health probes to status output (requires a reachable gateway).

# - enabled:通道开关开启
# - configured:配置参数合法无误
# - running:通道进程正常运行中
# - connected:和飞书开放平台服务建立了有效连接
# - works:整体收发、事件交互功能可用

 $ openclaw status --deep
 
 Channels
┌─────────────────┬─────────┬────────┬─────────────
│ Channel         │ Enabled │ State  │ Detail      
├─────────────────┼─────────┼────────┼─────────────
│ Feishu          │ ON      │ OK     │ configured  
│ openclaw-weixin │ ON      │ OK     │ configured  

最开始显示 SETUP 的根源:单纯执行 openclaw status 为快速模式,只读取本地配置文件,不会发起外网心跳校验,OpenClaw 无法确认链路实际通不通,就标注为 SETUP;加上 –deep / –probe 才会联网实测连通性,实测通过后状态就刷新为正常可用标识。

可以直接在飞书群发送机器人指令,测试消息回复、事件触发,实测无误就代表整套链路彻底稳定。

飞书 CLI@1.0.72 + OpenClaw 2026.7.1

安装 npx @larksuite/cli@latest install

在安装的过程中:

  1. 建议选择已有应用,而不是创建一个新的应用。
  2. 授权变更是需要飞书所在组织,应用版本审核的。
$ npx @larksuite/cli@latest install
Need to install the following packages:
@larksuite/cli@1.0.72
Ok to proceed? (y) y
│
◇  请选择语言 / Select language
│  中文
┌  正在设置 Feishu/Lark CLI...
│
◇  已全局安装
│
◇  Skills 已安装
│
◇  正在配置应用...

使用飞书 / Lark 扫码配置应用:

或打开以下链接完成配置:
  https://open.feishu.cn/page/cli?user_code=

正在获取你的应用配置结果...

OK: 应用配置成功! App ID: cli_xxxx
语言偏好已设置:zh_cn
{
  "appId": "cli_xxx",
  "appSecret": "****",
  "brand": "feishu"
}
│
◆  应用已配置
│
◇  是否允许 AI 访问你个人的消息、文档、日历等飞书 / Lark 数据,并以你的名义执行操作?
│  Yes
│
◇  授权

摘要:

在浏览器中打开以下链接进行认证:

  https://accounts.feishu.cn/oauth/v1/device/verify?flow_id

等待用户授权...

以上结果是本次授权请求用户最终确认后的结果,请勿持续重试;Scopes 未授予的原因是多样的,如 scope 被禁用;具体原因已通过授权页提示用户。可执行 `lark-cli auth status` 查看账号当前已授予的全部 scopes;
│
▲  授权失败。运行以下命令重试: lark-cli auth login
│
└  安装完成!
可以和你的 AI 工具(如 Claude Code、Trae等)说:"飞书/Lark CLI 能帮我做什么?结合我的情况推荐一下从哪里开始"

配置

执行 lark-cli help 可查看命令总览,lark-cli <command> --help 查看具体用法。

我想要……命令
初始化应用配置lark-cli config init
登录(用户身份)lark-cli auth login
查看当前登录状态lark-cli auth status
为某个业务域申请权限lark-cli auth login --domain <domain>
检查当前已有权限lark-cli auth check
登出lark-cli auth logout

Profile 管理命令速查

命令说明
lark-cli profile list查看所有 profile
lark-cli profile add --name <name> ...添加新 profile
lark-cli profile rename <old> <new>重命名
lark-cli profile remove <name>删除(清空 token 和配置),注意:不允许删除最后一个
lark-cli profile use <name>切换默认 profile(写磁盘持久化)
lark-cli --profile <name> <命令>运行时指定 profile(并发场景必用)

创建 Profile

# 交互式(推荐),带 `--name` 是追加,不带则覆盖默认 profile。
$ lark-cli config init --new --name bot-reader
# 非交互式(自动化场景)
$ echo "YOUR_APP_SECRET" | lark-cli profile add --name bot-reader --app-id cli_xxxxxxxxxxxx --app-secret-stdin

在TUI完成授权

  • --> 为输入内容。
--> 飞书/Lark CLI 能帮我做什么?结合我的情况推荐一下从哪里开始
好,你的 Lark CLI 已经装好了,bot 身份在线,但用户身份还没登录。这意味着我能以应用身份做事,但访问你个人的飞书资源(日历、云盘、文档、待办、邮件等)还得先授权。

一句话:先 auth login,然后从"帮我看看今天日程"或"帮我查一下xxx文档"开始用起来。
要现在就帮你跑登录吗?

--> 好
授权链接:https://accounts.feishu.cn/oauth/v1/device/verify?flow_id=
打开链接或扫码,在飞书里授权即可。完成后告诉我,我来完成登录。

--> 完成了
登录完成!当前身份已切换为 用户身份(默认)。
登录用户: xxx
应用(我): xxx
已获得的核心权限:
- ✅ 文档读写(Docx、Sheet、幻灯片、画板、思维笔记)

未授予的(不影响日常使用):
- ❌ 日历(创建/修改日程)← 如果你需要,下次单独授权
- ❌ 邮件 ← 同上
- ❌ 考勤、OKR

--> 查一下今天日程?
需要扫一下授权日历权限,扫码确认就好:https://accounts.feishu.cn/oauth/v1/device/verify?flow_id=
搞定后告诉我。

--> 授权完成了
日历权限搞定了,现在查你今天日程今天(7月21日)日程表是空的,没有安排任何会议或活动。清闲的一天 🎯
想试试别的吗?比如查一下待办任务,或者看看某个文档?

渠道账号管理 by OpenClaw 2026.7.1

查看与移除

Usage: openclaw channels [options] [command]
子命令列表:
add           添加或更新一个渠道账号
capabilities  查看渠道服务商能力(包含权限意图、作用域以及支持的功能)
list          列出聊天渠道(默认只显示已配置渠道;加 --all 参数可查看全部可安装渠道目录)
login         绑定登录渠道账号(仅该渠道支持时可用)
logout        退出渠道登录会话(仅该渠道支持时可用)
logs          从网关日志文件中查看渠道近期运行日志
remove        停用或彻底删除一个渠道账号
resolve       将渠道/用户名称解析为对应ID
status        查看网关渠道运行状态(加上 --deep 参数可查看本地详细状态)
$ openclaw channels list
Chat channels:
- Feishu default: installed, configured, enabled
- openclaw-weixin default: installed, configured, enabled
- openclaw-weixin xxxx-im-bot: installed, configured, enabled

Model provider usage moved out of `channels list` — see `openclaw status` or `openclaw models list`.

# 查看某一渠道全部支持的操作:
$ openclaw channels capabilities --channel openclaw-weixin

openclaw-weixin default

  • 是自动生成 default 配置(仅模板,无账号绑定)。
  • 执行 openclaw channels login --channel openclaw-weixin 扫码登录后,系统基于 default 模板创建独立账号实例,并生成唯一 ID
  • openclaw-weixin 不支持 logout 命令,有必要的话,可以考虑删除配置文件,但我没有尝试。
$ ll .openclaw/openclaw-weixin/
total 16
drwxrwxr-x  3 claw claw 4096 Jul 19 13:04 ./
drwx------ 18 claw claw 4096 Jul 20 17:22 ../
drwxrwxr-x  2 claw claw 4096 Jul 19 13:05 accounts/
-rw-rw-r--  1 claw claw   27 Jul 19 13:04 accounts.json
$ ll .openclaw/openclaw-weixin/accounts
total 20
drwxrwxr-x 2 claw claw 4096 Jul 19 13:05 ./
drwxrwxr-x 3 claw claw 4096 Jul 19 13:04 ../
-rw-rw-r-- 1 claw claw  181 Jul 20 17:31 xxx-im-bot.context-tokens.json
-rw------- 1 claw claw  216 Jul 19 13:04 xxx-im-bot.json
-rw-rw-r-- 1 claw claw  126 Jul 20 17:36 xxx-im-bot.sync.json
$ cat .openclaw/openclaw-weixin/accounts.json
[
  "xxx-im-bot"
]

与Agent的绑定、查看和解绑

见 OpenClaw 中的 Agent

私信隔离 by OpenClaw 2026.7.1

会话管理 – OpenClaw

  • 默认情况下,所有私信共享一个会话以保持连续性,这适合单用户设置。
  • 如果多人可以向你的智能体发送消息,请启用私信隔离。否则,所有用户都会共享同一对话上下文。
$ openclaw config get session.dmScope
$ openclaw config set session.dmScope '"main|per-peer|per-channel-peer|per-account-channel-peer"'
session.dmScope 值行为
main(默认)所有私信共享一个会话
per-peer跨渠道按发送者隔离
per-channel-peer按渠道 + 发送者隔离(推荐)
per-account-channel-peer按账户 + 渠道 + 发送者隔离
  • 如果同一个人通过多个渠道联系你,请使用 session.identityLinks 将其身份映射到一个规范的对端 ID,以便这些身份共享一个会话。
{
  session: {
    dmScope: "per-channel-peer", // 按渠道 + 发送者隔离
  },
}

会话生命周期

见:会话管理 – OpenClaw

发表回复