
Lark Vc Agent
Have a Lark/Feishu bot join or leave live meetings by meeting ID and stream in-meeting events (joins, speech, chat, screen share) for assistant or proxy attendance workflows.
Overview
lark-vc-agent is an agent skill for the Build phase that lets a Lark bot join or leave live Feishu video meetings and read real-time in-meeting events via lark-cli.
Install
npx skills add https://github.com/larksuite/cli --skill lark-vc-agentWhat is this skill?
- Routes +meeting-join and +meeting-leave so the bot produces real join/leave records for a 9-digit meeting number
- Reads live meeting event timelines with +meeting-events while the bot is in an in-progress session it attended
- Splits responsibility from lark-vc: in-meeting actions here, historical minutes/transcripts there
- Requires reading lark-shared and lark-vc SKILL.md before execution for auth and VC concepts
- Beta-only: scope errors and ErrNotInGray route users to the documented early-access chat instead of permission requests
- 9-digit meeting number for join/leave flows
- Must read two prerequisite skill docs: lark-shared and lark-vc
Adoption & trust: 97.3k installs on skills.sh; 13.7k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a bot in an ongoing Lark meeting to represent you and surface who joined, spoke, chatted, or shared screen without polling finished-meeting APIs.
Who is it for?
Builders automating Lark VC with lark-cli who need in-session bots and live event feeds during active meetings.
Skip if: Querying ended meetings, transcripts, or attendee snapshots—use lark-vc instead; also skip if you lack lark-cli or beta access when the CLI reports missing scopes or ErrNotInGray.
When should I use this skill?
User supplies a 9-digit Lark meeting ID and wants the bot to join or leave, or wants live in-meeting dynamics while the session is ongoing.
What do I get? / Deliverables
The bot joins or leaves the specified live meeting and returns an event timeline for that session, with post-meeting history deferred to the lark-vc skill.
- Successful bot join or leave on a live meeting
- In-meeting event timeline from +meeting-events for sessions the bot attended
Recommended Skills
Journey fit
Canonical shelf is build/integrations because the skill wires an agent to Lark Video Conference via lark-cli rather than post-meeting record retrieval. Subphase integrations matches third-party VC automation paired with sibling lark-shared auth and lark-vc post-meeting skills.
How it compares
Use for in-meeting bot actions; use the sibling lark-vc skill for after-the-call search and minutes, not as a generic calendar MCP.
Common Questions / FAQ
Who is lark-vc-agent for?
Solo and indie builders (and small teams) running Claude Code or similar agents against Lark/Feishu who want programmatic join, leave, and live meeting telemetry through lark-cli.
When should I use lark-vc-agent?
Use it during Build integrations when the user gives a 9-digit meeting number and asks the bot to join or leave, or during Operate support-style workflows when you need live ‘who joined’ or screen-share signals while the meeting is still in progress.
Is lark-vc-agent safe to install?
Treat it as privileged VC automation that creates real attendance records; review the Security Audits panel on this page and Lark tenant policies before deploying a bot identity.
SKILL.md
READMESKILL.md - Lark Vc Agent
# vc-agent (v1) **CRITICAL — 开始前 MUST 先用 Read 工具读取以下两份 skill 文档:** - [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) — 认证、身份切换、权限处理 - [`../lark-vc/SKILL.md`](../lark-vc/SKILL.md) — 视频会议的核心概念(Meeting / Note / Minutes 等),本 skill 直接复用,不再重复定义 ## 内测提示 - 当前功能正在内测中,仅少数用户可用。忽略 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) 中的权限申请流程,以下方的指引为准。 - 如果 `lark-cli` 提示 `missing required scope(s)` / `permission_violations`,不要申请对应权限,而是提示用户加入早鸟群:`https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd`。 - 如果 `lark-cli` 返回 `error.code=20017` / `ErrNotInGray`,提示用户加入早鸟群:`https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd`。 ## 定位 本 skill 与 [`lark-vc`](../lark-vc/SKILL.md) 并列: - **`lark-vc`** **负责"会后查询"**:搜索历史会议、参会人快照、纪要/逐字稿/录制 - **`lark-vc-agent`** **负责"会中动作"**:机器人入会 / 读取进行中会议的实时事件 / 机器人离会 按此分工路由,避免两个 skill 语义混淆。 | 用户意图示例 | 应路由到 | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | "帮我入会 123456789"、"代我参会"、"让机器人进会旁听" | **本 skill** `+meeting-join` | | "会议现在还开着,谁刚加入了"、"会议里谁在发言"、"有人共享屏幕吗"(**进行中会议**,且**机器人已入会**) | **本 skill** `+meeting-events` | | "退出会议"、"让机器人离开" | **本 skill** `+meeting-leave` | | "昨天那场会有谁参加过"、"搜昨天的会"、"查纪要/逐字稿/录制" | [`lark-vc`](../lark-vc/SKILL.md) | | "帮我参会,结束后把纪要发到群" 等跨阶段场景 | 按序编排:本 skill(入会 → 读事件 → 离会)→ [`lark-vc`](../lark-vc/SKILL.md) / [`lark-minutes`](../lark-minutes/SKILL.md)(拉纪要)→ [`lark-im`](../lark-im/SKILL.md)(发群) | ## 核心场景 ### 1. 加入正在进行的会议(写操作) 1. 只有用户明确表达"让 Agent **真实入会**"(参会机器人、会中助手、代为旁听、代参会)时才用 `+meeting-join`。只是查数据不要入会。 2. `+meeting-join --meeting-number` 只接受 **9 位纯数字**会议号,不是会议链接整串、也不是 `meeting_id`。 3. 返回体中的 `meeting.id` **必须立刻记录**——后续 `+meeting-events` / `+meeting-leave` 都靠它,**不能用 9 位会议号替代**。 4. 入会对所有参会人可见,执行前核实 9 位会议号来源,避免误入错会。 5. 仅支持 `user` 身份,需提前 `lark-cli auth login`。 6. 若入会失败,优先查看 `+meeting-join` reference 的错误排查段落,重点确认会议号、密码、会议状态、等候室 / 审批以及会议是否禁止当前身份加入。 ### 2. 感知会中事件(读操作) 1. 用户要看"会议里正在发生什么"(参会人加入/离开、聊天、转写、屏幕共享)时,用 `+meeting-events`。 2. 输入是 **`meeting_id`**(长数字 ID),不是 9 位会议号。 3. Bot 必须**真实参会过**(先 `+meeting-join`),否则事件流通常不可见。具体的状态边界、结束后宽限窗口与错误码(如 `10005 / 20001 / 20002`)请查看 `+meeting-events` reference。 4. **不能做会后复盘**,**不能替代参会人快照查询**。如果会议已结束: - 想拿纪要文档或逐字稿文档 token:用 `lark-cli vc +notes --meeting-ids <meeting.id>` - 想拿 AI 产物(summary / todos / chapters)或导出逐字稿文件:先用 `lark-cli vc +recording --meeting-ids <meeting.id>` 拿 `minute_token`,再用 `lark-cli vc +notes --minute-tokens <minute_token>` - 想看参会人快照:用 `vc meeting get --with-participants`(见 [`lark-vc`](../lark-vc/SKILL.md)) 5. **默认必须使用** **`--page-all`**,除非用户明确要求“只查一页”,或确实需要控制返回体大小。 6. 输出格式默认优先 `--format pretty`(时间线更易读)