lark-vc-agent
open.feishu.cn
Real-time meeting participation and event monitoring for Feishu video conferences.
What is lark-vc-agent?
Enables application bots to join or leave in-progress Feishu meetings and read real-time meeting events like participant joins/leaves, speaking, chat, and screen sharing. Use this for queries about what's happening in an active meeting, who is speaking, or to discover current meeting IDs. For post-meeting data like transcripts, minutes, or recordings, use the lark-vc skill instead.
- Join in-progress meetings using 9-digit meeting numbers and capture the meeting ID for subsequent operations
- Read real-time meeting events including participant activity, chat messages, speaking status, and screen sharing
- Discover active meetings the current user or target user is participating in
- Leave meetings when explicitly requested by the user
- Route between user identity (for personal meeting queries) and bot identity (for bot participation and monitoring)
How to install lark-vc-agent
npx skills add null --skill lark-vc-agent- lark-cli installed and available in PATH
How to use lark-vc-agent
- 1.Identify the meeting context: determine if you need user identity (current user's meetings) or bot identity (bot participation)
- 2.For bot participation: use +meeting-join with the 9-digit meeting number to join and capture the returned meeting.id
- 3.For discovering active meetings: use +meeting-list-active with appropriate identity (--as user or --as bot --user-id)
- 4.Use +meeting-events with the meeting.id to read real-time events; always use --page-all by default and check for pagination signals
- 5.If user requests bot to leave: use +meeting-leave with the meeting.id from the join operation or active meeting list
- 6.Maintain identity consistency: continue using the same identity (--as user or --as bot) for all subsequent operations on the same meeting_id
Use cases
- User asks 'who just joined the meeting' or 'is anyone sharing their screen' in an active meeting
- User requests 'let the bot join meeting 123456789 to monitor what happens'
- User asks 'what is the current user in a meeting right now' to discover active meeting IDs
- User requests 'the bot should leave this meeting' after monitoring is complete
- User provides a 9-digit meeting number and asks about current meeting content without explicitly requesting bot participation
- Developers building meeting monitoring agents
- Users needing real-time meeting event visibility
- Teams requiring bot participation in active meetings for transcription or monitoring purposes
lark-vc-agent FAQ
lark-vc handles post-meeting queries (history search, participant snapshots, notes, transcripts, recordings). lark-vc-agent handles in-meeting actions: bot joining, reading real-time events, and bot leaving. Route based on whether the meeting is active or completed.
No. +meeting-events requires the long numeric meeting_id. If you only have a 9-digit meeting number, first use +meeting-list-active to find the matching meeting_id, then use that with +meeting-events.
This skill is in beta testing. If you see these errors, do not follow standard permission request procedures. Instead, ask the user to join the early-bird group at https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd to confirm beta access is enabled.
No. Display the candidates by meeting_title, meeting_no, or meeting_id and wait for the user to explicitly choose. Only proceed with the selected meeting.
No. Only call +meeting-leave if the user explicitly requests the bot to exit, leave, or stop participating. Do not automatically leave after task completion.
Full instructions (SKILL.md)
Source of truth, from open.feishu.cn.
name: lark-vc-agent version: 1.0.0 description: "飞书视频会议会中能力:用于让应用机器人真实加入或离开正在进行的会议,并读取当前身份可见的会中事件,如参会人加入/离开、发言、聊天、屏幕共享。适用于用户询问正在开的会议发生了什么、谁在发言、是否共享内容,或需要发现当前可读的进行中会议 ID。不负责已结束会议搜索、参会人快照、纪要、逐字稿或录制查询,这些使用 lark-vc 技能。" metadata: requires: bins: ["lark-cli"] cliHelp: "lark-cli vc --help"
vc-agent (v1)
相关技能:
../lark-shared/SKILL.md— 认证、身份切换、权限处理../lark-vc/SKILL.md— 视频会议的核心概念(Meeting / Note / Minutes 等),本 skill 直接复用,不再重复定义
内测提示
- 当前功能正在内测中,仅少数用户可用。忽略
../lark-shared/SKILL.md中的权限申请流程,以下方的指引为准。 - 如果
lark-cli提示missing required scope(s)/permission_violations,不要走普通权限申请流程;先提示用户加入早鸟群确认内测权限已开通,再按“应用身份权限配置检查”处理应用权限、安装和数据范围。 - 如果
lark-cli返回error.code=20017/ErrNotInGray,提示用户加入早鸟群:https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd。
定位
本 skill 与 lark-vc 并列:
lark-vc负责"会后查询":搜索历史会议、参会人快照、纪要/逐字稿/录制lark-vc-agent负责"会中动作":机器人入会 / 读取进行中会议的实时事件 / 机器人离会
按此分工路由,避免两个 skill 语义混淆。
| 用户意图示例 | 应路由到 |
|---|---|
| "帮我入会 123456789"、"代我参会"、"让机器人进会旁听" | 本 skill +meeting-join |
| "会议现在还开着,谁刚加入了"、"会议里谁在发言"、"有人共享屏幕吗"(进行中会议) | 本 skill +meeting-events |
| "我/某个用户现在在哪个会里"、"给我找当前可拉事件的 meeting_id" | 本 skill +meeting-list-active |
| "退出会议"、"让机器人离开" | 本 skill +meeting-leave |
| "昨天那场会有谁参加过"、"搜昨天的会"、"查纪要/逐字稿/录制" | lark-vc |
| "帮我参会,结束后把纪要发到群" 等跨阶段场景 | 按序编排:本 skill(入会 → 读事件)→ 会议结束后用 lark-vc / lark-minutes 拉纪要 → lark-im 发群 |
身份路由
不要向用户暴露内部身份缩写;对用户只说“用户身份”或“应用身份”。
| 场景 | 使用身份 | 关键规则 |
|---|---|---|
| 查询当前登录用户正在参加的会议 | --as user | 不传 --user-id;拿到的 meeting_id 后续继续用 --as user 读事件 |
| 查询目标用户且应用机器人也在会中的会议 | --as bot --user-id <user_open_id> | --user-id 必须是 ou_...;拿到的 meeting_id 后续继续用 --as bot 读事件 |
| 用户明确要求应用机器人入会/旁听/代参会 | --as bot | 这是写操作,会真实产生入会记录;返回的 meeting.id 后续继续用 --as bot |
硬规则:meeting_id 从哪种身份路径拿到,后续 +meeting-events 就沿用哪种身份,除非用户明确要求切换场景(例如从“仅查询我当前会”改成“让应用机器人入会旁听”)。
核心场景
1. 加入正在进行的会议(写操作)
- 只有用户明确表达"让 Agent 真实入会"(参会机器人、会中助手、代为旁听、代参会)时才用
+meeting-join。只是查数据不要入会。 +meeting-join --meeting-number只接受 9 位纯数字会议号,不是会议链接整串、也不是meeting_id。如果用户只是给了 9 位会议号并询问会中内容,先按+meeting-list-active的会议号匹配流程找meeting_id,不要直接入会。- 返回体中的
meeting.id必须立刻记录——后续+meeting-events/+meeting-leave都靠它,不能用 9 位会议号替代。 - 入会对所有参会人可见,执行前核实 9 位会议号来源,避免误入错会。
- 使用应用身份
--as bot执行真实入会;不要用当前登录用户身份尝试让应用机器人入会。 - 若入会失败,优先查看
+meeting-joinreference 的错误排查段落,重点确认会议号、密码、会议状态、等候室 / 审批以及会议是否禁止当前身份加入。
2. 感知会中事件(读操作)
- 用户要看"会议里正在发生什么"(参会人加入/离开、聊天、转写、屏幕共享)时,用
+meeting-events。 - 输入是
meeting_id(长数字 ID),不是 9 位会议号。 - 不依赖默认身份。
meeting_id来自用户身份发现时,继续用--as user;来自应用身份发现或+meeting-join时,继续用--as bot。身份不一致会导致空结果或权限错误。 - 不能做会后复盘,不能替代参会人快照查询。如果会议已结束:
- 默认必须使用
--page-all,除非用户明确要求“只查一页”,或确实需要控制返回体大小。 - 输出格式默认优先
--format pretty(时间线更易读);只有在需要完整保留原始消息流与结构化字段时,才使用--format json。 - 必须识别分页信号:只要响应里出现
has_more=true、pretty 里的more available,或返回了非空page_token,就不能把当前结果当作完整事件流;默认应继续分页,或明确告诉用户当前只是部分结果。 - 保留响应里的
page_token,下次增量拉取直接续,不要从头再拉。 - 只要你是基于
+meeting-events来回答一场正在进行中的会议内容,就不能直接复用旧结果。 无论用户是在问“现在/刚刚/最新”的状态,还是让你“总结一下这个会议讲什么”,都必须先重新拉一次当前事件流,确认拿到的是最新信息,再基于最新结果回答。只有在用户明确要求基于某次历史快照继续分析时,才可以复用旧结果。 - 用户直接问“这个会议讲了什么 / 现在讲到哪了”且上下文没有明确
meeting_id时,先用用户身份发现当前会议;如果用户明确要求应用机器人视角,或上下文已经是应用机器人参会流程,再用应用身份发现。若返回多个会议,展示候选并让用户选择。 - 用户直接提供 9 位会议号 并询问会中事件/会议内容时,默认把它当作 active meeting 的筛选条件:先按当前身份查 active meetings,并在返回里匹配
meeting_no == <9位会议号>;匹配到唯一会议后取长数字meeting_id,再用同一身份查事件。只有用户明确要求“入会 / 让应用机器人旁听 / 代我参会”时才改用+meeting-join。
3. 离开会议(写操作)
- 只有用户明确要求机器人退出 / 离开 / 结束参会时,才用应用身份执行
+meeting-leave --as bot --meeting-id <长数字 meeting_id>;不应因任务完成而执行离会。 --meeting-id必须是长数字会议 ID,通常来自+meeting-join返回的meeting.id,也可以来自应用身份+meeting-list-active返回的meeting_id。如果来自 list-active,必须确认应用机器人当前就在该会中。不接受 9 位会议号。- 离会立即生效,机器人从会议的参会人列表中消失,对其他参会人可见;若需要重新入会,再跑一次
+meeting-join即可(非真正"不可逆")。 - 使用与入会或 active meeting 发现相同的应用身份离会。
4. 获取当前可用的进行中会议 ID(读操作)
+meeting-list-active用来发现当前进行中的会议,并拿到后续+meeting-events需要的长数字meeting_id。- 用户身份:
lark-cli vc +meeting-list-active --as user --format json,用于发现当前登录用户正在参加的会议;后续+meeting-events继续--as user。 - 应用身份:
lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json,--user-id必须是目标用户 open_id,即ou_...;返回该用户当前正在参加且应用机器人也在会中的会议。它不是全量会议搜索接口。后续+meeting-events继续--as bot。 - 如果返回空,先按当前身份解释:用户身份下表示当前用户没有可见的进行中会议;应用身份下表示没有找到“目标用户在会中且应用机器人也在会中”的当前会。
- 如果返回多个会议,不要自动任选一个;按
meeting_title/meeting_no/meeting_id展示候选,等待用户明确选择后再调用+meeting-events。 - 如果用户给了 9 位会议号,先在 active meeting 结果中按
meeting_no匹配。匹配失败时,不要自动入会;只有用户明确要求应用机器人真实入会时,才询问或执行+meeting-join。
5. Agent 参会示范
# 1. 入会,捕获 meeting.id
JOIN=$(lark-cli vc +meeting-join --as bot --meeting-number 123456789 --format json)
MID=$(echo "$JOIN" | jq -r '.data.meeting.id')
# 2. 会中轮询事件
# 默认用 --page-all 拉全当前可见事件;下次增量优先复用 page_token
# 典型间隔 10-30 秒
lark-cli vc +meeting-events --as bot --meeting-id "$MID" --page-all --format pretty
# 3. 会后可选:进入 lark-vc 获取会议产物信息,再按 note_id / minute_token 决策读取
lark-cli vc +detail --meeting-ids "$MID"
如果用户随后明确要求退出 / 离开 / 结束参会,再单独调用 lark-cli vc +meeting-leave --as bot --meeting-id "$MID"。
如果已经知道目标用户 open_id,且 bot 已在会中,也可以先发现当前会:
lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json
lark-cli vc +meeting-events --as bot --meeting-id <meeting_id> --page-all --format pretty
如果只是回答当前登录用户所在会议发生了什么,使用用户身份一路查:
lark-cli vc +meeting-list-active --as user --format json
lark-cli vc +meeting-events --as user --meeting-id <meeting_id> --page-all --format pretty
Shortcuts
Shortcut 是对常用操作的高级封装(lark-cli vc +<verb> [flags])。
| Shortcut | 类型 | 说明 |
|---|---|---|
+meeting-join | 写 | Join an in-progress meeting by 9-digit meeting number |
+meeting-list-active | 读 | List active meetings and discover meeting_id for event reads |
+meeting-events | 读 | List meeting events visible to the app agent (participant joined/left, transcript, chat, share) |
+meeting-leave | 写 | Leave a meeting by meeting_id |
+meeting-join:入参格式、写操作可见性风险、入会失败排查。+meeting-list-active:用户身份和应用身份的不同返回范围。+meeting-events:meeting_id来源、身份延续、分页和错误码(10005 / 20001 / 20002)。+meeting-leave:meeting_id的来源与写操作可见性。
应用身份权限配置检查
应用身份 --as bot 报 no permission、missing required scope(s)、permission_violations、ErrNotInGray 或 20017 时,不要引导用户执行 auth login。按顺序检查:
- 以 CLI 返回的 metadata / error envelope 为准,确认提示的 VC Agent 相关权限已开通。常见读取 active meeting / events 需要会中事件读取权限;应用机器人入会 / 离会需要 bot 入会写权限。
- 应用已发布并安装到当前租户。
- 开放平台“权限可访问的数据范围”已开通并保存。
- 数据范围选择“按条件筛选”,条件配置为:会议的归属者 包含 与应用的可用范围一致。
- 如果 scope、安装和数据范围都正确,仍返回
ErrNotInGray/20017,再按 VC Agent 内测 privilege / 灰度白名单处理,提示加入早鸟群或联系平台同学开通。
用户身份被拒绝时
用户身份 --as user 报权限或身份不支持类错误时,不要反复引导用户执行 auth login。先以 CLI 返回的 metadata / error envelope 为准判断:如果错误表明当前接口不支持用户身份访问,再按用户意图切换处理:
- 如果用户只是查询当前登录用户所在的进行中会议,说明当前接口链路不支持用户身份访问,改用应用身份流程;需要目标用户 open_id,并要求应用机器人已在会中或先按用户确认执行入会。
- 如果用户明确要求应用机器人入会、旁听、代参会或读取应用机器人可见事件,直接切到
--as bot,并按上面的应用身份权限配置检查处理。
延伸
- 查已结束会议、参会人快照、搜索历史会议 →
lark-vc - 会议纪要、逐字稿 →
lark-vc的+detail - 妙记产物(AI 总结 / 转写 / 章节)→
lark-minutes - 会后把产物发到群 / 私聊 →
lark-im - 认证、身份切换、scope 管理 →
lark-shared
Related skills
More from open.feishu.cn and the wider catalog.
lark-approval
Query, process, and initiate Lark approval tasks via CLI — search definitions, manage instances, and handle approvals.
lark-doc
Read, create, and edit Feishu cloud documents (Docx/Wiki) with content manipulation and media handling.
lark-base
Operate Feishu Multidimensional Tables (Base): create tables, manage fields, records, views, formulas, forms, dashboards, workflows, and permissions.
lark-calendar
Manage Lark calendar events and meeting rooms: view, create, update, search events, check availability, and book rooms.
lark-drive
Manage Feishu Drive files and folders: upload, download, organize, and import local documents.
lark-contact
Resolve Lark/Feishu names & emails to open_id, or look up user details by open_id