lark-vc
SkillCommunityTranslated from ChineseThis skill enables AI agents to interact with Lark video conferencing data. It supports searching historical meeting records, retrieving meeting summaries, action items, transcripts, and participant snapshots for completed meetings.
npx skills add open.feishu.cn/lark-vcvc (v1)
CRITICAL, Before starting, you MUST use the Read tool to read ../lark-shared/SKILL.md, which contains authentication and permission handling.
CRITICAL, Before starting, you MUST use the Read tool to read references/vc-domain-boundaries.md. Failure to read this will lead to errors in command usage, meeting artifact decision-making, and domain boundary responsibility judgment:
- Understand the relationship and division of responsibilities between Calendar & VC, and meeting artifacts & documents.
- Understand the relationship between meeting artifacts (Minutes and Notes), for example: Minutes and Notes are generated independently.
- Understand the components of different meeting artifacts to decide which artifact data to use based on requirements.
- Understand the standard process for meeting summaries, analysis, and information extraction.
Identity
All vc commands use --as user by default. +search and meeting get also support --as bot.
# BAD, Use calendar to check yesterday's meetings, as it will miss instant meetings
lark-cli calendar events search_event --query "standup" --start-time ...
# GOOD, Use vc +search to check finished meetings
lark-cli vc +search --query "standup" --start-time ...
Shortcuts (Recommended for priority use)
| Shortcut | Description |
|---|---|
+search | Search historical meeting records (requires at least one filter condition) |
+notes | Query meeting notes and Minutes artifacts (via meeting-ids, minute-tokens, or calendar-event-ids) |
+recording | Query minute_token via meeting-ids or calendar-event-ids |
- Before using any Shortcut, you must read its corresponding reference document.
Intent Routing
| User Intent | Route to |
|---|---|
| Check "yesterday's meetings", "last week's meetings", "finished meetings" | This skill (+search, includes instant meetings) |
| Check calendar/schedule or future meetings | lark-calendar |
| Check "what meetings are there today" | vc +search (finished) + lark-calendar (not started), display merged |
| Agent actual join/leave, real-time in-meeting events | lark-vc-agent |
| Local audio/video file to notes/transcript | First use lark-minutes to upload, then return to vc +notes --minute-tokens |
Core Concepts
- Meeting: Lark video meeting instance, identified by meeting_id. Finished meetings support searching by keywords, time range, participants, organizer, meeting room, etc.
- Note: Structured document generated after a video meeting ends, including the note document (summary + to-dos) and the verbatim transcript document.
- Minutes: Recording artifacts from Lark video meetings or audio/video files uploaded by users, containing summaries, to-dos, chapters, and transcripts, identified by minute_token.
- MainDoc: The main document of AI intelligent notes, containing AI-generated summaries and to-dos, corresponding to
note_doc_token. - MeetingNotes: Note documents actively bound to the meeting by the user, corresponding to
meeting_notes. Only returned via the--calendar-event-idspath. - VerbatimDoc: Sentence-by-sentence text record of the meeting, including speakers and timestamps.
Artifact Selection Decision
| User Intent | Must Read Artifact | Prohibited |
|---|---|---|
| Extract/Summarize/Re-summarize/Organize meeting content/Review meeting | Verbatim transcript (verbatim_doc_token) or Minutes transcript, analyze independently based on original dialogue | Prohibited from directly copying the summary from AI notes (note_doc_token) as the final output |
| View to-dos/chapters | AI notes (note_doc_token) or Minutes artifact, AI to-dos are more user-friendly (including proposer and assignee), chapters are more structured by topic | , |
| View note link/document address | Return document link only, no need to read content | , |
| View AI summary results directly | AI notes (note_doc_token) | , |
| Who said what/complete speech record | Verbatim transcript (verbatim_doc_token) | , |
Why must "extraction/summarization" start from the verbatim transcript? AI notes are a secondary compression of the meeting by the model and may omit discussion details, debate processes, and implicit decisions. When a user asks for "extraction" or "re-summarization", they expect an independent analysis based on the original dialogue, not a reformatting of AI artifacts.
Core Scenarios
1. Search Meeting Records
- Only supports searching finished meetings. For future meetings that have not started, use the lark-calendar skill.
- Only supports searching meeting records using filter conditions such as keywords, time range, participants, organizer, meeting room, etc. For unsupported filter conditions, prompt the user.
- When search results contain multiple items, be sure to pay attention to paginated data retrieval and do not miss any meeting records.
2. Organize Meeting Notes
Before choosing which artifact to read, confirm you understand the difference between the AI summary link vs. the recording link. If unsure, read
references/vc-domain-boundaries.md.
- When organizing note documents, it is default to provide the note document, verbatim transcript, and Minutes link; there is no need to read the content of the note document or verbatim transcript.
- Only read the document to get specific content when the user explicitly requests summaries, to-dos, or chapter artifacts.
- When reading AI intelligent note (
note_doc_token) content, the first<whiteboard>tag in the note document is the cover image (AI-generated summary visualization), which should be downloaded and displayed to the user:
# 1. Read note content
lark-cli docs +fetch --api-version v2 --doc <note_doc_token> --doc-format markdown
# 2. Extract the token of the first <whiteboard token="xxx"/> from the returned markdown
# 3. Download the cover image to the aggregation directory (same directory as verbatim transcript and recording, keep artifacts together)
# Not all notes have a cover whiteboard; skip if there is no <whiteboard> tag
lark-cli docs +media-download --type whiteboard --token <whiteboard_token> --output ./minutes/<minute_token>/cover
Artifact Directory Specification: All downloaded artifacts for the same meeting (recording, verbatim transcript, cover image, etc.) should be placed in the
./minutes/{minute_token}/directory. This is consistent with the default output locations ofminutes +downloadandvc +notes --minute-tokens, facilitating Agent aggregation. Explicit paths (such as cover images) must be manually aligned to the same directory.
Note-related documents, Choose based on user intent:
note_doc_token→ AI Intelligent Notes (AI summary + to-dos)meeting_notes→ User-bound meeting notes (documents actively associated with the meeting by the user, only returned via--calendar-event-idspath)verbatim_doc_token→ Verbatim Transcript (complete sentence-by-sentence text record, including speaker and timestamp), Use this when the user says "verbatim transcript", "complete record", or "who said what"- When the user says "notes", "summary", or "note content", return both
note_doc_tokenandmeeting_notes(if any)- When user intent is unclear, display all document links for the user to choose, rather than deciding for them
- If the user provides a local audio/video file and says "convert to notes" or "convert to verbatim transcript", do not start directly from
vc +notes; first use minutes +upload to generateminute_url, then extractminute_tokento callvc +notes --minute-tokens
3. Note Document and Verbatim Transcript Links
- Note documents, verbatim transcript documents, and associated shared documents are returned using document Tokens by default.
- When only basic information such as document name and URL is needed, use
lark-cli drive metas batch_queryto query.
# Learn command usage
lark-cli schema drive.metas.batch_query
# Batch get basic document information: query up to 10 documents at a time
lark-cli drive metas batch_query --data '{"request_docs": [{"doc_type": "docx", "doc_token": "<doc_token>"}], "with_url": true}'
- When document content is needed, use
lark-cli docs +fetch --api-version v2.
# Get document content
lark-cli docs +fetch --api-version v2 --doc <doc_token> --doc-format markdown
4. Query Participant Snapshot (Read Operation)
When a user asks questions about participant snapshots such as "who attended this meeting", "who are the participants in this meeting", or "did so-and-so attend", use vc meeting get --with-participants: This is the participant server-side snapshot API, which does not rely on the bot identity to join the meeting, and can also query finished meetings:
lark-cli vc meeting get --params '{"meeting_id":"<meeting_id>","with_participants":true}'
Selection Judgment Table:
| User Intent | Recommended Command | Skill Location |
|---|---|---|
| Participant snapshot (who attended, when joined/left, at any point in time) | vc meeting get --with-participants | This skill |
| Speech content of finished meetings | vc +notes get verbatim_doc_token then docs +fetch --api-version v2 | This skill |
| Real-time event stream of ongoing meetings (transcription, chat, sharing, join/leave during meeting) | vc +meeting-events | lark-vc-agent |
| Agent actual join / leave | vc +meeting-join / vc +meeting-leave | lark-vc-agent |
Resource Relationships
Meeting
├── Note
│ ├── MainDoc (AI Intelligent Note Document, note_doc_token)
│ ├── MeetingNotes (User-bound meeting note document, meeting_notes)
│ ├── VerbatimDoc (Verbatim Transcript, verbatim_doc_token)
│ └── SharedDoc (In-meeting shared document)
└── Minutes ← identified by minute_token, +recording obtained from meeting_id
├── Transcript
├── Summary
├── Todos
├── Chapters
└── Keywords
API Resources
lark-cli vc <resource> <method> [flags]
meeting
get, Get meeting details (topic, time, participants, note_id)
# Get basic meeting information (excluding participants)
lark-cli vc meeting get --params '{"meeting_id": "<meeting_id>"}'
# Get basic meeting information (including participants)
lark-cli vc meeting get --params '{"meeting_id": "<meeting_id>", "with_participants": true}'
minutes (Cross-domain, see lark-minutes for details)
get, Get basic Minutes information (title, duration, cover); to query Minutes content, please use+notes --minute-tokens <minute-token>
Outside the Scope of This Skill
- Query future meeting schedules → lark-calendar
- Agent actual join/leave, real-time in-meeting events → lark-vc-agent
- Local audio/video file to notes/transcript → lark-minutes (return to
vc +notesafter upload) - Minutes search/download/upload/rename/replace speaker → lark-minutes
vc (v1)
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
CRITICAL — 开始前 MUST 先用 Read 工具读取 references/vc-domain-boundaries.md,不读将导致命令使用、会议产物决策、领域边界职责判断错误:
- 了解日历 & VC、会议产物 & 文档的关联关系和职责划分
- 了解会议产物(妙记和纪要)之间的关联关系,例如:妙记和纪要产生条件相互独立
- 了解不同会议产物的组成部分,以便根据需求决策使用哪种产物的数据
- 了解会议总结、分析和信息提取的标准流程
身份
所有 vc 命令默认使用 --as user。+search 和 meeting get 也支持 --as bot。
# BAD — 查昨天的会议用 calendar,会漏掉即时会议
lark-cli calendar events search_event --query "站会" --start-time ...
# GOOD — 查已结束的会议用 vc +search
lark-cli vc +search --query "站会" --start-time ...
Shortcuts (推荐优先使用)
| Shortcut | 说明 |
|---|---|
+search | 搜索历史会议记录(需至少一个筛选条件) |
+notes | 查询会议纪要和妙记产物(通过 meeting-ids、minute-tokens 或 calendar-event-ids) |
+recording | 通过 meeting-ids 或 calendar-event-ids 查询 minute_token |
- 使用任何 Shortcut 前,必须先读其对应 reference 文档。
意图路由
| 用户意图 | 路由到 |
|---|---|
| 查"昨天的会议""上周的会""已结束的会议" | 本 skill(+search,含即时会议) |
| 查日历/日程或未来时间的会议 | lark-calendar |
| 查"今天有哪些会议" | vc +search(已结束)+ lark-calendar(未开始),合并展示 |
| Agent 真实入会/离会、会中实时事件 | lark-vc-agent |
| 本地音视频文件转纪要/逐字稿 | 先走 lark-minutes 上传,再回 vc +notes --minute-tokens |
核心概念
- 视频会议(Meeting):飞书视频会议实例,通过 meeting_id 标识。已结束的会议支持通过关键词、时间段、参会人、组织者、会议室等条件搜索。
- 会议纪要(Note):视频会议结束后生成的结构化文档,包含纪要文档(总结+待办)和逐字稿文档。
- 妙记(Minutes):来源于飞书视频会议的录制产物或用户上传的音视频文件,包含总结、待办、章节和文字记录,通过 minute_token 标识。
- 纪要文档(MainDoc):AI 智能纪要的主文档,包含 AI 生成的总结和待办,对应
note_doc_token。 - 用户会议纪要(MeetingNotes):用户主动绑定到会议的纪要文档,对应
meeting_notes。仅通过--calendar-event-ids路径返回。 - 逐字稿(VerbatimDoc):会议的逐句文字记录,包含说话人和时间戳。
产物选择决策
| 用户意图 | 必须读取的产物 | 禁止 |
|---|---|---|
| 提炼/总结/重新总结/整理会议内容/回顾会议 | 逐字稿(verbatim_doc_token)或妙记文字记录(Transcript),基于原始对话独立分析 | 禁止直接搬运 AI 纪要(note_doc_token)的总结作为最终输出 |
| 查看待办/章节 | AI 纪要(note_doc_token)或妙记产物 — AI 待办更友好(含提出人和负责人),章节按话题划分更结构化 | — |
| 查看纪要链接/文档地址 | 仅返回文档链接,无需读取内容 | — |
| 直接看 AI 总结结果 | AI 纪要(note_doc_token) | — |
| 谁说了什么/完整发言记录 | 逐字稿(verbatim_doc_token) | — |
为什么"提炼/总结"必须从逐字稿出发? AI 纪要是模型对会议的二次压缩,可能遗漏讨论细节、争论过程和隐含决策。用户要求"提炼"或"重新总结"时,期望的是基于原始对话的独立分析,而非对 AI 产物的重新排版。
核心场景
1. 搜索会议记录
- 仅支持搜索已结束的会议,对于还未开始的未来会议,需要使用 lark-calendar 技能。
- 仅支持使用关键词、时间段、参会人、组织者、会议室等筛选条件搜索会议记录,对于不支持的筛选条件,需要提示用户。
- 搜索结果存在多条数据时,务必注意分页数据获取,不要遗漏任何会议记录。
2. 整理会议纪要
在选择读取哪个产物前,先确认你理解 AI 总结链路 vs 录制链路的区别。如不确定,先读
references/vc-domain-boundaries.md。
- 整理纪要文档时默认给出纪要文档、逐字稿、妙记链接即可,无需读取纪要文档或逐字稿内容。
- 用户明确需要获取总结、待办、章节产物时,再读取文档获取具体内容。
- 读取智能纪要(
note_doc_token)内容时,纪要文档的第一个<whiteboard>标签是封面图(AI 生成的总结可视化),应同时下载展示给用户:
# 1. 读取纪要内容
lark-cli docs +fetch --api-version v2 --doc <note_doc_token> --doc-format markdown
# 2. 从返回的 markdown 中提取第一个 <whiteboard token="xxx"/> 的 token
# 3. 下载封面图到聚合目录(和逐字稿、录像同目录,保持产物归拢)
# 并非所有纪要都有封面画板,没有 <whiteboard> 标签时跳过即可
lark-cli docs +media-download --type whiteboard --token <whiteboard_token> --output ./minutes/<minute_token>/cover
产物目录规范:同一会议的所有下载产物(录像、逐字稿、封面图等)统一放到
./minutes/{minute_token}/目录下。这与minutes +download和vc +notes --minute-tokens的默认落点保持一致,便于 Agent 聚合。显式路径(如封面图)需手动对齐到同一目录。
纪要相关文档 — 根据用户意图选择:
note_doc_token→ AI 智能纪要(AI 总结 + 待办)meeting_notes→ 用户绑定的会议纪要(用户主动关联到会议的文档,仅--calendar-event-ids路径返回)verbatim_doc_token→ 逐字稿(完整的逐句文字记录,含说话人和时间戳)— 用户说"逐字稿""完整记录""谁说了什么"时用这个- 用户说"纪要""总结""纪要内容"时,应同时返回
note_doc_token和meeting_notes(如有)- 用户意图不明确时,应展示所有文档链接让用户选择,而不是替用户决定
- 如果用户提供的是本地音视频文件并说"转纪要""转逐字稿",不要直接从
vc +notes开始;应先用 minutes +upload 生成minute_url,再提取minute_token调用vc +notes --minute-tokens
3. 纪要文档与逐字稿链接
- 纪要文档、逐字稿文档与关联的共享文档默认使用文档 Token 返回。
- 仅需要获取文档名称和 URL 等基本信息时,使用
lark-cli drive metas batch_query查询
# 学习命令使用方式
lark-cli schema drive.metas.batch_query
# 批量获取文档基本信息: 一次最多查询 10 个文档
lark-cli drive metas batch_query --data '{"request_docs": [{"doc_type": "docx", "doc_token": "<doc_token>"}], "with_url": true}'
- 需要获取文档内容时,使用
lark-cli docs +fetch --api-version v2。
# 获取文档内容
lark-cli docs +fetch --api-version v2 --doc <doc_token> --doc-format markdown
4. 查询参会人快照(读操作)
用户问"谁参加过这场会议""这个会议有哪些参会人""某某参会了吗"等参会人快照类问题时,使用 vc meeting get --with-participants:这是参会人服务端快照 API,不依赖 bot 身份参会,已结束会议也可查:
lark-cli vc meeting get --params '{"meeting_id":"<meeting_id>","with_participants":true}'
选型判断表:
| 用户意图 | 推荐命令 | 所在 skill |
|---|---|---|
| 参会人快照(谁参加过、何时入/离会,任意时点) | vc meeting get --with-participants | 本 skill |
| 已结束会议的发言内容 | vc +notes 取 verbatim_doc_token 再 docs +fetch --api-version v2 | 本 skill |
| 进行中会议的实时事件流(转写、聊天、共享、会中加入/离开) | vc +meeting-events | lark-vc-agent |
| Agent 真实入会 / 离会 | vc +meeting-join / vc +meeting-leave | lark-vc-agent |
资源关系
Meeting (视频会议)
├── Note (会议纪要)
│ ├── MainDoc (AI 智能纪要文档, note_doc_token)
│ ├── MeetingNotes (用户绑定的会议纪要文档, meeting_notes)
│ ├── VerbatimDoc (逐字稿, verbatim_doc_token)
│ └── SharedDoc (会中共享文档)
└── Minutes (妙记) ← minute_token 标识,+recording 从 meeting_id 获取
├── Transcript (文字记录)
├── Summary (总结)
├── Todos (待办)
├── Chapters (章节)
└── Keywords (推荐关键词)
API Resources
lark-cli vc <resource> <method> [flags]
meeting
get— 获取会议详情(主题、时间、参会人、note_id)
# 获取会议基础信息(不含参会人)
lark-cli vc meeting get --params '{"meeting_id": "<meeting_id>"}'
# 获取会议基础信息(含参会人)
lark-cli vc meeting get --params '{"meeting_id": "<meeting_id>", "with_participants": true}'
minutes(跨域,详见 lark-minutes)
get— 获取妙记基础信息(标题、时长、封面);查询妙记内容请用+notes --minute-tokens <minute-token>
不在本 skill 范围
- 查询未来的会议日程 → lark-calendar
- Agent 真实入会/离会、会中实时事件 → lark-vc-agent
- 本地音视频文件转纪要/逐字稿 → lark-minutes(上传后回
vc +notes) - 妙记搜索/下载/上传/重命名/替换说话人 → lark-minutes
Installs
201,589First seen
Jun 10, 2026
Auto-fetched from GitHub .
Stats via skills.sh.
Skills similar to lark-vc:
Installs
Installs
Installs