Channels
MushroomAgent 有两层相关的集成方式:
- Communication transports 是
mushroom-agent serve暴露的 runtime 入口:http、websocket、func。 - Platform channels 会把外部聊天或媒体平台事件适配成 MushroomAgent 消息,再经由通信层路由。
当你自己的服务或脚本直接调用 MushroomAgent 时,使用 transports。当 MushroomAgent 需要接入已有聊天或实时平台时,使用 platform channels。
通信 transports
| Transport | 入口 | 适合场景 |
|---|---|---|
http | POST /v1/chat、GET /i/health | 后端服务、脚本、curl 测试、浏览器 UI 托管 |
websocket | /ws/v1/chat、/ws/v1/realtime | 持久双向文本聊天和实时语音 |
func | 进程内通信 | 测试和 Python 应用内嵌 |
启动指定 transports:
mushroom-agent serve --communications http,websocket,func
本地浏览器测试可以加 --ui 挂载 /web:
mushroom-agent serve --ui
平台渠道
| 渠道 | 连接方式 | 需公网 IP | 功能 |
|---|---|---|---|
| Feishu 飞书 | WebSocket 长连接 | 否 | 事件接收、文本回复 |
| Discord | WebSocket + REST API | 否 | 消息接收、文本回复、slash command |
| OpenIM | WebSocket + API | 取决于部署 | 消息网关和 API 集成 |
| MagicCampus | Pearl API | 取决于部署 | 多平台消息集成 |
| LiveKit | WebRTC / LiveKit APIs | 取决于部署 | 实时媒体和语音会话 |
Feishu 飞书
通过 WebSocket 与飞书服务器建立长连接,无需暴露公网 IP 即可接收机器人事件并回复。
- 连接方式: WebSocket 长连接
- 公网需求: 无需公网 IP
- 主要功能: 事件接收、文本回复
详细配置见 Feishu。
Discord
通过 WebSocket 连接 Discord Gateway 接收消息,通过 REST API 回复文本内容。
- 连接方式: WebSocket + REST API
- 主要功能: 消息接收、文本回复、slash command
详细配置见 Discord。
OpenIM、MagicCampus 和 LiveKit
当前配置模板已经包含默认关闭的 openim、magiccampus 和 livekit 小节。只有在你具备对应平台凭证和部署信息时才启用它们。专门的配置页面仍在补充中;在此之前,以配置参考和生成模板为准。
通用配置
mushroom-agent init 生成的模板里已经带了这组配置:
channels:
feishu:
enabled: false
app_id: ""
app_secret: ""
verification_token: ""
encrypt_key: ""
discord:
enabled: false
bot_token: ""
openim:
enabled: false
magiccampus:
enabled: false
livekit:
enabled: false
说明
- 渠道可以同时运行;配置多个渠道后,MushroomAgent 会按聊天分别路由
- 群组行为因渠道而异
- 各渠道的详细配置和环境变量请参考各渠道页面