Regional platforms
Feishu
Feishu/Lark ist eine All-in-one-Kollaborationsplattform, auf der Teams chatten, Dokumente teilen, Kalender verwalten und gemeinsam Arbeit erledigen.
Status: produktionsbereit für Bot-DMs und Gruppenchats. WebSocket ist der Standardmodus; der Webhook-Modus ist optional.
Schnellstart
Kanaleinrichtungsassistenten ausführen
openclaw channels login --channel feishu
Scannen Sie den QR-Code mit Ihrer mobilen Feishu/Lark-App, um automatisch einen Feishu/Lark-Bot zu erstellen.
Starten Sie nach Abschluss der Einrichtung den Gateway neu, um die Änderungen anzuwenden
openclaw gateway restart
Zugriffssteuerung
Direktnachrichten
Konfigurieren Sie dmPolicy, um zu steuern, wer dem Bot DMs senden kann:
"pairing"- unbekannte Benutzer erhalten einen Pairing-Code; Genehmigung über die CLI"allowlist"- nur inallowFromaufgeführte Benutzer können chatten (Standard: nur der Bot-Besitzer)"open"- öffentliche DMs nur zulassen, wennallowFrom"*"enthält; bei restriktiven Einträgen können nur passende Benutzer chatten"disabled"- alle DMs deaktivieren
Pairing-Anfrage genehmigen:
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>
Gruppenchats
Gruppenrichtlinie (channels.feishu.groupPolicy):
| Wert | Verhalten |
|---|---|
"open" |
Auf alle Nachrichten in Gruppen antworten |
"allowlist" |
Nur auf Gruppen in groupAllowFrom oder explizit unter groups.<chat_id> konfigurierte Gruppen antworten |
"disabled" |
Alle Gruppennachrichten deaktivieren; explizite groups.<chat_id>-Einträge überschreiben dies nicht |
Standard: allowlist
Erwähnung erforderlich (channels.feishu.requireMention):
true- @mention erforderlich (Standard)false- ohne @mention antworten- Überschreibung pro Gruppe:
channels.feishu.groups.<chat_id>.requireMention - Reine Broadcast-Erwähnungen
@allund@_allwerden nicht als Bot-Erwähnungen behandelt. Eine Nachricht, die sowohl@allals auch den Bot direkt erwähnt, zählt weiterhin als Bot-Erwähnung.
Beispiele für Gruppenkonfiguration
Alle Gruppen zulassen, keine @mention erforderlich
{
channels: {
feishu: {
groupPolicy: "open",
},
},
}
Alle Gruppen zulassen, @mention weiterhin erforderlich
{
channels: {
feishu: {
groupPolicy: "open",
requireMention: true,
},
},
}
Nur bestimmte Gruppen zulassen
{
channels: {
feishu: {
groupPolicy: "allowlist",
// Group IDs look like: oc_xxx
groupAllowFrom: ["oc_xxx", "oc_yyy"],
},
},
}
Im allowlist-Modus können Sie eine Gruppe auch zulassen, indem Sie einen expliziten groups.<chat_id>-Eintrag hinzufügen. Explizite Einträge überschreiben groupPolicy: "disabled" nicht. Wildcard-Standards unter groups.* konfigurieren passende Gruppen, lassen Gruppen aber nicht von selbst zu.
{
channels: {
feishu: {
groupPolicy: "allowlist",
groups: {
oc_xxx: {
requireMention: false,
},
},
},
},
}
Absender innerhalb einer Gruppe einschränken
{
channels: {
feishu: {
groupPolicy: "allowlist",
groupAllowFrom: ["oc_xxx"],
groups: {
oc_xxx: {
// User open_ids look like: ou_xxx
allowFrom: ["ou_user1", "ou_user2"],
},
},
},
},
}
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 gehen Sie zu Einstellungen. Die Gruppen-ID (chat_id) ist auf der Einstellungsseite aufgeführt.

