大家好,我是小肥肠。今天来聊一个Openclaw进阶玩法—— OpenClaw 绑 定 多个 飞书 bot,让每个 Agent 都有自己专属的入口。在聊怎么做之前,先让大家认识一下我现在跑的这六个数字员工:
🎬 总监(director) :小红书运维指挥中枢,负责协调collector和creator分工协作,接收任务后拆解分发。
- 📥 采集员(collector) :专职数据猎手,盯着小红书抓对标账号的内容,整理好之后乖乖写进飞书表格,从不多嘴。
- ✍️ 创作者(creator) :内容生产机器,拿到采集员送来的素材,负责创作小红书笔记,文案、排版一条龙。
📋 日常助手(daily) :全能助理,日报、提醒、日常问答都归它管,每天晚上还会自动推送日报,是我用得最频繁的 Agent。 🖊️ 写作助手(writer) :公众号专属写手,按我固化的文风起草长文,写完存进飞书文档给我审阅,确认后排版推草稿箱,全程不用我动手。 🎨 生图助手(imager) :视觉担当,支持图片理解、小红书美食手账生成,全能生图(skill正在开发),把我的想法变成好看的图。
有了这六个 Agent,我每天只需要动动嘴,采集、写稿、出图、日报全自动跑,省下来的时间可以做一些别的事情。
1. 前言
我最开始配 OpenClaw 的时候,图省事,只建了一个飞书 bot,所有需求都丢给它:写文章、出图、查数据、跑日报……用了一段时间,问题就来了:
| 问题类型 | 具体现象及描述 |
|---|---|
| 上下文污染 | 写文章的对话和跑数据的对话全混在一起,明明叫它写稿,它脑子里还残留着上一次数据分析的上下文,输出开始飘。 |
| 单Agent身兼多职,效率质量低下 | 一个Agent啥都干,职责不清,就像让同一个人同时当厨师、会计和司机,效率和质量都很难保证。 |
| 任务过多易报错 | OpenClaw底层是大模型,上下文有token上限。任务堆多了,超出限制,任务直接失败,什么都没跑完。 |
后来我想明白了:一个 Agent 专门干一件事,才是正确姿势。 让写作的只管写作,让采集的只管采集,上下文干净,职责清晰,稳定性也好很多。
要实现这个效果,就需要给每个 Agent 配一个专属飞书 bot,让用户可以通过不同的 bot 入口直接和对应的 Agent 对话,效果如下:
写作Agent: 我用的第二频繁的Agent,这篇文章就出自文文之手。
生图Agent:
小红书运营Agent:
日常助手: 用的最多的Agent,把它的性格都设置好了~
2. openclaw 绑定多飞书 bot 架构说明
在动手之前,先把几个核心概念搞清楚,OpenClaw 里有三个关键角色:account、 Agent 、 channel。
- Agent:真正干活的 AI 角色,比如写作助手、日报助手、采集助手,每个 Agent 有自己的人设、工作流和上下文
- account:OpenClaw 的账号配置单元,每个 account 可以绑定一个外部渠道(比如飞书 bot)
- channel ( 飞书 bot) :用户和 Agent 对话的入口,每个飞书 bot 对应一个自建应用
整体架构长这样:
这个设计的好处:
- 职责清晰:每个 Agent 只做自己该做的事,提示词和工作流可以深度定制
- 上下文隔离:不同任务的对话不会互相污染
- 稳定性更好:单个 Agent 的上下文体量可控,不容易撑爆
3. openclaw 绑定多飞书 bot 架构实现
接下来进入实操环节,分三步走。
3.1. 飞书机器人打通Openclaw链接
打开飞书开发者后台(open.feishu.cn),点击【创建企业自建应用】按钮,填写应用名称、应用描述,上传应用图标,点击【创建】按钮后,网页会跳转至应用初始界面。
添加应用能力: 进入【添加应用能力】页面,找到机器人卡片,点击【添加】按钮。
开通应用权限: 进入【权限管理】页面,点击【批量导入/导出权限】。
开通以下权限:
{
"scopes": {
"tenant": [
"aily:file:read",
"aily:file:write",
"application:application.app_message_stats.overview:readonly",
"application:application:self_manage",
"application:bot.menu:write",
"cardkit:card:write",
"contact:user.employee_id:readonly",
"corehr:file:download",
"docs:document.content:read",
"event:ip_list",
"im:chat",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:bot_access",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.group_msg",
"im:message.p2p_msg:readonly",
"im:message:readonly",
"im:message:send_as_bot",
"im:resource",
"sheets:spreadsheet",
"wiki:wiki:readonly"
],
"user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"]
}
}
配置长链接事件:
在小龙虾所在的服务器命令面板新建长链接脚本:
cat > feishu_long_conn_official.py << 'EOF'
import lark_oapi as lark
# 你的最新飞书密钥(已替换)
APP_ID = "飞书应用appid"
APP_SECRET = "飞书应用appsecret"
# 事件处理函数(仅用于建立连接)
def do_p2_im_message_receive_v1(data: lark.im.v1.P2ImMessageReceiveV1) -> None:
print(f'[收到消息事件], 数据: {lark.JSON.marshal(data, indent=4)}')
# 构建官方事件处理器
event_handler = lark.EventDispatcherHandler.builder("", "") \
.register_p2_im_message_receive_v1(do_p2_im_message_receive_v1) \
.build()
# 启动长连接
def main():
cli = lark.ws.Client(APP_ID, APP_SECRET,
event_handler=event_handler,
log_level=lark.LogLevel.DEBUG)
print("✅ 正在建立飞书长连接...")
print("🔔 连接成功后请去飞书后台点击「保存」,完成后按 Ctrl+C 退出")
cli.start()
if __name__ == "__main__":
main()
EOF
输入命令python3 feishu_long_conn_official.py启动临时长链接。
进入【事件与回调】界面,开启长连接,点击 【添加事件】 按钮,在弹出的添加事件弹窗中添加im.message.receive_v1事件。
发布新版本: 填写版本号和更新说明后直接发布。
openclaw配对: 第一次与飞书bot对话会出现让配对的标识,只需将红框部分发送给openclaw管理后台配对即可。(注意如果是本机就打开命令行输入指令,服务器就进入命令行面板)
3.2 编写Agent配置文件
飞书 bot 建好了,接下来要在 OpenClaw 这边把对应的 Agent 配起来。首先进入 /root/.openclaw/workspace/ Agent s/ 目录,给每个 Agent 新建一个文件夹。文件夹名就是这个 Agent 的 id。比如我这边跑了三个 Agent ——日常助手、写作助手、生图助手,对应建了 daily、writer、imager 三个文件夹。 (ps:director、writer、imager是小红书运营Agent,文章指引:OpenClaw 实战|多 Agent 打通小红书:数据收集 + 笔记编写 + 自动发布一步到位)
每个文件夹里至少要有以下文件:
每个文件的说明如下表所示:
| 文件名称 | 核心说明(用途、作用) | 编写示例(以“写作助手”为例) |
|---|---|---|
| AgentS.md | 工作空间说明:介绍职责、角色定位和使用方式,让 OpenClaw 理解核心工作逻辑。 | 本 Agent 负责公众号长文起草。流程:接收主题 -> 搜索素材 -> 生成大纲 -> 填充正文 -> 存入飞书。 |
| SOUL.md | 灵魂文件:定义人设、语气风格和核心工作流。这是 Agent 行为的最高准则。 | 人设:资深科技编辑。语气:专业且风趣。禁止:禁止使用“总之”、“综上所述”等老套词汇。 |
| IDENTITY.md | 身份卡:名字、形象、性格气质等基础信息,明确“我是谁”。 | 名字:小肥肠的笔杆子。性格:严谨、高效。形象:戴黑框眼镜、手捧咖啡的极客。 |
| USER.md | 用户信息:存储对用户的称呼、偏好、时区等,实现个性化互动。 | 称呼:老板。偏好:喜欢短句,文章段落间必须插入 emoji。时区:Asia/Shanghai。 |
| TOOLS.md | 工具指南:明确 Agent 可调用的工具路径和用途,防止 AI “盲猜”。 | feishu_writer: /tools/feishu_doc.py(用于写入文档);google_search: /tools/search.py(用于查资料)。 |
| HEARTBEAT.md | 心跳任务:配置定时任务(如日报、提醒)。无需定时任务时留空。 | cron: "0 22 * * *" (每天22:00执行);task: "汇总今日飞书表格新增的采集数据并推送汇总"。 |
Agent文件夹建好之后,打开 /root/.openclaw/openclaw.json,这是 OpenClaw 的核心配置文件,我们要在里面做三件事:
- 在Agent s.list 里声明有哪些 Agent,每个 Agent 填上 id、名称和工作目录路径。
- 在 channels.feishu.accounts 里,把刚才从飞书开发者后台拿到的 appId 和 appSecret 填进去,每个 bot 一个 account,defaultAgent 指向对应的 Agent id。
- 在 bindings 里把 AgentId 和 accountId 对应起来,告诉 OpenClaw 收到哪个 bot 的消息就转给哪个 Agent 处理。 配置格式参考如下:
{
"agents": {
"list": [
{
"id": "daily",
"name": "日常助手",
"workspace": "/root/.openclaw/workspace/agents/daily"
},
{
"id": "writer",
"name": "写作助手",
"workspace": "/root/.openclaw/workspace/agents/writer"
},
{
"id": "imager",
"name": "生图助手",
"workspace": "/root/.openclaw/workspace/agents/imager"
}
]
},
"channels": {
"feishu": {
"enabled": true,
"accounts": {
"daily": {
"appId": "cli_你的daily_appId",
"appSecret": "你的daily_appSecret",
"defaultAgent": "daily"
},
"writer": {
"appId": "cli_你的writer_appId",
"appSecret": "你的writer_appSecret",
"defaultAgent": "writer"
},
"imager": {
"appId": "cli_你的imager_appId",
"appSecret": "你的imager_appSecret",
"defaultAgent": "imager"
}
}
}
},
"bindings": [
{
"agentId": "daily",
"match": { "channel": "feishu", "accountId": "daily" }
},
{
"agentId": "writer",
"match": { "channel": "feishu", "accountId": "writer" }
},
{
"agentId": "imager",
"match": { "channel": "feishu", "accountId": "imager" }
}
]
}
配置完成后保存文件,重启 OpenClaw Gateway 让配置生效:openclaw gateway restart。
以上就是openclaw配置多飞书Bot完整教程,动手能力强的读者可以跟着教程实践一遍。相关配置文件和视频课程已经被收录到了小肥肠陪跑群中,需要的可以加入社群使用。
4. 结语
从一个 bot 打天下,到每个 Agent 都有专属入口,这个改造成本不高,但带来的提升是实实在在的——上下文干净了,任务不再串戏,稳定性也好了很多。
如本次分享对你有帮助,欢迎一键三连支持一下小肥肠,我们下期再见~