
本教程将带你一步步搭建一个中央管控式多 Agent 架构:一个由4个Agent组成的团队无缝对接飞书。你将扮演团队“小主”,而“总舵主”Agent(管家)则负责接收你的需求、拆分任务、派发工作并汇总汇报。完成部署后,你就可以在飞书里实现“一句话派活,自动收结果”的高效协作。
本文能帮你做什么
- 搞懂架构:在OpenClaw中搭建中央管控式多智能体架构,让4个Agent(主管统筹,调研/写作/写代码分工协作)各司其职。
- 接上飞书:为每个Agent配置对应的飞书Bot,让你在飞书群里就能发号施令、接收汇报。
- 自动协作:你只需对“总舵主”(主管Agent)说一句话,它会自动拆解任务、分派给调研员、写作员、开发员,并汇总最终结果向你汇报。
适合谁看:适合从未接触过多智能体协作,甚至对“OpenClaw如何连接飞书”都不太熟悉的读者。教程内容以复制粘贴命令为主,按步骤操作即可完成搭建。
一、先建立整体概念
本教程搭建的是中央管控式多Agent架构:一个由 4个Agent 组成的团队,你是他们的小主,总舵主是主管Agent(负责统筹与派活),其余三位成员各管一块。
| 角色 |
Agent ID |
职责 |
| 总舵主 |
manager |
主管:接小主的需求,拆任务、派活、汇总并向小主汇报 |
| 包打听 |
researcher |
调研:查资料、写调研报告 |
| 妙笔 |
writer |
写作:写文章、草稿 |
| 码匠 |
coder |
开发:写脚本、代码 |
每个Agent都拥有独立的“工位”(工作区)、“账号”(认证)和“记忆”(对话与记忆),确保角色之间互不干扰。
二、做准备:搭好第一个Agent
2.1 环境准备(以Mac为例)
在终端里依次执行以下命令(已安装过的步骤可以跳过):
# 1. 安装 Homebrew(如已安装可跳过)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. 安装 Node.js
brew install nodejs
# 3. 安装 OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash
# 4. 验证是否安装成功
openclaw --version
能看到版本号就说明安装成功;如果没有任何反应,请重新执行第3步。
2.2 初始化配置
执行初始化命令:
openclaw onboard --install-daemon
然后按照提示操作即可:
- 选择 yes 开始配置。
- 选择 QuickStart 快速模式。
- 选择你常用的AI模型(如OpenAI / Claude / Gemini)。
- 其他高级选项可以先跳过,后续可以再修改。
完成之后,你就拥有了第一个可用的Agent(默认角色通常是“总舵主”即主管)。
三、搭团队:创建4个Agent
3.1 用“工位 + 身份”理解Agent
在中央管控式架构里,每个Agent相当于团队中的一员,具备以下要素:
- 工位(Workspace):存放工作规范(AGENTS.md)、人设(SOUL.md)、小主资料(USER.md)和工作记忆(memory/)。
- 身份卡(agentDir):包含认证与登录信息(例如飞书Bot的配置)。
- 对话记录(Sessions):和不同人或群的聊天记录,按会话进行隔离。
3.2 目录结构长什么样
所有相关文件都存放在 ~/.openclaw/ 目录下,结构大致如下:
~/.openclaw/
├── openclaw.json # 全局配置
├── workspace/ # 总舵主(主管)的工位
│ ├── AGENTS.md # 工作流程与规范
│ ├── SOUL.md # 人设与性格
│ ├── USER.md # 小主(你)的信息
│ └── memory/ # 记忆存储
├── workspace-researcher/ # 包打听的工位
├── workspace-writer/ # 妙笔的工位
├── workspace-coder/ # 码匠的工位
├── agents/
│ ├── boss/agent/ # 总舵主的认证与会话
│ │ ├── auth-profiles.json
│ │ └── sessions/
│ ├── researcher/agent/
│ ├── writer/agent/
│ └── coder/agent/
└── skills/ # 共享技能库(所有Agent可用)
3.3 怎么“招人”:两种方式
方式一:命令行(推荐)
使用命令快速添加其他成员:
# 添加调研员、写作员、开发员
openclaw agents add researcher
openclaw agents add writer
openclaw agents add coder
# 查看当前所有Agent及绑定关系
openclaw agents list --bindings
命令行向导会自动创建对应的工作区并配置好基础设置。
方式二:改配置文件
直接编辑 ~/.openclaw/openclaw.json 文件,按照官方文档增加对应的agent与workspace配置(这种方式更适合已经熟悉OpenClaw结构的用户)。
3.4 三条重要原则
- 认证不能共用:每个Agent必须拥有自己独立的
auth-profiles.json 文件,切勿复制粘贴混用。
- 工作区不能复用:不同的Agent不能共用同一个agentDir目录,否则会导致认证信息混乱。
- 技能分两层:某个特定workspace下的
skills/ 目录仅供该Agent使用;而 ~/.openclaw/skills/ 目录下的技能是全员共享的。
四、创建飞书Bot:让Agent在飞书“上线”
每个Agent都需要对应飞书里的一个自建应用(Bot)。你需要完成两件事:在飞书开放平台创建应用,以及在OpenClaw中将每个Agent与对应的Bot连接起来。
4.1 在飞书开放平台创建Bot
- 打开飞书开放平台,登录后创建企业自建应用。
- 为每个Agent单独创建一个应用,例如:
- 总舵主Bot(主管)
- 包打听Bot(调研)
- 妙笔Bot(写作)
- 码匠Bot(开发)
- 在每个应用里获取以下四项信息(后续配置OpenClaw时会用到):
- App ID
- App Secret
- Verification Token
- Encrypt Key
- 为每个应用开启机器人能力,并根据需求勾选相应权限(例如):
- 获取用户基本信息
- 获取与更新群组消息、查看/更新群消息
- 获取与发送单聊、群组消息
- 接收群聊中@机器人消息、接收单聊消息
- 以应用身份发消息
- 获取与上传图片/文件
- 事件订阅:选择“使用长链接接收事件”,并添加“接收消息”事件。
- 在“版本管理与发布”中创建版本并发布应用。
4.2 在OpenClaw里配置飞书
针对每个Agent,分别执行一次以下命令,填入对应Bot的信息:
openclaw auth add --agent boss --channel feishu
openclaw auth add --agent researcher --channel feishu
openclaw auth add --agent writer --channel feishu
openclaw auth add --agent coder --channel feishu
根据提示输入该Bot的App ID、App Secret等信息即可完成认证配置。
4.3 建两个飞书群
- 主工作群:只拉入“总舵主(主管)”这一个Bot。你将在这个群里发布任务、接收最终汇报。
- 内部协作群:把总舵主、包打听、妙笔、码匠四个Bot全部拉入。你也可以加入此群旁观或插话,Agent之间的协作沟通主要在这里进行。
如何获取群ID:可以在飞书开放平台使用“获取群信息”接口查询,或者使用OpenClaw的sessions相关命令进行查看。
五、分工位:消息该由哪个Agent处理(Bindings)
人员齐备,Bot也已创建,接下来需要制定规则:哪里的消息,由哪个Agent来处理。这就是Bindings(绑定/路由)配置。
5.1 匹配顺序(从高到低)
OpenClaw会按照以下优先级顺序决定“这条消息交给谁处理”:
- 精准匹配:指定了具体用户ID或群ID。
- 群组匹配:指定了某个群组。
- 账号匹配:指定了某个Bot账号。
- 通道匹配:匹配整个通道(例如全部飞书消息)。
- 默认:以上规则均未命中时,交给默认的Agent处理。
5.2 推荐配置思路
利用“群组 + Bot账号”的组合来区分路由是简单有效的方法。你需要在 openclaw.json 文件的 bindings 字段中进行配置,示例如下:
{
"bindings": [
{
"agentId": "boss",
"match": {
"channel": "feishu",
"peer": { "kind": "group", "id": "主工作群ID" }
}
},
{
"agentId": "boss",
"match": {
"channel": "feishu",
"accountId": "总舵主的AppID",
"peer": { "kind": "group", "id": "协作群ID" }
}
},
{
"agentId": "researcher",
"match": {
"channel": "feishu",
"accountId": "包打听的AppID",
"peer": { "kind": "group", "id": "协作群ID" }
}
},
{
"agentId": "writer",
"match": {
"channel": "feishu",
"accountId": "妙笔的AppID",
"peer": { "kind": "group", "id": "协作群ID" }
}
},
{
"agentId": "coder",
"match": {
"channel": "feishu",
"accountId": "码匠的AppID",
"peer": { "kind": "group", "id": "协作群ID" }
}
}
]
}
将示例中的“主工作群ID”、“协作群ID”以及各Bot的AppID替换为你自己的实际信息即可。
六、开内线:让Agent之间能互相派活
仅仅建立群聊还不够,需要让总舵主(主管)能够给包打听、妙笔、码匠分派任务,即实现Agent之间的直接对话。
6.1 开启Agent间通信
在配置文件中启用Agent间通信功能(默认是关闭的):
{
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["boss", "researcher", "writer", "coder"]
}
}
}
6.2 会话可见范围
默认情况下,每个Agent只能查看自己的会话记录。为了实现协作,需要放宽可见范围,例如设置为所有Agent可见:
{
"tools": {
"sessions": {
"visibility": "all"
}
}
}
各选项含义:
"self":只看自己(完全隔离)。
"tree":看自己及由自己派生的子任务(默认值)。
"agent":看同一Agent的所有会话。
"all":看所有Agent的所有会话(适合本教程的4个Agent协作场景)。
6.3 两种派活方式
| 方式 |
适用场景 |
通俗理解 |
| sessions_send |
向已有会话发送消息,让该Agent在“当前对话”中继续工作。 |
给同事发消息:“你手头这事帮忙处理一下。” |
| sessions_spawn |
新建一个会话来执行一次性任务,不依赖于是否已有会话。 |
临时派个活,干完就结束。 |
示例(总舵主给包打听派发调研任务):
sessions_send({
"sessionKey": "agent:researcher:feishu:group:协作群ID",
"message": "包打听,请帮我调研一下 AI Agent 的最新发展趋势",
"timeoutSeconds": 60
})
七、弥合信息差:建一个团队共享知识库
如果只有“总舵主派活、其他Agent私聊回复”的模式,妙笔和码匠可能无法知晓包打听已经提交了调研报告。解决办法是:建立一个共享目录,所有成员将产出物写入其中,总舵主和所有Agent都能读取。
7.1 创建共享目录
mkdir -p ~/.openclaw/shared/notes
建议采用以下目录结构:
~/.openclaw/shared/
├── board.md # 团队公告(重要通知、动态)
├── tasks.md # 任务看板(进行中 / 已完成)
└── notes/
├── research/ # 调研报告
├── drafts/ # 文章草稿
└── code/ # 代码与说明
7.2 让Agent能搜到共享内容
在配置中为Agent的“记忆搜索”功能添加上共享目录路径,这样当它们使用memory搜索时,也会检索共享目录的内容:
{
"agents": {
"defaults": {
"memorySearch": {
"extraPaths": ["~/.openclaw/shared"]
}
}
}
}
效果举例:包打听将调研报告保存到 shared/notes/research/ai-trends.md,妙笔通过 memory_search 工具或直接读取文件都能引用到这份报告。
7.3 使用规范示例
board.md(公告栏)示例:
# 团队公告栏
## 本周重点
- [日期] 包打听:AI Agent 技术调研 ✅ 已完成
- [日期] 妙笔:技术博客撰写 ➡️ 进行中
- [日期] 码匠:数据分析脚本 📅 待开始
## 说明
- Agent间可通过 sessions_send 协作
- 文档请统一放在 shared/notes/ 下
tasks.md(任务看板)示例:
# 任务看板
## 🔄 进行中
- 妙笔:《OpenClaw 实战指南》— 派发:总舵主,依赖:包打听的调研报告
## ✅ 已完成
- 包打听:AI Agent 技术调研 — 产出:shared/notes/research/ai-trends.md
## 📅 待开始
- 码匠:数据可视化脚本 — 派发:总舵主
7.4 在各Agent的AGENTS.md里写清分工
- 总舵主(主管):接到小主任务后进行拆解 → 使用
sessions_send 派发给对应Agent → 及时更新 shared/tasks.md → 收到完成反馈后更新状态并向小主汇报。
- 包打听:收到调研任务后执行,报告存入
shared/notes/research/,更新tasks.md,并回复总舵主。
- 妙笔:先查看
shared/notes/ 中是否有参考资料,草稿存入 shared/notes/drafts/,定稿后更新tasks.md;需要补充资料时通过总舵主协调包打听。
- 码匠:开发产出和说明存入
shared/notes/code/,更新tasks.md;需要技术调研时通过总舵主联系包打听。
八、实战演示:小主一句话触发完整流水线
下面以“写一篇AI Agent技术文章并配一个演示脚本”为例,演示小主只需说一句话,总舵主(主管)如何带队完成全流程。
8.1 小主在主工作群对总舵主说
我需要一篇关于AI Agent多智能体协作的技术文章,要有实际案例,最好配个演示脚本。
8.2 总舵主(主管)的处理
- 将需求拆解为三个子任务:调研(包打听)→ 文章(妙笔)→ 脚本(码匠)。
- 更新
shared/tasks.md 文件。
- 给包打听发送调研任务(示例):
sessions_send({
"sessionKey": "agent:researcher:feishu:group:协作群ID",
"message": "包打听,请调研 AI Agent 多智能体协作的技术现状、主流方案和案例,报告保存到 shared/notes/research/",
"timeoutSeconds": 120
})
- 回复小主:“已安排包打听调研,完成后妙笔写文章、码匠做演示脚本,预计明天交付。”
8.3 包打听 → 妙笔 → 码匠
- 包打听:查找资料、撰写报告 → 保存至
shared/notes/research/multi-agent-research.md → 更新tasks.md → 在协作群内回复总舵主。
- 总舵主:基于调研报告,给妙笔分派写作任务(草稿存放于
shared/notes/drafts/)。
- 妙笔:阅读调研报告、撰写文章 → 保存草稿 → 更新tasks.md → 回复总舵主。
- 总舵主:根据文章内容,给码匠分派开发演示脚本的任务(代码存放于
shared/notes/code/)。
- 码匠:编写脚本和说明文档 → 更新tasks.md → 回复总舵主。
8.4 总舵主向小主汇报
总舵主汇总所有结果后,在主工作群回复小主,例如:
任务全部完成。
📄 调研报告:shared/notes/research/multi-agent-research.md
✍️ 文章草稿:shared/notes/drafts/multi-agent-article.md
💻 演示脚本:shared/notes/code/multi-agent-demo/
如需修改再说。
在整个链路中,小主只说了最初的那一句话,其余所有拆解、派发、跟进、汇总工作均由总舵主(主管Agent)自动完成。
九、后续可以怎么做
- 从简单任务练起:先尝试派发单一步骤的任务(例如只让包打听做一次调研),熟练后再尝试多步骤的复杂协作。
- 调优人设与规范:根据Agent的实际协作表现,调整各自的SOUL.md(性格)、AGENTS.md(工作规范)文件。
- 把规范写进公告:在
shared/board.md 中清晰地写明团队协作约定,确保所有Agent都知晓并遵守。
- 定期复盘:让总舵主(主管)定期总结协作过程中出现的问题和改进点,持续优化流程。
- 沉淀到共享库:将所有有价值的研究报告、文章草稿、代码脚本都规范地存入
shared/ 目录,逐步形成团队的专属知识库。
通过以上步骤,你就能在云栈社区所倡导的实践精神下,成功搭建一个高度自动化的多智能体协作系统。这种基于OpenClaw的中央管控式架构,不仅能极大提升任务处理效率,也为探索更复杂的多Agent应用场景打下了坚实的基础。