跳到主要内容

Channels

MushroomAgent 有两层相关的集成方式:

  • Communication transportsmushroom-agent serve 暴露的 runtime 入口:httpwebsocketfunc
  • Platform channels 会把外部聊天或媒体平台事件适配成 MushroomAgent 消息,再经由通信层路由。

当你自己的服务或脚本直接调用 MushroomAgent 时,使用 transports。当 MushroomAgent 需要接入已有聊天或实时平台时,使用 platform channels。

通信 transports

Transport入口适合场景
httpPOST /v1/chatGET /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 长连接事件接收、文本回复
DiscordWebSocket + REST API消息接收、文本回复、slash command
OpenIMWebSocket + API取决于部署消息网关和 API 集成
MagicCampusPearl API取决于部署多平台消息集成
LiveKitWebRTC / LiveKit APIs取决于部署实时媒体和语音会话

Feishu 飞书

通过 WebSocket 与飞书服务器建立长连接,无需暴露公网 IP 即可接收机器人事件并回复。

  • 连接方式: WebSocket 长连接
  • 公网需求: 无需公网 IP
  • 主要功能: 事件接收、文本回复

详细配置见 Feishu

Discord

通过 WebSocket 连接 Discord Gateway 接收消息,通过 REST API 回复文本内容。

  • 连接方式: WebSocket + REST API
  • 主要功能: 消息接收、文本回复、slash command

详细配置见 Discord

OpenIM、MagicCampus 和 LiveKit

当前配置模板已经包含默认关闭的 openimmagiccampuslivekit 小节。只有在你具备对应平台凭证和部署信息时才启用它们。专门的配置页面仍在补充中;在此之前,以配置参考和生成模板为准。

通用配置

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 会按聊天分别路由
  • 群组行为因渠道而异
  • 各渠道的详细配置和环境变量请参考各渠道页面