乐于分享
好东西不私藏

OpenClaw 企业微信与飞书多机器人配置详解

OpenClaw 企业微信与飞书多机器人配置详解

一、引言:为什么需要多机器人、多 Agent 架构?

当一个 AI 助手同时承担”写代码”、”做评审”、”搜索调研”、”架构设计”等多项职责时,上下文互相污染、角色定位模糊等问题会迅速浮现。更现实的诉求是——不同场景由不同的 AI 角色来服务,每个角色拥有独立的知识空间和对话历史。

OpenClaw 的多机器人架构正是为此设计:

  • • 飞书侧:创建多个飞书应用(每个对应一个 Bot),通过 WebSocket 长连接接收消息,由 bindings 路由到对应 Agent。
  • • 企业微信侧:创建多个企微机器人,共享同一个回调入口,通过 botId 区分身份。
  • • Agent 层:8 个独立 Agent 各自拥有 workspace、角色设定和模型配置,互不干扰。

这套架构让一个 OpenClaw 实例同时服务于多个 IM 平台、多个 Bot、多个 Agent,一个进程搞定所有场景

下面我们逐层拆解配置细节。


二、飞书多机器人配置

2.1 channels.feishu 整体结构

{  "channels": {    "feishu": {      "enabled":true,      "defaultAccount": "main",      "accounts": {        "main": { ... },        "oscar": { ... },        "scout": { ... },        "turing": { ... },        "judge": { ... }      }    }  }}

核心字段说明:

字段
说明
enabled
是否启用飞书通道
defaultAccount
未匹配到具体账号时的兜底路由目标
accounts
飞书应用字典,key 为账号名,对应一个独立的飞书机器人

2.2 单个飞书 Account 配置

