Bot de Feishu
Feishu (Lark) es una plataforma de chat para equipos que usan las empresas para mensajería y colaboración. Este plugin conecta OpenClaw con un bot de Feishu/Lark mediante la suscripción a eventos por WebSocket de la plataforma, para que los mensajes puedan recibirse sin exponer una URL pública de webhook.Plugin incluido
Feishu viene incluido con las versiones actuales de OpenClaw, por lo que no se requiere instalar un plugin por separado. Si estás usando una compilación antigua o una instalación personalizada que no incluye Feishu integrado, instálalo manualmente:Inicio rápido
Hay dos formas de agregar el canal de Feishu:Método 1: onboarding (recomendado)
Si acabas de instalar OpenClaw, ejecuta el onboarding:- Crear una app de Feishu y recopilar las credenciales
- Configurar las credenciales de la app en OpenClaw
- Iniciar el gateway
openclaw gateway statusopenclaw logs --follow
Método 2: configuración con la CLI
Si ya completaste la instalación inicial, agrega el canal mediante la CLI:openclaw gateway statusopenclaw gateway restartopenclaw logs --follow
Paso 1: Crear una app de Feishu
1. Abre Feishu Open Platform
Visita Feishu Open Platform e inicia sesión. Los tenants de Lark (global) deben usar https://open.larksuite.com/app y establecerdomain: "lark" en la configuración de Feishu.
2. Crea una app
- Haz clic en Create enterprise app
- Completa el nombre y la descripción de la app
- Elige un icono para la app

3. Copia las credenciales
En Credentials & Basic Info, copia:- App ID (formato:
cli_xxx) - App Secret

4. Configura los permisos
En Permissions, haz clic en Batch import y pega:
5. Habilita la capacidad de bot
En App Capability > Bot:- Habilita la capacidad de bot
- Establece el nombre del bot

6. Configura la suscripción a eventos
⚠️ Importante: antes de configurar la suscripción a eventos, asegúrate de lo siguiente:- Ya ejecutaste
openclaw channels addpara Feishu - El gateway está en ejecución (
openclaw gateway status)
- Elige Use long connection to receive events (WebSocket)
- Agrega el evento:
im.message.receive_v1 - (Opcional) Para los flujos de trabajo de comentarios de Drive, agrega también:
drive.notice.comment_add_v1

7. Publica la app
- Crea una versión en Version Management & Release
- Envíala para revisión y publícala
- Espera la aprobación del administrador (las apps empresariales suelen aprobarse automáticamente)
Paso 2: Configurar OpenClaw
Configurar con el asistente (recomendado)
Configurar mediante archivo de configuración
Edita~/.openclaw/openclaw.json:
connectionMode: "webhook", configura tanto verificationToken como encryptKey. El servidor de webhooks de Feishu se enlaza a 127.0.0.1 de forma predeterminada; establece webhookHost solo si necesitas intencionalmente una dirección de enlace distinta.
Verification Token y Encrypt Key (modo webhook)
Al usar el modo webhook, configura tantochannels.feishu.verificationToken como channels.feishu.encryptKey en tu configuración. Para obtener esos valores:
- En Feishu Open Platform, abre tu app
- Ve a Development → Events & Callbacks (开发配置 → 事件与回调)
- Abre la pestaña Encryption (加密策略)
- Copia Verification Token y Encrypt Key

