¿Qué hace lark-meeting?
Punto de entrada unificado para el servicio de reuniones en video de Feishu. Soporta la consulta de registros de reuniones, la interacción en reuniones en tiempo real, la gestión de grabaciones (妙记) y la lectura de resúmenes inteligentes. Esta habilidad se encarga del enrutamiento de tareas, las relaciones de dominio y la orquestación entre comandos.
No es necesario leer previamente lark-shared ni ejecutar auth status --verify. Solo se debe leer esa Skill cuando se encuentren errores de autenticación, token/identidad o alcance (scope); después de solucionarlos, reintentar. Las solicitudes de autenticación, identidad o gestión de alcance deben usar directamente esa Skill.
Inicialización y continuidad de la identidad
Utiliza source_identity como estado del flujo de trabajo entre comandos:
- Si ya existe una identidad de origen en el contexto: úsala estrictamente. Si el usuario solicita cambiar, primero explica la continuidad de la identidad y el impacto en los permisos; no cambies silenciosamente.
- Si no hay identidad de origen pero el usuario especifica una identidad explícita: usa la identidad
--asindicada por el usuario. - Si no hay identidad de origen y el usuario no especifica una: cuando la semántica de la operación requiera explícitamente el uso de un bot de aplicación, usa
--as bot; de lo contrario, usa--as userde forma explícita.
Una vez determinado source_identity, verifica si el comando de destino soporta esa identidad:
- Si la soporta: pásala explícitamente y continúa con la ejecución.
- Si no la soporta: explica la limitación y detente; no reemplaces la identidad para que el comando tenga éxito.
- Solo si el usuario acepta explícitamente cambiar de identidad, inicia un nuevo flujo de trabajo con la nueva identidad.
Modelo de dominio y conceptos
[Origen de la reunión]
Evento de calendario (event_id) ──programado o asociado──┐
Reunión instantánea (sin event_id) ────────────────────┴──► Reunión (meeting_id)
Evento de calendario ──meeting_note────────────────────► Doc (minuta del usuario, independiente del resumen inteligente AI)
[Productos de la reunión]
Reunión (meeting_id)
├── Resumen AI ──► Nota de resumen inteligente (Note, note_id)
│ ├── Documento de resumen inteligente ─► Doc (note_doc_token)
│ ├── Transcripción
│ │ ├── normal ────────────────────► Doc (verbatim_doc_token)
│ │ └── unified ────────────────────► note + transcript (no es un Doc independiente)
│ └── Documentos compartidos ─────────► Doc (shared_doc_tokens)
│
└── Grabación ──► Minutos/Grabación (Minutes, minute_token)
├── Productos AI: Resumen / Tareas / Capítulos / Palabras clave
├── Transcripción (alias: «transcripción», «texto literal», «registro textual»)
└── Audio/video original
Audio/video local ─────────────────────────────────────► Minutos/Grabación (Minutes, minute_token)
| Objeto | Identificador principal | Concepto y relación |
|---|---|---|
| Evento de calendario | event_id | Evento en el calendario, que incluye hora, participantes, sala y RSVP. Puede programar o asociar una reunión VC; no es un registro completo de la reunión. El meeting_note del evento es un Doc vinculado manualmente por el usuario, sin relación con el resumen inteligente AI. |
| Reunión (Meeting) | meeting_id | Reunión de video que realmente ocurrió. Puede provenir de un evento de calendario o ser una reunión instantánea sin evento. El tema, la hora, la instantánea de participantes y los eventos durante la reunión son datos de la reunión; Note y Minutes son productos posteriores a la reunión que pueden estar asociados. |
| Nota de resumen inteligente (Note) | note_id | Conjunto lógico de productos generados tras habilitar el resumen AI. note_display_type determina la forma de obtener la transcripción textual. |
| Minutos/Grabación (Minutes) | minute_token | Generado a partir de la grabación de una reunión o la carga de audio/video local. Contiene resumen, tareas, capítulos, palabras clave, transcripción (alias: «transcripción», «texto literal», «registro textual») y el audio/video original. Puede estar asociado a una reunión VC o ser independiente. |
| Documento (Doc) | Token del Doc | Vehículo de contenido, no un identificador de reunión. note_doc_token, shared_doc_tokens y parte de verbatim_doc_token apuntan a un Doc; un token de Doc no puede usarse como note_id ni meeting_id. |
Identificadores principales
meeting_id: ID de la reunión. Cadena numérica larga, no es el número de reunión de 9 dígitos.meeting_no: Número de reunión. 9 dígitos numéricos; el parámetro CLI es--meeting-number.minute_token: Token de la grabación. Cadena alfanumérica en minúsculas, generalmente extraída de la URL de la grabación/minutes/<minute_token>.
Todos estos identificadores se pasan tal cual como cadenas, no son intercambiables entre sí.
Invariantes del dominio
- Note y Minutes provienen de dos cadenas independientes: resumen AI y grabación, respectivamente. Una reunión puede tener ambos tipos de productos, solo uno de ellos, o ninguno; no se puede inferir que si existe
note_idtambién debe existirminute_token, ni viceversa. - Minutes pueden generarse directamente a partir de audio/video local, por lo que no siempre están asociados a un
meeting_ido a unevent_idde calendario. - El
meeting_notedel calendario, elnote_idde Note, elminute_tokende Minutes y los distintos tokens de Doc identifican objetos diferentes; no se pueden intercambiar, ni usar en comandos de otro dominio, ni deducir uno a partir del otro.
Acción rápida
Consultar contenido de una reunión en curso
# Reunión en la que se encuentra el usuario actual
lark-cli vc +meeting-list-active --as user
# Reunión del usuario objetivo visible para el bot de aplicación
lark-cli vc +meeting-list-active --as bot --user-id <open_id>
# Una vez determinado el meeting_id único, usa la identidad de origen
lark-cli vc +meeting-events --as <source_identity> --meeting-id <meeting_id> --page-all --format pretty
Si hay varias reuniones simultáneas, primero debes seleccionar la que se va a consultar; si solo hay una, consulta directamente los eventos de esa reunión.
La identidad de aplicación solo devuelve reuniones en las que "el usuario objetivo está participando y el bot de aplicación también está en la misma reunión"; un resultado vacío no significa que el usuario objetivo no esté en una reunión. Al explicar los resultados al usuario, usa los términos "identidad de usuario" o "identidad de aplicación", sin exponer abreviaturas internas como user/bot.
Manual de escenarios
Cuando el objetivo de la tarea coincida con un escenario, lee el manual de escenario correspondiente y ejecuta la tarea según el flujo indicado.
- Consultar reunión y sus productos: Localizar reuniones históricas por tema, hora, participantes o
meeting_id/meeting_no/event_id; consultar participantes, grabaciones y resúmenes inteligentes o grabaciones asociados a la reunión; resumir o hacer retrospectiva basada en los registros de la reunión. - Consultar grabación (Minutes) y sus productos: Ya se tiene la URL de la grabación o el
minute_token, o buscar grabaciones por título, propietario o participantes; leer resumen, tareas, capítulos, palabras clave y transcripción; descargar el audio/video original; o consultar el resumen inteligente asociado. - Crear, modificar grabaciones y gestionar permisos: Generar grabaciones, transcripciones, resúmenes, tareas o capítulos a partir de audio/video local; modificar el título, resumen, tareas, palabras clave o el orador de una grabación; solicitar permisos de visualización o edición, o consultar y asignar permisos de colaboración.
- Consultar resumen inteligente (Note) y productos asociados: Ya se tiene el
note_id, la URL/token del Docx del resumen inteligente, o se necesita consultar el cuerpo de la nota, la transcripción, la grabación y los documentos compartidos asociados. - Participación del bot de aplicación en reuniones e interacción en vivo: Orquestación completa del bot de aplicación: descubrimiento de reuniones activas, iniciar o unirse, invitar, extraer eventos, capturar pantalla de la reunión, interactuar con texto/reacciones/temporizadores, finalizar la reunión y salir después de una autorización explícita.
- Eventos e interacción en reuniones en vivo: Sin desencadenar nuevas operaciones de entrada/salida, usando la identidad de usuario o la identidad de aplicación ya presente en la reunión, consultar la reunión activa, ver intervenciones/chats/contenido compartido, leer la pantalla actual de la reunión según sea necesario, o enviar mensajes de texto/reacciones y gestionar temporizadores.
Referencia de comandos
| Comando | Propósito | Método de referencia |
|---|---|---|
vc +search | Buscar reuniones históricas | lark-vc-search |
vc +detail | Consultar información de la reunión e identificadores de Note y Minutes asociados | lark-vc-detail |
vc meeting get | Consultar información básica de la reunión e instantánea de participantes | lark-cli vc meeting get --help |
vc +recording | Localizar grabaciones y Minutes a partir de la reunión | lark-vc-recording |
vc +meeting-list-active | Descubrir reuniones en curso actualmente visibles | lark-vc-meeting-list-active |
vc +meeting-events | Leer eventos en vivo y contenido compartido de la reunión | lark-vc-meeting-events |
vc +meeting-message-send | Enviar mensajes de texto o reacciones en la reunión | lark-vc-meeting-message-send |
vc +meeting-screenshot | Obtener captura de pantalla de la reunión de video | lark-vc-meeting-screenshot |
vc +meeting-countdown | Configurar, extender, finalizar antes de tiempo o cerrar el temporizador de la reunión | lark-vc-meeting-countdown |
vc +meeting-join | Hacer que el bot de aplicación se una a la reunión | lark-vc-agent-meeting-join |
vc +meeting-invite | Invitar a usuarios específicos o a todos los participantes calificados del evento mediante el bot de aplicación | lark-vc-agent-meeting-invite |
vc +meeting-end | Hacer que el bot de aplicación anfitrión finalice la reunión | lark-vc-agent-meeting-end |
vc +meeting-leave | Hacer que el bot de aplicación abandone la reunión | lark-vc-agent-meeting-leave |
minutes +search | Buscar grabaciones (Minutes) | lark-minutes-search |
minutes minutes get | Consultar información básica de la grabación | lark-cli minutes minutes get --help |
minutes +detail | Leer información de la grabación y productos específicos | lark-minutes-detail |
minutes +download | Descargar el audio/video original de la grabación | lark-minutes-download |
minutes +upload | Generar una grabación a partir de audio/video en la nube | lark-minutes-upload |
minutes +update | Modificar el título de la grabación | lark-minutes-update |
minutes +speaker-replace | Reemplazar el orador en la transcripción de la grabación | lark-minutes-speaker-replace |
minutes +summary | Reemplazar el resumen AI de la grabación | lark-minutes-summary |
minutes +todo | Añadir, eliminar o modificar tareas AI de la grabación | lark-minutes-todo |
minutes +apply-permission | Solicitar permisos de visualización o edición de la grabación | lark-minutes-apply-permission |
drive +member-list | Consultar los colaboradores de la grabación y sus permisos | lark-drive-member-list |
drive +member-add | Asignar permisos de visualización o edición de la grabación a un miembro específico | lark-drive-member-add |
minutes +word-replace | Reemplazar palabras clave en masa en la transcripción de la grabación | lark-cli minutes +word-replace --help |
note +detail | Consultar el resumen inteligente (Note) y los identificadores de documentos asociados | lark-note-detail |
note +transcript | Obtener la transcripción unificada del resumen inteligente | lark-note-transcript |
Reglas de carga progresiva
Carga progresiva según el orden: "Acción rápida → Manual de escenarios → Referencia de comandos":
- Cuando el objetivo del usuario cumpla las condiciones de entrada de "Acción rápida", ejecuta directamente el CLI correspondiente; no leas previamente el manual de escenarios, la referencia de comandos,
--helpni el esquema (schema). - Si no se cumplen las condiciones de acción rápida, o faltan identificadores clave, se requiere desambiguación o la operación es de escritura, lee un manual de escenario principal que coincida con el objetivo; si el escenario principal deriva explícitamente a un escenario secundario, solo lee el escenario o la sección referenciada y ejecuta el CLI según su flujo.
- Solo cuando falten parámetros específicos, campos de retorno, restricciones especiales o formas de manejar excepciones: para comandos que tienen un manual de referencia, lee el archivo correspondiente; para comandos sin manual de referencia, ejecuta el
lark-cli ... --helpexacto indicado en la tabla. Si el escenario o la referencia ya proporcionan el comando exacto, no se debe llamar a--help; solo se llama cuando falten parámetros, el comando no sea reconocido o la documentación entre en conflicto con los resultados de la ejecución.