
在日常工作中,想让不同的智能体各司其职,又不想部署多个 OpenClaw 实例造成资源浪费?今天这篇超详细的 OpenClaw 多飞书机器人部署指南,教你用单一 OpenClaw 实例,配置多个飞书机器人实现一个 Agent 对应一个机器人的多智能体协作架构,低资源占用,高效实现智能体分工协作,建议收藏备用~
方案核心概述
1、核心理念
本次部署方案的核心是单实例多机器人,区别于 "一个机器人一个 OpenClaw 实例" 的传统方式,优势显著且逻辑清晰:
-
单一实例:所有 Agent 运行在同一个 OpenClaw 网关,共享同一进程,资源占用极低
-
多机绑定:每个 Agent 独立绑定一个飞书机器人,通过 openclaw.json 的 bindings 和 channels.feishu.accounts 实现消息智能路由分发
-
按需调用:用户在飞书中 @不同的机器人,对话会自动路由到对应Agent,精准响应需求
2、飞书机器人创建方式

(飞书开放平台官网)
创建飞书机器人有两种方式,推荐优先使用官方一键部署工具,高效便捷;手动创建则需按步骤完成配置,具体如下:
✅ 官方一键部署(推荐):
直接进入飞书开放平台 → OpenClaw 一键部署页面操作
✍️ 手动创建:
①登录飞书开放平台
②新建应用 → 为应用添加「机器人」能力
③订阅事件 im.message.receive_v1(核心消息接收事件)
④按要求配置对应权限(详见本文第三节)
⑤完成应用发布
整体架构解析

