Skip to content

マルチチャンネル概要

Triggerfishはあなたの既存のメッセージングプラットフォームに接続します。すでにコミュニケーション している場所 — ターミナル、Telegram、Slack、Discord、WhatsApp、Webウィジェット、または メール — どこでもエージェントと話せます。すべてのチャンネルは独自の分類レベル、オーナー アイデンティティチェック、ポリシー強制を持ちます。

チャンネルの仕組み

すべてのチャンネルアダプターは同じインターフェースを実装します:connectdisconnectsendonMessagestatusチャンネルルーターはすべてのアダプターの上に位置し、 メッセージ配信、分類チェック、リトライロジックを処理します。

チャンネルルーター: すべてのチャンネルアダプターが中央の分類ゲートを通じてGatewayサーバーに流れる

メッセージが任意のチャンネルに到着すると、ルーターは:

  1. コードレベルのアイデンティティチェックを使用して送信者(オーナーまたは外部)を 識別します — LLMの解釈ではありません
  2. メッセージにチャンネルの分類レベルをタグ付けします
  3. 強制のためにポリシーエンジンに転送します
  4. エージェントのレスポンスを同じチャンネルを通じてルーティングします

チャンネル分類

各チャンネルには、それを通じて流れるデータを決定するデフォルトの分類レベルがあります。 ポリシーエンジンはライトダウン禁止ルールを強制します:特定の分類レベルのデータは、 より低い分類のチャンネルに流れることができません。

チャンネルデフォルト分類オーナー検出
CLIINTERNAL常にオーナー(ターミナルユーザー)
TelegramINTERNALTelegramユーザーIDの一致
SignalPUBLICオーナーになれない(アダプターはあなたの電話)
SlackPUBLICOAuth経由のSlackユーザーID
DiscordPUBLICDiscordユーザーIDの一致
WhatsAppPUBLIC電話番号の一致
WebChatPUBLICオーナーになれない(訪問者)
EmailCONFIDENTIALメールアドレスの一致

完全に設定可能 すべての分類はtriggerfish.yamlで設定可能です。セキュリティ要件に

基づいて任意のチャンネルを任意の分類レベルに設定できます。

yaml
channels:
  telegram:
    classification: CONFIDENTIAL
  slack:
    classification: INTERNAL

有効な分類

任意のメッセージの有効な分類は、チャンネル分類と受信者分類の最小値です:

チャンネルレベル受信者レベル有効なレベル
INTERNALINTERNALINTERNAL
INTERNALEXTERNALPUBLIC
CONFIDENTIALINTERNALINTERNAL
CONFIDENTIALEXTERNALPUBLIC

これは、チャンネルがCONFIDENTIALとして分類されていても、そのチャンネルの外部受信者への メッセージはPUBLICとして扱われることを意味します。

チャンネル状態

チャンネルは定義された状態を経由します:

  • UNTRUSTED — 新しいまたは不明なチャンネルはここから始まります。データは入出力 しません。分類するまでチャンネルは完全に分離されます。
  • CLASSIFIED — チャンネルには分類レベルが割り当てられ、アクティブです。メッセージは ポリシールールに従って流れます。
  • BLOCKED — チャンネルは明示的に無効化されています。メッセージは処理されません。

UNTRUSTEDチャンネル UNTRUSTEDチャンネルはエージェントからどんなデータも

受け取れず、エージェントのコンテキストにデータを送れません。これは提案ではなく、 ハードなセキュリティ境界です。 :::

チャンネルルーター

チャンネルルーターはすべての登録済みアダプターを管理し、以下を提供します:

  • アダプター登録 — チャンネルIDでチャンネルアダプターを登録および登録解除
  • メッセージ配信 — アウトバウンドメッセージを正しいアダプターにルーティング
  • 指数バックオフ付きリトライ — 失敗した送信は増加する遅延(1秒、2秒、4秒)で 最大3回リトライ
  • バルク操作 — ライフサイクル管理のためのconnectAll()disconnectAll()
yaml
# ルーターのリトライ動作は設定可能
router:
  maxRetries: 3
  baseDelay: 1000 # ミリ秒

Ripple:タイピングとプレゼンス

Triggerfishはそれをサポートするチャンネル全体でタイピングインジケーターとプレゼンス状態を 中継します。これはRippleと呼ばれます。

チャンネルタイピングインジケーター既読確認
Telegram送受信あり
Signal送受信
Slack送信のみ
Discord送信のみ
WhatsApp送受信あり
WebChat送受信あり

エージェントのプレゼンス状態:idleonlineawaybusyprocessingspeakingerror

メッセージの分割

プラットフォームにはメッセージ長の制限があります。Triggerfishは各プラットフォームの 制約に収まるように長いレスポンスを自動的に分割し、読みやすさのために改行またはスペースで 分割します:

チャンネル最大メッセージ長
Telegram4,096文字
Signal4,000文字
Discord2,000文字
Slack40,000文字
WhatsApp4,096文字
WebChat無制限

次のステップ

使用するチャンネルを設定します:

  • CLI — 常に利用可能、セットアップ不要
  • Telegram — @BotFatherでボットを作成
  • Signal — signal-cliデーモン経由でリンク
  • Slack — ソケットモードでSlackアプリを作成
  • Discord — Discordボットアプリケーションを作成
  • WhatsApp — WhatsApp Business Cloud API経由で接続
  • WebChat — サイトにチャットウィジェットを埋め込む
  • Email — IMAPとSMTPリレー経由で接続