@openclaw/feishu-Plugin eine Verbindung zu Feishu/Lark (der All-in-One-Plattform für Zusammenarbeit) her: Bot-Direktnachrichten, Gruppenchats, Streaming-Kartenantworten und Tools für Feishu-Dokumente, -Wikis, -Drive und -Bitable.
Status: produktionsbereit für Bot-Direktnachrichten und Gruppenchats. WebSocket ist der standardmäßige Ereignistransport (keine öffentliche URL erforderlich); der Webhook-Modus ist optional.
Schnellstart
Erfordert OpenClaw 2026.5.29 oder höher. Führen Sie zur Überprüfung
openclaw --version aus. Führen Sie das Upgrade mit openclaw update durch.1
Assistenten zur Kanaleinrichtung ausführen
@openclaw/feishu-Plugin installiert, falls es fehlt. Anschließend führt der Assistent durch die Einrichtung:- Manuelle Einrichtung: Fügen Sie eine App ID und ein App Secret aus der Feishu Open Platform (
https://open.feishu.cn) oder von Lark Developer (https://open.larksuite.com) ein. - QR-Einrichtung: Scannen Sie einen QR-Code in der Feishu-App, um automatisch einen Bot zu erstellen. Dieser Ablauf beschränkt Direktnachrichten auf Ihr eigenes Konto (
dmPolicy: "allowlist"mit Ihreropen_id).
2
Nach Abschluss der Einrichtung den Gateway neu starten, um die Änderungen anzuwenden
Dauerhafte Verarbeitung eingehender Ereignisse
OpenClaw reiht authentifizierteim.message.receive_v1- und drive.notice.comment_add_v1-Envelopes vor der Übergabe an den Agent dauerhaft in eine Warteschlange ein. Ausstehende oder erneut ausführbare Ereignisse überstehen einen Neustart des Gateways, bleiben pro Chat oder Dokument serialisiert und verwenden die Ereignis-ID von Feishu, um doppelte Warteschlangeneinträge zu unterdrücken, solange der aktive oder aufbewahrte Abschlussdatensatz vorhanden ist.
Falls ein WebSocket-Ereignis nach einer begrenzten Anzahl von Wiederholungsversuchen nicht persistiert werden kann, schließt OpenClaw den Socket und erzwingt eine neue authentifizierte Verbindung, statt nach einem nicht festgeschriebenen Turn fortzufahren. Andere Feishu-Ereignistypen, darunter Reaktionen und Einladungen zu VC-Besprechungen, verwenden ihre normalen Ereignispfade und erhalten diese Garantie einer dauerhaften Warteschlange nicht.
Zugriffskontrolle
Direktnachrichten
Konfigurieren Siechannels.feishu.dmPolicy (Standard: pairing), um festzulegen, wer dem Bot Direktnachrichten senden darf:
Kopplungsanfrage genehmigen:
Gruppenchats
Gruppenrichtlinie (channels.feishu.groupPolicy, Standard: allowlist):
Erwähnung erforderlich (
channels.feishu.requireMention):
- Standard: Eine @Erwähnung ist erforderlich, außer wenn die effektive Gruppenrichtlinie
"open"lautet; dort ist der Standardwertfalse, damit Nachrichten ohne mögliche Erwähnungen (beispielsweise Bilder) den Agent weiterhin erreichen. - Legen Sie
trueoderfalseexplizit fest, um dies zu überschreiben; Außerkraftsetzung pro Gruppe:channels.feishu.groups.<chat_id>.requireMention. - Die reinen Rundfunk-Erwähnungen
@allund@_allwerden nicht als Bot-Erwähnungen behandelt. Eine Nachricht, die sowohl@allals auch den Bot direkt erwähnt, gilt weiterhin als Bot-Erwähnung.
Beispiele für die Gruppenkonfiguration
Alle Gruppen zulassen, keine @Erwähnung erforderlich
Alle Gruppen zulassen, weiterhin @Erwähnung verlangen
Nur bestimmte Gruppen zulassen
allowlist-Modus können Sie eine Gruppe auch zulassen, indem Sie einen expliziten groups.<chat_id>-Eintrag hinzufügen. Explizite Einträge setzen groupPolicy: "disabled" nicht außer Kraft. Platzhalter-Standardwerte unter groups.* konfigurieren übereinstimmende Gruppen, lassen Gruppen jedoch nicht eigenständig zu.
Absender innerhalb einer Gruppe einschränken
channels.feishu.groupSenderAllowFrom legt dieselbe Absender-Zulassungsliste für alle Gruppen fest; ein gruppenspezifisches allowFrom hat Vorrang.
Von Bots verfasste Nachrichten
Feishu ignoriert standardmäßig Nachrichten, die von anderen Bots verfasst wurden. Um Bot-zu-Bot-Unterhaltungen in Gruppen zuzulassen, gewähren Sie der App die Berechtigungsumfängeim:message.group_at_msg.include_bot:readonly und im:message:readonly und legen Sie anschließend allowBots fest:
channels.defaults.botLoopProtection an.
Gruppen-/Benutzer-IDs abrufen
Gruppen-IDs (chat_id, Format: oc_xxx)
Öffnen Sie die Gruppe in Feishu/Lark, klicken Sie oben rechts auf das Menüsymbol und wechseln Sie zu Settings. Die Gruppen-ID (chat_id) wird auf der Einstellungsseite angezeigt.

