OpenFang Konfigurationsleitfaden für Multi-Channel-Adapter

20 Min. Lesezeit

OpenFang unterstützt über 40 Kanal-Adapter. Dieser Artikel erläutert detailliert die Konfiguration von sechs gängigen Adaptern: CLI, WhatsApp Business API, Telegram Bot, Discord, Slack Socket Mode und Web Chat Widget. Inklusive Lösungen für parallelen Betrieb, kontextübergreifende Nutzung, Sicherheitsvorkehrungen und Statusüberwachung.

OpenFang Konfigurationsleitfaden für Multi-Channel-Adapter: Machen Sie Ihren Agenten überall verfügbar

Slug: openfang-channel-setup-guide Kategorie: usage-guides (Anleitungen) Ziel-Keywords: OpenFang Kanalkonfiguration, OpenFang Adapter, OpenFang WhatsApp Telegram Suchintention: Informationell (Benutzer möchte Agenten an verschiedene Plattformen anbinden) Ziel-Wortanzahl: ~1800 Wörter Sprache: de


Was ist ein Kanal-Adapter?

Ein Kanal-Adapter (Channel Adapter) fungiert als Brücke zwischen OpenFang und externen Plattformen. Jeder Adapter ist dafür verantwortlich, Nachrichten von externen Plattformen in ein einheitliches, von OpenFang verständliches Format zu konvertieren und die Antworten des Agenten zurück in das native Format der jeweiligen Plattform zu übersetzen.

Die Design-Philosophie von OpenFang lautet: "Einmal die Agenten-Logik schreiben, auf über 40 Plattformen ausführen". Sie müssen den Agenten nicht für jede Plattform neu schreiben – konfigurieren Sie einfach den entsprechenden Kanal-Adapter.

Derzeit unterstützt OpenFang über 40 Kanal-Adapter, die Instant Messaging, soziale Medien, Kollaborationstools, E-Mail und benutzerdefinierte APIs abdecken.

Kernkonzepte der Kanal-Adapter

Alle Kanal-Adapter teilen sich die folgenden Designprinzipien:

  • Einheitliches Nachrichtenformat: Nachrichten aus jedem Kanal werden in das standardisierte OpenFang-Nachrichtenformat konvertiert.
  • Isolierte Sandbox: Jeder Kanal-Adapter läuft in einer eigenen Sandbox, sodass ein Fehler in einem Kanal die anderen nicht beeinträchtigt.
  • Hot-Reloading: Nach dem Hinzufügen oder Ändern einer Kanalkonfiguration ist kein Neustart des Agenten erforderlich.
  • Ratenbegrenzung: Integrierter Schutz vor Ratenbegrenzungen, um API-Limits der Plattformen nicht zu überschreiten.

Konfiguration gängiger Kanal-Adapter

CLI-Adapter

Die CLI ist der grundlegendste Adapter, ideal für Entwicklung, Debugging und lokale Nutzung:

toml
[channels.cli]enabled = truehistory_size = 1000              # Anzahl der gespeicherten Sitzungsverläufeprompt_style = "rich"            # plain / rich / minimal

Der CLI-Adapter ist sofort einsatzbereit und erfordert keine zusätzliche Konfiguration. Er unterstützt mehrzeilige Eingaben, Befehlsvervollständigung und Syntax-Highlighting.

WhatsApp-Adapter

WhatsApp ist eines der weltweit am häufigsten genutzten Instant-Messaging-Tools. Über die WhatsApp Business API kann Ihr Agent direkt mit Benutzern in WhatsApp interagieren:

toml
[channels.whatsapp]enabled = trueapi_version = "v18.0"phone_number_id = "${WA_PHONE_NUMBER_ID}"access_token = "${WA_ACCESS_TOKEN}"verify_token = "${WA_VERIFY_TOKEN}"[channels.whatsapp.features]media_support = true             # Unterstützung für Bild-/Dateiversandreply_buttons = true             # Unterstützung für interaktive Schaltflächenmax_message_length = 4096typing_indicator = true          # Anzeige von "schreibt..."

Konfigurationsschritte:

  1. Erstellen Sie eine WhatsApp-App unter Meta for Developers.
  2. Rufen Sie die Phone Number ID und den Access Token ab.
  3. Konfigurieren Sie die Webhook-URL (Ihre OpenFang-Serveradresse + /webhook/whatsapp).
  4. Tragen Sie diese Informationen in die OpenFang-Konfiguration ein.

Telegram-Adapter

Telegram ist eine der beliebtesten Kommunikationsplattformen in der Tech-Community. Die Konfiguration ist einfach und die API benutzerfreundlich:

toml
[channels.telegram]enabled = truebot_token = "${TELEGRAM_BOT_TOKEN}"allowed_users = []               # Leer lassen = alle Benutzer haben Zugriffadmin_users = ["@your_username"][channels.telegram.features]inline_queries = true            # Unterstützung für Inline-Abfragenmarkdown_support = truefile_upload = truemax_file_size_mb = 50

Konfigurationsschritte:

  1. Erstellen Sie einen Bot in Telegram durch ein Gespräch mit @BotFather.
  2. Rufen Sie den Bot-Token ab.
  3. Tragen Sie den Token in die Konfigurationsdatei ein.

Discord-Adapter

Der Discord-Adapter unterstützt sowohl Server- (Guild) als auch Direktnachrichten-Modi:

toml
[channels.discord]enabled = truebot_token = "${DISCORD_BOT_TOKEN}"application_id = "${DISCORD_APP_ID}"[channels.discord.guilds]server_ids = ["1234567890"]      # Zulässige Server-IDs[channels.discord.features]slash_commands = true            # Unterstützung für Slash-Befehlethread_support = true            # Unterstützung für Threadsembed_messages = true            # Rich-Text-Einbettungen

