Benutzerdefinierte Channel-Plugins
Du kannst das Channel-System um benutzerdefinierte Plattform-Adapter erweitern, die als Extensions verpackt sind. Dadurch kannst du Qwen Code mit jeder Messaging-Plattform, jedem Webhook oder benutzerdefinierten Transport verbinden.
Funktionsweise
Channel-Plugins werden beim Start aus aktiven Extensions geladen. Wenn qwen channel start ausgeführt wird, passiert Folgendes:
- Es scannt alle aktivierten Extensions nach
channels-Einträgen in derenqwen-extension.json - Es importiert den Einstiegspunkt jedes Channels dynamisch
- Es registriert den Channel-Typ, sodass er in
settings.jsonreferenziert werden kann - Es erstellt Channel-Instanzen mithilfe der Factory-Funktion des Plugins
Dein benutzerdefiniertes Channel-Plugin erhält die vollständige gemeinsame Pipeline kostenlos dazu: Sender-Gating, Gruppenrichtlinien, Session-Routing, Slash-Befehle, Crash-Recovery und die ACP-Brücke zum Agent.
Installation eines benutzerdefinierten Channels
Installiere eine Extension, die ein Channel-Plugin bereitstellt:
# Aus einem lokalen Pfad (für Entwicklung oder private Plugins)
qwen extensions install /path/to/my-channel-extension
# Oder für die Entwicklung verlinken (Änderungen werden sofort übernommen)
qwen extensions link /path/to/my-channel-extensionKonfiguration eines benutzerdefinierten Channels
Füge einen Channel-Eintrag zu ~/.qwen/settings.json hinzu und verwende dabei den von der Extension bereitgestellten benutzerdefinierten Typ:
{
"channels": {
"my-bot": {
"type": "my-platform",
"apiKey": "$MY_PLATFORM_API_KEY",
"senderPolicy": "open",
"cwd": "/path/to/project"
}
}
}Der type muss mit einem von einer installierten Extension registrierten Channel-Typ übereinstimmen. In der Dokumentation der Extension findest du, welche plugin-spezifischen Felder erforderlich sind (z. B. apiKey, webhookUrl).
Alle Standard-Channel-Optionen funktionieren auch mit benutzerdefinierten Channels:
| Option | Beschreibung |
|---|---|
senderPolicy | allowlist, pairing oder open |
allowedUsers | Statische Allowlist von Sender-IDs |
sessionScope | user, thread oder single |
cwd | Arbeitsverzeichnis für den Agent |
instructions | Wird der ersten Nachricht jeder Session vorangestellt |
model | Modell-Override für den Channel |
groupPolicy | disabled, allowlist oder open |
groups | Einstellungen pro Gruppe |
Details zu den einzelnen Optionen findest du in der Übersicht.
Starten des Channels
# Startet alle Channels, einschließlich benutzerdefinierter
qwen channel start
# Startet nur deinen benutzerdefinierten Channel
qwen channel start my-botStandardmäßig enthaltene Funktionen
Benutzerdefinierte Channels unterstützen automatisch alle Funktionen, die auch die integrierten Channels bieten:
- Sender-Richtlinien — Zugriffskontrolle mit
allowlist,pairingundopen - Gruppenrichtlinien — Einstellungen pro Gruppe mit optionalem @mention-Gating
- Session-Routing – Sessions pro Benutzer, pro Thread oder eine einzige gemeinsame Session
- DM-Pairing – Vollständiger Pairing-Code-Flow für unbekannte Benutzer
- Slash-Befehle –
/help,/clear,/statusfunktionieren out of the box - Benutzerdefinierte Anweisungen – Werden der ersten Nachricht jeder Session vorangestellt
- Crash-Recovery – Automatischer Neustart mit Session-Erhalt
- Serialisierung pro Session – Nachrichten werden in eine Warteschlange gestellt, um Race Conditions zu vermeiden
Erstellen eines eigenen Channel-Plugins
Möchtest du ein Channel-Plugin für eine neue Plattform entwickeln? Im Channel Plugin Developer Guide findest du Informationen zum ChannelPlugin-Interface, zum Envelope-Format und zu den Extension Points.