Bot Feishu
Feishu (Lark) est une plateforme de chat d’équipe utilisée par les entreprises pour la messagerie et la collaboration. Ce plugin connecte OpenClaw à un bot Feishu/Lark à l’aide de l’abonnement aux événements WebSocket de la plateforme afin que les messages puissent être reçus sans exposer d’URL de webhook publique.Plugin intégré
Feishu est fourni avec les versions actuelles d’OpenClaw, donc aucune installation séparée du plugin n’est nécessaire. Si vous utilisez une version plus ancienne ou une installation personnalisée qui n’inclut pas Feishu, installez-le manuellement :Démarrage rapide
Il existe deux façons d’ajouter le canal Feishu :Méthode 1 : onboarding (recommandé)
Si vous venez d’installer OpenClaw, lancez l’onboarding :- La création d’une application Feishu et la collecte des identifiants
- La configuration des identifiants d’application dans OpenClaw
- Le démarrage de la gateway
openclaw gateway statusopenclaw logs --follow
Méthode 2 : configuration via CLI
Si vous avez déjà terminé l’installation initiale, ajoutez le canal via la CLI :openclaw gateway statusopenclaw gateway restartopenclaw logs --follow
Étape 1 : Créer une application Feishu
1. Ouvrir Feishu Open Platform
Rendez-vous sur Feishu Open Platform et connectez-vous. Les tenants Lark (globaux) doivent utiliser https://open.larksuite.com/app et définirdomain: "lark" dans la configuration Feishu.
2. Créer une application
- Cliquez sur Create enterprise app
- Renseignez le nom et la description de l’application
- Choisissez une icône d’application

3. Copier les identifiants
Depuis Credentials & Basic Info, copiez :- App ID (format :
cli_xxx) - App Secret

4. Configurer les autorisations
Dans Permissions, cliquez sur Batch import et collez :
5. Activer la capacité bot
Dans App Capability > Bot :- Activez la capacité bot
- Définissez le nom du bot

6. Configurer l’abonnement aux événements
⚠️ Important : avant de configurer l’abonnement aux événements, assurez-vous que :- Vous avez déjà exécuté
openclaw channels addpour Feishu - La gateway est en cours d’exécution (
openclaw gateway status)
- Choisissez Use long connection to receive events (WebSocket)
- Ajoutez l’événement :
im.message.receive_v1 - (Facultatif) Pour les workflows de commentaires Drive, ajoutez aussi :
drive.notice.comment_add_v1

7. Publier l’application
- Créez une version dans Version Management & Release
- Soumettez-la pour révision et publiez-la
- Attendez l’approbation de l’administrateur (les applications d’entreprise sont généralement approuvées automatiquement)
Étape 2 : Configurer OpenClaw
Configurer avec l’assistant (recommandé)
Configurer via le fichier de configuration
Modifiez~/.openclaw/openclaw.json :
connectionMode: "webhook", définissez à la fois verificationToken et encryptKey. Le serveur webhook Feishu se lie à 127.0.0.1 par défaut ; définissez webhookHost uniquement si vous avez intentionnellement besoin d’une autre adresse de liaison.
Verification Token et Encrypt Key (mode webhook)
Lorsque vous utilisez le mode webhook, définissez à la foischannels.feishu.verificationToken et channels.feishu.encryptKey dans votre configuration. Pour obtenir ces valeurs :
- Dans Feishu Open Platform, ouvrez votre application
- Accédez à Development → Events & Callbacks (开发配置 → 事件与回调)
- Ouvrez l’onglet Encryption (加密策略)
- Copiez Verification Token et Encrypt Key

