📦 Feishu Multi-Bot — 飞书多机器人配置
v1.0.1在单个OpenClaw实例中配置多个飞书/Lark机器人身份,每个Agent拥有独立的飞书应用、名称、头像和消息路由。用于实现多机器人飞书集成、配置消息路由、调试机器人路由问题、设计多Agent架构及按项目隔离飞书群组。
详细分析 ▾
运行时依赖
版本
更新显示名称为 'Feishu Multi-Bot'
安装命令
点击复制技能文档
一个 OpenClaw 实例,多个飞书机器人身份。每个 Agent 在飞书中显示为独立的机器人——拥有自己的名称、自己的头像、自己的群组 membership。用户看到的是独立的助手;幕后,一个单一的 Gateway 负责调度一切。
30秒架构说明
OpenClaw Gateway (单一实例)
├── Agent: orchestrator ←→ 飞书应用 1 (总调度 bot)
├── Agent: content-writer ←→ 飞书应用 2 (写作 bot)
├── Agent: code-expert ←→ 飞书应用 3 (开发 bot)
└── Agent: analyst ←→ 飞书应用 4 (分析 bot)
三个配置块必须对齐:
| 块 | 在 openclaw.json 中的位置 | 用途 |
|---|---|---|
channels.feishu.accounts | 每个机器人的飞书凭证 | 将 accountId 映射到 appId/appSecret |
bindings | 消息路由规则 | 将 accountId 映射到 agentId |
agents.list | Agent 定义 | 将 agentId 映射到 workspace/model/tools |
快速开始
1. 创建飞书应用
在 open.feishu.cn/app 为每个 Agent 创建一个企业应用。启用 "Bot" 能力。记录每个应用的 AppID 和 AppSecret。
2. 运行设置辅助脚本
scripts/setup-feishu-bots.sh orchestrator:cli_xxx:secret1 writer:cli_yyy:secret2 coder:cli_zzz:secret3
生成三个 JSON 块,可直接粘贴到 openclaw.json 中。
3. 注册 Agent 并重启
将生成的配置添加到 openclaw.json,然后:
openclaw doctor && openclaw gateway restart
4. 测试每个机器人
分别向每个飞书机器人发送消息。验证每个都使用正确的 Agent 身份响应。
参考文件
| 文件 | 何时阅读 |
|---|---|
| references/architecture.md | 理解三块配置模型、accountId 机制和 channel 层设计 |
| references/build-guide.md | 从零开始设置——飞书开发者控制台到网关重启,循序渐进 |
| references/routing-deep-dive.md | 调试路由问题——accountId 一致性检查、绑定规则、基于群组的隔离 |
| references/troubleshooting.md | 修复具体问题——网关无法启动、机器人无响应、错误的 agent、spawn 冲突 |
关键教训(节省时间)
1. accountId 必须在3处匹配:channels.feishu.accounts.{key}、bindings[].match.accountId,以及账户配置内的 agent 字段。一个拼写错误 = 静默路由失败。
2. 绑定类型必须是 "route":使用 "delivery" 或任何其他值会导致网关启动失败,且没有有用的错误消息。
3. 飞书应用必须已发布:草稿状态的应用无法接收消息。这是 "机器人无响应" 的首要原因。
4. allowAgents 必须完整:如果你的 orchestrator 生成了子 agent,每个可生成的 agent ID 都必须在 allowAgents 中。新增 agent 但未列入 = spawn 权限错误。
5. agentToAgent 必须保持关闭:启用 agentToAgent.enabled: true 会破坏所有子 agent 的 spawn(已知 bug #5813)。保持为 false。请参阅 references/troubleshooting.md 获取完整的诊断流程图。
脚本
| 脚本 | 用法 |
|---|---|
scripts/setup-feishu-bots.sh | ./setup-feishu-bots.sh ... — 生成 channels、bindings 和 agents.list JSON 块 |