Mehrkanal-Uebersicht
Triggerfish verbindet sich mit Ihren bestehenden Messaging-Plattformen. Sie sprechen mit Ihrem Agenten dort, wo Sie bereits kommunizieren -- Terminal, Telegram, Slack, Discord, WhatsApp, ein Web-Widget oder E-Mail. Jeder Kanal hat seine eigene Klassifizierungsstufe, Eigentuemer-Identitaetspruefungen und Policy-Durchsetzung.
Wie Kanaele funktionieren
Jeder Kanaladapter implementiert dieselbe Schnittstelle: connect, disconnect, send, onMessage und status. Der Kanal-Router sitzt ueber allen Adaptern und handhabt Nachrichtenweiterleitung, Klassifizierungspruefungen und Wiederholungslogik.
Wenn eine Nachricht auf einem beliebigen Kanal eintrifft, fuehrt der Router folgendes aus:
- Identifizierung des Absenders (Eigentuemer oder extern) mittels Code-Level-Identitaetspruefungen -- nicht LLM-Interpretation
- Markierung der Nachricht mit der Klassifizierungsstufe des Kanals
- Weiterleitung an die Policy Engine zur Durchsetzung
- Zurueckleitung der Agenten-Antwort ueber denselben Kanal
Kanal-Klassifizierung
Jeder Kanal hat eine Standard-Klassifizierungsstufe, die bestimmt, welche Daten durch ihn fliessen koennen. Die Policy Engine setzt die No-Write-Down-Regel durch: Daten einer bestimmten Klassifizierungsstufe koennen niemals zu einem Kanal mit niedrigerer Klassifizierung fliessen.
| Kanal | Standard-Klassifizierung | Eigentuemer-Erkennung |
|---|---|---|
| CLI | INTERNAL | Immer Eigentuemer (Terminal-Benutzer) |
| Telegram | INTERNAL | Telegram-Benutzer-ID-Abgleich |
| Signal | PUBLIC | Nie Eigentuemer (Adapter IST Ihr Telefon) |
| Slack | PUBLIC | Slack-Benutzer-ID ueber OAuth |
| Discord | PUBLIC | Discord-Benutzer-ID-Abgleich |
PUBLIC | Telefonnummer-Abgleich | |
| WebChat | PUBLIC | Nie Eigentuemer (Besucher) |
CONFIDENTIAL | E-Mail-Adressen-Abgleich |
Vollstaendig konfigurierbar Alle Klassifizierungen sind in Ihrer triggerfish.yaml konfigurierbar. Sie koennen jeden Kanal basierend auf Ihren Sicherheitsanforderungen auf jede beliebige Klassifizierungsstufe setzen.
yaml
channels:
telegram:
classification: CONFIDENTIAL
slack:
classification: INTERNALEffektive Klassifizierung
Die effektive Klassifizierung fuer jede Nachricht ist das Minimum aus der Kanal-Klassifizierung und der Empfaenger-Klassifizierung:
| Kanal-Stufe | Empfaenger-Stufe | Effektive Stufe |
|---|---|---|
| INTERNAL | INTERNAL | INTERNAL |
| INTERNAL | EXTERNAL | PUBLIC |
| CONFIDENTIAL | INTERNAL | INTERNAL |
| CONFIDENTIAL | EXTERNAL | PUBLIC |
Das bedeutet, dass selbst wenn ein Kanal als CONFIDENTIAL klassifiziert ist, Nachrichten an externe Empfaenger auf diesem Kanal als PUBLIC behandelt werden.
Kanalzustaende
Kanaele durchlaufen definierte Zustaende:
- UNTRUSTED -- Neue oder unbekannte Kanaele starten hier. Keine Daten fliessen rein oder raus. Der Kanal ist vollstaendig isoliert, bis Sie ihn klassifizieren.
- CLASSIFIED -- Der Kanal hat eine zugewiesene Klassifizierungsstufe und ist aktiv. Nachrichten fliessen gemaess den Policy-Regeln.
- BLOCKED -- Der Kanal wurde explizit deaktiviert. Keine Nachrichten werden verarbeitet.
UNTRUSTED-Kanaele Ein UNTRUSTED-Kanal kann keine Daten vom Agenten empfangen und keine Daten in den Kontext des Agenten senden. Dies ist eine harte Sicherheitsgrenze, kein Vorschlag. :::
Kanal-Router
Der Kanal-Router verwaltet alle registrierten Adapter und bietet:
- Adapter-Registrierung -- Kanaladapter nach Kanal-ID registrieren und abmelden
- Nachrichtenweiterleitung -- Ausgehende Nachrichten an den richtigen Adapter routen
- Wiederholung mit exponentiellem Backoff -- Fehlgeschlagene Sendungen werden bis zu 3 Mal mit steigenden Verzoegerungen wiederholt (1s, 2s, 4s)
- Massenoperationen --
connectAll()unddisconnectAll()fuer Lebenszyklus-Management
yaml
# Router-Wiederholungsverhalten ist konfigurierbar
router:
maxRetries: 3
baseDelay: 1000 # MillisekundenRipple: Tipp-Indikatoren und Praesenz
Triggerfish leitet Tipp-Indikatoren und Praesenzstatus ueber Kanaele weiter, die sie unterstuetzen. Dies wird Ripple genannt.
| Kanal | Tipp-Indikatoren | Lesebestaetigungen |
|---|---|---|
| Telegram | Senden und Empfangen | Ja |
| Signal | Senden und Empfangen | -- |
| Slack | Nur Senden | -- |
| Discord | Nur Senden | -- |
| Senden und Empfangen | Ja | |
| WebChat | Senden und Empfangen | Ja |
Agenten-Praesenzstatus: idle, online, away, busy, processing, speaking, error.
Nachrichtenaufteilung
Plattformen haben Nachrichtenlaengenlimits. Triggerfish teilt lange Antworten automatisch auf, um in die Beschraenkungen jeder Plattform zu passen, wobei an Zeilenumbruechen oder Leerzeichen geteilt wird, um die Lesbarkeit zu erhalten:
| Kanal | Max. Nachrichtenlaenge |
|---|---|
| Telegram | 4.096 Zeichen |
| Signal | 4.000 Zeichen |
| Discord | 2.000 Zeichen |
| Slack | 40.000 Zeichen |
| 4.096 Zeichen | |
| WebChat | Unbegrenzt |
Naechste Schritte
Richten Sie die Kanaele ein, die Sie verwenden:
- CLI -- Immer verfuegbar, keine Einrichtung erforderlich
- Telegram -- Bot ueber @BotFather erstellen
- Signal -- Ueber signal-cli-Daemon verknuepfen
- Slack -- Slack-App mit Socket Mode erstellen
- Discord -- Discord-Bot-Anwendung erstellen
- WhatsApp -- Ueber WhatsApp Business Cloud API verbinden
- WebChat -- Chat-Widget auf Ihrer Webseite einbetten
- E-Mail -- Ueber IMAP und SMTP-Relay verbinden
