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:
[channels.cli]enabled = truehistory_size = 1000 # Anzahl der gespeicherten Sitzungsverläufeprompt_style = "rich" # plain / rich / minimalDer 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:
[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:
- Erstellen Sie eine WhatsApp-App unter Meta for Developers.
- Rufen Sie die Phone Number ID und den Access Token ab.
- Konfigurieren Sie die Webhook-URL (Ihre OpenFang-Serveradresse +
/webhook/whatsapp). - 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:
[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 = 50Konfigurationsschritte:
- Erstellen Sie einen Bot in Telegram durch ein Gespräch mit @BotFather.
- Rufen Sie den Bot-Token ab.
- Tragen Sie den Token in die Konfigurationsdatei ein.
Discord-Adapter
Der Discord-Adapter unterstützt sowohl Server- (Guild) als auch Direktnachrichten-Modi:
[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-EinbettungenSlack-Adapter
Ideal für die Zusammenarbeit in Unternehmen:
[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 = trueSlack 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:
[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:
<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:
# 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 beibehaltenDie 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:
[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 = 4000Wichtige 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
# 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 debugHäufig gestellte Fragen
Muss der Agent neu gestartet werden, wenn ein neuer Kanal hinzugefügt wird?
``bash``
openfang channels reload
Ist der Gesprächsverlauf über verschiedene Kanäle hinweg synchronisiert?
preserve_context = false konfigurieren.Benötigt der WhatsApp-Adapter ein WhatsApp Business-Konto?
Wie füge ich einen benutzerdefinierten Kanal-Adapter hinzu?
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.