OpenClaw 如何优雅配置多个飞书账号?
导读随着业务场景的深入,单个飞书机器人往往已经无法满足复杂的 AI 需求。好消息是,从 OpenClaw v2.4+ 开始,系统正式支持了 多飞书账号(Multi-Account) 配置!
今天这篇文章,我们将通过实际示例,手把手教你在同一个 OpenClaw 实例下,挂载并管理多个飞书机器人,彻底实现“专机专用”。
一、 为什么我们需要多账号?🤔
在企业级落地中,多账号体系几乎是必选项。它的核心优势在于:
-
• 🛡️ 业务隔离:不同业务线使用独立的飞书应用,消息频率和 API 额度互不干扰。 -
• 🤖 多 Agent 分工:将不同账号路由给专门的 AI Agent。例如:一个是“代码助手”,另一个是“HR 知识库”,做到术业有专攻。 -
• 🧪 环境分离:生产账号与测试账号彻底分开,本地调试不再影响线上群聊。
二、 快速开始:以新增“Note助手”为例 🛠️
假设我们现在要新增一个名为 note 的飞书机器人。跟着以下四步走即可:
1️⃣ 创建新的 Agent
首先,在 OpenClaw 中为新账号创建一个专属的 Agent 和工作区:
# 推荐做法:创建 Agent 并手动指定工作区路径openclaw agents add note --workspace ~/.openclaw/workspace/note
执行后,系统会自动帮你建好工作区目录(workspace/note/)和配置目录(agents/note/agent/)。
2️⃣ 去飞书开放平台“领证”
前往飞书开放平台(open.feishu.cn),创建企业自建应用,并获取 App ID 和 App Secret。
🚨 高危避坑:在“权限管理”中,除了基础的 im:message(接收消息),必须、务必、一定要开通 im:message:send_as_bot 权限! 没有这个权限,你的机器人只能听不能说。(选配权限:如需群聊请开 im:group,如需读文档请开 drive:drive 等)
最后,记得开启 WebSocket 长连接模式,并发布该应用。
3️⃣ 核心:配置 openclaw.json
这是最容易出错的一步。打开你的配置文件:
💡 老司机提醒:很多开发者喜欢把原有的 Default Bot 凭据一股脑移到 accounts 里面去。千万别这么干! 为了向后兼容,Default Bot 的凭据必须留在 channels.feishu 顶层!
参考以下正确配置:
{ "channels": { "feishu": { "enabled":true, "domain": "feishu", "connectionMode": "websocket", // ⚠️ 原默认机器人的凭据,老老实实放在这里! "appId": "cli_default_xxx", "appSecret": "***", "defaultAccount": "default", // 👇 新增的多账号,写在 accounts 里面 "accounts": { "note": { "appId": "cli_note_xxx", "appSecret": "***" } } } }, "agents": { "list": [ {"id": "main", "workspace": "~/.openclaw/workspace", "default":true}, {"id": "note", "workspace": "~/.openclaw/workspace/note"} ] }, "bindings": [ // 路由规则:将飞书的 note 账号,绑定到 note Agent { "type": "route", "agentId": "main", "match": {"channel": "feishu", "accountId": "default"} }, { "type": "route", "agentId": "note", "match": {"channel": "feishu", "accountId": "note"} } ]}
4️⃣ 验证状态,一次点亮!
重启服务后,敲入这两行命令,看看是否大功告成:
# 检查 Agent 和通道绑定关系openclaw agents list --bindings# 探针检测飞书连接状态openclaw channels status --probe
🎉 期待的画面:当你看到所有账号都显示 enabled, configured, running, works,恭喜你,配置成功!
三、 避坑专区 (FAQ) 💣
Q1:机器人能收到我发的消息,但它就是不回我?
A:99% 是权限问题。去看飞书应用后台有没有开通
im:message:send_as_bot权限。如果在控制台看到飞书报错code: 99991672,直接去补权限并重新发布版本。
Q2:刚建好的机器人,我给它发第一条私聊,完全没反应?
A:这不是 Bug!如果你的 OpenClaw 开启了
pairing审批模式,陌生人的首条消息会被拦截。解法:输入openclaw pairing list --channel feishu --account note拿到配对验证码,然后用openclaw pairing approve feishu <CODE> --account note批准即可。
Q3:为什么我的 Default Bot 状态变成了 not configured?
A:再读一遍本文第 3 步的“老司机提醒”,你肯定把顶层的 appId 和 appSecret 挪位置了,赶紧挪回去。
四、 终极调试 Checklist 🩺
如果你仍然卡壳了,请不要慌,按顺序对照这 6 步排查,不要跳步:
-
1.在线状态:Bot 的 WebSocket 在线了吗? -
2.上行消息:OpenClaw 后台看到飞书发来的 Inbound log 了吗? -
3.拦截器:是不是被 Pairing (配对) 或 Allowlist (白名单) 卡住了? -
4.路由分发:根据 Bindings,消息 Dispatch 到正确的 Agent 了吗? -
5.大模型:Agent 成功生成回复文本了吗? -
6.下行消息:最后调用飞书 Send API 成功了吗?
💡 日志识别小技巧: 看到
feishu[note]: dispatching to agent和session=agent:note...,就证明路由配置彻底通了!
📝 总结
-
1. 凭证位置要留神:Default bot 凭据留顶层,新账号放 accounts。 -
2. 收发权限是两码事: im:message:send_as_bot是发消息的灵魂,别忘了开。 -
3. 首条消息遇冷漠:想一想是不是 Pairing 机制在作祟。 -
4. 相信日志的判断:直觉会骗人,但控制台的 Log 不会。
配置多账号虽然有门槛,但一旦打通,你的 AI 基础设施将迈上一个全新的台阶。赶紧动手试一试吧!
觉得这篇教程有用?欢迎点个 “赞” 和 “在看”,或分享给你的研发小群!遇到配置问题,也欢迎在评论区留言交流哦 👇
夜雨聆风