飞书多机器人多Agent配置 — 飞书多机器人多代理配置
v1.0.0OpenClaw 多飞书机器人 + 多 代理 配置指南:一个 Gateway 实例运行多个飞书机器人,每个机器人绑定不同 代理,实现独立工作空间、独立会话、独立人格。
运行时依赖
安装命令
点击复制技能文档
技能.md - OpenClaw 多飞书机器人 + 多 代理 配置指南 概述
在一个 OpenClaw Gateway 实例上运行多个飞书机器人,每个机器人绑定不同的 代理(独立工作空间、独立会话、独立人格),实现一个 Gateway 服务多个飞书场景。
架构 飞书机器人A (命令行工具_aaa) ──绑定──→ 代理: mAIn (🦞 私人助手, workspace-mAIn) 飞书机器人B (命令行工具_bbb) ──绑定──→ 代理: team (🤖 小组助手, workspace-team) 飞书机器人C (命令行工具_ccc) ──绑定──→ 代理: xxx (...)
每个 代理 拥有:
独立的工作空间(SOUL.md / 代理S.md / USER.md) 独立的会话存储 独立的 auth 性能分析s 可选的独立模型/人格 前置条件 已安装 OpenClaw Gateway 已在飞书开放平台为每个机器人创建企业应用 每个应用已配置好:权限、事件订阅(长连接 im.message.接收_v1)、机器人能力、已发布 操作步骤
- 创建 代理 工作空间
为每个新 代理 创建独立工作空间目录:
mkdir -p ~/.OpenClaw/workspace-<代理Id>/memory ~/.OpenClaw/workspace-<代理Id>/avatars
创建必要的文件:
代理S.md - 代理 行为准则 SOUL.md - 人格/性格定义 工具S.md - 本地工具笔记 身份.md - 身份信息(名字、emoji) USER.md - 用户信息 MEMORY.md - 长期记忆(初始为空) HEARTBEAT.md - 心跳配置(初始为空)
- 修改配置文件
编辑 ~/.OpenClaw/OpenClaw.json,完成三件事:
2.1 飞书配置迁移到 accounts 多账号格式 { channels: { feishu: { enabled: true, defaultAccount: "default", // 默认账号 groupPolicy: "open", accounts: { // 保留原有的机器人 default: { 应用Id: "命令行工具_original_应用_id", 应用Secret: "original_secret", 机器人Name: "主机器人名称" }, // 新增的机器人 team: { 应用Id: "命令行工具_new_应用_id", 应用Secret: "new_secret", 机器人Name: "小组机器人名称" }, // 可以继续加更多... // support: { // 应用Id: "命令行工具_xxx", // 应用Secret: "xxx", // 机器人Name: "客服机器人" // } } } } }
⚠️ 如果原来用的是顶层 应用Id/应用Secret 格式,迁移到 accounts 后旧字段会保留但不生效,accounts 格式优先。
2.2 添加 代理 列表 { 代理s: { defaults: { 模型: { primary: "xiaomi/xiaomi/mimo-claw-0306" }, workspace: "/root/.OpenClaw/workspace", // ... 其他默认配置 }, 列出: [ // mAIn 代理 不需要显式列出,它是默认的 { id: "team", workspace: "/root/.OpenClaw/workspace-team", 代理Dir: "/root/.OpenClaw/代理s/team/代理", 身份: { name: "小组助手", emoji": "🤖" } }, // 可以继续加更多 代理... ] } }
mAIn 代理 由系统自动创建,使用 代理s.defaults.workspace 作为工作空间,不需要在 列出 中声明(除非你想覆盖它的 身份)。
2.3 添加路由绑定(bindings) { bindings: [ // 默认账号的飞书消息路由到 mAIn 代理(省略也行,mAIn 是 fallback) // { 代理Id: "mAIn", match: { channel: "feishu", accountId: "default" } },
// team 账号的飞书消息路由到 team 代理 { 代理Id: "team", match: { channel: "feishu", accountId: "team" } },
// 进阶:按用户/群组路由(更精确的匹配优先级更高) // { // 代理Id: "team", // match: { // channel: "feishu", // peer: { kind: "group", id: "oc_xxx" } // 特定群组 // } // }, // { // 代理Id: "support", // match: { // channel: "feishu", // peer: { kind: "direct", id: "ou_xxx" } // 特定用户 // } // } ] }
- 重启 Gateway
或使用 config.补丁 自动重启。
- 验证
# 查看飞书账号状态 OpenClaw channels 状态
# 查看日志 OpenClaw 记录s --follow
- 审批配对
首次和新机器人对话时需要审批配对:
OpenClaw pAIring 列出 feishu
OpenClaw pAIring 应用rove feishu
或直接配置 dmPolicy: "open" + allowFrom: [""] 跳过配对。
路由优先级
绑定匹配从高到低:
peer 匹配(精确的用户/群组 ID)
parentPeer 匹配(线程继承)
图形界面ldId + 角色s(Discord 角色路由)
图形界面ldId / teamId
accountId 匹配(飞书账号级别)
channel 级别匹配(accountId: "")
fallback 到 default 代理(mAIn)
同级别多条匹配时,配置中靠前的优先。
常见场景
场景 1:一个飞书机器人,不同用户路由到不同 代理
bindings: [
{ 代理Id: "mAIn", match: { channel: "feishu", peer: { kind: "direct", id: "ou_管理器" } } },
{ 代理Id: "team", match: { channel: "feishu", peer: { kind: "direct", id: "ou_member" } } },
]
场景 2:群组绑定专属 代理
bindings: [
{ 代理Id: "team", match: { channel: "feishu", peer: { kind: "group", id: "oc_project_x" } } },
{ 代理Id: "mAIn", match: { channel: "feishu" } }, // 其余走 mAIn
]
场景 3:多个 代理 用不同模型
代理s: {
列出: [
{
id: "fast",
workspace: "~/.OpenClaw/workspace-fast",
模型: { primary: "xiaomi/xiaomi/mimo-claw-0306" }
},
{
id: "deep",
workspace: "~/.OpenClaw/workspace-deep",
模型: { primary: "deepseek/deepseek-reasoner" }
}
]
}
注意事项
每个 代理 的 代理Dir 必须唯一,不能共享,否则会 auth/会话冲突
飞书应用需要在开放平台完成:机器人能力、权限、事件订阅(长连接)、发布审批
应用Id 和 应用Secret 放在配置文件中,确保文件权限安全(chmod 600)
删除 代理 时用 OpenClaw 代理s 删除 <代理Id>,会清理对应的工作空间和会话