$npx -y skills add larksuite/cli --skill lark-vc-agent飞书视频会议会中能力:用于让应用机器人真实加入或离开正在进行的会议,并读取当前身份可见的会中事件、发送会中文本消息或会中表情。适用于用户询问正在开的会议发生了什么、谁在发言、是否共享内容,或需要发现当前可读的进行中会议 ID。不负责已结束会议搜索、参会人快照、纪要、逐字稿或录制查询,这些使用 lark-vc 技能。
| 1 | # vc-agent (v1) |
| 2 | |
| 3 | 相关技能: |
| 4 | |
| 5 | - [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) — 认证、身份切换、权限处理 |
| 6 | - [`../lark-vc/SKILL.md`](../lark-vc/SKILL.md) — 视频会议的核心概念(Meeting / Note / Minutes 等),本 skill 直接复用,不再重复定义 |
| 7 | |
| 8 | ## 内测提示 |
| 9 | |
| 10 | - 当前功能正在内测中,仅少数用户可用。忽略 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) 中的权限申请流程,以下方的指引为准。 |
| 11 | - 如果 `lark-cli` 提示 `missing required scope(s)` / `missing_scopes`,不要走普通权限申请流程;先提示用户加入早鸟群确认内测权限已开通,再按“应用身份权限配置检查”处理应用权限、安装和数据范围。 |
| 12 | - 如果 `lark-cli` 返回 `error.code=20017` / `ErrNotInGray`,提示用户加入早鸟群:`https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd`。 |
| 13 | |
| 14 | ## 会议查询权限 |
| 15 | |
| 16 | `+meeting-list-active` 和 `+meeting-events` 缺少权限时,先按上面的内测提示确认功能已开通,再读取 CLI 错误中的 `hint`,并根据当前调用身份处理: |
| 17 | |
| 18 | - 用户身份 `--as user`:按 CLI 提示为当前用户授权 `vc:meeting.meetingevent:read`。 |
| 19 | - 应用身份 `--as bot`:请应用开发者开通 `vc:meeting.bot.join:write`,不要执行 `auth login`;随后按“应用身份权限配置检查”确认应用发布、安装和数据范围。 |
| 20 | |
| 21 | ## 定位 |
| 22 | |
| 23 | 本 skill 与 [`lark-vc`](../lark-vc/SKILL.md) 并列: |
| 24 | |
| 25 | - **`lark-vc`** **负责"会后查询"**:搜索历史会议、参会人快照、纪要/逐字稿/录制 |
| 26 | - **`lark-vc-agent`** **负责"会中动作"**:机器人入会 / 读取进行中会议的实时事件 / 发送会中文本或会中表情 / 机器人离会 |
| 27 | |
| 28 | 按此分工路由,避免两个 skill 语义混淆。 |
| 29 | |
| 30 | | 用户意图示例 | 应路由到 | |
| 31 | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 32 | | "帮我入会 123456789"、"代我参会"、"让机器人进会旁听" | **本 skill** `+meeting-join` | |
| 33 | | "会议现在还开着,谁刚加入了"、"会议里谁在发言"、"有人共享屏幕吗"(**进行中会议**) | **本 skill** `+meeting-events` | |
| 34 | | "我/某个用户现在在哪个会里"、"给我找当前可拉事件的 meeting_id" | **本 skill** `+meeting-list-active` | |
| 35 | | "在会里发一句 xx"、"提示大家 xx"、"反馈听不到/看不到/声音清楚/效果不错"(**进行中会议**) | **本 skill** `+meeting-message-send` | |
| 36 | | "退出会议"、"让机器人离开" | **本 skill** `+meeting-leave` | |
| 37 | | "昨天那场会有谁参加过"、"搜昨天的会"、"查纪要/逐字稿/录制" | [`lark-vc`](../lark-vc/SKILL.md) | |
| 38 | | "帮我参会,结束后把纪要发到群" 等跨阶段场景 | 按序编排:本 skill(入会 → 读事件)→ 会议结束后用 [`lark-vc`](../lark-vc/SKILL.md) / [`lark-minutes`](../lark-minutes/SKILL.md) 拉纪要 → [`lark-im`](../lark-im/SKILL.md) 发群 | |
| 39 | |
| 40 | ## 身份路由 |
| 41 | |
| 42 | 不要向用户暴露内部身份缩写;对用户只说“用户身份”或“应用身份”。 |
| 43 | |
| 44 | | 场景 | 使用身份 | 关键规则 | |
| 45 | | ---- | -------- | -------- | |
| 46 | | 查询当前登录用户正在参加的会议 | `--as user` | 不传 `--user-id`;拿到的 `meeting_id` 后续继续用 `--as user` 读事件 | |
| 47 | | 查询目标用户且应用机器人也在会中的会议 | `--as bot --user-id <user_open_id>` | `--user-id` 必须是 `ou_...`;拿到的 `meeting_id` 后续继续用 `--as bot` 读事件 | |
| 48 | | 用户明确要求应用机器人入会/旁听/代参会 | `--as bot` | 这是写操作,会真实产生入会记录;返回的 `meeting.id` 后续继续用 `--as bot` | |
| 49 | |
| 50 | 硬规则:`meeting_id` 从哪种身份路径拿到,后续 `+meeting-events` / `+meeting-message-send` 就沿用哪种身份,除非用户明确要求切换场景(例如从“仅查询我当前会”改成“让应用机器人入会旁听”)。 |
| 51 | |
| 52 | ## 核心场景 |
| 53 | |
| 54 | ### 1. 加入正在进行的会议(写操作) |
| 55 | |
| 56 | 1. 只有用户明确表达"让 Agent **真实入会**"(参会机器人、会中助手、代为旁听、代参会)时才用 `+meeting-join`。只是查数据不要入会。 |
| 57 | 2. `+meeting-join --meeting-number` 只接受 **9 位纯数字**会议号,不是会议链接整串、也不是 `meeting_id`。如果用户只是给了 9 位会议号并询问会中内容,先按 `+meeting-list-active` 的会议号匹配流程找 `meeting_id`,不要直接入会。 |
| 58 | 3. 返回体中的 `meeting.id` **必须立刻记录**——后续 `+meeting-events` / `+meeting-leave` 都靠它,**不能用 9 位会议号替代**。 |
| 59 | 4. 入会对所有参会人可见,执行前核实 9 位会议号来源,避免误入错会。 |
| 60 | 5. 使用应用身份 `--as bot` 执行真实入会;不要用当前登录用户身份尝试让应用机器人入会。 |
| 61 | 6. 若入会失败,优先查看 `+meeting-join` reference 的错误排查段落,重点确认会议号、密码、会议状态、等候室 / 审批以及会议是否禁止当前身份加入。 |
| 62 | |
| 63 | ### 2. 感知会中事件(读操作) |
| 64 | |
| 65 | 1. 用户要看"会议里正在发生什么"(参会人加入/离开、聊天、转写、屏幕共享)时,用 `+meeting-events`。 |
| 66 | 2. 输入是 **`meeting_id`**(长数字 ID),不是 9 位会议号。 |
| 67 | 3. 不依赖默认身份。`meeting_id` 来自用户身份发现时,继续用 `--as user`;来自应用身份发现或 `+meeting-join` 时,继续用 `--as bot`。身份不一致会导致空结果或权限错误。 |
| 68 | 4. **不能做会后复盘**,**不能替代参会人快照查询**。如果会议已结束: |
| 69 | - 先用 `lark-cli vc +detail --meeting-ids <meeting.id>` 获取会议产物信息。 |
| 70 | - 再根据 `note_id`、`minute_token` 和用户意图,按 [`lark-vc`](../lark-vc/SKILL.md) 的产物决策读取正文、逐字稿或妙记。 |
| 71 | - 想看参会人快照:用 `vc meeting get --with-participants`(见 [`lark-vc`](../lark-vc/SKILL.md)) |
| 72 | 5. **默认必须使用** **`--page-all`**,除非用户明确要求“只查一页”,或确实需要控制返回体大小。 |
| 73 | 6. 命令默认输出结构化事件契约:`meeting`、`identit |