本文记录了我从零开始配置 OpenClaw 多 Agent 多 Discord 频道的完整过程,基于最新的 OpenClaw 2026.2.22-2 版本,包含实际配置文件和踩坑实录。

多 Agent 架构图

一、背景与需求

1.1 为什么要多 Agent?

当 AI Agent 的应用场景越来越丰富时,单一 Agent 很难同时胜任多种专业任务:

  • 编程任务需要代码能力和技术深度
  • 内容创作需要写作技巧和文案感觉
  • 健康管理需要健身知识和营养学背景
  • 投资分析需要金融市场理解和数据敏感性

让每个 Agent 专注一个领域,比让一个 Agent 什么都懂但什么都不精要好得多。

1.2 为什么要多 Discord 频道?

在 Discord 场景中,不同的频道有不同的氛围和用途:

频道 用途 对应 Agent
#🎯-指挥台 主沟通入口,任务分发 Cypher (主控)
#💻-编程 技术讨论、代码分享 Forge (开发专家)
#✍️-创作 文章写作、内容策划 Muse (创作专家)
#💪-健康 健身打卡、饮食记录 Vitality (健康专家)
#📈-投资 股市分析、交易记录 Sigma (投资顾问)

每个频道有独立的 Agent 响应,用户体验更清晰。

1.3 最终架构

1
2
3
4
5
6
7
8
📋 指挥中心
└── #🎯-指挥台 → Cypher(调度中枢)

🛠️ 工作区
├── #💻-编程 → Forge(开发专家)
├── #✍️-创作 → Muse(创作专家)
├── #💪-健康 → Vitality(健康专家)
└── #📈-投资 → Sigma(投资顾问)

Cypher 作为总调度,可以在 #🎯-指挥台 接收任务,然后委托给对应的专家 Agent。

Discord 频道布局

二、Discord 端准备工作

2.1 创建 Discord 服务器

如果你还没有 Discord 服务器,需要先创建一个:

  1. 打开 Discord(网页版或客户端)
  2. 点击左侧栏的「+」按钮
  3. 选择「创建我自己的服务器」
  4. 选择「仅供我和我的朋友使用」
  5. 输入服务器名称(如「AI 指挥中心」)
  6. 点击「创建」

2.2 创建频道结构

在服务器中创建以下频道结构:

1
2
3
4
5
6
7
8
📋 指挥中心
└── #🎯-指挥台 (ID: 1474332206905298955) → Cypher

🛠️ 工作区
├── #💻-编程 (ID: 1474332097371046010) → Forge
├── #✍️-创作 (ID: 1474331895859777576) → Muse
├── #💪-健康 (ID: 1474331960770953334) → Vitality
└── #📈-投资 (ID: 1474332013673578592) → Sigma

创建频道步骤:

  1. 右键服务器名称 → 创建频道
  2. 选择「文字频道」
  3. 输入频道名称(可包含 Emoji)
  4. 点击「创建频道」

2.3 获取 Guild ID 和 Channel ID

配置 Bot 需要服务器 ID 和频道 ID,获取方法:

开启开发者模式:

  1. 点击左下角「用户设置」(齿轮图标)
  2. 选择「高级」
  3. 开启「开发者模式」

复制服务器 ID(Guild ID):

  1. 右键服务器名称
  2. 点击「复制服务器 ID」

复制频道 ID:

  1. 右键频道名称
  2. 点击「复制频道 ID」

2.4 创建 5 个 Discord Bot

Discord Developer Portal 创建 5 个 Bot:

步骤 1:创建应用

  1. 访问 https://discord.com/developers/applications
  2. 点击「New Application」
  3. 输入应用名称(如「Cypher Bot」)
  4. 点击「Create」

步骤 2:获取 Bot Token

  1. 进入左侧「Bot」选项卡
  2. 点击「Reset Token」
  3. 复制 Token(只能查看一次,务必保存好

Discord Bot 配置图

步骤 3:开启 Privileged Gateway Intents

在同一页面,开启以下三个 Intent:

  • Presence Intent
  • Server Members Intent
  • Message Content Intent(必需,否则无法读取消息内容)

Discord Bot 权限配置图

步骤 4:邀请 Bot 加入服务器

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

频道邀请确认图

重复以上步骤,创建 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 发送消息:

设置步骤(以 #💻-编程 为例):

  1. 右键频道 → 频道设置
  2. 选择「权限」选项卡
  3. 点击「+」添加成员
  4. 选择「Forge Bot」
  5. 设置权限:
    • ✅ 查看频道
    • ✅ 发送消息
    • ✅ 读取消息历史
  6. 将 @everyone 的「发送消息」设为 ❌

重复以上操作,为每个频道设置对应 Bot 的专属权限。

三、配置多 Agent 工作区

3.1 创建 Agent 工作区

为每个 Agent 创建独立的工作区:

1
2
3
4
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

这会创建对应的目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
~/.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 中配置多个账号:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{
"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.jsonbindings 中配置路由规则:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"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 的根级别

错误配置(导致 Gateway 启动失败):

1
2
3
4
5
{
"subagents": {
"allowAgents": ["forge", "muse", "vitality", "sigma"]
}
}

正确配置位置subagents.allowAgents 必须在 agents.list[].subagents 下,每个 Agent 都需要单独配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
"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 配置:

1
2
3
4
5
6
7
8
{
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["main", "forge", "muse", "vitality", "sigma"]
}
}
}

注意:这是用于 sessions_send 的跨 Agent 通信,和上面的 subagents 配置是互补的。

4.3 验证配置是否生效

使用 CLI 检查允许的 Agent 列表:

1
$ openclaw agents list

输出应显示所有 5 个 Agent:

1
2
3
4
5
6
7
8
9
10
11
{
"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 发送消息:

1
2
3
$ openclaw sessions_send \
--agent-id muse \
--task "写一篇关于 AI Agent 的短文"

或使用工具调用:

1
2
3
4
5
6
7
{
"tool": "sessions_send",
"params": {
"sessionKey": "muse",
"message": "测试 Agent 通信"
}
}

4.5 Cypher 的调度逻辑

在 Cypher 的 SOUL.md 中定义工作流程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
## 工作流程

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 场景一:直接联系专家

在 #💻-编程 频道发消息:

1
帮我写一个 Python 脚本,批量重命名文件

→ Forge 响应,提供代码实现

5.2 场景二:通过 Cypher 中转

在 #🎯-指挥台 频道发消息:

1
@Cypher 帮我写篇文章,关于 AI Agent 架构的

→ Cypher 收到后,使用 sessions_send 委托给 Muse
→ Muse 完成文章后返回给 Cypher
→ Cypher 汇总后回复给用户

5.3 场景三:跨领域任务

在 #🎯-指挥台 频道发消息:

1
帮我分析一下 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 间通信失败?

确保以下两处配置都正确:

  1. 每个 Agent 的 subagents.allowAgents 包含目标 Agent ID
  2. tools.agentToAgent.allow 包含所有需要通信的 Agent ID

6.4 流式输出卡顿?

建议使用 blockStreaming: truestreaming: "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 助手从”全能但平庸”进化为”专业且协同”,每个任务都能找到最适合的专家来处理。


文章封面:AI 生成
编辑:Cypher
配置时间:2026-02-28
更新版本:v2.0 (基于 OpenClaw 2026.2.22-2)