ARTICLE · 1323330
OpenClaw 单飞书多机器人配置实战:从单账号到多 Agent 隔离
OpenClaw 单飞书多机器人配置实战:从单账号到多 Agent 隔离
简单之事,因人而异。你以为的“添加一个机器人”,可能是一场始料未及的填坑之旅。这是我的真实记录。
🎯 写在前面
大家好,我是白骆驼,一个从码农做到总监的低空安防老鸟。
最近在折腾 OpenClaw—— 这个最近火热的 AI 助手平台。我的需求很简单:想用它接入飞书,同时管理多个机器人——一个用于日常工作,一个专门作为公众号写作助手。
本以为只是简单的配置添加,结果一路踩坑,从单账号升级到多账号,再到多 Agent 隔离,折腾了大半天。
这篇文章把整个配置过程、遇到的问题和解决方案完整记录下来,希望对同样在使用 OpenClaw 的朋友有所帮助。
💡 不求专业,但求真实;不追系统,只愿持续—— 这是我的写作理念,也是这次分享的初衷。
一、📋 背景与需求
1.1 我的环境
| OpenClaw 版本 | |
| 部署方式 | |
| 已有配置 | main)已正常运行 |
1.2 核心需求
✅ 新增第二个飞书机器人,专门用于公众号写作 ✅ 两个机器人功能隔离,各自有独立的记忆和人设 ✅ 在飞书上通过不同的机器人应用进行区分
二、🔧 飞书侧准备工作
在开始 OpenClaw 配置前,需要先在飞书开放平台创建第二个机器人应用。
2.1 创建应用
登录 飞书开放平台 点击「创建企业自建应用」,填写应用名称(如“公众号助手”) 添加「机器人」能力
2.2 配置权限与事件
| 权限 | im:messageim:message.p2p_msg:readonly、im:message:send_as_bot |
| 事件订阅 | |
| 事件 | im.message.receive_v1 |
| 发布 |
⚠️ 重要提醒:如果机器人没有「发布上线」,即使配置正确也无法收发消息。
2.3 获取凭证
记录下两个关键信息:
App ID(格式: cli_xxx)App Secret
三、🚀 OpenClaw 配置演进
3.1 初始状态:单账号配置
最初我的飞书配置是这样的(单账号模式):
{"channels": {"feishu": {"enabled": true,"appId": "cli_xxxxxx","appSecret": "xxxxxx" } }}这种模式下,只能连接一个飞书机器人。
3.2 第一步:改为多账号配置
要添加第二个机器人,需要将配置改为多账号模式。核心变化:
{"channels": {"feishu": {"enabled": true,"accounts": {"main": {"appId": "cli_第一个机器人的AppID","appSecret": "第一个机器人的AppSecret" },"wechat-assistant": {"appId": "cli_第二个机器人的AppID","appSecret": "第二个机器人的AppSecret" } } } }}🔑 关键点:
删除顶层的 appId和appSecret在 accounts对象中为每个机器人定义独立的键名(如main、wechat-assistant)
3.3 第二步:创建独立 Agent
为了实现功能隔离,需要为公众号助手创建独立的 Agent:
openclaw agents add wechat-assistant --workspace ~/.openclaw/workspace-wechat此时 agents.list中会新增一个 Agent:
{"agents": {"list": [ { "id": "main" }, {"id": "wechat-assistant","workspace": "/root/.openclaw/workspace-wechat" } ] }}3.4 第三步:配置路由绑定
最关键的一步:将飞书账号与 Agent 关联起来。在配置文件中添加 bindings字段:
{"bindings": [ {"agentId": "main","match": {"channel": "feishu","accountId": "main" } }, {"agentId": "wechat-assistant","match": {"channel": "feishu","accountId": "wechat-assistant" } } ]}📌 注意:
accountId必须与accounts中的键名完全一致。
四、🕳️ 踩坑实录
4.1 坑一:JSON 格式错误
现象:修改配置后网关无法启动,日志提示 JSON 解析错误。
原因:在 accounts块后面忘记加逗号。
错误示例:
"accounts": {"main": { ... },"wechat-assistant": { ... }} // ← 这里缺少逗号"connectionMode": "websocket",正确示例:
"accounts": {"main": { ... },"wechat-assistant": { ... }}, // ← 加上逗号"connectionMode": "websocket",✅ 解决方案:检查 JSON 格式,确保每个字段之间用逗号分隔。
# 验证 JSON 格式cat ~/.openclaw/openclaw.json | python3 -m json.tool > /dev/null && echo"✅ JSON 格式正确" || echo"❌ JSON 格式错误"4.2 坑二:网关进程管理
现象:执行 openclaw gateway restart报错:
Gateway failed to start: gateway already running (pid xxxx)原因分析:经过排查发现,OpenClaw 网关实际上是由 systemd 服务管理的(服务名 openclaw-gateway.service)。直接使用 openclaw gateway restart命令与 systemd 服务冲突,导致无法正常重启。
✅ 解决方案:使用 systemd 命令管理网关服务:
# 重启网关systemctl restart openclaw-gateway.service# 查看状态systemctl status openclaw-gateway.service# 查看日志journalctl -u openclaw-gateway.service -n 50 --no-pager4.3 坑三:Web 控制台显示异常
现象:在 OpenClaw Web 控制台查看飞书频道时,提示:
Your config contains fields the form editor can't safely represent. Use Raw mode to edit those entries.原因:新版飞书插件的多账号结构(accounts对象)与 Web 控制台的表单编辑器不兼容。
影响:不影响功能,两个机器人实际已正常连接。
后续处理:暂时采用命令行管理方式,Raw 模式的操作留待后续研究。
4.4 坑四:SSH 连接报错
现象:操作过程中终端出现大量:
channel 3: open failed: connect failed: Connection refused原因:这是 SSH 客户端的端口转发报错,与 OpenClaw 无关。
影响:不影响OpenClaw 网关和飞书机器人的正常运行。
后续处理:该问题与 OpenClaw 配置无关,留待后续研究 SSH 连接配置。
4.5 坑五:pricing bootstrap failed
现象:启动日志中出现:
[model-pricing] pricing bootstrap failed: TypeError: fetch failed原因:OpenClaw 尝试获取模型定价信息时网络请求失败。
影响:不影响聊天、Agent 响应等核心功能,只是控制台的费用统计不准确。
后续处理:该问题不影响日常使用,留待后续研究网络配置。
五、✅ 验证配置是否成功
5.1 查看日志确认连接
journalctl -u openclaw-gateway.service -n 100 --no-pager | grep "WebSocket client started"成功时应该看到类似输出:
[feishu] feishu[main]: WebSocket client started[feishu] feishu[wechat-assistant]: WebSocket client started5.2 测试机器人
在飞书 APP 中找到对应的机器人应用,发送消息测试。
📌 首次对话:需要先进行配对,发送任意消息即可触发配对流程。
六、📊 最终配置成果
6.1 账号与 Agent 对应关系
| main | ||
| wechat-assistant |
6.2 配置文件结构(精简版)
{"channels": {"feishu": {"enabled": true,"connectionMode": "websocket","accounts": {"main": {"appId": "cli_xxx","appSecret": "xxx" },"wechat-assistant": {"appId": "cli_yyy","appSecret": "yyy" } } } },"agents": {"list": [ {"id": "main" }, {"id": "wechat-assistant","workspace": "/root/.openclaw/workspace-wechat" } ] },"bindings": [ {"agentId": "main","match": {"channel": "feishu","accountId": "main" } }, {"agentId": "wechat-assistant","match": {"channel": "feishu","accountId": "wechat-assistant" } } ]}七、📝 总结
7.1 核心要点
| 多账号配置 | accounts对象,删除顶层的 appId/appSecret | |
| Agent 隔离 | openclaw agents add创建独立 Agent,通过 bindings路由 | |
| 配置验证 | journalctlWebSocket client started日志 | |
| 服务管理 | systemctl管理 systemd 服务 | |
| 功能测试 |
7.2 避坑指南
| JSON 格式错误 | python3 -m json.tool校验 |
| 网关无法重启 | systemctl restart openclaw-gateway.service |
| Web 控制台显示异常 | |
| SSH 连接报错 | |
| 模型定价失败 |
💬 写在最后
配置过程虽然曲折,但最终效果很满意:两个飞书机器人各司其职,互不干扰。如果你也在使用 OpenClaw,希望这篇文章能帮你少踩几个坑。
🎯 不求专业,但求真实;不追系统,只愿持续—— 这是“低空闲话,AI杂谈”的初衷,也是我想通过这个公众号传递的态度。
如果遇到其他问题,欢迎在评论区交流讨论。
📎 附录:常用命令速查
# 查看网关状态systemctl status openclaw-gateway.service# 查看飞书连接日志journalctl -u openclaw-gateway.service -n 100 | grep feishu# 重启网关systemctl restart openclaw-gateway.service# 验证 JSON 配置cat ~/.openclaw/openclaw.json | python3 -m json.tool > /dev/null && echo"✅ JSON 格式正确" || echo"❌ JSON 格式错误"# 查看 Agent 列表openclaw agents list从码农到总监,一个低空安防老鸟的随性笔记。聊聊低空安防那些事儿,也分享AI学习的折腾日常。















































































