跳到主要内容OpenClaw 多 Agent 多 Discord 频道配置实战指南 | 极客日志编程语言Node.jsAI
OpenClaw 多 Agent 多 Discord 频道配置实战指南
基于 OpenClaw 框架实现多 Agent 协同工作,通过独立 Discord Bot 绑定不同专业领域。核心在于正确配置 channels.discord 账户映射及 agents.list 下的 subagents 通信权限。解决了 Gateway 启动失败、路由错误及跨 Agent 调用等常见问题,实现了从指挥台到专家频道的任务分发架构。
2924408371 浏览 一、背景与需求
1.1 为什么要多 Agent?
当 AI Agent 的应用场景越来越丰富时,单一 Agent 很难同时胜任多种专业任务:
- 编程任务需要代码能力和技术深度
- 内容创作需要写作技巧和文案感觉
- 健康管理需要健身知识和营养学背景
- 投资分析需要金融市场理解和数据敏感性
让每个 Agent 专注一个领域,比让一个 Agent 什么都懂但什么都不精要好得多。
1.2 为什么要多 Discord 频道?
在 Discord 场景中,不同的频道有不同的氛围和用途:
| 频道 | 用途 | 对应 Agent |
|---|
| #🎯-指挥台 | 主沟通入口,任务分发 | Cypher (主控) |
| #💻-编程 | 技术讨论、代码分享 | Forge (开发专家) |
| #✍️-创作 | 文章写作、内容策划 | Muse (创作专家) |
| #💪-健康 | 健身打卡、饮食记录 | Vitality (健康专家) |
| #📈-投资 | 股市分析、交易记录 | Sigma (投资顾问) |
每个频道有独立的 Agent 响应,用户体验更清晰。
1.3 最终架构
📋 指挥中心 └──
🛠️ 工作区
├──
├──
├──
└──
Cypher 作为总调度,可以在 #🎯-指挥台 接收任务,然后委托给对应的专家 Agent。
二、Discord 端准备工作
2.1 创建 Discord 服务器
如果你还没有 Discord 服务器,需要先创建一个:
- 打开 Discord(网页版或客户端)
- 点击左侧栏的「+」按钮
- 选择「创建我自己的服务器」
- 选择「仅供我和我的朋友使用」
- 输入服务器名称(如「AI 指挥中心」)
- 点击「创建」
2.2 创建频道结构
在服务器中创建以下频道结构:
📋 指挥中心 └──
🛠️ 工作区
├──
├──
├──
└──
创建频道步骤:
- 右键服务器名称 → 创建频道
- 选择「文字频道」
- 输入频道名称(可包含 Emoji)
- 点击「创建频道」
2.3 获取 Guild ID 和 Channel ID
配置 Bot 需要服务器 ID 和频道 ID,获取方法:
- 点击左下角「用户设置」(齿轮图标)
- 选择「高级」
- 开启「开发者模式」
2.4 创建 5 个 Discord Bot
步骤 1:创建应用
步骤 2:获取 Bot Token
- 进入左侧「Bot」选项卡
- 点击「Reset Token」
- 复制 Token(只能查看一次,务必保存好)
步骤 3:开启 Privileged Gateway Intents
- ✅ 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,在浏览器中打开
- 选择你的服务器,点击「继续」
- 确认权限后点击「授权」
| 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 工作区
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/
├── workspace-forge/
├── workspace-muse/
├── workspace-vitality/
├── workspace-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) 收到消息 → 路由给 main Agent
- 当 Forge Bot 收到消息 → 路由给
forge Agent
- 以此类推…
四、Agent 间通信配置(重要:避坑指南)
4.1 ⚠️ 踩坑实录:配置位置错误导致 Gateway 启动失败
在配置 Agent 间通信时,我犯了一个致命错误:把 subagents 配置放在了 openclaw.json 的根级别。
{"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 验证配置是否生效
{"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. **收到 Cypher 的请求后,先判断任务类型**
2. **简单闲聊和问答**:直接回复
3. **专业任务**:使用 `sessions_send` 委托给对应专家,并告知已委托
4. **跨领域任务**:协调多个专家,汇总结果
## 任务委托规则
- **编程/技术问题** → `sessions_send` 给 `forge`
- **写作/创作需求** → `sessions_send` 给 `muse`
- **健康/健身/饮食** → `sessions_send` 给 `vitality`
- **投资/股票/财经** → `sessions_send` 给 `sigma`
## 绝对禁止
- ❌ 不要将任务委托给自己(`agentId: main` 或 `cypher`)
- ❌ 收到专家返回结果后,直接汇总,不要再次委托
- ❌ 不要创建超过 2 层的委托链
五、实际使用示例
5.1 场景一:直接联系专家
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 助手从'全能但平庸'进化为'专业且协同',每个任务都能找到最适合的专家来处理。
相关免费在线工具
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online