# Lark Vc > 飞书视频会议:查询进行中的会议列表(含会议 ID)、读取会中实时内容(发言、聊天、共享等)、发送会中消息,以及搜索历史会议、查询会议纪要(总结/待办/章节/逐字稿)和参会人快照。Agent 真实入会/离会走 lark-vc-agent;查询未来日程走 lark-calendar。 Source: https://skillsagentes.com/skills/larksuite/cli/lark-vc Repository: https://github.com/larksuite/cli Author: larksuite License: MIT Updated: hace 3 días Context cost: 85 tok installed, 4.3k tok once triggered, 22.2k tok with every bundled file Bundle: 8 files, 87 KB Permissions requested: none declared ## Install ```bash npx -y skills add larksuite/cli --skill lark-vc --agent claude-code ``` ## What it does - Consulta reuniones de Feishu VC en curso (con meeting_id) y lee eventos en vivo (habla, chat, compartir pantalla) - Envía mensajes o reacciones dentro de una reunión en curso - Busca reuniones históricas ya finalizadas por palabra clave, rango de tiempo, organizador o sala - Consulta actas de reunión (resumen, pendientes, capítulos, transcripción) y sus enlaces - Consulta el snapshot de participantes de una reunión, incluso ya finalizada, vía meeting get --with-participants ## Use it when - El usuario pregunta por reuniones ya finalizadas ('la reunión de ayer', 'la reunión de la semana pasada') - Se necesita el listado de reuniones en curso o leer eventos/mensajes dentro de una reunión activa - El usuario pide resumir, revisar o extraer contenido de una reunión (a partir de la transcripción original, no del acta de IA) - Se pregunta quién participó en una reunión o el contenido de las actas/notas ## Don't bother when - Consultas de calendario o agendas futuras (usar lark-calendar) - El agente necesita unirse o salir realmente de una reunión (usar lark-vc-agent) - Conversión de audio/video local a acta, o búsqueda/descarga/subida de minutas (usar lark-minutes) ## What triggers it - "¿Qué reuniones tuve ayer sobre el proyecto X?" - "Dame el resumen y los pendientes de la reunión de standup de esta mañana" - "¿Quiénes participaron en la reunión con meeting_id XXX?" - "Muéstrame la transcripción de la última reunión de planificación" - "Envía un mensaje al chat de la reunión en curso" ## Before you install - Requiere el binario lark-cli y haber leído primero lark-shared/SKILL.md y references/vc-domain-boundaries.md para autenticación y límites de dominio. ## Files - SKILL.md — 17 KB - references/lark-vc-detail.md — 2 KB - references/lark-vc-meeting-events.md — 29 KB - references/lark-vc-meeting-list-active.md — 5 KB - references/lark-vc-meeting-message-send.md — 6 KB - references/lark-vc-recording.md — 6 KB - references/lark-vc-search.md — 8 KB - references/vc-domain-boundaries.md — 13 KB ## SKILL.md Reproduced verbatim from larksuite/cli under MIT. This section is the upstream document and is in English. # vc (v1) **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理** **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`references/vc-domain-boundaries.md`](references/vc-domain-boundaries.md)**,不读将导致命令使用、会议产物决策、领域边界职责判断错误: > 1. 了解日历 & VC、会议产物 & 文档的关联关系和职责划分 > 2. 了解会议产物(妙记和纪要)之间的关联关系,例如:**妙记和纪要产生条件相互独立** > 3. 了解不同会议产物的组成部分,以便根据需求决策使用哪种产物的数据 > 4. 了解会议总结、分析和信息提取的标准流程 ## 身份 身份是跨命令工作流的状态,不是单条命令的局部参数:一旦某个 ID(如 `note_id`、`minute_token`)由某个身份取得,后续消费它的命令(包括跨到 lark-minutes / lark-note / lark-doc)必须显式沿用相同 `--as`;不要依赖 profile 默认身份,也不要为绕过权限错误切换身份。完整规则见 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) 的「身份延续」。 **本链路的身份策略覆盖到最后一跳读正文**:`vc +detail` → `note +detail` → `docs +fetch --doc / ` 全程用同一个 `--as`。[lark-doc](../lark-doc/SKILL.md) 对普通文档推荐 `--as user`,**不覆盖本链路取得的纪要文档 token**;读正文时不要因此切回 user。 本 skill 默认使用 `--as user`。`+detail`、`+recording`、`meeting get`、`+meeting-list-active`、`+meeting-events` 和 `+meeting-message-send` 也支持 `--as bot`;`+meeting-events` 和 `+meeting-message-send` 必须沿用 `meeting_id` 的来源身份。`+search` 仅支持 `--as user`。 ```bash # BAD — 查昨天的会议用 calendar,会漏掉即时会议 lark-cli calendar +search-event --query "站会" --start --end # GOOD — 查已结束的会议用 vc +search lark-cli vc +search --query "站会" --start --end ``` ## Shortcuts (推荐优先使用) | Shortcut | 说明 | |----------|------| | [`+search`](references/lark-vc-search.md) | 搜索历史会议记录(需至关键词、时间范围、组织者、参与者、会议室少一个筛选条件) | | [`+detail`](references/lark-vc-detail.md) | 通过 meeting-ids 获取会议详情,包括 note_id 和 minute_token | | [`+recording`](references/lark-vc-recording.md) | 通过 meeting-ids 或 calendar-event-ids 查询 minute_token | | [`+meeting-list-active`](references/lark-vc-meeting-list-active.md) | 查询当前身份可见的进行中会议并获取 `meeting_id` | | [`+meeting-events`](references/lark-vc-meeting-events.md) | 读取当前身份可见的会中事件 | | [`+meeting-message-send`](references/lark-vc-meeting-message-send.md) | 发送会中文本或 reaction | - 使用任何 Shortcut 前,必须先读其对应 reference 文档。 ## 意图路由 | 用户意图 | 路由到 | |----------|--------| | 查"昨天的会议""上周的会""已结束的会议" | 本 skill(`+search`,含即时会议) | | 查日历/日程或未来时间的会议 | [lark-calendar](../lark-calendar/SKILL.md) | | 查"今天有哪些会议" | `vc +search`(已结束)+ lark-calendar(未开始),合并展示 | | 查询进行中的会议、会中事件或发送会中消息 | 本 skill 的 `+meeting-list-active` / `+meeting-events` / `+meeting-message-send`,也可由 [lark-vc-agent](../lark-vc-agent/SKILL.md) 编排 | | 用户询问会议内容,但未提供 `meeting_id`,也未明确指向已结束会议 | 先用 `+meeting-list-active` 查询进行中的会议;无结果时,再用 `+search` 查询当天最近结束的会议;仍无结果时询问会议时间、主题或会议号,不自行扩大时间范围 | | 只按自然语言标题查"xx 纪要的逐字稿 / 原始记录 / 谁说了什么" | 先到 [lark-drive](../lark-drive/SKILL.md) / [lark-doc](../lark-doc/SKILL.md);仅在已拿到 `note_id` / `vc-node-id` 后再到 [lark-note](../lark-note/SKILL.md) | | Agent 真实入会/离会 | [lark-vc-agent](../lark-vc-agent/SKILL.md) | | 妙记信息/时长/封面/链接 | 先走 `vc +detail` 或 `vc +recording` 获取 `minute_token`,再用 [lark-minutes](../lark-minutes/SKILL.md) 的 `minutes get` | | 本地音视频文件转纪要/逐字稿 | 先走 [lark-minutes](../lark-minutes/SKILL.md) 上传,再用 `minutes +detail --minute-tokens` | ## 核心概念 - **视频会议(Meeting)**:飞书视频会议实例,通过 meeting_id 标识。已结束的会议支持通过关键词、时间段、参会人、组织者、会议室等条件搜索(见 `+search`)。 - **会议纪要(Note)**:视频会议结束后生成的结构化文档,通过 `note_id` 标识,包含纪要文档(总结、待办)和逐字稿文档。`note_display_type` 区分**普通纪要(`normal`)**和 **unified 纪要**;已知 `note_id` 的直查与 unified 原始记录请用 [lark-note](../lark-note/SKILL.md)。 - **妙记(Minutes)**:来源于飞书视频会议的录制产物或用户上传的音视频文件,支持视频/音频的转写,包含总结、待办、章节和文字记录,通过 minute_token 标识。妙记带有**原始会议录制视频**,会后**不会自动授权给参会人**,需管理员授权或参会人主动申请;而智能纪要及其逐字稿会后自动授权给参会人。 - **纪要文档(MainDoc)**:AI 智能纪要的主文档,包含 AI 生成的总结和待办,对应 `note_doc_token`。 - **用户会议纪要(MeetingNotes)**:用户主动绑定到日程的纪要文档,对应 `meeting_note`。需先通过 [`calendar +meeting`](../lark-calendar/references/lark-calendar-meeting.md) 由 `event_id` 获取。 - **逐字稿(VerbatimDoc)**:会议的逐句文字记录,包含说话人和时间戳。 ## 产物选择决策 | 用户意图 | 必须读取的产物 | 禁止 | |---------|-------------|------| | 提炼/总结/重新总结/整理会议内容/回顾会议 | 为降低 token 消耗,非必须不得获取 AI 纪要。必须使用原始对话记录(按下方逐字稿路由取得),基于原始对话独立分析。两类产物都存在且用户未指定时,默认用智能纪要的逐字稿;用户明确要妙记时才用妙记文字记录(Transcript) | 禁止直接搬运 AI 纪要(`note_doc_token`)的总结作为最终输出 | | 查看待办/章节 | 默认 AI 纪要(`note_doc_token`);仅存在妙记或用户明确要妙记时用妙记产物 — AI 待办更友好(含提出人和负责人),章节按话题划分更结构化 | — | | 查看纪要链接/文档地址 | 仅返回文档链接,无需读取内容 | — | | 直接看 AI 总结结果 | AI 纪要(`note_doc_token`) | — | | 谁说了什么/完整发言记录 | 原始对话记录(按下方逐字稿路由取得) | — | > **智能纪要 vs 妙记的选择规则**(总结/待办/逐字稿等重复产物通用):只存在一类 → 用存在的那类;两类都存在且用户明确指定(如"看妙记逐字稿")→ **语义指向哪个走哪个,不要改道**;两类都存在但用户未指定 → **默认智能纪要及其逐字稿**(会后自动授权给参会人,访问门槛低于含原始录制视频、需申请授权的妙记)。完整说明见 [`references/vc-domain-boundaries.md`](references/vc-domain-boundaries.md) 的「产物选择决策」。 > **逐字稿路由**:先用 `vc +detail` 拿到 `note_id`,再 [`note +detail`](../lark-note/SKILL.md) 看 `note_display_type`,**不要只看 `verbatim_doc_token` 是否为空**。具体路由以 [lark-note](../lark-note/SKILL.md) 的 `note_display_type` 规则为准。 > > **为什么"提炼/总结"必须从原始对话记录出发?** AI 纪要是模型对会议的二次压缩,可能遗漏讨论细节、争论过程和隐含决策。用户要求"提炼"或"重新总结"时,期望的是基于原始对话的独立分析,而非对 AI 产物的重新排版。 ## 核心场景 ### 1. 搜索会议记录 1. 仅支持搜索已结束的会议,对于还未开始的未来会议,需要使用 lark-calendar 技能。 2. 仅支持使用关键词、时间段、参会人、组织者、会议室等筛选条件搜索会议记录,对于不支持的筛选条件,需要提示用户。 3. 搜索结果存在多条数据时,务必注意分页数据获取,不要遗漏任何会议记录。 4. 只有自然语言纪要标题、没有会议线索时,不要把标题当会议关键词;按上方意图路由切到文档搜索。 ### 2. 整理会议纪要 > 在选择读取哪个产物前,先确认你理解 AI 总结链路 vs 录制链路的区别。如不确定,先读 [`references/vc-domain-boundaries.md`](references/vc-domain-boundaries.md)。 1. 整理纪要文档时默认给出纪要文档、逐字稿、妙记链接即可,无需读取纪要文档或逐字稿内容。 2. 用户明确需要获取总结、待办、章节产物时,再读取文档获取具体内容。 3. 读取智能纪要(`note_doc_token`)内容时,纪要文档的**第一个 ``** 标签是封面图(AI 生成的总结可视化),应同时下载展示给用户: ```bash # 1. 读取纪要内容 lark-cli docs +fetch --doc --doc-format markdown # 2. 从返回的 markdown 中提取第一个 的 token # 3. 下载封面图到聚合目录(和逐字稿、录像同目录,保持产物归拢) # 并非所有纪要都有封面画板,没有 标签时跳过即可 lark-cli docs +media-download --type whiteboard --token --output ./minutes//cover ``` > **产物目录规范**:同一会议的所有下载产物(录像、逐字稿、封面图等)统一放到 `./minutes/{minute_token}/` 目录下。这与 `minutes +download` 和 `minutes +detail --minute-tokens` 的默认落点保持一致,便于 Agent 聚合。显式路径(如封面图)需手动对齐到同一目录。 > **纪要相关文档 — 根据用户意图选择:** > - `note_doc_token` → **AI 智能纪要**(AI 总结 + 待办),由 `note +detail --note-id ` 返回 > - `meeting_note` → **用户绑定到日程的会议纪要**,由 [`calendar +meeting --event-ids `](../lark-calendar/references/lark-calendar-meeting.md) 返回 > - 用户说"逐字稿""完整记录""谁说了什么"时 → 按 `note_display_type` 路由,详见 [lark-note](../lark-note/SKILL.md) > - 用户说"纪要""总结""纪要内容"时,应同时返回 `note_doc_token` 和 `meeting_note`(如有) > - 用户意图不明确时,应展示所有文档链接让用户选择,而不是替用户决定 > - 如果用户提供的是**本地音视频文件**并说"转纪要""转逐字稿",不要直接从 `vc +detail` 开始;应先用 [minutes +upload](../lark-minutes/references/lark-minutes-upload.md) 生成 `minute_url`,再提取 `minute_token` 调用 `minutes +detail --minute-tokens` ### 3. 纪要文档与逐字稿链接 1. 纪要文档、逐字稿文档与关联的共享文档默认使用文档 Token 返回。 2. 仅需要获取文档名称和 URL 等基本信息时,使用 `lark-cli drive metas batch_query` 查询 ```bash # 学习命令使用方式 lark-cli schema drive.metas.batch_query # 批量获取文档基本信息: 一次最多查询 10 个文档 lark-cli drive metas batch_query --data '{"request_docs": [{"doc_type": "docx", "doc_token": ""}], "with_url": true}' ``` 3. 需要获取文档内容时,使用 `lark-cli docs +fetch`。 ```bash # 获取文档内容 lark-cli docs +fetch --doc --doc-format markdown ``` ### 4. 查询参会人快照(读操作) 用户问"谁参加过这场会议""这个会议有哪些参会人""某某参会了吗"等**参会人快照**类问题时,使用 **`vc meeting get --with-participants`**:这是参会人服务端快照 API,不依赖 bot 身份参会,**已结束会议也可查**: ```bash lark-cli vc meeting get --params '{"meeting_id":"","with_participants":true}' ``` 选型判断表: | 用户意图 | 推荐命令 | 所在 skill | |---------|---------|--------| | 参会人快照(谁参加过、何时入/离会,任意时点)| `vc meeting get --with-participants` | 本 skill | | 已结束会议的发言内容 | 优先:`vc +detail` 取 `note_id` 再 `note +detail` 取 `verbatim_doc_token` 后 `docs +fetch`;备选:`vc +detail` 取 `minute_token` 再 `minutes +detail --transcript` | [lark-note](../lark-note/SKILL.md) / [lark-minutes](../lark-minutes/SKILL.md) | | **进行中会议**的实时事件流(转写、聊天、共享、会中加入/离开)| `vc +meeting-events` | 本 skill / [`lark-vc-agent`](../lark-vc-agent/SKILL.md) | | **Agent 真实入会 / 离会** | `vc +meeting-join` / `vc +meeting-leave` | [`lark-vc-agent`](../lark-vc-agent/SKILL.md) | ## 资源关系 ```text Meeting (视频会议) ├── Note (会议纪要) ← note_id 标识,note_display_type: normal / unified │ ├── MainDoc (AI 智能纪要文档, note_doc_token) │ ├── MeetingNotes (用户绑定的会议纪要文档, meeting_notes) │ ├── VerbatimDoc (逐字稿, verbatim_doc_token) ← normal 路径 │ ├── UnifiedTranscript (unified 原始记录) ← unified 路径,note +transcript(lark-note) │ └── SharedDoc (会中共享文档) └── Minutes (妙记) ← minute_token 标识,由 `vc +detail` 或 `vc +recording` 桥接获取,产物详情走 [lark-minutes](../lark-minutes/SKILL.md) ├── Transcript (文字记录) ├── Summary (总结) ├── Todos (待办) ├── Chapters (章节) └── Keywords (推荐关键词) ``` > **MeetingNotes 边界**:用户绑定到日程的会议纪要文档(`meeting_note`)属于日程域,不在 VC 资源关系内;从 `event_id` 用 [`calendar +meeting`](../lark-calendar/references/lark-calendar-meeting.md) 获取。 > > **妙记边界**:`+recording` 仅负责把 `meeting_id` / `calendar_event_id` 桥接到 `minute_token`;妙记的总结/待办/章节/逐字稿等产物归 [lark-minutes](../lark-minutes/SKILL.md)(`minutes +detail`)。 > > **Note 域边界**:VC 域只负责把 `meeting_id` 转成 `note_id` / `minute_token`,纪要详情归 [lark-note](../lark-note/SKILL.md)。 > - 入口选择:从 `meeting_id` 出发用 `vc +detail` 拿 `note_id` 和 `minute_token`;从 `minute_token` 出发用 [`minutes +detail`](../lark-minutes/references/lark-minutes-detail.md) 也会返回关联的 `note_id`,可继续走 `note +detail` 拿纪要文档 token。 > - 已有 `note_id` → 直接走 [`note +detail`](../lark-note/SKILL.md) / [`note +transcript`](../lark-note/SKILL.md),不要绕回 VC。 > - 已有 `doc_token` 且目标是读正文 → [lark-doc](../lark-doc/SKILL.md)。 > - 只有自然语言纪要标题 → 文档搜索 / Docx 正文读取;有显式 `vc-node-id` 才进入 [lark-note](../lark-note/SKILL.md)。 > - 从日程出发(只有 `event_id`)→ 先走 [`calendar +meeting`](../lark-calendar/references/lark-calendar-meeting.md) 拿到 `meeting_id` 或 `meeting_note`,再按上述路径继续。 > - **跨到 lark-minutes / lark-note / lark-doc 时必须沿用来源身份**:例如 `vc +detail --as bot` 拿到的 `note_id`,下一步 `note +detail --note-id ` 也要显式加 `--as bot`;不要省略 `--as` 让身份被 profile 默认值悄悄换成 user(或反过来)。`note +transcript` 目前仅支持 `--as user`——如果 `note +detail --as bot` 返回 `note_display_type=unified`,停在这一步向用户说明"该纪要的逐字稿只能以 user 身份读取",只有用户明确同意才切到 `--as user`,不要静默切换。 ## API Resources ```bash lark-cli vc [flags] ``` ### meeting - `get` — 获取会议详情(主题、时间、参会人、note_id) ```bash # 获取会议基础信息(不含参会人) lark-cli vc meeting get --params '{"meeting_id": ""}' # 获取会议基础信息(含参会人) lark-cli vc meeting get --params '{"meeting_id": "", "with_participants": true}' ``` ### minutes(跨域,详见 [lark-minutes](../lark-minutes/SKILL.md)) - `get` — 获取妙记基础信息(标题、时长、封面);查询妙记**内容**(总结/待办/章节/逐字稿)请用 [`minutes +detail`](../lark-minutes/references/lark-minutes-detail.md) ## 不在本 skill 范围 - 查询未来的会议日程 → [lark-calendar](../lark-calendar/SKILL.md) - Agent 真实入会/离会 → [lark-vc-agent](../lark-vc-agent/SKILL.md) - 只有纪要文档标题的逐字稿查询 → 文档搜索 / Docx 正文读取;有显式 `vc-node-id` 才进入 [lark-note](../lark-note/SKILL.md) - 本地音视频文件转纪要/逐字稿、妙记搜索/下载/上传/重命名/替换说话人 → [lark-minutes](../lark-minutes/SKILL.md) - 通过 `note_id` 取纪要文档 Token → [lark-note](../lark-note/SKILL.md) --- Skills Agentes — https://skillsagentes.com/skills/larksuite/cli/lark-vc