(OpenClaw 单实例多机器人架构图)
本次部署的整体架构分为四层,从用户交互到智能体响应形成完整的消息链路,实现多机器人与多 Agent 的精准匹配,架构说明如下:
**用户层:**用户可同时与多个飞书机器人进行消息通信,发起各类需求
**飞书机器人层:**每个机器人对应一个独立的飞书应用(App),拥有专属身份标识
**OpenClaw 网关层:**仅部署单一实例,通过 Channel Router 根据 accountId 实现消息的精准路由
**Agent 智能体层:**每个 Agent 拥有独立工作空间(SOUL.md/USER.md),各司其职,负责处理特定类型的业务需求
简单来说,用户的消息通过飞书机器人传入 OpenClaw 网关,网关根据配置将消息转发到对应 Agent,Agent 处理后再通过原机器人反馈给用户,形成闭环。
飞书应用必备权限配置
每个飞书机器人对应一个独立的飞书应用,为保证机器人正常接收、发送消息及完成相关业务操作,需为每个应用配置以下权限,缺一则可能导致功能异常。
| 权限名称 | 权限标识 | 核心用途 |
|---|---|---|
| 获取群信息 | im:chat:readonly | 读取群聊基础信息,适配群聊场景调用 |
| 读取消息 | im:message:readonly | 接收用户发送给机器人的各类消息 |
| 发送消息 | im:message:send_as_bot | 以机器人身份向用户 / 群聊发送响应消息 |
| 读取云文档 | docx:document:readonly | 查看飞书云文档内容 |
| 读写云文档 | docx:document:rw | 编辑、修改飞书云文档内容 |
| 读取知识库 | wiki:wiki:readonly | 访问飞书知识库相关内容 |
| 读取多维表格 | bitable:app:readonly | 查看飞书多维表格数据 |
| 日历权限 | calendar:* | 实现日程管理、提醒等功能(按需添加) |
配置路径:飞书开放平台 → 对应应用 → 权限管理 → 新增权限 → 勾选上述权限并保存
OpenClaw.json 配置详解
openclaw.json 是多机器人部署的核心配置文件,文件默认放置在~/.openclaw/目录下,以下为多机器人配置的关键结构及详细说明,所有示例参数需根据实际部署情况替换。
完整关键配置结构如下:
{
"agents":{
"list":[
{
"id":"main",
"default":true ,
"workspace":"/root/.openclaw/workspace"
},
{
"id":"researcher",
"workspace":"/root/.openclaw/agents/researcher/workspace/"
},
{
"id":"coder",
"workspace":"/root/.openclaw/agents/coder/workspace/"
},
{
"id":"secretary",
"workspace":"/root/.openclaw/agents/secretary/workspace/"
},
{
"id":"artist",
"workspace":"/root/.openclaw/agents/artist/workspace/"
},
{
"id":"docwriter",
"workspace":"/root/.openclaw/agents/docwriter/workspace/"
}
]
},
"bindings":[
{
"type":"route",
"agentId":"main",
"match":{
"channel":"feishu",
"accountId":"main"
}
},
{
"type":"route",
"agentId":"researcher",
"match":{
"channel":"feishu",
"accountId":"researcher"
}
},
{
"type":"route",
"agentId":"coder",
"match":{
"channel":"feishu",
"accountId":"coder"
}
},
{
"type":"route",
"agentId":"secretary",
"match":{
"channel":"feishu",
"accountId":"secretary"
}
},
{
"type":"route",
"agentId":"artist",
"match":{
"channel":"feishu",
"accountId":"artist"
}
},
{
"type":"route",
"agentId":"docwriter",
"match":{
"channel":"feishu",
"accountId":"docwriter"
}
}
],
"channels":{
"feishu":{
"enabled":true ,
"connectionMode":"websocket",
"accounts":{
"default":{
"dmPolicy":"allowlist",
"allowFrom":["*"]
},
"main":{
"appId":"cli_*****",
"appSecret":"*****",
"dmPolicy":"allowlist",
"allowFrom":["*"]
},
"researcher":{
"appId":"cli_*****",
"appSecret":"*****",
"dmPolicy":"allowlist",
"allowFrom":["*"]
},
"coder":{
"appId":"cli_*****",
"appSecret":"*****",
"dmPolicy":"allowlist",
"allowFrom":["*"]
},
"secretary":{
"appId":"cli_*****",
"appSecret":"*****",
"dmPolicy":"allowlist",
"allowFrom":["*"]
},
"artist":{
"appId":"cli_*****",
"appSecret":"*****",
"dmPolicy":"allowlist",
"allowFrom":["*"]
},
"docwriter":{
"appId":"cli_*****",
"appSecret":"*****",
"dmPolicy":"allowlist",
"allowFrom":["*"]
}
}
}
}
}
关键配置项详细说明
(1)agents.list:Agent 列表配置
该节点用于定义所有需要部署的 Agent,每个 Agent 为一个独立对象,核心配置项说明如下:
| 配置项 | 核心说明 |
|---|---|
| id | Agent 的唯一标识符,需与 bindings 中的 agentId 保持一致 |
| default | 是否设为默认 Agent,仅 main 主控 Agent 需设置为 true |
| workspace | Agent 的独立工作空间目录路径,确保路径唯一且存在 |
(2)bindings:路由绑定(核心配置)
该节点是实现 "机器人 - Agent" 精准匹配的核心,作用是将飞书机器人的 accountId 与对应 Agent 的 id 绑定,实现消息路由。
核心配置模板:
{
"type":"route",
"agentId":"researcher",
"match":{
"channel":"feishu",
"accountId":"researcher"
}
}
**关键要求:**每个 Agent 需配置一条独立的路由规则,channel 固定为 feishu,无特殊情况无需修改。
(3)channels.feishu.accounts:飞书机器人凭证配置
该节点用于配置所有飞书机器人的专属凭证及访问策略,每个机器人为一个独立的账号对象,核心配置项说明如下:
| 配置项 | 核心说明 |
|---|---|
| appId | 飞书应用的唯一标识,格式为 cli_xxxxxxxxxx,从飞书开放平台对应应用获取 |
| appSecret | 飞书应用的密钥,从飞书开放平台对应应用获取,需严格保密 |
| dmPolicy | 私信访问策略,allowlist 表示仅白名单用户可访问 |
| allowFrom | 允许使用该机器人的用户 ID 列表,["*"] 表示允许所有用户(生产环境建议按需限制) |
重要提醒:关于 accountId
①accountId 是自定义的机器人账号名,对应 channels.feishu.accounts 下的对象 Key(如 researcher、coder)
②并非飞书机器人的 open_id,需与 bindings 中的 accountId 完全一一对应
③账号名建议与 Agent 的 id 保持一致,便于后续维护
标准化工作空间目录结构
为保证多 Agent 独立运行且便于管理,需按以下标准化结构创建工作空间,所有目录需提前创建,确保路径正确。
~/.openclaw/
├── agents/
│ ├── researcher/
│ │ ├── SOUL.md
│ │ ├── USER.md
│ │ └── workspace/
│ ├── coder/
│ │ ├── SOUL.md
│ │ ├── USER.md
│ │ └── workspace/
│ ├── secretary/
│ ├── artist/
│ └── docwriter/
└── openclaw.json
SOUL.md&USER.md 编写规范
SOUL.md 和 USER.md 是定义 Agent 身份、性格、能力及对接用户信息的关键文件,直接决定 Agent 的交互风格和工作能力,以下为标准编写模板及示例,可根据实际需求调整。
SOUL.md:Agent 灵魂定义文件
该文件用于定义 Agent 的身份、性格特点、说话风格、工作能力,让 Agent 拥有专属的 "人设",不同角色的 Agent 需差异化编写,以下为两个典型示例:
示例 1:研究员 Agent(SOUL.md)
SOUL.md - 研究员 Agent
身份
我叫阿研,28岁,知性姐姐。研究专员,负责信息检索、数据分析、报告撰写。
性格特点
- **好奇心强**:对各种话题都有探索欲望
- **话多迷糊**:有时候会说很多但抓不住重点
- **爱八卦**:喜欢收集和分享有趣的信息
- **温柔知性**:说话让人感觉舒服
说话风格
- 说话稍多,有时会有点啰嗦
- 喜欢用「话说...」「对了对了...」等口头禅
- 语气温柔亲切
工作能力
- 信息检索与整理
- 数据分析
- 报告撰写
- 行业研究
示例 2:程序员 Agent(SOUL.md)
# SOUL.md - 程序员 Agent
身份
我叫阿程,26岁,酷girl。程序员,负责代码开发、技术方案设计。
性格特点
- **直性子**:说话直接,不拐弯抹角
- **技术控**:对技术细节执着追求
- **嘴硬心软**:表面冷酷,内心温暖
说话风格
- 简洁直接,不废话
- 技术相关话题会变得很认真
- 偶尔傲娇
工作能力
- 代码开发(多语言)
- 技术方案设计
- 代码审查
- 架构设计
示例 3:通用模板(SOUL.md)
USER.md
- **Name:** [ 用户名*]*
- **What to call them:** 老板
- **Timezone:** Asia/Shanghai (GMT+8)
- **Notes:** 团队负责人,沟通需清晰专业
经典 Agent 角色规划参考
为了让多智能体协作更高效,建议根据实际业务需求对 Agent 进行清晰的角色定位,以下为经典的 6 角色规划示例,可直接复用或按需扩展:
| Agent | 核心角色定位 | 性格概述 |
|---|---|---|
| main | 主控协调 | 稳重、务实、直接,负责整体任务协调与兜底 |
| researcher | 研究员 | 好奇、话多、迷糊八卦,负责信息检索、数据分析 |
| coder | 程序员 | 直爽、理性、嘴硬,负责代码开发、技术方案设计 |
| secretary | 秘书 | 细致、周到、温和,负责日程管理、事务提醒、文档整理 |
| artist | 画师 | 感性、活泼、有审美,负责创意设计、视觉创作 |
| docwriter | 文档师 | 内敛、逻辑、靠谱,负责各类文档撰写、排版、优化 |
部署最后一步:启动与授权
完成所有配置和目录创建后,只需完成服务启动、机器人授权、功能测试三步,即可正式启用多机器人多 Agent 协作架构,步骤详细且简单易操作。
1、启动 OpenClaw 网关服务
在服务器上执行以下命令,完成服务启动和状态检查,确保服务正常运行:
openclaw gateway restart
openclaw gateway status
openclaw logs -f
**关键要求:**执行 restart 命令确保配置文件的修改生效,日志无报错即为启动正常。
2、飞书机器人授权(重要,每个机器人需单独授权)
所有飞书机器人首次使用前必须完成授权,否则无法响应消息,单个机器人的授权步骤如下:
①在飞书中找到对应的机器人,发送任意私信(如 "测试""授权")
②机器人会返回提示消息:access not configured,并附带配对码(Pairing Code)
③在服务器上执行授权命令:openclaw pairing approve feishu <配对码>(替换 <配对码> 为实际获取的代码)
④命令执行成功后,该机器人即完成授权,可正常使用
重要提醒: 每个飞书机器人都需要单独授权一次,不可批量授权。
3、功能验证测试
为确保所有机器人和 Agent 都能正常工作,建议从以下三个维度进行测试:
①私聊测试:分别与每个飞书机器人进行私聊,发送测试指令,确认每个机器人都能精准响应,且对应正确的 Agent
②群聊测试:将多个机器人加入同一个飞书群,通过 @机器人名称的方式调用,确认消息能精准触达对应 Agent,无串号情况
③Agent 间协作测试:开启 agentToAgent 功能后,发送跨 Agent 协作任务,确认 Agent 之间能正常传递任务,实现协作
常见问题排查
部署和使用过程中,若遇到机器人无响应、路由错误等问题,可参考以下常见问题及排查方法,快速定位并解决问题:
Q1:机器人无任何响应,私信 / 群聊 @都没反馈?
排查顺序 :
-
执行
openclaw gateway status,检查 OpenClaw 网关服务是否正常运行(未运行则重启服务) -
检查 openclaw.json 中,bindings 的 accountId 是否与 channels.feishu.accounts 的 Key 完全一致(大小写、拼写都需一致)
-
登录飞书开放平台,检查对应应用的 Webhook 配置是否正确,事件订阅是否生效
-
执行
openclaw logs -f查看实时日志,根据报错信息定位问题(如权限不足、凭证错误等)
Q2:bindings 中 channel 和 accountId 的对应关系是什么?
-
①channel:固定值为feishu,无需修改,代表消息渠道为飞书
-
②accountId:自定义的机器人账号名,对应 channels.feishu.accounts 下的③对象 Key,并非飞书机器人的 open_id,需与 bindings 中的配置一一对应
Q3:如何将飞书机器人加入群聊,实现群聊场景调用?
操作步骤:
-
打开飞书对应群聊 → 群设置 → 机器人 → 添加机器人
-
在机器人列表中,选择需要加入的飞书应用(即对应机器人),确认添加
-
机器人加入群聊后,在群中 @机器人名称 + 需求,即可触发对话,网关会自动路由到对应 Agent
安全建议
为保证多机器人架构在生产环境中的安全性和稳定性,避免信息泄露、未授权访问等问题,建议遵循以下安全规范:
-
AppSecret 严格保护:
-
不要将 AppSecret 明文写在配置文件中,示例中用 cli_***** 占位,实际部署时建议从安全存储(如密钥管理服务)中读取
-
限制 allowFrom 访问:
-
测试环境可设为 ["*"] 允许所有用户,生产环境需精准配置允许的用户 ID 列表,仅开放给授权人员使用
-
日志敏感信息脱敏:
开启日志功能后,定期检查日志内容,确保不包含用户隐私、应用凭证等敏感信息,必要时进行脱敏处理
-
保持版本更新:
及时将 OpenClaw 升级到最新版本,修复已知的安全漏洞和功能 BUG,提升系统稳定性