Benutzer-IDs (open_id, Format: ou_xxx)
Starten Sie den Gateway, senden Sie dem Bot eine Direktnachricht und prüfen Sie anschließend die Protokolle:
open_id. Sie können auch ausstehende Kopplungsanfragen prüfen:
Häufig verwendete Befehle
Feishu/Lark unterstützt keine nativen Menüs für Slash-Befehle. Senden Sie diese daher als einfache Textnachrichten.
Fehlerbehebung
Bot antwortet nicht in Gruppenchats
- Stellen Sie sicher, dass der Bot der Gruppe hinzugefügt wurde
- Stellen Sie sicher, dass Sie den Bot mit @ erwähnen (standardmäßig erforderlich)
- Überprüfen Sie, dass
groupPolicynicht"disabled"lautet - Prüfen Sie die Protokolle:
openclaw logs --follow
Bot empfängt keine Nachrichten
- Stellen Sie sicher, dass der Bot in der Feishu Open Platform bzw. bei Lark Developer veröffentlicht und genehmigt wurde
- Stellen Sie sicher, dass das Ereignisabonnement
im.message.receive_v1enthält - Abonnieren Sie für den automatischen Beitritt zu Besprechungseinladungen zusätzlich
vc.bot.meeting_invited_v1 - Stellen Sie sicher, dass persistent connection (WebSocket) ausgewählt ist
- Stellen Sie sicher, dass alle erforderlichen Berechtigungsumfänge gewährt wurden
- Stellen Sie sicher, dass der Gateway ausgeführt wird:
openclaw gateway status - Prüfen Sie die Protokolle:
openclaw logs --follow
vc.bot.meeting_invited_v1 wird lediglich das Ereignis zugestellt. Automatische Beitritte sind
standardmäßig deaktiviert. So aktivieren Sie sie global:
vc:meeting.bot.join:write konfiguriert ist. Beispielsweise stellt das offizielle
lark-cli-VC-Agent-Skill
vc +meeting-join bereit.
QR-Einrichtung reagiert in der mobilen Feishu-App nicht
- Führen Sie die Einrichtung erneut aus:
openclaw channels login --channel feishu - Wählen Sie die manuelle Einrichtung
- Erstellen Sie in der Feishu Open Platform eine selbst entwickelte App und kopieren Sie deren App ID und App Secret
- Fügen Sie diese Anmeldedaten in den Einrichtungsassistenten ein
App Secret wurde offengelegt
- Setzen Sie das App Secret in der Feishu Open Platform bzw. bei Lark Developer zurück
- Aktualisieren Sie den Wert in Ihrer Konfiguration
- Starten Sie den Gateway neu:
openclaw gateway restart
Erweiterte Konfiguration
Mehrere Konten
defaultAccount steuert, welches Konto verwendet wird, wenn ausgehende APIs kein accountId angeben. Kontoeinträge übernehmen Einstellungen der obersten Ebene; die meisten Schlüssel der obersten Ebene können pro Konto überschrieben werden.
accounts.<id>.tts verwendet dieselbe Struktur wie tts und wird mittels Deep Merge mit der globalen TTS-Konfiguration zusammengeführt. Dadurch können Feishu-Einrichtungen mit mehreren Bots gemeinsame Provider-Anmeldedaten global speichern und pro Konto nur Stimme, Modell, Persona oder automatischen Modus überschreiben.
Nachrichtenlimits
textChunkLimit– Segmentgröße für ausgehenden Text (Standard:4000Zeichen)streaming.chunkMode–"length"(Standard) teilt am Limit;"newline"bevorzugt ZeilenumbrüchemediaMaxMb– Limit für das Hoch-/Herunterladen von Medien (Standard:30MB)
Streaming
Feishu/Lark unterstützt Streaming-Antworten über interaktive Karten (Card Kit Streaming API). Wenn diese Funktion aktiviert ist, aktualisiert der Bot die Karte während der Texterzeugung in Echtzeit.streaming.mode: "off", um die vollständige Antwort in einer einzigen Nachricht zu senden; renderMode: "raw" (Klartext anstelle von Karten) deaktiviert ebenfalls Streaming-Karten. streaming.block.enabled ist standardmäßig deaktiviert; aktivieren Sie es nur, wenn abgeschlossene Assistentenblöcke vor der endgültigen Antwort ausgegeben werden sollen. Der veraltete boolesche Wert streaming und die flachen Schlüssel blockStreaming / blockStreamingCoalesce / chunkMode werden über openclaw doctor --fix in diese verschachtelte Struktur migriert.
Kontingentoptimierung
Reduzieren Sie die Anzahl der Feishu/Lark-API-Aufrufe mit zwei optionalen Flags:typingIndicator(Standardwerttrue): Setzen Siefalse, um Aufrufe für Tippreaktionen zu überspringenresolveSenderNames(Standardwerttrue): Setzen Siefalse, um Abfragen von Absenderprofilen zu überspringen
Gruppensitzungsbereich und Themen-Threads
channels.feishu.groupSessionScope (auf oberster Ebene, pro Konto oder pro Gruppe) steuert, wie Gruppennachrichten Agentensitzungen zugeordnet werden:
Für die Themenbereiche verwenden native Feishu/Lark-Themengruppen das Ereignis
thread_id (omt_*) als kanonischen Sitzungsschlüssel des Themas. Wenn bei einem nativen Themenstarter-Ereignis thread_id fehlt, ruft OpenClaw ihn vor der Weiterleitung des Durchlaufs von Feishu ab. Normale Gruppenantworten, die OpenClaw in Threads umwandelt, verwenden weiterhin die Nachrichten-ID der Antwortwurzel (om_*), damit der erste Durchlauf und nachfolgende Durchläufe in derselben Sitzung bleiben.
Setzen Sie replyInThread: "enabled" (auf oberster Ebene oder pro Gruppe), damit Bot-Antworten einen Feishu-Themen-Thread erstellen oder fortsetzen, anstatt direkt im Chat zu antworten. topicSessionMode ist der veraltete Vorgänger von groupSessionScope; verwenden Sie vorzugsweise groupSessionScope.
Feishu-Arbeitsbereichswerkzeuge
Das Plugin enthält Agentenwerkzeuge für Feishu-Dokumente, Chats, Wissensdatenbanken, Cloud-Speicher, Berechtigungen und Bitable sowie die zugehörigen Skills (feishu-doc, feishu-drive, feishu-perm, feishu-wiki). Werkzeugfamilien werden durch channels.feishu.tools gesteuert:
tools.base ist ein Alias für tools.bitable; der explizite Wert bitable hat Vorrang, wenn beide gesetzt sind. Kontospezifische Steuerungen befinden sich unter accounts.<id>.tools.
Erteilen Sie drive:drive.metadata:readonly für direkte feishu_drive info-Abfragen außerhalb des Stammverzeichnisses,
sofern die App nicht bereits über den vollständigen Berechtigungsumfang drive:drive verfügt. Ohne einen dieser Berechtigungsumfänge hält info
die veraltete Abfrage im Stammverzeichnis über drive:drive:readonly verfügbar.
ACP-Sitzungen
Feishu/Lark unterstützt ACP für Direktnachrichten und Nachrichten in Gruppen-Threads. Feishu/Lark-ACP wird über Textbefehle gesteuert – es gibt keine nativen Menüs für Schrägstrichbefehle. Verwenden Sie daher/acp ...-Nachrichten direkt in der Unterhaltung.
Dauerhafte ACP-Bindung
ACP aus dem Chat starten
In einer Feishu/Lark-Direktnachricht oder einem Thread:--thread here funktioniert für Direktnachrichten und Feishu/Lark-Thread-Nachrichten. Nachfolgende Nachrichten in der gebundenen Unterhaltung werden direkt an diese ACP-Sitzung weitergeleitet.
Multi-Agenten-Routing
Verwenden Siebindings, um Feishu/Lark-Direktnachrichten oder -Gruppen an verschiedene Agenten weiterzuleiten.
match.channel:"feishu"match.peer.kind:"direct"(Direktnachricht) oder"group"(Gruppenchat)match.peer.id: Benutzer-Open-ID (ou_xxx) oder Gruppen-ID (oc_xxx)
Agentenisolation pro Benutzer (dynamische Agentenerstellung)
Aktivieren SiedynamicAgentCreation, um für jeden Benutzer von Direktnachrichten automatisch isolierte Agenteninstanzen zu erstellen. Jeder Benutzer erhält eigene:
- Unabhängiges Arbeitsbereichsverzeichnis
- Separate
USER.md/SOUL.md/MEMORY.md - Private Unterhaltungshistorie
- Isolierte Skills und isolierter Zustand
Dynamische Bindungen enthalten die normalisierte Feishu-
accountId, sodass Standardkonten und benannte Konten jeden Absender an den richtigen dynamischen Agenten weiterleiten.Wenn ein benanntes Konto in einer älteren Version einen dynamischen Agenten ohne Bereichszuordnung erstellt hat, wird dieser veraltete Agent weiterhin auf maxAgents angerechnet. Stellen Sie vor dem Entfernen sicher, dass er nicht vom Standardkonto verwendet wird, oder erhöhen Sie vorübergehend maxAgents; OpenClaw kann nicht zuverlässig ableiten, welchem Konto ein mehrdeutiger veralteter Zustand gehört.Schnelle Einrichtung
Funktionsweise
Wenn ein neuer Benutzer seine erste Direktnachricht sendet:- Der Kanal erzeugt eine eindeutige
agentId:feishu-{user_open_id}für das Standardkonto oder einen begrenzten Identitäts-Digest mit Kontopräfix für ein benanntes Konto - Erstellt einen neuen Arbeitsbereich unter dem Pfad
workspaceTemplate - Registriert den Agenten und erstellt eine Bindung für diesen Benutzer
- Das Arbeitsbereichs-Hilfsprogramm stellt beim ersten Zugriff Bootstrap-Dateien (
AGENTS.md,SOUL.md,USER.mdusw.) bereit - Leitet alle zukünftigen Nachrichten dieses Benutzers an seinen dedizierten Agenten weiter
Konfigurationsoptionen
Vorlagenvariablen:
{agentId}– die generierte Agenten-ID (z. B.feishu-ou_xxxxxxoderfeishu-support-<identity_digest>){userId}– die Feishu-open_id des Absenders (z. B.ou_xxxxxx)
Sitzungsbereich
session.dmScope steuert, wie Direktnachrichten Agentensitzungen zugeordnet werden. Dies ist eine globale Einstellung, die alle Kanäle betrifft.
Abwägung: Die Verwendung von
"main" aktiviert das automatische Laden von Bootstrap-Dateien (USER.md, SOUL.md, MEMORY.md), führt jedoch dazu, dass alle Direktnachrichten über alle Kanäle hinweg dasselbe Sitzungsschlüsselmuster verwenden. Für öffentliche Mehrbenutzer-Bots, bei denen Isolation wichtiger als das automatische Laden von Bootstrap-Dateien ist, sollten Sie "per-channel-peer" in Betracht ziehen und Bootstrap-Dateien manuell verwalten.
Verwenden Sie
"per-account-channel-peer", wenn benannte Feishu-Konten für denselben Absender separate Sitzungen führen sollen. Dynamische Bindungen bewahren den Kontobereich.Typische Mehrbenutzerbereitstellung
Überprüfung
Prüfen Sie die Gateway-Protokolle, um sicherzustellen, dass die dynamische Erstellung funktioniert:Hinweise
- Arbeitsbereichsisolation: Jeder Benutzer erhält ein eigenes Arbeitsbereichsverzeichnis und eine eigene Agent-Instanz. Benutzer können im normalen Nachrichtenablauf weder den Gesprächsverlauf noch die Dateien anderer Benutzer sehen.
- Sicherheitsgrenze: Dies ist ein Isolationsmechanismus für Nachrichtenkontexte, keine Sicherheitsgrenze gegenüber feindseligen Mandanten. Der Agent-Prozess und die Hostumgebung werden gemeinsam genutzt.
- Konfigurationsschreibvorgänge müssen aktiviert bleiben: Bei der dynamischen Agent-Erstellung werden Agents und Bindungen in die Konfiguration geschrieben; sie wird übersprungen, wenn
channels.feishu.configWritesauffalsegesetzt ist (Standard: aktiviert). bindingssollte leer sein: Dynamische Agents registrieren ihre eigenen Bindungen automatisch- Upgrade-Pfad: Vorhandene manuelle Bindungen funktionieren weiterhin parallel zu dynamischen Agents
session.dmScopegilt global: Dies betrifft alle Kanäle, nicht nur Feishu
Konfigurationsreferenz
Vollständige Konfiguration: Gateway-KonfigurationUnterstützte Nachrichtentypen
Empfangen
- ✅ Text
- ✅ Rich Text (Beitrag)
- ✅ Bilder
- ✅ Dateien
- ✅ Audio
- ✅ Video/Medien
- ✅ Sticker
file_key-JSON normalisiert. Wenn tools.media.audio konfiguriert ist, lädt OpenClaw
die Sprachnotizressource herunter und führt vor dem Agent-Durchlauf die gemeinsame Audiotranskription aus,
sodass der Agent das gesprochene Transkript erhält. Wenn Feishu
Transkripttext direkt in der Audionutzlast bereitstellt, wird dieser Text ohne einen weiteren
ASR-Aufruf verwendet. Ohne einen Provider für Audiotranskription erhält der Agent weiterhin einen
<media:audio>-Platzhalter sowie den gespeicherten Anhang, nicht die unverarbeitete Feishu-
Ressourcennutzlast.
Senden
- ✅ Text
- ✅ Bilder
- ✅ Dateien
- ✅ Audio
- ✅ Video/Medien
- ✅ Interaktive Karten (einschließlich Streaming-Aktualisierungen)
- ⚠️ Rich Text (Formatierung im Beitragsstil; unterstützt nicht alle Autorenfunktionen von Feishu/Lark)
audio und erfordern
Upload-Medien im Ogg/Opus-Format (file_type: "opus"). Vorhandene Medien vom Typ .opus und .ogg
werden direkt als natives Audio gesendet. MP3/WAV/M4A und andere wahrscheinliche Audioformate werden
nur dann mit ffmpeg in Ogg/Opus mit 48 kHz transkodiert, wenn die Antwort eine
Sprachausgabe anfordert (audioAsVoice / Nachrichtentool asVoice, einschließlich
TTS-Antworten als Sprachnachricht). Normale MP3-Anhänge bleiben reguläre Dateien. Wenn ffmpeg fehlt oder
die Konvertierung fehlschlägt, greift OpenClaw auf einen Dateianhang zurück und protokolliert den Grund.
Threads und Antworten
- ✅ Inline-Antworten
- ✅ Thread-Antworten
- ✅ Medienantworten berücksichtigen beim Antworten auf eine Thread-Nachricht weiterhin den Thread
Verwandte Themen
- Kanalübersicht - alle unterstützten Kanäle
- Kopplung - DM-Authentifizierung und Kopplungsablauf
- Gruppen - Verhalten von Gruppenchats und Erwähnungssteuerung
- Kanalrouting - Sitzungsrouting für Nachrichten
- Sicherheit - Zugriffsmodell und Absicherung