bash openclaw channels login --channel feishu Elija la configuración manual para pegar un ID de aplicación y un secreto de aplicación desde la plataforma abierta de Feishu, o elija la configuración QR para crear un bot automáticamente. Si la aplicación móvil doméstica de Feishu no reacciona al código QR, vuelva a ejecutar la configuración y elija la configuración manual.
Una vez completada la configuración, reinicie la puerta de enlace para aplicar los cambios
| `"open"` | Responder a todos los mensajes en grupos |
| `"allowlist"` | Responder solo a grupos en `groupAllowFrom` o configurados explícitamente en `groups.
| |”disabled” | Desactivar todos los mensajes de grupo; las entradas explícitas degroups.
` no anulan esto |
Predeterminado: allowlist
Requisito de mención (channels.feishu.requireMention):
true - requerir @mención (predeterminado)
false - responder sin @mención
Anulación por grupo: `channels.feishu.groups.
.requireMention`
Los @all y @_all de solo transmisión no se tratan como menciones al bot. Un mensaje que menciona tanto @all como al bot directamente todavía cuenta como una mención al bot.
En el modo allowlist, también puedes admitir un grupo añadiendo una entrada explícita de `groups.
. Las entradas explícitas no anulan groupPolicy: “disabled”. Los comodines predeterminados bajo groups.*` configuran los grupos coincidentes, pero no admiten grupos por sí mismos.
Abre el grupo en Feishu/Lark, haz clic en el icono del menú en la esquina superior derecha y ve a Configuración. El ID de grupo (chat_id) se enumera en la página de configuración.
defaultAccount controla qué cuenta se utiliza cuando las APIs de salida no especifican un accountId.
`accounts.
.ttsutiliza la misma forma quemessages.tts` y se fusiona profundamente con la
configuración global de TTS, por lo que las configuraciones de Feishu con varios bots pueden mantener las credenciales
compartidas del proveedor globalmente, mientras que solo anulan la voz, el modelo, el persona o el modo automático
por cuenta.
Feishu/Lark admite respuestas en streaming a través de tarjetas interactivas. Cuando está habilitado, el bot actualiza la tarjeta en tiempo real mientras genera texto.
blockStreaming: true, // opt into completed-block streaming
},
},
}
Establece streaming: false para enviar la respuesta completa en un solo mensaje. blockStreaming está desactivado de forma predeterminada; actívalo solo cuando desees que los bloques completados del asistente se vacíen antes de la respuesta final.
Feishu/Lark admite ACP para MDs y mensajes de hilos de grupo. El ACP de Feishu/Lark se basa en comandos de texto: no hay menús nativos de comandos con barra, así que use mensajes /acp ... directamente en la conversación.
--thread here funciona para MDs y mensajes de hilos de Feishu/Lark. Los mensajes de seguimiento en la conversación vinculada se enrutan directamente a esa sesión ACP.
session.dmScope controla cómo se asignan los mensajes directos a las sesiones de los agentes. Esta es una configuración global que afecta a todos los canales.
Valor
Comportamiento
Lo mejor para
"main"
El MD de cada usuario se asigna a la sesión principal de su agente
Bots de un solo usuario donde deseas que USER.md / SOUL.md se carguen automáticamente
"per-channel-peer"
Cada combinación de (canal + usuario) obtiene una sesión separada
Bots públicos multiusuario que necesitan un aislamiento más fuerte
Compromiso: El uso de "main" permite la carga automática de archivos de arranque (USER.md, SOUL.md, MEMORY.md), pero significa que todos los MD de todos los canales comparten el mismo patrón de clave de sesión. Para bots públicos multiusuario donde el aislamiento es más importante que la carga automática de arranque, considera "per-channel-peer" y gestiona los archivos de arranque manualmente.
{
session: {
// For single-user personal bots: enables auto bootstrap loading
Aislamiento del espacio de trabajo: Cada usuario obtiene su propio directorio de espacio de trabajo e instancia de agente. Los usuarios no pueden ver el historial de conversación ni los archivos de los demás dentro del flujo de mensajería normal.
Límite de seguridad: Este es un mecanismo de aislamiento de contexto de mensajería, no un límite de seguridad contra inquilinos hostiles. El proceso del agente y el entorno del host se comparten.
bindings debe estar vacío: Los agentes dinámicos registran automáticamente sus propios enlaces
Ruta de actualización: Los enlaces manuales existentes continúan funcionando junto con los agentes dinámicos
session.dmScope es global: Esto afecta a todos los canales, no solo a Feishu
Cuenta predeterminada para el enrutamiento saliente
default
channels.feishu.verificationToken
Requerido para el modo webhook
-
channels.feishu.encryptKey
Requerido para el modo webhook
-
channels.feishu.webhookPath
Ruta de enlace 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.
.appId | ID de la aplicación | - | |channels.feishu.accounts.
.appSecret | Secreto de la aplicación | - | |channels.feishu.accounts.
.domain | Invalidación de dominio por cuenta |feishu | |channels.feishu.accounts.
.tts | Anulación de TTS por cuenta |messages.tts | |channels.feishu.dmPolicy | Política de MD |allowlist | |channels.feishu.allowFrom | Lista permitida de MD (lista de open_id) | [BotOwnerId] | |channels.feishu.groupPolicy | Política de grupo |allowlist | |channels.feishu.groupAllowFrom | Lista permitida de grupos | - | |channels.feishu.requireMention | Requerir @mención en grupos |true | |channels.feishu.groups.
.requireMention | Anulación de @mención por grupo; los IDs explícitos también admiten el grupo en modo de lista permitida | heredado | |channels.feishu.groups.
.enabled | Habilitar/deshabilitar un grupo específico |true | |channels.feishu.dynamicAgentCreation.enabled | Habilitar la creación automática de agentes por usuario |false | |channels.feishu.dynamicAgentCreation.workspaceTemplate| Plantilla de ruta para espacios de trabajo de agentes dinámicos |/.openclaw/workspace-{agentId} | |channels.feishu.dynamicAgentCreation.agentDirTemplate | Plantilla de nombre de directorio de agentes |/.openclaw/agents/{agentId}/agent| |channels.feishu.dynamicAgentCreation.maxAgents | Número máximo de agentes dinámicos a crear | ilimitado | |channels.feishu.textChunkLimit | Tamaño de fragmento de mensaje |2000 | |channels.feishu.mediaMaxMb | Límite de tamaño de medios |30 | |channels.feishu.streaming | Salida de tarjeta en streaming |true | |channels.feishu.blockStreaming | Respuesta de streaming de bloque completado |false | |channels.feishu.typingIndicator | Enviar reacciones de escritura |true | |channels.feishu.resolveSenderNames | Resolver nombres para mostrar del remitente |true | |channels.feishu.tools.bitable | Habilitar herramientas de Bitable/Base |true | |channels.feishu.tools.base | Alias parachannels.feishu.tools.bitable; prevalece bitableexplícito cuando ambos están configurados |true | |channels.feishu.accounts.
.tools.bitable | Puerta de herramientas de Bitable/Base por cuenta | heredado | |channels.feishu.accounts.
.tools.base | Alias por cuenta paratools.bitable` | heredado |
Los mensajes de audio entrantes de Feishu/Lark se normalizan como marcadores de posición de medios en lugar
de JSON file_key sin procesar. Cuando se configura tools.media.audio, OpenClaw
descarga el recurso de nota de voz y ejecuta la transcripción de audio compartida antes del
turno del agente, por lo que el agente recibe la transcripción hablada. Si Feishu incluye
el texto de la transcripción directamente en la carga de audio, ese texto se usa sin otra
llamada ASR. Sin un proveedor de transcripción de audio, el agente aún recibe un
marcador de posición `
` además del archivo adjunto guardado, no la carga de
recurso de Feishu sin procesar.
✅ Tarjetas interactivas (incluyendo actualizaciones en streaming)
⚠️ Texto enriquecido (formato de estilo publicación; no admite todas las capacidades de creación de Feishu/Lark)
Las burbujas de audio nativas de Feishu/Lark utilizan el tipo de mensaje de Feishu audio y requieren
medios de carga Ogg/Opus (file_type: "opus"). Los medios .opus y .ogg existentes
se envían directamente como audio nativo. Los formatos de audio probables como MP3/WAV/M4A y otros
se transcodifican a Ogg/Opus de 48kHz con ffmpeg solo cuando la respuesta solicita entrega
de voz (audioAsVoice / herramienta de mensaje asVoice, incluidas las respuestas de notas de
voz TTS). Los archivos adjuntos MP3 ordinarios se mantienen como archivos normales. Si falta ffmpeg o
la conversión falla, OpenClaw recurre a un archivo adjunto y registra el motivo.
✅ Las respuestas con medios mantienen el contexto del hilo al responder a un mensaje de un hilo
Para groupSessionScope: "group_topic" y "group_topic_sender", los grupos de
temas nativos de Feishu/Lark utilizan el evento thread_id (omt_*) como la clave
canónica de sesión del tema. Si un evento inicial de tema nativo omite thread_id, OpenClaw
lo rellena desde Feishu antes de enrutar el turno. Las respuestas grupales normales que
OpenClaw convierte en hilos siguen utilizando el ID del mensaje raíz de la respuesta (om_*) para que
el primer turno y el turno de seguimiento permanezcan en la misma sesión.