メインコンテンツまでスキップ

多平台渠道概览

Channel 系统让 Elftia 成为跨平台 AI 机器人。你可以将 Agent 同时连接到 Discord、Telegram、Slack 等多个平台,在任何地方接收消息、调用工具、生成回复。

何时使用

  • 希望在 Discord 服务器中部署一个 AI 助手机器人
  • 需要通过 Telegram 与 Agent 进行私人对话
  • 在 Slack 工作区中集成 AI 协作伙伴
  • 想让同一个 Agent 同时服务多个平台的用户

支持的平台

平台类型标识连接方式消息长度上限分类
DiscorddiscordBot Token2,000 字符Core
TelegramtelegramBot Token4,096 字符Core
SlackslackBot Token + App Token4,000 字符Core
QQ BotqqbotBot Token1,500 字符China
LINElineChannel Access Token + Secret5,000 字符Core
EmailemailSMTP + IMAP 凭证100,000 字符Core
WhatsAppwhatsapp手机号码65,000 字符Core
WeChatwechatWechaty Token2,000 字符China
MatrixmatrixAccess Token65,536 字符Extended
Microsoft TeamsmsteamsApp ID + Password28,000 字符Extended
MattermostmattermostBot Token16,383 字符Extended
企业微信wecomWebhook Key4,000 字符China
企业微信(应用)wecom-appCorp ID + Secret4,000 字符China

:::tip 插件即平台 所有平台均通过 Channel 插件 实现。内置插件随应用分发,更多插件可通过 Marketplace 下载安装。 :::

核心概念

Channel 实例 (Channel Instance)

每个 Channel 实例代表一个与外部平台的连接。你可以为同一平台创建多个实例(例如连接两个不同的 Discord 机器人)。每个实例独立管理自己的:

  • 凭证:连接所需的 Token/密钥
  • 触发规则:决定何时让 Agent 回复(详见 触发规则与安全
  • 连接状态:disconnected / connecting / connected / error

触发规则 (Trigger Rules)

触发规则决定 Agent 对哪些消息做出回复:

模式说明适用场景
all回复所有消息私人机器人、测试环境
mention仅在被 @提及 时回复多人群组、共享服务器
keyword匹配指定关键词时回复特定话题触发
dm_only仅回复私信公开群组中只接受私聊

安全管线 (Security Pipeline)

每条消息在到达 Agent 之前会经过多层安全检查:

  1. InputSanitizer — 清除不可见控制字符
  2. RateLimiter — 速率限制(防刷屏)
  3. PromptGuardian — AI 驱动的提示注入检测
  4. UserPermissionService — 基于角色的访问控制
  5. ChannelPermissionGate — 敏感操作确认机制

工作流程

外部平台消息 (Discord/Telegram/...)


Channel Plugin ─── 接收并解析消息


ChannelPluginRegistry ─── 转换为统一 ChannelMessage 格式


ChannelMessageRouter ─── 安全管线检查 + 触发规则匹配


ChannelMagiBridge ─── 转换为 MagiIncomingMessage


MagiService (Agent) ─── 处理并生成回复


ChannelMessageRouter ─── 格式化 + 消息分片


Channel Plugin ─── 发送回复到原始平台

插件架构

Channel 系统采用插件化架构,支持两种插件来源:

来源目录说明优先级
内置插件 (Bundled)resources/bundled-channel-plugins/随应用安装包分发,只读较低
用户插件 (Marketplace){userData}/channel-plugins/从 Marketplace 下载或手动安装,读写较高

当两个目录中存在相同类型的插件时,用户目录中的版本优先(可能是更新的 Marketplace 版本)。

每个插件必须包含 elftia-channel.json 清单文件,声明插件类型、入口文件、所需凭证等信息。

快速开始

  1. 打开 设置 → Channel 页面
  2. 点击 添加渠道,选择平台(如 Discord)
  3. 如果插件未安装,系统会从 Marketplace 自动下载
  4. 填写平台凭证(如 Discord Bot Token)
  5. 配置触发规则(建议先用 mention 模式测试)
  6. 点击 连接 启动实例
  7. 在对应平台中向机器人发送消息,验证连接是否正常

下一步