{  "main": {    "appId": "cli_aa87f79ebe7b5bc2”,    "appSecret": "xE***zkCOKiwONq9y***",    "connectionMode": "websocket",    "dmPolicy": "pairing",    "domain": "feishu",    "enabled": true,    "groupPolicy": "open",    "agentId": "main"  }}

关键字段解析:

  • • connectionMode: "websocket" — 使用飞书 WebSocket 长连接模式,无需公网回调地址,本地开发也能直接接收消息,这是部署最简的方式。
  • • dmPolicy: "pairing" — 私聊策略为”配对”,即消息发送者与 Bot 自动建立一对一会话。
  • • groupPolicy: "open" — 群聊策略为开放,允许 Bot 被拉入任意群并响应 @ 消息。
  • • domain: "feishu" — 标识为国内飞书环境(海外用 lark)。
  • • agentId: "main" — 该飞书应用绑定的 Agent ID,消息进来后路由给该 Agent 处理。

2.3 飞书多 Bot 路由:bindings 配置

飞书的每个 Account 自带 agentId 字段做了一层绑定,但 OpenClaw 还提供了更灵活的 bindings 路由机制:

{  "bindings": [    {      "type": "route",      "agentId": "judge",      "match": {        "channel": "feishu",        "accountId": "judge"      }    },    {      "type": "route",      "agentId": "scout",      "match": {        "channel": "feishu",        "accountId": "scout"      }    },    {      "type": "route",      "agentId": "oscar",      "match": {        "channel": "feishu",        "accountId": "oscar"      }    },    {      "type": "route",      "agentId": "turing",      "match": {        "channel": "feishu",        "accountId": "turing"      }    }  ]}

路由逻辑:当飞书通道收到消息时,先根据 appId 定位到 account(如 judge),然后查找 bindings 中 match.channel === "feishu" && match.accountId === "judge" 的条目,将消息分发给 agentId 对应的 Agent。

为什么不直接依赖 account 里的 agentId 因为 bindings 支持更复杂的匹配条件(如按群 ID、按用户、按消息类型路由),是更通用的路由层。


三、企业微信多机器人配置

3.1 channels.wecom 整体结构

{  "channels": {    "wecom": {      "enabled":true,      "defaultAccount": "main",      "accounts": {        "main": { ... },        "judge": { ... },        "scout": { ... },        "turing": { ... },        "default": {          "dmPolicy": "open",          "groupPolicy": "open",          "allowFrom": ["*"],          "groupAllowFrom": ["*"]        }      }    }  }}

企微侧注册了 多 个机器人(main / judge / scout  / turing),另外还有一个特殊的 default 账号——它不是机器人,而是全局默认策略配置

3.2 单个企微 Account 配置

{  "main": {    "botId": "aibL98A8MiOlUnxo18LXNtNZ0mSjsibHE5H",    "secret": "xxx8j44ICOxJAtY6t2Wxb7jQgMj6Xv0m***"  }}

企微的配置比飞书简洁得多:

  • • botId — 企业微信机器人的唯一标识,在企微管理后台创建 Bot 时获取。
  • • secret — 机器人的通信密钥,用于消息加解密和鉴权。

3.3 企微全局策略:default 账号

{  "default": {    "dmPolicy": "open",    "groupPolicy": "open",    "allowFrom": ["*"],    "groupAllowFrom": ["*"]  }}

这个 default 节点定义了企微通道的兜底安全策略

  • • dmPolicy: "open" — 私聊开放,任何企微用户都能与 Bot 对话。
  • • groupPolicy: "open" — 群聊开放。
  • • allowFrom: ["*"] — 白名单为通配符,表示不限制发送者。

3.4 飞书 vs 企业微信配置差异

维度
飞书
企业微信
连接方式
WebSocket 长连接
WebSocket 长连接
认证信息
appId

 + appSecret
botId

 + secret
路由方式
account 内 agentId + bindings 双层路由
account 名隐式映射 agentId
策略配置
每个 account 独立设定
default

 节点统一兜底

四、Agent 列表与多角色设计

4.1  Agent 定位

{  "agents": {    "defaults": {      "workspace": "~/.openclaw/workspace",      "model": {        "primary": "zai/glm-5-turbo",        "fallbacks": ["zai/glm-5", "zai/glm-5v-turbo", ...]      }    },    "list": [ ... ]  }}

Agent 的定位如下:

Agent ID
名称
Emoji
定位
main
Chief
🧠
默认助手,通用对话与编码
coach
Coach
🎯
教练角色,指导与反馈
judge
Judge
⚖️
评审角色,代码审查与决策判断
scout
Scout
🔍
调研角色,信息搜索与情报收集

4.2 独立 Workspace 隔离

每个 Agent 拥有独立的 workspace 目录:

{  "id": "coach",  "name": "Coach",  "workspace": "~/.openclaw/workspace-coach"}
{  "id": "judge",  "name": "Judge",  "workspace": "~/.openclaw/workspace-judge"}

这意味着不同 Agent 的会话历史、记忆文件、工作产物完全隔离。Scout 调研产生的中间文件不会出现在 Judge 的 workspace 里,Chief 的对话上下文也不会干扰 Arch 的架构思考。

4.3 模型 Fallback 链

所有 Agent 共享一份默认的模型 fallback 配置:

{  "model": {    "primary": "zai/glm-5-turbo",    "fallbacks": [      "zai/glm-5",      "zai/glm-5-turbo",      "zai/glm-5v-turbo",      "zai/glm-4.7",      "zai/glm-4.7-flash"    ]  }}

设计思路:

  1. 1. 首选 glm-5-turbo — 最快的模型,优先使用。
  2. 2. 同代兜底 glm-5 / glm-5v-turbo — 主模型不可用时切换到同代替代。
  3. 3. 跨代逐级降级 — 从 4.7 → 4.6 → 4.5 逐级降级,确保任何情况下都能返回结果
  4. 4. 兼顾多模态 — 包含 glm-5v-turboglm-4.6vglm-4.5v 等视觉模型,当需要处理图片时自动选择。

这条多级 fallback 链在实际运行中提供了极强的可用性保障


五、配置要点与最佳实践

5.1 跨平台统一 Agent,差异化管理入口

本配置的核心设计模式是:同一个 OpenClaw 实例、同一组 Agent,通过不同的 Channel 接入不同的 IM 平台。

飞书用户 ──→ 飞书 Bot (appId) ──→ feishu channel ──→ bindings ──→ Agent企微用户 ──→ 企微 Bot (botId) ──→ wecom channel ──→ account 映射 ──→ Agent

这意味着你只需维护一份 Agent 配置,就能同时在飞书和企微上提供一致的 AI 服务。

5.2 安全白名单:最小权限原则

{  "tools": {    "elevated": {      "enabled":true,      "allowFrom": {        "feishu": ["ou_b70769771de784416786f9fb519cxxx"]      }    }  }}

elevated 权限(高危操作)只对特定用户开放。只有 allowFrom 列表中的飞书用户(通过 open_id 标识)才能触发需要提权的操作。

5.3 Session 隔离策略

{  "session": {    "dmScope": "per-account-channel-peer",    "reset": {      "mode": "idle",      "idleMinutes": 43200    },    "agentToAgent": {      "maxPingPongTurns": 5    }  }}
  • • dmScope: "per-account-channel-peer" — 每个会话按”账号 × 通道 × 对话者”三维隔离,确保不同 Bot、不同平台、不同用户的会话互不干扰。
  • • idleMinutes: 43200 — 30 天无活动自动重置会话,防止上下文无限膨胀。
  • • maxPingPongTurns: 5 — Agent 间协作对话最多 5 轮,防止无限循环。

5.4 Gateway 网关配置

{  "gateway": {    "mode": "local",    "auth": {      "allowTailscale":true,      "mode": "none"    },    "port": 18789,    "bind": "loopback"  }}
  • • bind: "loopback" — 只监听本地回环地址,不暴露到公网。
  • • allowTailscale: true — 通过 Tailscale 组网实现安全远程访问,无需开放端口。

这套配置适合本地部署 + Tailscale 内网穿透的场景,兼顾安全与便利。


六、总结

OpenClaw 的多机器人架构可以归纳为三个层次:

1. Channel 层(接入层) — 飞书通过 WebSocket 接入多个 Bot,企微通过 WebSocket接入多个 Bot,各自独立配置认证信息。

2. Binding 层(路由层) — 通过 bindings 规则将”通道 + 账号”的组合映射到具体 Agent,支持灵活的匹配条件和多平台统一路由。

3. Agent 层(业务层) — 多个Agent 各自拥有独立的 workspace、角色设定和身份标识,共享模型 fallback 链保障可用性。

配置时需要注意的关键点:

  • • 飞书用 appId + appSecret,企微用 botId + secret,认证方式不同。
  • • 连接推荐 WebSocket 模式(免公网)。
  • • 安全策略要分层设置:通道级白名单(allowFrom)+ 命令级权限(ownerAllowFrom)+ 提权控制(elevated)。
  • • Session 隔离粒度选 per-account-channel-peer,避免跨 Bot、跨平台的上下文串扰。

这套架构让我们用一个 OpenClaw 实例就能同时服务飞书和企业微信两大平台上的十多个机器人,每个机器人背后是独立的 AI Agent,互不干扰又统一管理。对于需要多角色、多平台 AI 助理服务的一人团队来说,是一个非常实用的参考方案。

对于如何配置多Agent的人设和工作区,大家有兴趣的话,可以下次介绍,不知道是否有帮助,可以评论区留言,发表你的看法~