|
|
从 0 到 1 完整搭建 OpenClaw 多角色团队
来源:Researcher_王十三
前序文章:告别 OpenClaw 天价账单:20 分钟搭建私有 API 矩阵
重要提示
经测试,一个 business 账号在 5 小时内对话应控制在 100 次以内。如果想搭建多 Bot 团队协作,强烈建议多买几个 business 账号或使用多个不同模型(Gemini、GLM 等)。
目录
1. 什么是多 Bot 团队协作
2. 三种协作模式对比
3. 阶段 1:基础概念与前置准备
4. 阶段 2:目录规划与 Agent 创建
5. 阶段 3:核心架构与完整配置
6. 阶段 4:记忆规范与多团队隔离
7. 实践任务清单
8. 常见问题解答
9. 选型建议
一、什么是多 Bot 团队协作
将多个独立的 Telegram Bot 组建成一个分工协作的 Agent 团队。通过合理的架构配置,让不同的 Bot 扮演不同的角色(如主脑、程序员、研究员、写手等),实现复杂任务的自动化流转。
二、三种协作模式核心对比
| 模式 | 架构特点 | 适用场景 | 优点 | 缺点 | | 模式 A(主脑 + 专才) | 主脑统一调度,专才独立 | 需要严格流程控制的流水线作业 | 流程清晰、管控严格 | 单点故障风险 | | 模式 B(独立共享) | 无主脑,专才直接面向用户并共享记忆 | 任务边界清晰,用户明确知道该找谁 | 配置简单、响应快 | 缺乏统一协调 | | 模式 C(混合推荐) | 主脑调度 + 专才共享记忆 + 用户可直连专才 | 生产级推荐方案 | 灵活、容错率高、避免单点故障 | 配置稍复杂 |
推荐: 模式 C(混合模式)—— 兼顾灵活性与稳定性,适合长期运营。
三、阶段 1:基础概念与前置准备
第一步:明晰前置需求
在组建团队之前,每个 Bot 都需要进行基础的注册和身份获取。确定团队的角色分配,例如:
- 1 个主脑(main)
- 3 个专才:coder(程序员)、researcher(研究员)、writer(写手)
第二步:获取凭证
在 Telegram 的 BotFather 中为每个角色创建新机器人(/newbot),保存所有的 botToken。同时获取你个人的 Telegram 数字 ID 以便配置权限。
实践任务 1:获取 Bot Token 与个人 ID
方法一:DM 你的 bot,然后查日志,看 from.id 字段
方法二:通过 Bot API 获取- curl "https://api.telegram.org/bot<token>/getUpdates"
复制代码
完成标准: 成功记录所有角色的 botToken 以及你自己的 Telegram 数字 ID。
四、阶段 2:目录规划与 Agent 创建
第三步:规划目录结构
合理的目录结构是多 Bot 协作的基础。核心原则:专才们的 workspace 指向同一个目录(共享记忆),但 agentDir 各自独立(独立身份)。
实践任务 2:创建工作区目录
参考以下结构建立文件夹:- ~/.openclaw/
- ├── workspace-main/ # 主脑独立 workspace
- ├── workspace-team-a/ # 团队 A 专才共享 workspace(模式 B/C 使用)
- ├── agents/
- │ ├── main/
- │ │ ├── agent/ # 主脑 agentDir(auth、配置)
- │ │ └── sessions/
- │ ├── coder/
- │ │ ├── agent/
- │ │ └── sessions/
- │ ├── researcher/
- │ │ ├── agent/
- │ │ └── sessions/
- │ └── writer/
- │ ├── agent/
- │ └── sessions/
- └── openclaw.json
复制代码
第四步:创建 Agent 实例
在 OpenClaw 中注册你的团队成员:- # 依次添加团队成员
- openclaw agents add main
- openclaw agents add coder
- openclaw agents add researcher
- openclaw agents add writer
复制代码
五、阶段 3:核心架构与完整配置
第五步:选择并应用协作模式(推荐模式 C)
打开 openclaw.json,根据你的需求写入对应的配置。以下是推荐的模式 C(混合模式)配置:
实践任务 3:配置模式 C
- {
- "agents": {
- "list": [
- {
- "id": "main",
- "workspace": "~/.openclaw/workspace-main",
- "agentDir": "~/.openclaw/agents/main/agent"
- },
- {
- "id": "coder",
- "workspace": "~/.openclaw/workspace-team-a",
- "agentDir": "~/.openclaw/agents/coder/agent",
- "tools": { "deny": ["browser", "nodes"] }
- },
- {
- "id": "researcher",
- "workspace": "~/.openclaw/workspace-team-a",
- "agentDir": "~/.openclaw/agents/researcher/agent",
- "tools": { "deny": ["exec", "write", "edit"] }
- },
- {
- "id": "writer",
- "workspace": "~/.openclaw/workspace-team-a",
- "agentDir": "~/.openclaw/agents/writer/agent",
- "tools": { "deny": ["exec", "browser", "nodes"] }
- }
- ]
- },
- "session": { "dmScope": "main" },
- "tools": {
- "agentToAgent": {
- "enabled": true,
- "allow": ["main", "coder", "researcher", "writer"]
- }
- },
- "bindings": [
- { "agentId": "main", "match": { "channel": "telegram", "accountId": "main" } },
- { "agentId": "coder", "match": { "channel": "telegram", "accountId": "coder" } },
- { "agentId": "researcher", "match": { "channel": "telegram", "accountId": "researcher" } },
- { "agentId": "writer", "match": { "channel": "telegram", "accountId": "writer" } }
- ],
- "channels": {
- "telegram": {
- "accounts": {
- "main": {
- "botToken": "111111:TOKEN_MAIN",
- "dmPolicy": "pairing"
- },
- "coder": {
- "botToken": "222222:TOKEN_CODER",
- "dmPolicy": "allowlist",
- "allowFrom": ["tg:你的数字ID"]
- },
- "researcher": {
- "botToken": "333333:TOKEN_RESEARCHER",
- "dmPolicy": "allowlist",
- "allowFrom": ["tg:你的数字ID"]
- },
- "writer": {
- "botToken": "444444:TOKEN_WRITER",
- "dmPolicy": "allowlist",
- "allowFrom": ["tg:你的数字ID"]
- }
- }
- }
- }
- }
复制代码
六、阶段 4:记忆规范与多团队隔离
第六步:配置各 Agent 的 SOUL.md
为确保团队成员各司其职,需要为它们设定人设(SOUL.md)。
主脑 SOUL.md(放在 workspace-main/SOUL.md):
- # SOUL.md - 主脑
- 你是团队的协调者和对外入口。
- ## 职责
- - 理解用户意图,判断任务复杂度
- - 简单任务直接自己处理,不必每次派发
- - 编码类 → 派给 coder(sessions_send)
- - 调研/搜索类 → 派给 researcher
- - 写作/文案类 → 派给 writer
- - 收集专才结果,整合后回复用户(不是简单转发)
- ## 原则
- - 派发任务时说清楚背景和期望输出格式
- - 等专才完成后再整合,不要催
- - 汇总时做真正的整合,给用户一个完整的答案
复制代码
专才 SOUL.md(放在 workspace-team-a/SOUL.md 或各自 agentDir 下):
- # SOUL.md - 专才
- 你是团队的专业成员,可能被主脑派发任务,也可能被用户直接联系。
- ## 共享记忆规范
- - 读 MEMORY.md 了解团队整体上下文
- - 写记忆时标明身份,格式:[coder] 今天完成了...
- - 不要覆盖其他 agent 写的记忆条目
- ## 原则
- - 专注自己的领域
- - 任务完成后,清晰地返回结果
- - 感知到其他专才已经做过的工作,避免重复
复制代码
第七步:启动与验证
实践任务 4:启动团队并验证
- # 重启 gateway 使配置生效
- openclaw gateway restart
- # 验证 agent 列表和 bindings
- openclaw agents list --bindings
- # 验证各 channel 状态
- openclaw channels status --probe
- # 实时日志(调试用)
- openclaw logs --follow
复制代码
完成标准: 控制台无报错,且各个 Bot 均能正常响应对应的 Telegram 消息。
七、实践任务清单
| 阶段 | 任务 | 必做/推荐 | | 新手阶段 | 获取所有 Bot Token 及你的个人 Telegram ID | 必做 | | 进阶阶段 | 按照规范建立共享与独立的目录结构,注册 Agent | 推荐 | | 中级阶段 | 在 openclaw.json 中完成模式 C(混合模式)的核心配置 | 进阶 | | 高级阶段 | 为主脑和专才编写 SOUL.md,重启网关并验证多 Bot 通讯 | 挑战 |
八、常见问题解答
Q1: 模式 C 里专才并发写记忆会冲突吗?
偶发,但实际影响小,一般不会同时写同一行。建议在写记忆时加上 agent 标识(如 [coder] 修复了 xxx 问题...),可以有效减少混淆。
Q2: 我能绕过主脑直接联系专才吗?
在模式 C 中可以。专才的 dmPolicy: "allowlist" 允许你通过数字 ID 直接 DM。而在模式 A 中,专才设置为 dmPolicy: "disabled",必须强制通过主脑。
Q3: agentToAgent 开了之后,专才能主动联系主脑吗?
能,allow 列表是双向的。专才也可以用 sessions_send 主动给主脑发消息汇报进度。
Q4: 专才共享 workspace,SOUL.md 不就一样了吗?
是的,共享 workspace 意味着 SOUL.md 也共享。如果你需要给专才设定截然不同的人格,建议把 SOUL.md 放在它们各自的 agentDir 下,或者在 JSON 配置里用 systemPrompt 字段单独定义。
Q5: 升级 OpenClaw 后配置会丢吗?
不会,openclaw.json 是你个人的本地文件,官方升级不会覆盖它。
九、选型建议与下一步
| 场景 | 推荐模式 | 理由 | | 刚开始,Bot 较少(2-3 个) | 模式 B | 配置简单,上手极快 | | 任务复杂,需要流程控制 | 模式 A | 强管控,适合标准工作流 | | 生产级、长期稳定运营 | 模式 C(混合) | 灵活且容错率高 | | 有多个独立业务线团队 | 多 gateway 实例 | 彻底物理隔离互不干扰 |
完成 OpenClaw 多角色的配置后,你的 OpenClaw 已经可以变成一个公司团队了。你可以尝试让这个团队去完成一下你的小任务了。
配置多 Bot 的大致思路就是这些,之后无非就是一些升级 SOUL.md、学习更多 Skill 让每一只 OpenClaw 获取更强的技术技能了。
---
整理发布:duckwolf.cn | 原文作者:Researcher_王十三 |
|