Configurar mediante variables de entorno
Dominio de Lark (global)
Si tu tenant está en Lark (internacional), establece el dominio enlark (o una cadena de dominio completa). Puedes configurarlo en channels.feishu.domain o por cuenta (channels.feishu.accounts.<id>.domain).
Indicadores de optimización de cuota
Puedes reducir el uso de la API de Feishu con dos indicadores opcionales:typingIndicator(predeterminadotrue): cuando esfalse, omite las llamadas de reacción de escritura.resolveSenderNames(predeterminadotrue): cuando esfalse, omite las llamadas de búsqueda del perfil del remitente.
Paso 3: Iniciar + probar
1. Inicia el gateway
2. Envía un mensaje de prueba
En Feishu, encuentra tu bot y envíale un mensaje.3. Aprueba el pairing
De forma predeterminada, el bot responde con un código de pairing. Apruébalo:Resumen
- Canal de bot de Feishu: bot de Feishu gestionado por el gateway
- Enrutamiento determinista: las respuestas siempre regresan a Feishu
- Aislamiento de sesiones: los mensajes directos comparten una sesión principal; los grupos están aislados
- Conexión WebSocket: conexión larga mediante el SDK de Feishu, sin necesidad de una URL pública
Control de acceso
Mensajes directos
-
Predeterminado:
dmPolicy: "pairing"(los usuarios desconocidos reciben un código de pairing) -
Aprobar pairing:
-
Modo allowlist: establece
channels.feishu.allowFromcon los Open ID permitidos
Chats grupales
1. Política de grupo (channels.feishu.groupPolicy):
"open"= permitir a todos en grupos"allowlist"= permitir sologroupAllowFrom"disabled"= deshabilitar mensajes de grupo
allowlist
2. Requisito de mención (channels.feishu.requireMention, sobrescribible mediante channels.feishu.groups.<chat_id>.requireMention):
trueexplícito = requiere @mentionfalseexplícito = responde sin menciones- cuando no está establecido y
groupPolicy: "open"= predeterminadofalse - cuando no está establecido y
groupPolicyno es"open"= predeterminadotrue
Ejemplos de configuración de grupos
Permitir todos los grupos, sin requerir @mention (predeterminado para grupos abiertos)
Permitir todos los grupos, pero seguir requiriendo @mention
Permitir solo grupos específicos
Restringir qué remitentes pueden enviar mensajes en un grupo (allowlist de remitentes)
Además de permitir el grupo en sí, todos los mensajes de ese grupo se controlan mediante el open_id del remitente: solo los usuarios incluidos engroups.<chat_id>.allowFrom tienen sus mensajes procesados; los mensajes de otros miembros se ignoran (esto es un control completo a nivel de remitente, no solo para comandos de control como /reset o /new).
Obtener ID de grupo/usuario
ID de grupo (chat_id)
Los ID de grupo tienen un formato comooc_xxx.
Método 1 (recomendado)
- Inicia el gateway y haz @mention al bot en el grupo
- Ejecuta
openclaw logs --followy buscachat_id
ID de usuario (open_id)
Los ID de usuario tienen un formato comoou_xxx.
Método 1 (recomendado)
- Inicia el gateway y envía un mensaje directo al bot
- Ejecuta
openclaw logs --followy buscaopen_id
Comandos comunes
| Comando | Descripción |
|---|---|
/status | Mostrar el estado del bot |
/reset | Restablecer la sesión |
/model | Mostrar/cambiar el modelo |
Nota: Feishu todavía no admite menús de comandos nativos, por lo que los comandos deben enviarse como texto.
Comandos de administración del gateway
| Comando | Descripción |
|---|---|
openclaw gateway status | Mostrar el estado del gateway |
openclaw gateway install | Instalar/iniciar el servicio del gateway |
openclaw gateway stop | Detener el servicio del gateway |
openclaw gateway restart | Reiniciar el servicio del gateway |
openclaw logs --follow | Seguir los logs del gateway |
Solución de problemas
El bot no responde en chats grupales
- Asegúrate de que el bot esté agregado al grupo
- Asegúrate de hacer @mention al bot (comportamiento predeterminado)
- Comprueba que
groupPolicyno esté configurado como"disabled" - Revisa los logs:
openclaw logs --follow
El bot no recibe mensajes
- Asegúrate de que la app esté publicada y aprobada
- Asegúrate de que la suscripción a eventos incluya
im.message.receive_v1 - Asegúrate de que long connection esté habilitada
- Asegúrate de que los permisos de la app estén completos
- Asegúrate de que el gateway esté en ejecución:
openclaw gateway status - Revisa los logs:
openclaw logs --follow
Fuga de App Secret
- Restablece el App Secret en Feishu Open Platform
- Actualiza el App Secret en tu configuración
- Reinicia el gateway
Fallos al enviar mensajes
- Asegúrate de que la app tenga el permiso
im:message:send_as_bot - Asegúrate de que la app esté publicada
- Revisa los logs para ver los errores detallados
Configuración avanzada
Varias cuentas
defaultAccount controla qué cuenta de Feishu se usa cuando las API salientes no especifican un accountId explícitamente.
Límites de mensajes
textChunkLimit: tamaño de fragmento del texto saliente (predeterminado: 2000 caracteres)mediaMaxMb: límite de subida/descarga de medios (predeterminado: 30MB)
Streaming
Feishu admite respuestas en streaming mediante tarjetas interactivas. Cuando está habilitado, el bot actualiza una tarjeta mientras genera texto.streaming: false para esperar a la respuesta completa antes de enviarla.
Sesiones ACP
Feishu admite ACP para:- mensajes directos
- conversaciones de tema en grupo
/acp ... directamente en la conversación.
Enlaces ACP persistentes
Usa enlaces ACP tipados de nivel superior para fijar un mensaje directo o una conversación de tema de Feishu a una sesión ACP persistente.Creación de ACP vinculada al hilo desde el chat
En un mensaje directo o una conversación de tema de Feishu, puedes crear y vincular una sesión ACP en el mismo lugar:--thread herefunciona para mensajes directos y temas de Feishu.- Los mensajes posteriores en el mensaje directo/tema vinculado se enrutan directamente a esa sesión ACP.
- La v1 no se dirige a chats grupales genéricos sin tema.
Enrutamiento multiagente
Usabindings para enrutar mensajes directos o grupos de Feishu a distintos agentes.
match.channel:"feishu"match.peer.kind:"direct"o"group"match.peer.id: Open ID de usuario (ou_xxx) o ID de grupo (oc_xxx)
Referencia de configuración
Configuración completa: Gateway configuration Opciones clave:| Setting | Descripción | Predeterminado |
|---|---|---|
channels.feishu.enabled | Habilitar/deshabilitar el canal | true |
channels.feishu.domain | Dominio de la API (feishu o lark) | feishu |
channels.feishu.connectionMode | Modo de transporte de eventos | websocket |
channels.feishu.defaultAccount | ID de cuenta predeterminada para el enrutamiento saliente | default |
channels.feishu.verificationToken | Obligatorio para el modo webhook | - |
channels.feishu.encryptKey | Obligatorio para el modo webhook | - |
channels.feishu.webhookPath | Ruta del webhook | /feishu/events |
channels.feishu.webhookHost | Host de enlace del webhook | 127.0.0.1 |
channels.feishu.webhookPort | Puerto de enlace del webhook | 3000 |
channels.feishu.accounts.<id>.appId | App ID | - |
channels.feishu.accounts.<id>.appSecret | App Secret | - |
channels.feishu.accounts.<id>.domain | Sobrescritura del dominio de la API por cuenta | feishu |
channels.feishu.dmPolicy | Política de mensajes directos | pairing |
channels.feishu.allowFrom | Allowlist de mensajes directos (lista de open_id) | - |
channels.feishu.groupPolicy | Política de grupo | allowlist |
channels.feishu.groupAllowFrom | Allowlist de grupos | - |
channels.feishu.requireMention | Requerir @mention de forma predeterminada | condicional |
channels.feishu.groups.<chat_id>.requireMention | Sobrescritura por grupo para requerir @mention | heredado |
channels.feishu.groups.<chat_id>.enabled | Habilitar grupo | true |
channels.feishu.textChunkLimit | Tamaño del fragmento del mensaje | 2000 |
channels.feishu.mediaMaxMb | Límite de tamaño de medios | 30 |
channels.feishu.streaming | Habilitar salida de tarjetas en streaming | true |
channels.feishu.blockStreaming | Habilitar streaming por bloques | true |
Referencia de dmPolicy
| Value | Comportamiento |
|---|---|
"pairing" | Predeterminado. Los usuarios desconocidos reciben un código de pairing; deben ser aprobados |
"allowlist" | Solo los usuarios en allowFrom pueden chatear |
"open" | Permitir a todos los usuarios (requiere "*" en allowFrom) |
"disabled" | Deshabilitar mensajes directos |
Tipos de mensajes compatibles
Recepción
- ✅ Texto
- ✅ Texto enriquecido (post)
- ✅ Imágenes
- ✅ Archivos
- ✅ Audio
- ✅ Video/medios
- ✅ Stickers
Envío
- ✅ Texto
- ✅ Imágenes
- ✅ Archivos
- ✅ Audio
- ✅ Video/medios
- ✅ Tarjetas interactivas
- ⚠️ Texto enriquecido (formato estilo post y tarjetas, no funciones arbitrarias de autoría de Feishu)
Hilos y respuestas
- ✅ Respuestas en línea
- ✅ Respuestas en hilos de tema cuando Feishu expone
reply_in_thread - ✅ Las respuestas con medios mantienen compatibilidad con hilos al responder a un mensaje de hilo/tema
Comentarios de Drive
Feishu puede activar el agente cuando alguien agrega un comentario en un documento de Feishu Drive (Docs, Sheets, etc.). El agente recibe el texto del comentario, el contexto del documento y el hilo del comentario para poder responder en el hilo o realizar ediciones en el documento. Requisitos:- Suscribirse a
drive.notice.comment_add_v1en la configuración de suscripción a eventos de tu app de Feishu (junto conim.message.receive_v1, que ya existe) - La herramienta Drive está habilitada de forma predeterminada; desactívala con
channels.feishu.tools.drive: false
feishu_drive expone estas acciones de comentarios:
| Acción | Descripción |
|---|---|
list_comments | Listar comentarios en un documento |
list_comment_replies | Listar respuestas en un hilo de comentarios |
add_comment | Agregar un nuevo comentario de nivel superior |
reply_comment | Responder a un hilo de comentarios existente |
- el texto del comentario y el remitente
- metadatos del documento (título, tipo, URL)
- el contexto del hilo del comentario para responder en el hilo
feishu_drive.reply_comment para notificar al comentarista y luego generar el token silencioso exacto NO_REPLY / no_reply para evitar envíos duplicados.
Superficie de acciones en tiempo de ejecución
Feishu expone actualmente estas acciones en tiempo de ejecución:sendreadeditthread-replypinlist-pinsunpinmember-infochannel-infochannel-listreactyreactionscuando las reacciones están habilitadas en la configuración- acciones de comentarios
feishu_drive:list_comments,list_comment_replies,add_comment,reply_comment
Relacionado
- Channels Overview — todos los canales compatibles
- Pairing — autenticación de mensajes directos y flujo de pairing
- Groups — comportamiento de chats grupales y control por menciones
- Channel Routing — enrutamiento de sesiones para mensajes
- Security — modelo de acceso y endurecimiento