夜雨聆风学习资料网

ARTICLE · 1323330

OpenClaw 单飞书多机器人配置实战:从单账号到多 Agent 隔离

OpenClaw 单飞书多机器人配置实战:从单账号到多 Agent 隔离

OpenClaw 单飞书多机器人配置实战:从单账号到多 Agent 隔离

简单之事,因人而异。你以为的“添加一个机器人”,可能是一场始料未及的填坑之旅。这是我的真实记录。


🎯 写在前面

大家好,我是白骆驼,一个从码农做到总监的低空安防老鸟。

最近在折腾 OpenClaw—— 这个最近火热的 AI 助手平台。我的需求很简单:想用它接入飞书,同时管理多个机器人——一个用于日常工作,一个专门作为公众号写作助手。

本以为只是简单的配置添加,结果一路踩坑,从单账号升级到多账号,再到多 Agent 隔离,折腾了大半天。

这篇文章把整个配置过程、遇到的问题和解决方案完整记录下来,希望对同样在使用 OpenClaw 的朋友有所帮助。

💡 不求专业,但求真实;不追系统,只愿持续—— 这是我的写作理念,也是这次分享的初衷。


一、📋 背景与需求

1.1 我的环境

项目
配置
OpenClaw 版本
从 v2026.3.28 → v2026.4.1
部署方式
Linux 服务器 + systemd 服务
已有配置
一个飞书机器人(main)已正常运行

1.2 核心需求

  • ✅ 新增第二个飞书机器人,专门用于公众号写作
  • ✅ 两个机器人功能隔离,各自有独立的记忆和人设
  • ✅ 在飞书上通过不同的机器人应用进行区分

二、🔧 飞书侧准备工作

在开始 OpenClaw 配置前,需要先在飞书开放平台创建第二个机器人应用。

2.1 创建应用

  1. 登录 飞书开放平台
  2. 点击「创建企业自建应用」,填写应用名称(如“公众号助手”)
  3. 添加「机器人」能力

2.2 配置权限与事件

配置项
设置
权限im:message
、im: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-pager

4.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 started

5.2 测试机器人

在飞书 APP 中找到对应的机器人应用,发送消息测试。

📌 首次对话:需要先进行配对,发送任意消息即可触发配对流程。


六、📊 最终配置成果

6.1 账号与 Agent 对应关系

飞书账号
Agent
用途
main
main
默认助手
wechat-assistant
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 核心要点

序号
要点
说明
1
多账号配置
使用 accounts对象,删除顶层的 appId/appSecret
2
Agent 隔离
用 openclaw agents add创建独立 Agent,通过 bindings路由
3
配置验证journalctl
查看 WebSocket client started日志
4
服务管理
使用 systemctl管理 systemd 服务
5
功能测试
直接给飞书机器人发消息是最可靠的验证方式

7.2 避坑指南

问题
解决方法
JSON 格式错误
用 python3 -m json.tool校验
网关无法重启
用 systemctl restart openclaw-gateway.service
Web 控制台显示异常
暂时用命令行管理,留待后续研究
SSH 连接报错
不影响 OpenClaw,留待后续研究
模型定价失败
不影响核心功能,留待后续研究

💬 写在最后

配置过程虽然曲折,但最终效果很满意:两个飞书机器人各司其职,互不干扰。如果你也在使用 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学习的折腾日常。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料