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

マルチプラットフォームチャンネルの概要

Channel システムは Elftia をクロスプラットフォーム AI ボットにします。Agent を Discord、Telegram、Slack などのプラットフォームに同時接続し、どこからでもメッセージを受信し、ツールを呼び出し、返信を生成できます。

使用する場面

  • Discord サーバーに AI アシスタントボットをデプロイしたい
  • Telegram 経由で Agent とプライベートに会話したい
  • Slack ワークスペースに AI コラボレーターを統合したい
  • 同じ Agent で複数のプラットフォームのユーザーに同時対応したい

対応プラットフォーム

PlatformType IDConnection MethodMax Message LengthCategory
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
WeCom (Enterprise WeChat)wecomWebhook Key4,000 文字China
WeCom (App)wecom-appCorp ID + Secret4,000 文字China

:::tip プラットフォームはプラグインです すべてのプラットフォームは Channel プラグインとして実装されています。組み込みプラグインはアプリに同梱されています。追加プラグインは Marketplace からダウンロードしてインストールできます。 :::

コアコンセプト

Channel インスタンス

各 Channel インスタンスは、外部プラットフォームへの接続を表します。同じプラットフォームに対して複数のインスタンスを作成できます(例: 2 つの異なる Discord ボットを接続する)。各インスタンスは、それぞれ独立して以下を管理します。

  • 認証情報: 接続に必要なトークン/キー
  • トリガールール: Agent がいつ返信するかを決定します(トリガールールとセキュリティを参照)
  • 接続状態: 切断 / 接続中 / 接続済み / エラー

トリガールール

トリガールールは、Agent がどのメッセージに応答するかを決定します。

ModeDescriptionBest For
allすべてのメッセージに返信個人用ボット、テスト環境
mention@メンションされた場合のみ返信複数ユーザーのグループ、共有サーバー
keyword指定したキーワードに一致した場合に返信トピック固有のトリガー
dm_onlyダイレクトメッセージにのみ返信プライベートチャットのみを受け付ける公開グループ

セキュリティパイプライン

すべてのメッセージは Agent に到達する前に、複数のセキュリティチェックを通過します。

  1. InputSanitizer — 不可視の制御文字を除去します
  2. RateLimiter — レート制限(スパムの大量送信を防ぎます)
  3. PromptGuardian — AI 駆動のプロンプトインジェクション検出
  4. UserPermissionService — ロールベースのアクセス制御
  5. ChannelPermissionGate — 機密操作の確認メカニズム

ワークフロー

External platform message (Discord/Telegram/...)


Channel Plugin ─── receive and parse message


ChannelPluginRegistry ─── convert to unified ChannelMessage format


ChannelMessageRouter ─── security pipeline checks + trigger rule matching


ChannelMagiBridge ─── convert to MagiIncomingMessage


MagiService (Agent) ─── process and generate reply


ChannelMessageRouter ─── format + message splitting


Channel Plugin ─── send reply back to the original platform

プラグインアーキテクチャ

Channel システムはプラグインベースのアーキテクチャを使用しており、2 種類のプラグインソースをサポートしています。

SourceDirectoryDescriptionPriority
Built-in (Bundled)resources/bundled-channel-plugins/アプリのインストーラーと一緒に配布されます。読み取り専用です
User (Marketplace){userData}/channel-plugins/Marketplace からダウンロード、または手動でインストールされます。読み書き可能です

同じプラグインタイプが両方のディレクトリに存在する場合、ユーザーディレクトリのバージョンが優先されます(Marketplace のより新しいバージョンである可能性があります)。

各プラグインには、プラグインタイプ、エントリーファイル、必要な認証情報、その他の情報を宣言する elftia-channel.json マニフェストファイルが必要です。

クイックスタート

  1. Settings → Channel を開きます
  2. Add Channel をクリックし、プラットフォーム(例: Discord)を選択します
  3. プラグインがインストールされていない場合、システムが Marketplace から自動的にダウンロードします
  4. プラットフォームの認証情報(例: Discord Bot Token)を入力します
  5. トリガールールを設定します(推奨: テストでは mention モードから始める)
  6. Connect をクリックしてインスタンスを開始します
  7. 対応するプラットフォームでボットにメッセージを送信し、接続を確認します

次のステップ