Benutzer-IDs (open_id, Format: ou_xxx)
Starten Sie den Gateway, senden Sie dem Bot eine DM und prüfen Sie anschließend die Logs:
openclaw logs --follow
Suchen Sie in der Log-Ausgabe nach open_id. Sie können auch ausstehende Pairing-Anfragen prüfen:
openclaw pairing list feishu
Häufige Befehle
| Befehl | Beschreibung |
|---|---|
/status |
Bot-Status anzeigen |
/reset |
Aktuelle Sitzung zurücksetzen |
/model |
KI-Modell anzeigen oder wechseln |
Problembehandlung
Bot antwortet nicht in Gruppenchats
- Stellen Sie sicher, dass der Bot zur Gruppe hinzugefügt wurde
- Stellen Sie sicher, dass Sie den Bot per @mention erwähnen (standardmäßig erforderlich)
- Prüfen Sie, dass
groupPolicynicht"disabled"ist - Logs prüfen:
openclaw logs --follow
Bot empfängt keine Nachrichten
- Stellen Sie sicher, dass der Bot in Feishu Open Platform / Lark Developer veröffentlicht und genehmigt wurde
- Stellen Sie sicher, dass das Ereignisabonnement
im.message.receive_v1enthält - Stellen Sie sicher, dass persistent connection (WebSocket) ausgewählt ist
- Stellen Sie sicher, dass alle erforderlichen Berechtigungsbereiche gewährt wurden
- Stellen Sie sicher, dass der Gateway läuft:
openclaw gateway status - Logs prüfen:
openclaw logs --follow
App Secret wurde offengelegt
- Setzen Sie das App Secret in Feishu Open Platform / Lark Developer zurück
- Aktualisieren Sie den Wert in Ihrer Konfiguration
- Starten Sie den Gateway neu:
openclaw gateway restart
Erweiterte Konfiguration
Mehrere Konten
{
channels: {
feishu: {
defaultAccount: "main",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
name: "Primary bot",
tts: {
providers: {
openai: { voice: "shimmer" },
},
},
},
backup: {
appId: "cli_yyy",
appSecret: "yyy",
name: "Backup bot",
enabled: false,
},
},
},
},
}
defaultAccount steuert, welches Konto verwendet wird, wenn ausgehende APIs keine accountId angeben.
accounts.<id>.tts verwendet dieselbe Struktur wie messages.tts und wird tief über die
globale TTS-Konfiguration gemergt, sodass Feishu-Setups mit mehreren Bots gemeinsame Provider-
Anmeldedaten global beibehalten können, während nur Stimme, Modell, Persona oder Auto-Modus
pro Konto überschrieben werden.
Nachrichtenlimits
textChunkLimit- Größe ausgehender Textblöcke (Standard:2000Zeichen)mediaMaxMb- Upload-/Downloadlimit für Medien (Standard:30MB)
Streaming
Feishu/Lark unterstützt Streaming-Antworten über interaktive Karten. Wenn aktiviert, aktualisiert der Bot die Karte in Echtzeit, während er Text generiert.
{
channels: {
feishu: {
streaming: true, // enable streaming card output (default: true)
blockStreaming: true, // opt into completed-block streaming
},
},
}
Setzen Sie streaming: false, um die vollständige Antwort in einer Nachricht zu senden. blockStreaming ist standardmäßig deaktiviert; aktivieren Sie es nur, wenn abgeschlossene Assistant-Blöcke vor der finalen Antwort gesendet werden sollen.
Kontingentoptimierung
Reduzieren Sie die Anzahl der Feishu/Lark-API-Aufrufe mit zwei optionalen Flags:
typingIndicator(Standardtrue): auffalsesetzen, um Aufrufe für Tippreaktionen zu überspringenresolveSenderNames(Standardtrue): auffalsesetzen, um Abfragen von Absenderprofilen zu überspringen
{
channels: {
feishu: {
typingIndicator: false,
resolveSenderNames: false,
},
},
}
ACP-Sitzungen
Feishu/Lark unterstützt ACP für DMs und Gruppen-Thread-Nachrichten. Feishu/Lark-ACP ist textbefehlsbasiert - es gibt keine nativen Slash-Command-Menüs; verwenden Sie daher /acp ...-Nachrichten direkt in der Unterhaltung.
Persistente ACP-Bindung
{
agents: {
list: [
{
id: "codex",
runtime: {
type: "acp",
acp: {
agent: "codex",
backend: "acpx",
mode: "persistent",
cwd: "/workspace/openclaw",
},
},
},
],
},
bindings: [
{
type: "acp",
agentId: "codex",
match: {
channel: "feishu",
accountId: "default",
peer: { kind: "direct", id: "ou_1234567890" },
},
},
{
type: "acp",
agentId: "codex",
match: {
channel: "feishu",
accountId: "default",
peer: { kind: "group", id: "oc_group_chat:topic:om_topic_root" },
},
acp: { label: "codex-feishu-topic" },
},
],
}
ACP aus dem Chat starten
In einer Feishu/Lark-DM oder einem Thread:
/acp spawn codex --thread here
--thread here funktioniert für DMs und Feishu/Lark-Thread-Nachrichten. Folgenachrichten in der gebundenen Unterhaltung werden direkt an diese ACP-Sitzung weitergeleitet.
Multi-Agent-Routing
Verwenden Sie bindings, um Feishu/Lark-DMs oder -Gruppen an verschiedene Agenten weiterzuleiten.
{
agents: {
list: [
{ id: "main" },
{ id: "agent-a", workspace: "/home/user/agent-a" },
{ id: "agent-b", workspace: "/home/user/agent-b" },
],
},
bindings: [
{
agentId: "agent-a",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_xxx" },
},
},
{
agentId: "agent-b",
match: {
channel: "feishu",
peer: { kind: "group", id: "oc_zzz" },
},
},
],
}
Routing-Felder:
match.channel:"feishu"match.peer.kind:"direct"(DM) oder"group"(Gruppenchat)match.peer.id: Benutzer-Open-ID (ou_xxx) oder Gruppen-ID (oc_xxx)
Siehe Gruppen-/Benutzer-IDs abrufen für Tipps zum Nachschlagen.
Konfigurationsreferenz
Vollständige Konfiguration: Gateway-Konfiguration
| Einstellung | Beschreibung | Standard |
|---|---|---|
channels.feishu.enabled |
Kanal aktivieren/deaktivieren | true |
channels.feishu.domain |
API-Domain (feishu oder lark) |
feishu |
channels.feishu.connectionMode |
Event-Transport (websocket oder webhook) |
websocket |
channels.feishu.defaultAccount |
Standardkonto für ausgehendes Routing | default |
channels.feishu.verificationToken |
Erforderlich für den Webhook-Modus | - |
channels.feishu.encryptKey |
Erforderlich für den Webhook-Modus | - |
channels.feishu.webhookPath |
Webhook-Routenpfad | /feishu/events |
channels.feishu.webhookHost |
Webhook-Bind-Host | 127.0.0.1 |
channels.feishu.webhookPort |
Webhook-Bind-Port | 3000 |
channels.feishu.accounts.<id>.appId |
App-ID | - |
channels.feishu.accounts.<id>.appSecret |
App Secret | - |
channels.feishu.accounts.<id>.domain |
Domain-Überschreibung pro Konto | feishu |
channels.feishu.accounts.<id>.tts |
TTS-Überschreibung pro Konto | messages.tts |
channels.feishu.dmPolicy |
DM-Richtlinie | allowlist |
channels.feishu.allowFrom |
DM-Allowlist (open_id-Liste) | [BotOwnerId] |
channels.feishu.groupPolicy |
Gruppenrichtlinie | allowlist |
channels.feishu.groupAllowFrom |
Gruppen-Allowlist | - |
channels.feishu.requireMention |
@mention in Gruppen erforderlich | true |
channels.feishu.groups.<chat_id>.requireMention |
@mention-Überschreibung pro Gruppe; explizite IDs lassen die Gruppe im Allowlist-Modus ebenfalls zu | geerbt |
channels.feishu.groups.<chat_id>.enabled |
Bestimmte Gruppe aktivieren/deaktivieren | true |
channels.feishu.textChunkLimit |
Größe von Nachrichtenabschnitten | 2000 |
channels.feishu.mediaMaxMb |
Größenlimit für Medien | 30 |
channels.feishu.streaming |
Ausgabe von Streaming-Karten | true |
channels.feishu.blockStreaming |
Streaming von Antworten mit abgeschlossenem Block | false |
channels.feishu.typingIndicator |
Tipp-Reaktionen senden | true |
channels.feishu.resolveSenderNames |
Anzeigenamen von Absendern auflösen | true |
Unterstützte Nachrichtentypen
Empfangen
- ✅ Text
- ✅ Rich Text (post)
- ✅ Bilder
- ✅ Dateien
- ✅ Audio
- ✅ Video/Medien
- ✅ Sticker
Eingehende Feishu/Lark-Audionachrichten werden als Medienplatzhalter normalisiert statt
als rohes file_key-JSON. Wenn tools.media.audio konfiguriert ist, lädt OpenClaw
die Sprachnotiz-Ressource herunter und führt vor dem Agent-Turn die gemeinsame
Audiotranskription aus, sodass der Agent das gesprochene Transkript erhält. Wenn Feishu
Transkripttext direkt in der Audio-Payload enthält, wird dieser Text ohne einen weiteren
ASR-Aufruf verwendet. Ohne Audio-Transkriptions-Provider erhält der Agent weiterhin einen
<media:audio>-Platzhalter plus den gespeicherten Anhang, nicht die rohe Feishu-
Ressourcen-Payload.
Senden
- ✅ Text
- ✅ Bilder
- ✅ Dateien
- ✅ Audio
- ✅ Video/Medien
- ✅ Interaktive Karten (einschließlich Streaming-Updates)
- ⚠️ Rich Text (Formatierung im Post-Stil; unterstützt nicht die vollständigen Feishu/Lark-Autorenfunktionen)
Native Feishu/Lark-Audioblasen verwenden den Feishu-Nachrichtentyp audio und erfordern
Ogg/Opus-Upload-Medien (file_type: "opus"). Vorhandene .opus- und .ogg-Medien
werden direkt als natives Audio gesendet. MP3/WAV/M4A und andere wahrscheinliche Audioformate werden
nur dann mit ffmpeg in 48-kHz-Ogg/Opus transkodiert, wenn die Antwort Sprachzustellung anfordert
(audioAsVoice / Nachrichtentool asVoice, einschließlich TTS-Sprachnotiz-
Antworten). Gewöhnliche MP3-Anhänge bleiben normale Dateien. Wenn ffmpeg fehlt oder
die Konvertierung fehlschlägt, fällt OpenClaw auf einen Dateianhang zurück und protokolliert den Grund.
Threads und Antworten
- ✅ Inline-Antworten
- ✅ Thread-Antworten
- ✅ Medienantworten bleiben threadbezogen, wenn auf eine Thread-Nachricht geantwortet wird
Für groupSessionScope: "group_topic" und "group_topic_sender" verwenden native
Feishu/Lark-Themengruppen das Event-thread_id (omt_*) als kanonischen
Themen-Sitzungsschlüssel. Wenn ein natives Themenstarter-Event thread_id auslässt, hydriert OpenClaw
sie vor dem Routing des Turns aus Feishu. Normale Gruppenantworten, die
OpenClaw in Threads umwandelt, verwenden weiterhin die Nachrichten-ID der Antwortwurzel (om_*), sodass der
erste Turn und der Folge-Turn in derselben Sitzung bleiben.
Verwandte Themen
- Kanalübersicht - alle unterstützten Kanäle
- Kopplung - DM-Authentifizierung und Kopplungsablauf
- Gruppen - Verhalten von Gruppenchats und Mention-Gating
- Kanal-Routing - Sitzungs-Routing für Nachrichten
- Sicherheit - Zugriffsmodell und Härtung