OpenClaw&Discord 多 Agent 多频道配置实战:从零搭建你的 AI 团队(附踩坑实录)

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群成员

二、Discord 端准备工

二、Discord 端准备工作

2.1 创建 Discord 服务器

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

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

2.2 创建频道结构

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

📋 指挥中心 └── #🎯-指挥台 (ID: xx) → Cypher 🛠️ 工作区 ├── #💻-编程 (ID: xxx) → Forge ├── #✍️-创作 (ID: xxx) → Muse ├── #💪-健康 (ID: xxx) → Vitality └── #📈-投资 (ID: xxx) → 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」)

点击「Create」

Discord首页
步骤 2:获取 Bot Token
  1. 进入左侧「Bot」选项卡
  2. 点击「Reset Token」
  3. 复制 Token(只能查看一次,务必保存好
步骤 3:开启 Privileged Gateway Intents

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

  • Server Members Intent
  • Message Content Intent(必需,否则无法读取消息内容)
在这里插入图片描述
步骤 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
  4. 复制生成的 URL,在浏览器中打开
  5. 选择你的服务器,点击「继续」
  6. 确认权限后点击「授权」

Add Reactions

Discord Bot 权限配置图
频道邀请确认图

重复以上步骤,创建 5 个 Bot:

Bot 名称用途Token 占位符
Cypher Bot主控 BotYOUR_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 创建独立的工作区:

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.defaultCypher 主 Bot,使用 default 账号名
accounts.forgeForge 专家 Bot
guilds服务器配置,用服务器 ID 作为 key
channels频道权限配置,可用频道名或频道 ID
allow: true允许该频道
requireMention: false不需要 @Bot 就能触发
autoThread: true自动创建线程回复
blockStreaming: true阻塞式流式输出(推荐)
⚠️ 注意:建议使用频道数字 ID 而非名称,避免权限审计受限。

3.3 配置 Agent 路由绑定

openclaw.jsonbindings 中配置路由规则:

{"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 启动失败):

{"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 间通信失败?

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

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

Read more

openclaw喂饭教程!在 Linux 环境下快速完成安装、初始化与 Web UI 配置

openclaw喂饭教程!在 Linux 环境下快速完成安装、初始化与 Web UI 配置

前言 OpenClaw 是一款开源的 AI Agent 工具,但对第一次接触的用户来说,完整跑通流程并不直观。本文以 Linux 环境为例,详细记录了 OpenClaw 的安装、初始化流程、模型选择、TUI 使用方式,以及 TUI 与 Web UI 认证不一致导致的常见问题与解决方法,帮助你最快速度把 OpenClaw 真正跑起来 环境准备 1)安装nodejs curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs > node

IDEA 创建 Spring Boot Web 项目完整教程

一、新建 Spring Boot 项目 1. 打开新建项目窗口 * 打开 IntelliJ IDEA → 点击 新建项目(或从欢迎页选择 New Project) * 在左侧生成器中选择 Spring Boot *          截图如下 * 选项填写内容说明服务器 URLstart.spring.ioSpring 官方初始化地址名称demo项目名位置D:\idea项目存放路径(建议不要含中文 / 空格)语言Java开发语言类型Maven项目构建工具组org.example项目组织标识工件demo项目模块名软件包名称com.example.demo根包名JDK21 Oracle OpenJDK 21.0.8你的 JDK 版本Java17源码兼容版本(Spring Boot 4.0.3 推荐 Java 17+)打包Jar可执行 Jar 包(Spring

Java Web 交通管理在线服务系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

Java Web 交通管理在线服务系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着城市化进程的加快和机动车保有量的持续增长,交通管理面临着日益复杂的挑战。传统的线下交通管理服务模式效率低下,难以满足现代社会的需求。交通拥堵、违章处理效率低、信息不透明等问题日益突出,亟需通过信息化手段提升管理效率和服务水平。基于此,开发一套高效、便捷的交通管理在线服务系统具有重要意义。该系统旨在整合交通管理资源,实现业务线上化、数据可视化,为公众提供一站式服务,同时为管理部门提供决策支持。关键词:交通管理、在线服务、信息化、效率提升、决策支持。 本系统采用SpringBoot2作为后端框架,结合Vue3前端技术,实现前后端分离开发。数据库选用MySQL8.0,通过MyBatis-Plus简化数据操作。系统功能涵盖用户管理、违章处理、车辆信息管理、在线缴费等模块。用户可通过系统查询违章记录、缴纳罚款、预约业务办理;管理员则能高效管理车辆和驾驶员信息,生成统计报表。系统设计注重用户体验和数据安全,采用JWT进行身份验证,确保数据传输加密。关键词:SpringBoot2、Vue3、MyBatis-Plus、MySQL8.0、JWT、数据安全。 数据表

基于AI WebUI Chatbot的实战开发:从架构设计到生产环境部署

快速体验 在开始今天关于 基于AI WebUI Chatbot的实战开发:从架构设计到生产环境部署 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 基于AI WebUI Chatbot的实战开发:从架构设计到生产环境部署 痛点分析:Web端AI对话系统的常见挑战 开发一个真正可用的AI对话系统时,往往会遇到几个关键问题: * 高延迟体验差:传统HTTP请求-响应模式需要等待AI生成完整回复,