OpenClaw&Discord 多 Agent 多频道配置实战:从零搭建你的 AI 团队(附踩坑实录)
本文记录了我从零开始配置 OpenClaw 多 Agent 多 Discord 频道的完整过程,基于最新的 OpenClaw 2026.2.22-2 版本,包含实际配置文件和踩坑实录。
一、背景与需求
1.1 为什么要多 Agent?
当 AI Agent 的应用场景越来越丰富时,单一 Agent 很难同时胜任多种专业任务:
- 编程任务需要代码能力和技术深度
- 内容创作需要写作技巧和文案感觉
- 健康管理需要健身知识和营养学背景
- 投资分析需要金融市场理解和数据敏感性
让每个 Agent 专注一个领域,比让一个 Agent 什么都懂但什么都不精要好得多。
1.2 为什么要多 Discord 频道?
在 Discord 场景中,不同的频道有不同的氛围和用途:
| 频道 | 用途 | 对应 Agent |
|---|---|---|
| #🎯-指挥台 | 主沟通入口,任务分发 | Cypher (主控) |
| #💻-编程 | 技术讨论、代码分享 | Forge (开发专家) |
| #✍️-创作 | 文章写作、内容策划 | Muse (创作专家) |
| #💪-健康 | 健身打卡、饮食记录 | Vitality (健康专家) |
| #📈-投资 | 股市分析、交易记录 | Sigma (投资顾问) |
每个频道有独立的 Agent 响应,用户体验更清晰。
1.3 最终架构
📋 指挥中心 └── #🎯-指挥台 → Cypher(调度中枢) 🛠️ 工作区 ├── #💻-编程 → Forge(开发专家) ├── #✍️-创作 → Muse(创作专家) ├── #💪-健康 → Vitality(健康专家) └── #📈-投资 → Sigma(投资顾问) Cypher 作为总调度,可以在 #🎯-指挥台 接收任务,然后委托给对应的专家 Agent。


二、Discord 端准备工
二、Discord 端准备工作
2.1 创建 Discord 服务器
如果你还没有 Discord 服务器,需要先创建一个:
- 打开 Discord(网页版或客户端)
- 点击左侧栏的「+」按钮
- 选择「创建我自己的服务器」
- 选择「仅供我和我的朋友使用」
- 输入服务器名称(如「AI 指挥中心」)
- 点击「创建」
2.2 创建频道结构
在服务器中创建以下频道结构:
📋 指挥中心 └── #🎯-指挥台 (ID: xx) → Cypher 🛠️ 工作区 ├── #💻-编程 (ID: xxx) → Forge ├── #✍️-创作 (ID: xxx) → Muse ├── #💪-健康 (ID: xxx) → Vitality └── #📈-投资 (ID: xxx) → Sigma 创建频道步骤:
- 右键服务器名称 → 创建频道
- 选择「文字频道」
- 输入频道名称(可包含 Emoji)
- 点击「创建频道」
2.3 获取 Guild ID 和 Channel ID
配置 Bot 需要服务器 ID 和频道 ID,获取方法:
开启开发者模式:
- 点击左下角「用户设置」(齿轮图标)
- 选择「高级」
- 开启「开发者模式」
复制服务器 ID(Guild ID):
- 右键服务器名称
- 点击「复制服务器 ID」
复制频道 ID:
- 右键频道名称
- 点击「复制频道 ID」
2.4 创建 5 个 Discord Bot
在 Discord Developer Portal 创建 5 个 Bot:
步骤 1:创建应用
- 访问 https://discord.com/developers/applications
- 点击「New Application」
- 输入应用名称(如「Cypher Bot」)
点击「Create」

步骤 2:获取 Bot Token
- 进入左侧「Bot」选项卡
- 点击「Reset Token」
- 复制 Token(只能查看一次,务必保存好)
步骤 3:开启 Privileged Gateway Intents
在同一页面,开启以下二个 Intent:
- ✅ Server Members Intent
- ✅ Message Content Intent(必需,否则无法读取消息内容)