Slack-Adapter

Ideal für die Zusammenarbeit in Unternehmen:

toml
[channels.slack]enabled = truebot_token = "${SLACK_BOT_TOKEN}"signing_secret = "${SLACK_SIGNING_SECRET}"app_token = "${SLACK_APP_TOKEN}"[channels.slack.features]socket_mode = true               # Socket Mode verwenden (empfohlen, keine öffentliche URL erforderlich)thread_replies = truereaction_feedback = true

Slack empfiehlt die Verwendung des Socket Mode, da keine öffentlich zugängliche Webhook-URL konfiguriert werden muss – ideal für interne Bereitstellungen.

Web Chat-Adapter

Binden Sie ein OpenFang-Chatfenster auf Ihrer Website ein:

toml
[channels.webchat]enabled = trueport = 3000cors_origins = ["https://your-site.com"][channels.webchat.ui]theme = "auto"                   # light / dark / autologo_url = "/assets/agent-logo.png"welcome_message = "Hallo! Ich bin der OpenFang-Agent, wie kann ich Ihnen helfen?"placeholder = "Geben Sie Ihre Frage ein..."

Nach der Konfiguration fügen Sie dies Ihrer Webseite hinzu:

html
<script src="https://your-server:3000/widget.js"></script><script>OpenFangWidget.init({ position: 'bottom-right' })</script>

Paralleler Betrieb mehrerer Kanäle

Die Architektur von OpenFang unterstützt von Natur aus den parallelen Betrieb mehrerer Kanäle. Der Agent-Kern verwaltet einen einheitlichen Sitzungsstatus, und alle Kanäle teilen sich den Kontext:

toml
# Mehrere Kanäle gleichzeitig aktivieren[channels]cli.enabled = truewhatsapp.enabled = truetelegram.enabled = truediscord.enabled = truewebchat.enabled = true[channels.routing]strategy = "context_aware"       # round_robin / context_aware / prioritypreserve_context = true          # Kontext über Kanäle hinweg für denselben Benutzer beibehalten

Die context_aware-Routing-Strategie bedeutet: Wenn ein Benutzer ein Gespräch auf WhatsApp beginnt und später zu Telegram wechselt, lädt der Agent automatisch den vorherigen Kontext.

Sicherheitskonfiguration der Kanäle

Mehr Kanäle bedeuten eine größere Angriffsfläche. OpenFang bietet eine fein abgestimmte Sicherheitskontrolle für Kanäle:

toml
[channels.security]per_user_rate_limit = 30         # Maximal 30 Nachrichten pro Benutzer/Minuteper_channel_rate_limit = 100     # Maximal 100 Nachrichten pro Kanal/Minuterequire_auth = ["discord", "slack"]public_channels = ["webchat"]authenticated_channels = ["whatsapp", "telegram", "discord", "slack"][channels.security.content_filter]block_urls = falseblock_attachments = falsemax_prompt_length = 4000

Wichtige Sicherheitsempfehlungen:

  • Aktivieren Sie für öffentlich zugängliche Kanäle (Web Chat) eine strikte Ratenbegrenzung.
  • In Produktionsumgebungen sollten für Nicht-CLI-Kanäle Benutzerauthentifizierungen erforderlich sein.
  • Überprüfen Sie regelmäßig die Kanal-Zugriffsprotokolle.

Überwachung des Kanalstatus

bash
# Status aller Kanäle anzeigenopenfang channels list# Beispielausgabe:# Channel        Status    Messages/24h   Errors   Latency# cli            ✅ active       0           0         -# telegram       ✅ active     156          2       120ms# whatsapp       ✅ active      89          0       250ms# discord        ⚠️ degraded    43          5       500ms# webchat        ✅ active      12          0        45ms# Bestimmten Kanal neu startenopenfang channels restart discord# Detaillierte Protokolle eines Kanals anzeigenopenfang channels logs telegram --level debug

Häufig gestellte Fragen

Muss der Agent neu gestartet werden, wenn ein neuer Kanal hinzugefügt wird?
Nein. OpenFang unterstützt das Hot-Reloading der Kanalkonfiguration:

``bash
openfang channels reload
``

Ist der Gesprächsverlauf über verschiedene Kanäle hinweg synchronisiert?
Standardmäßig ja. Der Gesprächsverlauf desselben Benutzers wird über alle Kanäle hinweg geteilt; ein Kanalwechsel führt nicht zum Verlust des Kontexts. Wenn Sie eine Kanaltrennung benötigen, können Sie preserve_context = false konfigurieren.
Benötigt der WhatsApp-Adapter ein WhatsApp Business-Konto?
Ja. Der WhatsApp-Adapter verwendet die WhatsApp Business Platform API und erfordert ein verifiziertes Business-Konto. Private WhatsApp-Konten unterstützen keinen API-Zugriff.
Wie füge ich einen benutzerdefinierten Kanal-Adapter hinzu?
OpenFang bietet ein Channel SDK. Implementieren Sie einfach den ChannelAdapter-Trait, um einen benutzerdefinierten Adapter zu erstellen:

``rust
use openfang::channels::{ChannelAdapter, Message};

struct MyCustomChannel;
impl ChannelAdapter for MyCustomChannel {
async fn receive(&self) -> Vec<Message> { /* ... */ }
async fn send(&self, msg: Message) -> Result<()> { /* ... */ }
}
``

Nächste Schritte

  • OpenFang Automatisierungs-Workflow-Leitfaden: Orchestrieren Sie Multi-Channel-Agenten zu automatisierten Abläufen.
  • OpenFang Sicherheits-Best-Practices: Schützen Sie Ihre Multi-Channel-Agenten-Bereitstellungen.