Configurer via des variables d’environnement
Domaine Lark (global)
Si votre tenant est sur Lark (international), définissez le domaine surlark (ou une chaîne de domaine complète). Vous pouvez le définir dans channels.feishu.domain ou par compte (channels.feishu.accounts.<id>.domain).
Indicateurs d’optimisation de quota
Vous pouvez réduire l’utilisation de l’API Feishu avec deux indicateurs facultatifs :typingIndicator(par défauttrue) : lorsquefalse, ignore les appels de réaction de saisie.resolveSenderNames(par défauttrue) : lorsquefalse, ignore les appels de recherche de profil de l’expéditeur.
Étape 3 : Démarrer + tester
1. Démarrer la gateway
2. Envoyer un message de test
Dans Feishu, trouvez votre bot et envoyez un message.3. Approuver l’appairage
Par défaut, le bot répond avec un code d’appairage. Approuvez-le :Vue d’ensemble
- Canal bot Feishu : bot Feishu géré par la gateway
- Routage déterministe : les réponses reviennent toujours à Feishu
- Isolation des sessions : les messages directs partagent une session principale ; les groupes sont isolés
- Connexion WebSocket : connexion longue via le SDK Feishu, sans URL publique nécessaire
Contrôle d’accès
Messages directs
-
Par défaut :
dmPolicy: "pairing"(les utilisateurs inconnus reçoivent un code d’appairage) -
Approuver l’appairage :
-
Mode liste d’autorisation : définissez
channels.feishu.allowFromavec les Open IDs autorisés
Discussions de groupe
1. Politique de groupe (channels.feishu.groupPolicy) :
"open"= autoriser tout le monde dans les groupes"allowlist"= autoriser uniquementgroupAllowFrom"disabled"= désactiver les messages de groupe
allowlist
2. Obligation de mention (channels.feishu.requireMention, surchargeable via channels.feishu.groups.<chat_id>.requireMention) :
trueexplicite = exiger une @mentionfalseexplicite = répondre sans mention- non défini et
groupPolicy: "open"= par défautfalse - non défini et
groupPolicyn’est pas"open"= par défauttrue
Exemples de configuration de groupe
Autoriser tous les groupes, sans @mention requise (par défaut pour les groupes ouverts)
Autoriser tous les groupes, mais exiger quand même une @mention
Autoriser uniquement certains groupes
Restreindre quels expéditeurs peuvent envoyer des messages dans un groupe (liste d’autorisation des expéditeurs)
En plus d’autoriser le groupe lui-même, tous les messages dans ce groupe sont contrôlés par l’open_id de l’expéditeur : seuls les utilisateurs listés dansgroups.<chat_id>.allowFrom voient leurs messages traités ; les messages des autres membres sont ignorés (il s’agit d’un contrôle complet au niveau de l’expéditeur, pas seulement pour les commandes de contrôle comme /reset ou /new).
Obtenir les IDs de groupe/utilisateur
IDs de groupe (chat_id)
Les IDs de groupe ressemblent àoc_xxx.
Méthode 1 (recommandée)
- Démarrez la gateway et faites une @mention du bot dans le groupe
- Exécutez
openclaw logs --followet recherchezchat_id
IDs utilisateur (open_id)
Les IDs utilisateur ressemblent àou_xxx.
Méthode 1 (recommandée)
- Démarrez la gateway et envoyez un message direct au bot
- Exécutez
openclaw logs --followet recherchezopen_id
Commandes courantes
| Commande | Description |
|---|---|
/status | Afficher l’état du bot |
/reset | Réinitialiser la session |
/model | Afficher/changer le modèle |
Remarque : Feishu ne prend pas encore en charge les menus de commandes natifs, les commandes doivent donc être envoyées sous forme de texte.
Commandes de gestion de la gateway
| Commande | Description |
|---|---|
openclaw gateway status | Afficher l’état de la gateway |
openclaw gateway install | Installer/démarrer le service gateway |
openclaw gateway stop | Arrêter le service gateway |
openclaw gateway restart | Redémarrer le service gateway |
openclaw logs --follow | Suivre les journaux de la gateway |
Dépannage
Le bot ne répond pas dans les discussions de groupe
- Assurez-vous que le bot a été ajouté au groupe
- Assurez-vous de faire une @mention du bot (comportement par défaut)
- Vérifiez que
groupPolicyn’est pas défini sur"disabled" - Vérifiez les journaux :
openclaw logs --follow
Le bot ne reçoit pas les messages
- Assurez-vous que l’application est publiée et approuvée
- Assurez-vous que l’abonnement aux événements inclut
im.message.receive_v1 - Assurez-vous que la connexion longue est activée
- Assurez-vous que les autorisations de l’application sont complètes
- Assurez-vous que la gateway est en cours d’exécution :
openclaw gateway status - Vérifiez les journaux :
openclaw logs --follow
Fuite de l’App Secret
- Réinitialisez l’App Secret dans Feishu Open Platform
- Mettez à jour l’App Secret dans votre configuration
- Redémarrez la gateway
Échecs d’envoi de message
- Assurez-vous que l’application dispose de l’autorisation
im:message:send_as_bot - Assurez-vous que l’application est publiée
- Vérifiez les journaux pour les erreurs détaillées
Configuration avancée
Plusieurs comptes
defaultAccount contrôle quel compte Feishu est utilisé lorsque les API sortantes ne spécifient pas explicitement un accountId.
Limites de message
textChunkLimit: taille des segments de texte sortants (par défaut : 2000 caractères)mediaMaxMb: limite d’envoi/téléchargement de médias (par défaut : 30MB)
Streaming
Feishu prend en charge les réponses en streaming via des cartes interactives. Lorsqu’elle est activée, le bot met à jour une carte pendant qu’il génère le texte.streaming: false pour attendre la réponse complète avant l’envoi.
Sessions ACP
Feishu prend en charge ACP pour :- les messages directs
- les conversations de sujet de groupe
/acp ... dans la conversation.
Liaisons ACP persistantes
Utilisez des liaisons ACP typées de niveau supérieur pour épingler un message direct Feishu ou une conversation de sujet à une session ACP persistante.Démarrage d’ACP lié à un fil depuis le chat
Dans un message direct Feishu ou une conversation de sujet, vous pouvez démarrer et lier une session ACP sur place :--thread herefonctionne pour les messages directs et les sujets Feishu.- Les messages de suivi dans le message direct/sujet lié sont routés directement vers cette session ACP.
- La v1 ne cible pas les discussions de groupe génériques sans sujet.
Routage multi-agent
Utilisezbindings pour router les messages directs ou groupes Feishu vers différents agents.
match.channel:"feishu"match.peer.kind:"direct"ou"group"match.peer.id: Open ID utilisateur (ou_xxx) ou ID de groupe (oc_xxx)
Référence de configuration
Configuration complète : Configuration de la gateway Options principales :| Paramètre | Description | Par défaut |
|---|---|---|
channels.feishu.enabled | Activer/désactiver le canal | true |
channels.feishu.domain | Domaine API (feishu ou lark) | feishu |
channels.feishu.connectionMode | Mode de transport des événements | websocket |
channels.feishu.defaultAccount | ID de compte par défaut pour le routage sortant | default |
channels.feishu.verificationToken | Requis pour le mode webhook | - |
channels.feishu.encryptKey | Requis pour le mode webhook | - |
channels.feishu.webhookPath | Chemin de route webhook | /feishu/events |
channels.feishu.webhookHost | Hôte de liaison webhook | 127.0.0.1 |
channels.feishu.webhookPort | Port de liaison webhook | 3000 |
channels.feishu.accounts.<id>.appId | App ID | - |
channels.feishu.accounts.<id>.appSecret | App Secret | - |
channels.feishu.accounts.<id>.domain | Surcharge de domaine API par compte | feishu |
channels.feishu.dmPolicy | Politique des messages directs | pairing |
channels.feishu.allowFrom | Liste d’autorisation DM (liste d’open_id) | - |
channels.feishu.groupPolicy | Politique de groupe | allowlist |
channels.feishu.groupAllowFrom | Liste d’autorisation de groupe | - |
channels.feishu.requireMention | Exiger @mention par défaut | conditionnel |
channels.feishu.groups.<chat_id>.requireMention | Surcharge par groupe de l’exigence @mention | hérité |
channels.feishu.groups.<chat_id>.enabled | Activer le groupe | true |
channels.feishu.textChunkLimit | Taille des segments de message | 2000 |
channels.feishu.mediaMaxMb | Limite de taille des médias | 30 |
channels.feishu.streaming | Activer la sortie par carte en streaming | true |
channels.feishu.blockStreaming | Activer le streaming par bloc | true |
Référence dmPolicy
| Valeur | Comportement |
|---|---|
"pairing" | Par défaut. Les utilisateurs inconnus reçoivent un code d’appairage ; ils doivent être approuvés |
"allowlist" | Seuls les utilisateurs dans allowFrom peuvent discuter |
"open" | Autoriser tous les utilisateurs (nécessite "*" dans allowFrom) |
"disabled" | Désactiver les messages directs |
Types de messages pris en charge
Réception
- ✅ Texte
- ✅ Texte enrichi (post)
- ✅ Images
- ✅ Fichiers
- ✅ Audio
- ✅ Vidéo/médias
- ✅ Stickers
Envoi
- ✅ Texte
- ✅ Images
- ✅ Fichiers
- ✅ Audio
- ✅ Vidéo/médias
- ✅ Cartes interactives
- ⚠️ Texte enrichi (formatage de type post et cartes, pas les fonctionnalités de rédaction Feishu arbitraires)
Fils et réponses
- ✅ Réponses en ligne
- ✅ Réponses dans les fils de sujet lorsque Feishu expose
reply_in_thread - ✅ Les réponses média restent conscientes du fil lors d’une réponse à un message de fil/sujet
Commentaires Drive
Feishu peut déclencher l’agent lorsqu’une personne ajoute un commentaire sur un document Feishu Drive (Docs, Sheets, etc.). L’agent reçoit le texte du commentaire, le contexte du document et le fil de commentaires afin de pouvoir répondre dans le fil ou apporter des modifications au document. Exigences :- Abonnez-vous à
drive.notice.comment_add_v1dans les paramètres d’abonnement aux événements de votre application Feishu (en plus deim.message.receive_v1déjà existant) - L’outil Drive est activé par défaut ; désactivez-le avec
channels.feishu.tools.drive: false
feishu_drive expose ces actions de commentaire :
| Action | Description |
|---|---|
list_comments | Lister les commentaires d’un document |
list_comment_replies | Lister les réponses dans un fil de commentaires |
add_comment | Ajouter un nouveau commentaire de premier niveau |
reply_comment | Répondre à un fil de commentaires existant |
- le texte du commentaire et son expéditeur
- les métadonnées du document (titre, type, URL)
- le contexte du fil de commentaires pour les réponses dans le fil
feishu_drive.reply_comment afin de notifier l’auteur du commentaire, puis pour produire le jeton silencieux exact NO_REPLY / no_reply afin d’éviter les envois en double.
Surface d’actions d’exécution
Feishu expose actuellement ces actions d’exécution :sendreadeditthread-replypinlist-pinsunpinmember-infochannel-infochannel-listreactetreactionslorsque les réactions sont activées dans la configuration- actions de commentaire
feishu_drive:list_comments,list_comment_replies,add_comment,reply_comment
Voir aussi
- Channels Overview — tous les canaux pris en charge
- Pairing — authentification DM et flux d’appairage
- Groups — comportement des discussions de groupe et filtrage par mention
- Channel Routing — routage de session pour les messages
- Security — modèle d’accès et renforcement