步骤 4:邀请 Bot 加入服务器
- 进入左侧「OAuth2」→「URL Generator」
- 在「Scopes」中勾选「bot」
- 在「Bot Permissions」中勾选:
- Send Messages
- Read Messages/View Channels
- Use Slash Commands
- Embed Links
- Attach Files
- Read Message History
- 复制生成的 URL,在浏览器中打开
- 选择你的服务器,点击「继续」
- 确认权限后点击「授权」
Add Reactions


重复以上步骤,创建 5 个 Bot:
| Bot 名称 | 用途 | Token 占位符 |
|---|---|---|
| Cypher Bot | 主控 Bot | YOUR_CYPHER_BOT_TOKEN |
| Forge Bot | 开发专家 | YOUR_FORGE_BOT_TOKEN |
| Muse Bot | 创作专家 | YOUR_MUSE_BOT_TOKEN |
| Vitality Bot | 健康专家 | YOUR_VITALITY_BOT_TOKEN |
| Sigma Bot | 投资顾问 | YOUR_SIGMA_BOT_TOKEN |
2.5 设置频道权限
为了安全起见,建议设置每个频道只允许对应的 Bot 发送消息:
设置步骤(以 #💻-编程 为例):
- 右键频道 → 频道设置
- 选择「权限」选项卡
- 点击「+」添加成员
- 选择「Forge Bot」
- 设置权限:
- ✅ 查看频道
- ✅ 发送消息
- ✅ 读取消息历史
- 将 @everyone 的「发送消息」设为 ❌
重复以上操作,为每个频道设置对应 Bot 的专属权限。
三、配置多 Agent 工作区
3.1 创建 Agent 工作区
为每个 Agent 创建独立的工作区:
openclaw agents add forge --workspace ~/.openclaw/workspace-forge openclaw agents add muse --workspace ~/.openclaw/workspace-muse openclaw agents add vitality --workspace ~/.openclaw/workspace-vitality openclaw agents add sigma --workspace ~/.openclaw/workspace-sigma 这会创建对应的目录结构:
~/.openclaw/ ├── workspace/ # Cypher (main) 主工作区 ├── workspace-forge/ # Forge 工作区 ├── workspace-muse/ # Muse 工作区 ├── workspace-vitality/ # Vitality 工作区 ├── workspace-sigma/ # Sigma 工作区 └── agents/ ├── main/ ├── forge/ ├── muse/ ├── vitality/ └── sigma/ 3.2 配置多 Discord Bot
编辑 ~/.openclaw/openclaw.json,在 channels.discord 中配置多个账号:
{"channels":{"discord":{"enabled":true,"groupPolicy":"allowlist","streaming":"block","accounts":{"default":{"token":"YOUR_CYPHER_BOT_TOKEN","groupPolicy":"allowlist","blockStreaming":true,"streaming":"block","guilds":{"YOUR_GUILD_ID":{"slug":"YourServer","channels":{"🎯-指挥台":{"allow":true,"requireMention":false,"autoThread":true},"📋-归档":{"allow":true,"requireMention":false,"autoThread":true}}}}},"forge":{"token":"YOUR_FORGE_BOT_TOKEN","groupPolicy":"allowlist","blockStreaming":true,"streaming":"block","guilds":{"YOUR_GUILD_ID":{"channels":{"1474332097371046010":{"allow":true,"requireMention":false,"autoThread":false}}}}},"muse":{"token":"YOUR_MUSE_BOT_TOKEN","groupPolicy":"allowlist","blockStreaming":true,"streaming":"block","guilds":{"YOUR_GUILD_ID":{"channels":{"1474331895859777576":{"allow":true,"requireMention":false,"autoThread":false}}}}},"vitality":{"token":"YOUR_VITALITY_BOT_TOKEN","groupPolicy":"allowlist","blockStreaming":true,"streaming":"block","guilds":{"YOUR_GUILD_ID":{"channels":{"1474331960770953334":{"allow":true,"requireMention":false,"autoThread":false}}}}},"sigma":{"token":"YOUR_SIGMA_BOT_TOKEN","groupPolicy":"allowlist","blockStreaming":true,"streaming":"block","guilds":{"YOUR_GUILD_ID":{"channels":{"1474332013673578592":{"allow":true,"requireMention":false,"autoThread":false}}}}}}}}}关键配置说明:
| 字段 | 说明 |
|---|---|
accounts.default | Cypher 主 Bot,使用 default 账号名 |
accounts.forge | Forge 专家 Bot |
guilds | 服务器配置,用服务器 ID 作为 key |
channels | 频道权限配置,可用频道名或频道 ID |
allow: true | 允许该频道 |
requireMention: false | 不需要 @Bot 就能触发 |
autoThread: true | 自动创建线程回复 |
blockStreaming: true | 阻塞式流式输出(推荐) |
⚠️ 注意:建议使用频道数字 ID 而非名称,避免权限审计受限。
3.3 配置 Agent 路由绑定
在 openclaw.json 的 bindings 中配置路由规则:
{"bindings":[{"agentId":"main","match":{"channel":"discord","accountId":"default"}},{"agentId":"forge","match":{"channel":"discord","accountId":"forge"}},{"agentId":"muse","match":{"channel":"discord","accountId":"muse"}},{"agentId":"vitality","match":{"channel":"discord","accountId":"vitality"}},{"agentId":"sigma","match":{"channel":"discord","accountId":"sigma"}}]}路由逻辑:
- 当 Cypher Bot (
default) 收到消息 → 路由给mainAgent - 当 Forge Bot 收到消息 → 路由给
forgeAgent - 以此类推…
四、Agent 间通信配置(重要:避坑指南)
4.1 ⚠️ 踩坑实录:配置位置错误导致 Gateway 启动失败
在配置 Agent 间通信时,我犯了一个致命错误:把 subagents 配置放在了 openclaw.json 的根级别。
❌ 错误配置(导致 Gateway 启动失败):
{"subagents":{"allowAgents":["forge","muse","vitality","sigma"]}}✅ 正确配置位置:subagents.allowAgents 必须在 agents.list[].subagents 下,每个 Agent 都需要单独配置:
{"agents":{"list":[{"id":"main","subagents":{"allowAgents":["main","forge","muse","vitality","sigma"]}},{"id":"forge","name":"forge","workspace":"/root/.openclaw/workspace-forge","agentDir":"/root/.openclaw/agents/forge/agent","subagents":{"allowAgents":["main","forge","muse","vitality","sigma"]}},{"id":"muse","name":"muse","workspace":"/root/.openclaw/workspace-muse","agentDir":"/root/.openclaw/agents/muse/agent","subagents":{"allowAgents":["main","forge","muse","vitality","sigma"]}},{"id":"vitality","name":"vitality","workspace":"/root/.openclaw/workspace-vitality","agentDir":"/root/.openclaw/agents/vitality/agent","subagents":{"allowAgents":["main","forge","muse","vitality","sigma"]}},{"id":"sigma","name":"sigma","workspace":"/root/.openclaw/workspace-sigma","agentDir":"/root/.openclaw/agents/sigma/agent","subagents":{"allowAgents":["main","forge","muse","vitality","sigma"]}}]}}踩坑总结:
- ❌ 不要把
subagents放在根级别 - ✅ 必须在每个 Agent 的
agents.list[]条目下添加 - ✅ 每个 Agent 的
allowAgents要包含所有需要通信的 Agent ID(包括自己) - 🔧 修改后必须重启 Gateway:
openclaw gateway restart
4.2 启用 Agent-to-Agent 通信
在 openclaw.json 中添加 tools.agentToAgent 配置:
{"tools":{"agentToAgent":{"enabled":true,"allow":["main","forge","muse","vitality","sigma"]}}}注意:这是用于sessions_send的跨 Agent 通信,和上面的subagents配置是互补的。
4.3 验证配置是否生效
使用 CLI 检查允许的 Agent 列表:
$ openclaw agents list 输出应显示所有 5 个 Agent:
{"requester":"main","allowAny":false,"agents":[{"id":"main","configured":true},{"id":"forge","name":"forge","configured":true},{"id":"muse","name":"muse","configured":true},{"id":"sigma","name":"sigma","configured":true},{"id":"vitality","name":"vitality","configured":true}]}如果只看到 main,说明配置未生效,请检查配置位置。
4.4 测试 Agent 间通信
在配置完成后,可以通过 Cypher 测试向其他 Agent 发送消息:
$ openclaw sessions_send \ --agent-id muse \--task"写一篇关于 AI Agent 的短文"或使用工具调用:
{"tool":"sessions_send","params":{"sessionKey":"muse","message":"测试 Agent 通信"}}4.5 Cypher 的调度逻辑
在 Cypher 的 SOUL.md 中定义工作流程:
## 工作流程 1. **收到 Channing 的请求后,先判断任务类型** 2. **简单闲聊和问答**:直接回复 3. **专业任务**:使用 `sessions_send` 委托给对应专家,并告知 Channing 已委托 4. **跨领域任务**:协调多个专家,汇总结果 ## 任务委托规则 - **编程/技术问题** → `sessions_send` 给 `forge` - **写作/创作需求** → `sessions_send` 给 `muse` - **健康/健身/饮食** → `sessions_send` 给 `vitality` - **投资/股票/财经** → `sessions_send` 给 `sigma` ## 绝对禁止 - ❌ 不要将任务委托给自己(`agentId: main` 或 `cypher`) - ❌ 收到专家返回结果后,直接汇总,不要再次委托 - ❌ 不要创建超过 2 层的委托链 五、实际使用示例
5.1 场景一:直接联系专家
在 #💻-编程 频道发消息:
帮我写一个 Python 脚本,批量重命名文件 → Forge 响应,提供代码实现
5.2 场景二:通过 Cypher 中转
在 #🎯-指挥台 频道发消息:
@Cypher 帮我写篇文章,关于 AI Agent 架构的 → Cypher 收到后,使用 sessions_send 委托给 Muse
→ Muse 完成文章后返回给 Cypher
→ Cypher 汇总后回复给用户
5.3 场景三:跨领域任务
在 #🎯-指挥台 频道发消息:
帮我分析一下 AI 行业的投资机会,需要技术趋势和市场数据 → Cypher 同时委托给 Forge(技术趋势)和 Sigma(市场分析)
→ 收到两者结果后,Cypher 综合汇总
→ 给出完整的投资分析报告
六、常见问题
6.1 Bot 没有响应?
检查清单:
- ✅ Bot 已加入服务器
- ✅ Bot 有频道读取/发送权限
- ✅ Message Content Intent 已开启
- ✅ Token 配置正确
- ✅ Gateway 已重启:
openclaw gateway restart
6.2 消息路由错误?
检查 bindings 配置中的 accountId 是否和 channels.discord.accounts 中的 key 匹配。
6.3 Agent 间通信失败?
确保以下两处配置都正确:
- 每个 Agent 的
subagents.allowAgents包含目标 Agent ID tools.agentToAgent.allow包含所有需要通信的 Agent ID
6.4 流式输出卡顿?
建议使用 blockStreaming: true 和 streaming: "block" 配置,获得更稳定的输出体验。
七、配置版本信息
本文基于以下版本配置:
- OpenClaw 版本:2026.2.22-2
- Node.js:v22.22.0
- 模型:Kimi Code (kimi-for-coding)
- 更新日期:2026-02-28
八、总结
通过 OpenClaw 的多 Agent 多频道配置,我们可以:
- 专业化分工 - 每个 Agent 专注一个领域
- 清晰的交互边界 - 不同频道对应不同 Agent
- 灵活的调度机制 - Cypher 作为总控,可单可群
- 可扩展的架构 - 随时添加新的专家 Agent
这种架构让 AI 助手从"全能但平庸"进化为"专业且协同",每个任务都能找到最适合的专家来处理。