lark-meeting 是做什么的?
Unified entry point for Lark video conferencing, supporting operations like querying meeting records, real-time meeting interaction, managing Minutes, and reading AI-generated notes. This skill handles domain relationships, task routing, and cross-command orchestration.
No need to pre-read lark-shared or pre-run auth status --verify — only read that Skill when encountering unauthenticated, token/identity or scope errors, then retry. For authentication, identity, or scope management requests, use that Skill directly.
Identity Initialization and Continuity
Treat source_identity as the state of the cross-command workflow:
- If source identity already exists in context: strictly preserve it. When the user asks to switch, first explain identity continuity and permission impact; do not switch silently.
- No source identity, user explicitly specifies an identity: use the user-specified
--as. - No source identity and user does not specify: use
--as botwhen the operation semantics clearly require an application bot; otherwise explicitly use--as user.
After determining source_identity, check whether the target command supports that identity:
- If supported: pass it explicitly and proceed.
- If not supported: explain the limitation and stop; do not replace the identity just to make the command succeed.
- Only start a new workflow with a new identity after the user explicitly agrees to switch.
Domain Model & Concepts
[Meeting Sources]
Calendar Event (event_id) ──Booked or Associated─┐
Instant Meeting (no event_id) ────────────────────┴──► Meeting (meeting_id)
Calendar Event ──meeting_note──────────────────────► Doc (user notes, independent of AI notes)
[Meeting Artifacts]
Meeting (meeting_id)
├── AI Summary ──► Note (note_id)
│ ├── Note Document ──────────► Doc (note_doc_token)
│ ├── Verbatim Transcript
│ │ ├── normal ─────────────► Doc (verbatim_doc_token)
│ │ └── unified ─────────────► note + transcript (not a standalone Doc)
│ └── Shared Documents ────────► Doc (shared_doc_tokens)
│
└── Recording ──► Minutes (minute_token)
├── AI Artifacts: Summary / Todo / Chapter / Keyword
├── Transcript (alias: "transcription", "verbatim transcript", "text transcript")
└── Original Audio/Video
Local Audio/Video ──────────────────────────────► Minutes (minute_token)
| Object | Primary Identifier | Concept & Relationship |
|---|---|---|
| Calendar Event | event_id | An event on the calendar with time, attendees, room, and RSVP; can be booked or associated with a VC meeting; not a full meeting record. The meeting_note on an event is a user-manually-bound Doc, unrelated to AI Notes. |
| Meeting | meeting_id | The actual video conference, which can originate from a Calendar event or be an instant meeting without an event. Meeting topic, time, attendee snapshot, and in-meeting events belong to meeting data; Notes and Minutes are possible post-meeting artifacts. |
| Note (AI Notes) | note_id | A logical collection of artifacts generated after AI summary is enabled. note_display_type determines how to retrieve verbatim transcripts. |
| Minutes | minute_token | Generated from meeting recording or local audio/video upload; contains summary, todos, chapters, keywords, transcript (aliases: "transcription", "verbatim transcript", "text transcript") and original audio/video; may be associated with a VC meeting or standalone. |
| Doc | Doc token | Content container, not a meeting identifier. note_doc_token, shared_doc_tokens, and some verbatim_doc_token point to Docs; a Doc token cannot be used as note_id or meeting_id. |
Core Identifiers
meeting_id: Meeting ID. A long numeric string, not a 9-digit meeting number.meeting_no: Meeting number. 9-digit pure number; CLI parameter is--meeting-number.minute_token: Minutes token. Lowercase alphanumeric string, typically extracted from a Minutes URL/minutes/<minute_token>.
All identifiers above must be passed as strings; they cannot be substituted for each other.
Domain Invariants
- Notes and Minutes come from two independent pipelines (AI summary and recording). A meeting may have both, only one, or neither; do not infer the existence of a
minute_tokenfrom anote_id, or vice versa. - Minutes can be generated directly from local audio/video and therefore may not be associated with a
meeting_idor Calendarevent_id. - Calendar
meeting_note, Notenote_id, Minutesminute_token, and various Doc tokens identify different objects. They cannot be swapped, substituted into commands from other domains, or derived from one another.
Quick Actions
Query Active Meeting Content
# Current user's meeting
lark-cli vc +meeting-list-active --as user
# Target user's meeting visible to the bot
lark-cli vc +meeting-list-active --as bot --user-id <open_id>
# After identifying a unique meeting_id, reuse the source identity
lark-cli vc +meeting-events --as <source_identity> --meeting-id <meeting_id> --page-all --format pretty
When there are multiple active meetings, first select which one to query; if there is only one, query its events directly.
Bot identity returns only meetings where the target user is participating and the bot is also in the same meeting; an empty result does not mean the target user is not in a meeting. When explaining results to users, use "user identity" or "bot identity" — avoid exposing internal terms like user/bot.
Scenario Handbooks
When the task goal matches a scenario, read the corresponding handbook and follow its workflow.
- Query Meeting and Its Artifacts: Locate historical meetings by topic, time, attendees, or
meeting_id/meeting_no/event_id; query attendees, recordings, and associated Notes or Minutes; summarize or review based on meeting records. - Query Minutes and Their Artifacts: With an existing Minutes URL /
minute_token, or search by title, owner, or participants; read summaries, todos, chapters, keywords, and verbatim transcripts; download original audio/video or query associated Notes. - Create and Edit Minutes, Manage Minutes Permissions: Generate Minutes from local audio/video along with transcripts, summaries, todos, or chapters; edit Minutes title, summary, todos, keywords, or speaker labels; apply for Minutes permissions or view/assign collaborator permissions.
- Query Notes and Associated Artifacts: With an existing
note_id, Notes Docx URL/token, or need to query note body, verbatim transcript, Minutes, shared documents, and other associated artifacts. - Bot Join Live Meeting & In-Meeting Interaction: Full orchestration of bot active meeting discovery, initiating or joining, inviting, event pulling, screenshots, text/emoji/countdown interactions, ending the meeting, and leaving after explicit authorization.
- Live Meeting Events & In-Meeting Interaction: Query active meetings, view speech/chat/shared content, optionally read current meeting screen, or send text/emojis and manipulate countdowns without triggering new join/leave operations, using user identity or a bot identity already in the meeting.
Command Reference
| Command | Purpose | Reference Method |
|---|---|---|
vc +search | Search historical meetings | lark-vc-search |
vc +detail | Query meeting info and associated Note & Minutes identifiers | lark-vc-detail |
vc meeting get | Query basic meeting info and attendee snapshot | lark-cli vc meeting get --help |
vc +recording | Locate recordings and Minutes from a meeting | lark-vc-recording |
vc +meeting-list-active | Discover currently visible active meetings | lark-vc-meeting-list-active |
vc +meeting-events | Read in-meeting events and shared content | lark-vc-meeting-events |
vc +meeting-message-send | Send in-meeting text messages or emojis | lark-vc-meeting-message-send |
vc +meeting-screenshot | Capture video meeting screenshot | lark-vc-meeting-screenshot |
vc +meeting-countdown | Set, extend, end early, or dismiss in-meeting countdown | lark-vc-meeting-countdown |
vc +meeting-join | Have the application bot join a meeting | lark-vc-agent-meeting-join |
vc +meeting-invite | Invite specified users or all eligible scheduled attendees via the bot | lark-vc-agent-meeting-invite |
vc +meeting-end | Have the current Host bot end the meeting | lark-vc-agent-meeting-end |
vc +meeting-leave | Have the application bot leave the meeting | lark-vc-agent-meeting-leave |
minutes +search | Search Minutes | lark-minutes-search |
minutes minutes get | Query basic Minutes info | lark-cli minutes minutes get --help |
minutes +detail | Read Minutes info and specified artifacts | lark-minutes-detail |
minutes +download | Download original Minutes audio/video | lark-minutes-download |
minutes +upload | Generate Minutes from cloud space audio/video | lark-minutes-upload |
minutes +update | Edit Minutes title | lark-minutes-update |
minutes +speaker-replace | Replace speaker labels in Minutes transcript | lark-minutes-speaker-replace |
minutes +summary | Replace Minutes AI Summary | lark-minutes-summary |
minutes +todo | Add, delete, or edit Minutes AI To-dos | lark-minutes-todo |
minutes +apply-permission | Apply for view or edit permissions on Minutes | lark-minutes-apply-permission |
drive +member-list | View Minutes collaborators and their permissions | lark-drive-member-list |
drive +member-add | Assign view or edit permissions for Minutes to specified members | lark-drive-member-add |
minutes +word-replace | Batch replace keywords in Minutes transcript | lark-cli minutes +word-replace --help |
note +detail | Query Notes and associated document identifiers | lark-note-detail |
note +transcript | Get unified Notes transcript | lark-note-transcript |
Progressive Loading Rules
Load progressively: "Quick Actions → Scenario Handbooks → Command Reference".
- If the user's goal meets the entry conditions for a "Quick Action", execute the corresponding CLI directly; do not pre-read scenario handbooks, command references,
--help, or schemas. - If the goal does not meet Quick Action conditions, or if critical identifiers are missing, disambiguation is needed, or a write operation is involved, read the one primary scenario handbook that matches the goal; if the primary scenario explicitly delegates to a downstream scenario, only continue reading the referenced scenario or section, and follow its workflow to execute CLI commands.
- Only when specific parameters, return fields, special constraints, or exception handling details are missing: read the corresponding reference file for commands that have one; for commands without a reference file, run the exact
lark-cli ... --helplisted in the table. If the scenario or reference already provides the exact command, do not call--help; only call it when parameters are missing, the command is unrecognized, or documentation conflicts with runtime results.