From 1ff071556d65e112da08f92ed02fbe265f206aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=B8=AF?= Date: Fri, 12 Jun 2026 11:15:16 +0800 Subject: [PATCH] fix: optimize calendar,vc,minute skills --- skills/lark-calendar/SKILL.md | 4 + .../references/lark-calendar-meeting.md | 66 ++++++++++++++ .../references/lark-calendar-search-event.md | 79 +++++++++++++++++ skills/lark-minutes/SKILL.md | 48 +++++------ .../references/lark-minutes-detail.md | 85 +++++++++++++++++++ .../references/lark-minutes-download.md | 10 +-- .../references/lark-minutes-search.md | 10 +-- .../references/lark-minutes-upload.md | 12 +-- skills/lark-note/SKILL.md | 5 ++ skills/lark-vc-agent/SKILL.md | 6 +- .../lark-vc-agent-meeting-events.md | 8 +- .../references/lark-vc-agent-meeting-join.md | 12 ++- .../references/lark-vc-agent-meeting-leave.md | 14 ++- skills/lark-vc/SKILL.md | 13 +-- skills/lark-vc/references/lark-vc-detail.md | 71 ++++++++++++++++ .../lark-vc/references/lark-vc-recording.md | 9 +- skills/lark-vc/references/lark-vc-search.md | 10 +-- .../references/vc-domain-boundaries.md | 27 ++++-- skills/lark-workflow-meeting-summary/SKILL.md | 21 +++-- 19 files changed, 427 insertions(+), 83 deletions(-) create mode 100644 skills/lark-calendar/references/lark-calendar-meeting.md create mode 100644 skills/lark-calendar/references/lark-calendar-search-event.md create mode 100644 skills/lark-minutes/references/lark-minutes-detail.md create mode 100644 skills/lark-vc/references/lark-vc-detail.md diff --git a/skills/lark-calendar/SKILL.md b/skills/lark-calendar/SKILL.md index 08e2c5f5f..7541c5339 100644 --- a/skills/lark-calendar/SKILL.md +++ b/skills/lark-calendar/SKILL.md @@ -31,6 +31,8 @@ lark-cli calendar +agenda --as user | Shortcut | 说明 | |----------|------| | [`+agenda`](references/lark-calendar-agenda.md) | 查看日程安排(默认今天) | +| [`+search-event`](references/lark-calendar-search-event.md) | 按关键词、时间范围和参会人搜索日程 | +| [`+meeting`](references/lark-calendar-meeting.md) | 通过日程事件 ID 获取关联的视频会议信息(meeting_id、meeting_note) | | [`+create`](references/lark-calendar-create.md) | 创建日程并邀请参会人(ISO 8601 时间) | | [`+update`](references/lark-calendar-update.md) | 更新既有日程字段,或独立增量添加/移除参会人和会议室 | | [`+freebusy`](references/lark-calendar-freebusy.md) | 查询用户主日历的忙闲信息和 RSVP 状态 | @@ -64,6 +66,8 @@ lark-cli calendar +agenda --as user |----------|--------| | 查询过去的会议("昨天的会议""上周的会") | [`../lark-vc/SKILL.md`](../lark-vc/SKILL.md)(会议数据含即时会议,仅查日程会遗漏) | | 查询日历/日程或未来时间的会议 | 本 skill | +| 按关键词搜索日程 | 本 skill(`+search-event`) | +| 从日程获取关联的会议 ID 或纪要文档 | 本 skill(`+meeting`) | | 预约/改约日程、添加/移除参会人、添加/更换会议室、调整时间 | 先判断新建 vs 编辑,再进入 [schedule-meeting 工作流](references/lark-calendar-schedule-meeting.md) | ## 任务类型分流 diff --git a/skills/lark-calendar/references/lark-calendar-meeting.md b/skills/lark-calendar/references/lark-calendar-meeting.md new file mode 100644 index 000000000..c3c94ea05 --- /dev/null +++ b/skills/lark-calendar/references/lark-calendar-meeting.md @@ -0,0 +1,66 @@ + +# calendar +meeting + +> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。 + +通过日程 ID(event_id) 获取关联的视频会议信息,包括会议 ID(meeting_id) 和绑定的会议纪要文档(meeting_note)。只读操作。 + +本 skill 对应 shortcut:`lark-cli calendar +meeting`。 + +## 命令 + +```bash +# 查询单个日程的会议信息 +lark-cli calendar +meeting --event-ids + +# 指定日历 ID(默认使用主日历) +lark-cli calendar +meeting --event-ids --calendar-id +``` + +## 参数 + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--event-ids ` | 是 | 日程事件实例 ID,逗号分隔支持批量,最多 50 个 | +| `--calendar-id ` | 否 | 日历 ID,默认使用主日历("primary") | + +## 输出结果 + +返回 `meetings` 数组,每条记录包含: + +| 字段 | 说明 | +|------|------| +| `event_id` | 日程 ID | +| `meeting_id` | 关联的视频会议 ID(如有)。 | +| `meeting_note` | 关联的会议纪要文档 Token(如有)。 | + +## 典型场景 + +### 场景 1:从日程获取会议信息 + +```bash +# 1. 查看日程安排,获取 event_id +lark-cli calendar +agenda --start 2026-06-10 --end 2026-06-11 + +# 2. 获取日程关联的会议信息 +lark-cli calendar +meeting --event-ids + +# 3. 用 meeting_id 进一步获取会议详情 +lark-cli vc +detail --meeting-ids +``` + +## 与其他命令的关系 + +| 需求 | 推荐命令 | +|------|---------| +| 从日程获取会议 ID 和纪要文档 | `calendar +meeting` | +| 通过会议 ID 获取 note_id 和 minute_token | `vc +detail --meeting-ids` | +| 通过 note_id 获取 note_doc_token / verbatim_doc_token / shared_doc_tokens | `note +detail --note-id` | +| 读取纪要 / 逐字稿 / 共享文档正文 | `docs +fetch --api-version v2 --doc ` | +| 获取妙记产物(需手动指定 `--summary` / `--todo` / `--chapter` / `--keyword` / `--transcript`,不传不返回) | `minutes +detail --minute-tokens` | + +## 参考 + +- [lark-calendar](../SKILL.md) — 日历全部命令 +- [lark-vc](../../lark-vc/SKILL.md) — 视频会议(进一步获取会议详情) +- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-calendar/references/lark-calendar-search-event.md b/skills/lark-calendar/references/lark-calendar-search-event.md new file mode 100644 index 000000000..46b845fc1 --- /dev/null +++ b/skills/lark-calendar/references/lark-calendar-search-event.md @@ -0,0 +1,79 @@ + +# calendar +search-event + +> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。 + +按关键词、时间范围和参会人搜索日历日程。只读操作。 + +本 skill 对应 shortcut:`lark-cli calendar +search-event`。 + +## 命令 + +```bash +# 按关键词搜索 +lark-cli calendar +search-event --query "周会" + +# 按时间范围过滤 +lark-cli calendar +search-event --time-range "2026-04-20~2026-04-27" + +# 按参会人过滤(支持用户 ou_、群聊 oc_、会议室 omm_) +lark-cli calendar +search-event --attendee-ids "ou_user1,oc_chat1,omm_room1" + +# 组合搜索 +lark-cli calendar +search-event --query "周会" --time-range "2026-04-20~2026-04-27" --attendee-ids "ou_user1" + +# 指定日历 ID(默认使用主日历) +lark-cli calendar +search-event --query "周会" --calendar-id +``` + +## 参数 + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--calendar-id ` | 否 | 日历 ID,默认使用主日历 | +| `--query ` | 否 | 搜索关键词。默认为空 | +| `--attendee-ids ` | 否 | 参会人 ID,逗号分隔。支持用户(`ou_`)、群聊(`oc_`)、会议室(`omm_`)前缀自动识别 | +| `--time-range ` | 否 | 搜索时间范围(ISO 8601 时间),格式 `start~end`(如 `2026-04-20T00:00:00+08:00~2026-04-27T23:59:59+08:00`) | +| `--page-token ` | 否 | 分页 Token,获取下一页 | +| `--page-size ` | 否 | 每页条数,1-30,默认 20 | + +> 开始时间必须早于结束时间,否则校验失败。 + +## 输出结果 + +| 字段 | 说明 | +|------|------| +| `calendar_id` | 搜索的日历 ID | +| `items` | 日程列表 | +| `has_more` | 是否有更多结果 | +| `page_token` | 下一页 Token | + +### items 中的字段 + +| 字段 | 说明 | +|------|------| +| `event_id` | 日程 ID | +| `summary` | 日程主题 | +| `start` | 开始时间 | +| `end` | 结束时间 | +| `is_all_day` | 是否全天日程 | +| `app_link` | 日程应用链接 | + +> 注意:如需日程详情,请使用 `calendar events get`。 + +## 分页 + +- 使用 `page_size` 控制每页条数(1-30),默认 20。 +- 当 `has_more` 为 `true` 时,使用返回的 `page_token` 获取下一页。 +- 必须持续翻页直到 `has_more` 为 `false`,确保不遗漏结果。 + +## 提示 + +- 搜索已结束的会议应优先使用 `vc +search`,因为即时会议不会出现在日历中。 + +## 参考 + +- [lark-calendar](../SKILL.md) — 日历全部命令 +- [lark-calendar-meeting](lark-calendar-meeting.md) — 从日程获取会议信息 +- [lark-vc](../../lark-vc/SKILL.md) — 搜索历史会议 +- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-minutes/SKILL.md b/skills/lark-minutes/SKILL.md index ab8779805..fc09ca504 100644 --- a/skills/lark-minutes/SKILL.md +++ b/skills/lark-minutes/SKILL.md @@ -27,6 +27,7 @@ metadata: | Shortcut | 说明 | |----------|------| | [`+search`](references/lark-minutes-search.md) | 按关键词、所有者、参与者、时间范围搜索妙记 | +| [`+detail`](references/lark-minutes-detail.md) | 查询妙记详情,按需获取 AI 产物(总结、待办、章节、逐字稿、关键词) | | [`+download`](references/lark-minutes-download.md) | 下载妙记音视频媒体文件 | | [`+upload`](references/lark-minutes-upload.md) | 上传 file_token 生成妙记 | | [`+update`](references/lark-minutes-update.md) | 更新妙记标题 | @@ -44,9 +45,9 @@ metadata: | "把音视频转妙记/上传文件生成妙记" | 本 skill(`+upload`) | | "重命名妙记/改妙记标题" | 本 skill(`+update`) | | "替换说话人/把 A 的发言改成 B" | 本 skill(`+speaker-replace`) | -| "这个妙记的逐字稿/总结/待办/章节" | [lark-vc](../lark-vc/SKILL.md)(`vc +notes --minute-tokens`) | +| "这个妙记的逐字稿/总结/待办/章节(需保存逐字稿到文件)" | 本 skill(`+detail --minute-tokens --transcript`) | | "xx 纪要的逐字稿/原始记录/谁说了什么" 且没有 `minute_token` / 妙记 URL / 本地音视频文件 | 不走本 skill;路由到 [lark-drive](../lark-drive/SKILL.md) / [lark-doc](../lark-doc/SKILL.md),必要时再到 [lark-note](../lark-note/SKILL.md) | -| "把音视频文件转成纪要/逐字稿/文字稿" | 先本 skill(`+upload`),再 [lark-vc](../lark-vc/SKILL.md)(`vc +notes --minute-tokens`) | +| "把音视频文件转成纪要/逐字稿/文字稿" | 先本 skill(`+upload`),再本 skill(`minutes +detail --minute-tokens`) | | 用户同时提到"会议/开会"和"妙记" | 先 [lark-vc](../lark-vc/SKILL.md)(`+search` → `+recording`),再本 skill | ## 核心概念 @@ -77,26 +78,28 @@ metadata: ### 3. 下载妙记音视频文件 1. 下载妙记音视频文件到本地,或获取有效期 1 天的下载链接。详见 [minutes +download](references/lark-minutes-download.md)。 -2. `+download` 只负责音视频媒体文件。用户需要逐字稿、总结、待办、章节等纪要内容时,请使用 [vc +notes --minute-tokens](../lark-vc/references/lark-vc-notes.md)。 +2. `+download` 只负责音视频媒体文件。用户需要逐字稿、总结、待办、章节等纪要内容时,请使用 `minutes +detail`。 3. 用户只想拿可分享的下载地址时,使用 `--url-only`;用户要落地到本地文件时,直接下载。 -4. 未显式指定路径时,文件默认落到 `./minutes/{minute_token}/`,与 `vc +notes` 的逐字稿共享同一目录便于聚合。 +4. 未显式指定路径时,文件默认落到 `./minutes/{minute_token}/`,与 `minutes +detail` 的逐字稿共享同一目录便于聚合。 -> **注意**:`+download` 只负责音视频媒体文件。如果用户需要的是逐字稿、总结、待办、章节等纪要内容,请使用 [vc +notes --minute-tokens](../lark-vc/references/lark-vc-notes.md)。 +> **注意**:`+download` 只负责音视频媒体文件。如果用户需要的是逐字稿、总结、待办、章节等纪要内容,请使用 `minutes +detail`。 ### 4. 读取妙记的逐字稿、总结、待办、章节(只读) -1. 当用户要**查看 / 读取**"这个妙记的逐字稿""总结""待办""章节"时,使用 [vc +notes --minute-tokens](../lark-vc/references/lark-vc-notes.md)。 -2. 如果当前上下文中已有 `minute_token`,可直接传给 `vc +notes`;如果只有妙记 URL,先提取 `minute_token`。 -3. 如果用户给的是**本地音视频文件**,但目标是"转成纪要""转成逐字稿""转成文字稿""转成撰写文字",应先按下文第 5 节上传文件生成妙记,再把返回的 `minute_url` 提取成 `minute_token`,继续调用 `vc +notes --minute-tokens`。 -4. 用户如果直接给出本地文件名或路径,并要求"转逐字稿""转文字稿""整理成撰写文字",这也是本 skill 的明确触发信号。 +1. 当用户说"这个妙记的逐字稿""总结""待办""章节"时,请使用本 skill 的 `+detail` 命令。 +2. `minutes +detail` **必须显式指定**要获取的产物 flag(`--summary` / `--todo` / `--chapter` / `--keyword` / `--transcript`),未传任何产物 flag 时只返回基础信息(如 `title`),不会返回任何 AI 产物内容。请求的产物即使为空也返回空值字段,便于程序化处理。 +3. 如果当前上下文中已有 `minute_token`,可直接传给 `minutes +detail`;如果只有妙记 URL,先提取 `minute_token`。 +4. 如果用户给的是**本地音视频文件**,但目标是"转成纪要""转成逐字稿""转成文字稿""转成撰写文字",也支持;此时应先按下文第 5 节上传文件生成妙记,再把返回的 `minute_url` 提取成 `minute_token`,继续调用 `minutes +detail --minute-tokens`。 +5. 用户如果直接给出本地文件名或路径,并要求"转逐字稿""转文字稿""整理成撰写文字",这也是本 skill 的明确触发信号。 ```bash -# 通过 minute_token 获取纪要产物(逐字稿、总结、待办、章节) -lark-cli vc +notes --minute-tokens -``` +# 通过 minute_token 获取指定产物(必须显式列出要拿的 flag) +lark-cli minutes +detail --minute-tokens --summary --todo --chapter -> **跨 skill 路由**:逐字稿、AI 总结、待办、章节等纪要内容由 [lark-vc](../lark-vc/SKILL.md) 的 `+notes` 命令提供 -> **读 vs 写**:`vc +notes` 只负责**读取** AI 产物。用户要**新建 / 修改 / 删除**妙记内的 AI 待办或替换 AI 总结,见下文第 6 节,**不要**走 [lark-task](../lark-task/SKILL.md)。 +# 仅获取逐字稿并保存到文件 +lark-cli minutes +detail --minute-tokens --transcript +``` +> 用户要**新建 / 修改 / 删除**妙记内的 AI 待办或替换 AI 总结,见下文第 6 节,**不要**走 [lark-task](../lark-task/SKILL.md)。 ### 5. 上传音视频文件生成妙记(并可继续获取纪要 / 逐字稿) @@ -105,11 +108,11 @@ lark-cli vc +notes --minute-tokens 3. **处理流程**: - **上传音视频获取 `file_token`**:使用 [`lark-cli drive +upload`](../lark-drive/references/lark-drive-upload.md) 上传本地文件到云空间(云盘/云存储)并获取 `file_token`。 - **生成妙记**:获取到 `file_token` 后,调用 [`lark-cli minutes +upload`](references/lark-minutes-upload.md) 将文件转换为妙记并获取 `minute_url` 链接。 - - **继续获取纪要 / 逐字稿(按需)**:如果用户目标不是只要妙记链接,而是要纪要、逐字稿、总结、待办或章节,则从 `minute_url` 中提取 `minute_token`,再调用 [`lark-cli vc +notes --minute-tokens`](../lark-vc/references/lark-vc-notes.md) 获取对应产物。 + - **继续获取纪要 / 逐字稿(按需)**:如果用户目标不是只要妙记链接,而是要纪要、逐字稿、总结、待办或章节,则从 `minute_url` 中提取 `minute_token`,再调用 [`lark-cli minutes +detail --minute-tokens`](references/lark-minutes-detail.md) 获取对应产物。 > **注意**:必须先获取飞书云空间(云盘/云存储)的 `file_token` 才能进行转换。 > -> **不要误走本地转写工具**:当用户目标是把本地音视频文件转成纪要、逐字稿、文字稿、撰写文字时,不要改用 `ffmpeg`、`whisper` 或其他本地 ASR/转码命令;标准路径就是 `drive +upload -> minutes +upload -> vc +notes --minute-tokens`。 +> **不要误走本地转写工具**:当用户目标是把本地音视频文件转成纪要、逐字稿、文字稿、撰写文字时,不要改用 `ffmpeg`、`whisper` 或其他本地 ASR/转码命令;标准路径就是 `drive +upload -> minutes +upload -> minutes +detail --minute-tokens`。 ### 6. 编辑妙记的 AI 待办与 AI 总结(写入) @@ -141,11 +144,11 @@ lark-cli minutes +todo --minute-token --as user --todos '[ ]' ``` -**更新 / 删除前**:先用 `vc +notes --minute-tokens ` 读取 `todos[].todo_id`(按 `content` 匹配目标条目;列表顺序不保证稳定,**不要**用"第 2 条"代替 `todo_id`)。 +**更新 / 删除前**:先用 `minutes +detail --minute-tokens --todo` 读取 `todos[].todo_id`(按 `content` 匹配目标条目;列表顺序不保证稳定,**不要**用"第 2 条"代替 `todo_id`)。 **无编辑权限**:若 CLI 返回 `error.type=no_edit_permission`,表示对**这条妙记**没有编辑权,应请所有者授权;**不要**误走 `auth login --scope`。 -**逐字稿关键词替换无命中**:`minutes +word-replace` 时,若 CLI 返回 `error.type=words_not_found`,表示传入的 `source_word` 在该妙记逐字稿中**一个都没匹配到**,未做任何替换。这是**参数问题不是权限问题**:先用 `vc +notes --minute-tokens ` 读取当前逐字稿,核对 `source_word` 的精确写法与大小写后重试。 +**逐字稿关键词替换无命中**:`minutes +word-replace` 时,若 CLI 返回 `error.type=words_not_found`,表示传入的 `source_word` 在该妙记逐字稿中**一个都没匹配到**,未做任何替换。这是**参数问题不是权限问题**:先用 `minutes +detail --minute-tokens --transcript` 读取当前逐字稿,核对 `source_word` 的精确写法与大小写后重试。 **替换 AI 总结全文**:见 [minutes +summary](references/lark-minutes-summary.md)。 @@ -166,17 +169,15 @@ Minutes (妙记) ← minute_token 标识 > - 用户说"妙记列表 / 搜索妙记 / 某个关键词的妙记" → `minutes +search` > - 用户只是想看"我的妙记 / 某段时间内的妙记 / 妙记列表",不要先走 [lark-vc](../lark-vc/SKILL.md),而应直接使用本 skill > - 用户如果同时提到"会议 / 会 / 开会 / 某场会",即使也提到了"妙记",也应优先走 [lark-vc](../lark-vc/SKILL.md) 先定位会议,再通过 [vc +recording](../lark-vc/references/lark-vc-recording.md) 获取 `minute_token` -> - 用户如果要的是妙记基础信息,拿到 `minute_token` 后用 `minutes minutes get`;用户如果要**读取**逐字稿、文字稿、撰写文字、总结、待办、章节,再走 `vc +notes --minute-tokens` +> - 用户如果要的是妙记基础信息,拿到 `minute_token` 后用 `minutes minutes get`;用户如果要的是逐字稿、文字稿、撰写文字、总结、待办、章节,走 `minutes +detail` > - “我的妙记”“参与的妙记”等自然语言映射细则,以 [minutes +search](references/lark-minutes-search.md) 为准 > - 结果有多页时,使用 `page_token` 持续翻页,直到确认没有更多结果 > - `minutes +search` 单次最多返回 `200` 条;结果总数没有固定上限 > - 用户说"这个妙记的标题 / 时长 / 封面 / 链接" → `minutes minutes get` > - 用户说"下载这个妙记的视频 / 音频 / 媒体文件" → `minutes +download` -> - 用户要**读取**"这个妙记的逐字稿 / 文字稿 / 撰写文字 / 总结 / 待办 / 章节" → [vc +notes --minute-tokens](../lark-vc/references/lark-vc-notes.md) -> - 用户要在**妙记内新建 / 修改 / 删除 AI 待办**(含「妙记里加待办」「任务1 已完成」等)→ [`minutes +todo`](references/lark-minutes-todo.md),**禁止**走 lark-task -> - 用户要**替换妙记 AI 总结全文** → [`minutes +summary`](references/lark-minutes-summary.md) +> - 用户说"这个妙记的逐字稿 / 文字稿 / 撰写文字 / 总结 / 待办 / 章节" → 使用 [vc +notes --minute-tokens](../lark-vc/references/lark-vc-notes.md) > - 用户说"通过文件生成妙记 / 把音视频转妙记" → 先上传获取 `file_token`,然后使用 `minutes +upload` -> - 用户说"把音视频文件转成纪要 / 逐字稿 / 文字稿 / 撰写文字 / 总结 / 待办 / 章节" → 先上传获取 `file_token`,调用 `minutes +upload` 生成 `minute_url`,再提取 `minute_token` 走 `vc +notes --minute-tokens` +> - 用户说"把音视频文件转成纪要 / 逐字稿 / 文字稿 / 撰写文字 / 总结 / 待办 / 章节" → 先上传获取 `file_token`,调用 `minutes +upload` 生成 `minute_url`,再提取 `minute_token` 走 `minutes +detail --minute-tokens` > - 用户说"重命名妙记 / 改妙记标题 / 修改妙记名字" → `minutes +update` > - 用户说"替换说话人 / 把 A 的发言改成 B / 重新归属发言人" → `minutes +speaker-replace` > - 用户说"批量替换逐字稿关键词" → `minutes +word-replace` @@ -223,7 +224,6 @@ lark-cli minutes [flags] ## 不在本 skill 范围 -- 已有 `minute_token` 的纪要/逐字稿/总结/待办/章节内容获取 → [lark-vc](../lark-vc/SKILL.md)(`vc +notes --minute-tokens`) - 只有自然语言纪要标题的逐字稿查询 → 文档搜索 / Docx 正文读取;有显式 `vc-node-id` 才进入 [lark-note](../lark-note/SKILL.md) - 搜索历史会议记录 → [lark-vc](../lark-vc/SKILL.md) - 查询未来的会议日程 → [lark-calendar](../lark-calendar/SKILL.md) diff --git a/skills/lark-minutes/references/lark-minutes-detail.md b/skills/lark-minutes/references/lark-minutes-detail.md new file mode 100644 index 000000000..fbd1d81cf --- /dev/null +++ b/skills/lark-minutes/references/lark-minutes-detail.md @@ -0,0 +1,85 @@ + +# minutes +detail + +> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。 + +通过妙记 Token 查询妙记详情,支持按需获取 AI 产物(总结、待办、章节、逐字稿、关键词)。只读操作。 + +> **重要约束**:必须**显式指定**要获取哪些产物的 flag(`--summary` / `--todo` / `--chapter` / `--keyword` / `--transcript`),未传任何产物 flag 时只返回基础信息(如 `title`),不会返回任何 AI 产物内容。一次性获取所有产物可使用:`--summary --todo --chapter --keyword --transcript`。 + +本 skill 对应 shortcut:`lark-cli minutes +detail`。 + +## 命令 + +```bash +# 查询妙记基础信息(标题) +lark-cli minutes +detail --minute-tokens obcxxxxxxxxxx + +# 批量查询(逗号分隔,最多 50 个) +lark-cli minutes +detail --minute-tokens obcxxxxxxxxxx,obcyyyyyyyyyy + +# 按需获取 AI 产物 +lark-cli minutes +detail --minute-tokens obcxxxxxxxxxx --summary --todo --chapter --transcript --keyword + +# 逐字稿输出到文件(默认 ./minutes/{minute_token}/transcript.txt) +lark-cli minutes +detail --minute-tokens obcxxxxxxxxxx --transcript + +# 覆盖已有逐字稿文件 +lark-cli minutes +detail --minute-tokens obcxxxxxxxxxx --transcript --overwrite +``` + +## 参数 + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--minute-tokens ` | 是 | 妙记 Token,逗号分隔支持批量,最多 50 个。仅支持小写字母和数字 | +| `--summary` | 否 | 包含 AI 总结 | +| `--todo` | 否 | 包含待办事项 | +| `--chapter` | 否 | 包含章节纪要 | +| `--transcript` | 否 | 包含逐字稿(保存到本地文件) | +| `--keyword` | 否 | 包含推荐关键词 | +| `--overwrite` | 否 | 覆盖已存在的逐字稿文件(仅 `--transcript` 有效) | +| `--dry-run` | 否 | 预览 API 调用,不执行 | + +## 输出结果 + +返回 `minutes` 数组,每条记录包含: + +| 字段 | 说明 | +|------|------| +| `minute_token` | 妙记 Token | +| `title` | 妙记标题(如有) | +| `artifacts` | AI 产物(仅指定了 `--summary`/`--todo`/`--chapter`/`--transcript`/`--keyword` 时返回) | + +### artifacts 字段 + +请求的 AI 产物**始终返回对应字段**: + +| 字段 | 类型 | 说明 | +|------|------|------| +| `artifacts.summary` | string | AI 总结。为空时返回 `""` | +| `artifacts.todos` | array | 待办事项列表。为空时返回 `[]` | +| `artifacts.chapters` | array | 章节列表。为空时返回 `[]` | +| `artifacts.keywords` | array | 关键词列表。为空时返回 `[]` | +| `artifacts.transcript_file` | string | 逐字稿本地文件路径。为空时返回 `""` | + +> 未请求的产物不会出现在 `artifacts` 中。例如只传了 `--summary`,则 `artifacts` 中只有 `summary` 字段。 + +### 逐字稿文件路径 + +指定 `--transcript` 时,逐字稿默认保存到 `./minutes/{minute_token}/transcript.txt`,与 `minutes +download` 的默认落点保持一致,便于 Agent 聚合同一妙记的所有产物。 + +## 如何获取输入参数 + +| 输入参数 | 获取方式 | +|---------|---------| +| `minute_token` | 从妙记 URL 中提取,如 `https://sample.feishu.cn/minutes/obcxxx` → `obcxxx` | +| `minute_token` | `vc +detail --meeting-ids` → 结果中的 `minute_token` 字段 | +| `minute_token` | `vc +recording --meeting-ids` → 结果中的 `minute_token` 字段 | +| `minute_token` | `minutes +search` → 结果中的 `minute_token` 字段 | + +## 参考 + +- [lark-minutes](../SKILL.md) — 妙记全部命令 +- [lark-vc](../../lark-vc/SKILL.md) — 视频会议(获取 minute_token) +- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-minutes/references/lark-minutes-download.md b/skills/lark-minutes/references/lark-minutes-download.md index fd70bc467..b2bac61f7 100644 --- a/skills/lark-minutes/references/lark-minutes-download.md +++ b/skills/lark-minutes/references/lark-minutes-download.md @@ -43,7 +43,7 @@ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --dry-run | `--url-only` | 否 | 仅返回下载链接,不下载文件 | | `--dry-run` | 否 | 预览 API 调用,不执行 | -> **默认落点**:未指定 `--output` / `--output-dir` 时,文件落到 `./minutes/{minute_token}/`。文件名沿用服务端 Content-Disposition / Content-Type 推断,Agent 可从 `saved_path` 字段读取实际路径。同一 minute_token 的录像和 `vc +notes` 的逐字稿默认会落在**同一目录**下,方便聚合。 +> **默认落点**:未指定 `--output` / `--output-dir` 时,文件落到 `./minutes/{minute_token}/`。文件名沿用服务端 Content-Disposition / Content-Type 推断,Agent 可从 `saved_path` 字段读取实际路径。同一 minute_token 的录像和 `minutes +detail` 的逐字稿默认会落在**同一目录**下,方便聚合。 ## 核心约束 @@ -85,7 +85,7 @@ API 限流 5 次/秒,批量下载时需注意控制频率。 | 字段 | 说明 | |------|------| | `minute_token` | 妙记 Token(用于 Agent 索引) | -| `artifact_type` | 固定为 `"recording"`(与 `vc +notes` 的 `"transcript"` 区分) | +| `artifact_type` | 固定为 `"recording"`(与 `minutes +detail` 的 `"transcript"` 区分) | | `saved_path` | 文件保存的本地路径(绝对路径) | | `size_bytes` | 文件大小(字节) | @@ -125,13 +125,13 @@ API 限流 5 次/秒,批量下载时需注意控制频率。 ## 提示 - 音视频文件可能较大,下载无固定超时限制(由用户 Ctrl+C 控制取消)。 -- 默认落点 `./minutes/{minute_token}/` 与 `vc +notes` 的逐字稿共享同一目录,方便 Agent 聚合同一会议的所有产物。 +- 默认落点 `./minutes/{minute_token}/` 与 `minutes +detail` 的逐字稿共享同一目录,方便 Agent 聚合同一会议的所有产物。 - 单 token 模式下 `--output` 若传入已存在目录(如 `--output ./existing-dir`),等价于 `--output-dir`,文件落入该目录(cp 语义)。 - 批量模式下 `--output` 不接受已存在的文件路径(会报错),应改用 `--output-dir`。 -- 如需获取妙记的纪要内容(逐字稿、AI 总结等),请使用 [vc +notes](../../lark-vc/references/lark-vc-notes.md)。 +- 如需获取妙记的纪要内容(逐字稿、AI 总结等),请使用 [minutes +detail](lark-minutes-detail.md)。 ## 参考 - [lark-minutes](../SKILL.md) — 妙记全部命令 -- [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 会议纪要查询 +- [lark-minutes-detail](lark-minutes-detail.md) — 妙记详情与 AI 产物查询 - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-minutes/references/lark-minutes-search.md b/skills/lark-minutes/references/lark-minutes-search.md index cec6099ee..19011da2e 100644 --- a/skills/lark-minutes/references/lark-minutes-search.md +++ b/skills/lark-minutes/references/lark-minutes-search.md @@ -129,8 +129,6 @@ CLI 会先按输入的本地日历日语义解析,再标准化为 RFC3339 时 2. `vc +recording` 获取 `minute_token` 3. `minutes minutes get` 查询妙记基础信息 -不要为了查"妙记信息"直接走 `vc +notes --meeting-ids`。`vc +notes` 只适用于逐字稿、总结、待办、章节等纪要内容。 -
## 时间格式 @@ -173,8 +171,8 @@ lark-cli minutes +search --query "预算复盘" --page-size 20 --page-token ' + lark-cli minutes +detail --minute-tokens --transcript ``` - - `vc +notes --minute-tokens` 会返回纪要文档、逐字稿文档,以及 AI 内置产物(总结、待办、章节);必要时还会把逐字稿落地到本地文件。 + - `minutes +detail --minute-tokens` 会返回纪要文档、逐字稿文档,以及 AI 内置产物(总结、待办、章节);必要时还会把逐字稿落地到本地文件。 > **异步生成提示**:API 会立即返回 `minute_url`,但妙记可能仍在异步生成中,您可以直接通过该妙记链接查看当前的处理状态和转写结果。 @@ -48,7 +48,7 @@ lark-cli minutes +upload --file-token boxcnxxxxxxxxxxxxxxxx # 通过 minute_token 继续获取纪要 / 逐字稿 / 文字稿 / AI 产物 -lark-cli vc +notes --minute-tokens obcnxxxxxxxxxxxxxxxx +lark-cli minutes +detail --minute-tokens obcnxxxxxxxxxxxxxxxx ``` ## 参数 @@ -81,9 +81,9 @@ lark-cli vc +notes --minute-tokens obcnxxxxxxxxxxxxxxxx 1. 使用 `lark-cli drive +upload --file ` 上传本地音视频文件到云空间(云盘/云存储) 2. 从返回结果中取出 `file_token` 3. 调用 `lark-cli minutes +upload --file-token ` 生成妙记 -4. 如果目标是纪要、逐字稿、文字稿、撰写文字、总结、待办或章节,再从 `minute_url` 提取 `minute_token`,继续调用 `lark-cli vc +notes --minute-tokens ` +4. 如果目标是纪要、逐字稿、文字稿、撰写文字、总结、待办或章节,再从 `minute_url` 提取 `minute_token`,继续调用 `lark-cli minutes +detail --minute-tokens ` -> **边界说明**:`minutes +upload` 本身只负责把文件转成妙记并返回 `minute_url`。纪要内容、逐字稿、文字稿、撰写文字、总结、待办、章节属于后续产物获取,应由 [vc +notes](../../lark-vc/references/lark-vc-notes.md) 承接。 +> **边界说明**:`minutes +upload` 本身只负责把文件转成妙记并返回 `minute_url`。纪要内容、逐字稿、文字稿、撰写文字、总结、待办、章节属于后续产物获取,应由 [minutes +detail](lark-minutes-detail.md) 承接。 ## 输出结果示例 diff --git a/skills/lark-note/SKILL.md b/skills/lark-note/SKILL.md index b95a3ad4c..0f57d3e7d 100644 --- a/skills/lark-note/SKILL.md +++ b/skills/lark-note/SKILL.md @@ -12,6 +12,11 @@ metadata: 身份:仅使用 `--as user`。使用前阅读 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)。 +**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-vc/references/vc-domain-boundaries.md`](../lark-vc/references/vc-domain-boundaries.md)**,不读将导致命令使用、会议产物决策、领域边界职责判断错误: +> 1. 了解日历 & VC、会议产物 & 文档的关联关系和职责划分 +> 2. 了解会议产物(妙记和纪要)之间的关联关系,例如:**妙记和纪要产生条件相互独立** +> 3. 了解不同会议产物的组成部分,以便根据需求决策使用哪种产物的数据 + Note 域只接受显式 `note_id`:用户直接提供,或 `docs +fetch --api-version v2` 返回的 `` 中的 `vc-node-id`。不要从 `doc_token`、标题、正文或 backlink 反推 `note_id`。 ## 命令路由 diff --git a/skills/lark-vc-agent/SKILL.md b/skills/lark-vc-agent/SKILL.md index 6d54da3a1..b402eb9e9 100644 --- a/skills/lark-vc-agent/SKILL.md +++ b/skills/lark-vc-agent/SKILL.md @@ -55,8 +55,8 @@ metadata: 2. 输入是 **`meeting_id`**(长数字 ID),不是 9 位会议号。 3. Bot 必须**真实参会过**(先 `+meeting-join`),否则事件流通常不可见。具体的状态边界、结束后宽限窗口与错误码(如 `10005 / 20001 / 20002`)请查看 `+meeting-events` reference。 4. **不能做会后复盘**,**不能替代参会人快照查询**。如果会议已结束: - - 想拿纪要文档或逐字稿文档 token:用 `lark-cli vc +notes --meeting-ids ` - - 想拿 AI 产物(summary / todos / chapters)或导出逐字稿文件:先用 `lark-cli vc +recording --meeting-ids ` 拿 `minute_token`,再用 `lark-cli vc +notes --minute-tokens ` + - **优先(拿纪要类文档:智能纪要 / 逐字稿 / 共享文档)**:先 `lark-cli vc +detail --meeting-ids ` 拿 `note_id` 和 `minute_token`;再 `lark-cli note +detail --note-id ` 拿 `note_doc_token`(智能纪要)/ `verbatim_doc_token`(逐字稿)。 + - **备选(拿妙记 AI 产物)**:用上一步的 `minute_token` 调 `lark-cli minutes +detail --minute-tokens --summary --todo --chapter --keyword --transcript`(**必须显式指定产物 flag,不传则不返回任何产物内容**)。 - 想看参会人快照:用 `vc meeting get --with-participants`(见 [`lark-vc`](../lark-vc/SKILL.md)) 5. **默认必须使用** **`--page-all`**,除非用户明确要求“只查一页”,或确实需要控制返回体大小。 6. 输出格式默认优先 `--format pretty`(时间线更易读);只有在需要完整保留原始消息流与结构化字段时,才使用 `--format json`。 @@ -84,7 +84,7 @@ MID=$(echo "$JOIN" | jq -r '.data.meeting.id') lark-cli vc +meeting-events --meeting-id "$MID" --page-all --format pretty # 3. 会后可选:取纪要 / 逐字稿(跨到 lark-vc) -lark-cli vc +notes --meeting-ids "$MID" +lark-cli vc +detail --meeting-ids "$MID" ``` 如果用户随后明确要求退出 / 离开 / 结束参会,再单独调用 `lark-cli vc +meeting-leave --meeting-id "$MID"`。 diff --git a/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md b/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md index 273c91e9f..4450ef2a3 100644 --- a/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +++ b/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md @@ -222,7 +222,7 @@ lark-cli vc +meeting-events \ |---------|---------|---------| | `--meeting-id is required` | 未传入 `--meeting-id` | 传入长数字 `meeting.id` | | `10005 bot is not in meeting` | bot 从未真实入会该会议;或会议已结束但 bot 从未在会中出现过 | 先 `+meeting-join --meeting-number <9位号>` 真实入会再查;如果会议已经结束且当时 bot 没进过会,本接口也拉不到数据。**如果只是想看参会人快照,改用 `lark-cli vc meeting get --params '{"meeting_id":""}' --with-participants`**(不依赖 bot 身份参会) | -| `20001 meeting_status_MEETING_END` | 会议已结束且已超出后端允许的 5 分钟宽限窗口 | 本接口不再适合继续拉取事件。若要拿纪要文档或逐字稿 token,用 `lark-cli vc +notes --meeting-ids `;若要拿 AI 产物(summary / todos / chapters)或导出逐字稿文件,先用 `lark-cli vc +recording --meeting-ids ` 拿 `minute_token`,再用 `lark-cli vc +notes --minute-tokens `;参会人请用 `lark-cli vc meeting get --params '{"meeting_id":""}' --with-participants` | +| `20001 meeting_status_MEETING_END` | 会议已结束且已超出后端允许的 5 分钟宽限窗口 | 本接口不再适合继续拉取事件。**会后拉产物分两步走**:① `lark-cli vc +detail --meeting-ids ` 拿 `note_id` 和 `minute_token`;② 优先 `lark-cli note +detail --note-id ` 取 `note_doc_token` / `verbatim_doc_token` / `shared_doc_tokens` 后用 `docs +fetch` 读正文;若用户要妙记 AI 产物(summary / todos / chapters / transcript),用 `lark-cli minutes +detail --minute-tokens --summary --todo --chapter --transcript`(**必须显式指定 flag,不传则不返回产物**);参会人请用 `lark-cli vc meeting get --params '{"meeting_id":""}' --with-participants` | | `20002 meeting not exist` | `meeting_id` 错误,或会议实例当前已不可获取(常见于把 9 位会议号当 meeting_id 传) | 确认传入的是长数字 `meeting_id`,不是 9 位会议号 | | `HTTP 404` / `HTTP 500` | 服务端当前无法找到或处理该会议实例 | 换一个正在进行且 bot 可见的 meeting_id,或排查后端问题 | @@ -230,8 +230,8 @@ lark-cli vc +meeting-events \ - 这是**会中事件流**查询,不适合拿来搜历史会议记录;搜历史会议请用 `+search`。 - 如果会议已经结束,不要卡在 `+meeting-events`: - - 想拿纪要文档或逐字稿 token:用 `lark-cli vc +notes --meeting-ids ` - - 想拿 AI 产物(summary / todos / chapters)或导出逐字稿文件:先用 `lark-cli vc +recording --meeting-ids ` 拿 `minute_token`,再用 `lark-cli vc +notes --minute-tokens ` + - 想拿纪要文档或逐字稿 token:用 `lark-cli vc +detail --meeting-ids ` + - 想拿 AI 产物(summary / todos / chapters)或导出逐字稿文件:先用 `lark-cli vc +detail --meeting-ids ` 拿 `minute_token`,再用 `lark-cli minutes +detail --minute-tokens ` - 事件列表是否完整,取决于 bot 何时入会、何时离会,以及后端当前可见的会中事件范围。对于已结束会议,通常只在**结束后 5 分钟内**、且 bot **曾经在会中**时还能继续拉到事件。 - 查询"谁参加过某会议"请用 `vc meeting get --params '{"meeting_id":"","with_participants":true}'`——这是参会人**快照** API,不依赖 bot 是否参会,对已结束会议也可查;**不要** 用 `+meeting-events` 做参会人查询。 @@ -241,7 +241,7 @@ lark-cli vc +meeting-events \ - [lark-vc-agent-meeting-leave](lark-vc-agent-meeting-leave.md) — 用户明确要求时离会 - [lark-vc-search](../../lark-vc/references/lark-vc-search.md) — 搜索历史会议(获取 meeting_id) - [lark-vc-recording](../../lark-vc/references/lark-vc-recording.md) — 查询 minute_token -- [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 获取会议纪要 +- [lark-vc-detail](../../lark-vc/references/lark-vc-detail.md) — 获取会议详情 - [lark-vc-agent](../SKILL.md) — Agent 参会能力(本 skill) - [lark-vc](../../lark-vc/SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念) - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md b/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md index 2bb49b9e1..f2c5d177b 100644 --- a/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +++ b/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md @@ -103,8 +103,14 @@ lark-cli vc +meeting-join --meeting-number 123456789 # 第 2 步:会议结束后,查询录制(拿到 minute_token) lark-cli vc +recording --meeting-ids -# 第 3 步:查询会议纪要(总结 / 待办 / 章节 / 逐字稿) -lark-cli vc +notes --meeting-ids +# 第 3 步:查询会议详情,拿到 note_id 和 minute_token +lark-cli vc +detail --meeting-ids + +# 第 4 步:根据用户诉求拉取实际产物 +# 优先:通过 note_id 获取纪要文档 token,再用 docs +fetch 读取正文 +lark-cli note +detail --note-id +# 备选:通过 minute_token 获取妙记产物(必须显式指定要哪些产物) +lark-cli minutes +detail --minute-tokens --summary --todo --chapter --transcript ``` ## 常见错误与排查 @@ -129,7 +135,7 @@ lark-cli vc +notes --meeting-ids - [lark-vc-agent-meeting-events](lark-vc-agent-meeting-events.md) — 会中事件流 - [lark-vc-search](../../lark-vc/references/lark-vc-search.md) — 搜索历史会议记录 - [lark-vc-recording](../../lark-vc/references/lark-vc-recording.md) — 查询 minute_token -- [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 获取会议纪要 +- [lark-vc-detail](../../lark-vc/references/lark-vc-detail.md) — 获取会议详情 - [lark-vc-agent](../SKILL.md) — Agent 参会能力(本 skill) - [lark-vc](../../lark-vc/SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念) - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md b/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md index 998e31e7e..87f6906cc 100644 --- a/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +++ b/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md @@ -77,11 +77,17 @@ lark-cli vc +meeting-leave --meeting-id 如果用户只是要求会议结束后拉录制、纪要或逐字稿,不要先调用 `+meeting-leave`;直接跨到 `lark-vc` 查询会后产物。 ```bash -# 第 1 步:会议结束后查询录制 +# 第 1 步:会议结束后查询录制(minute_token) lark-cli vc +recording --meeting-ids -# 第 2 步:查询会议纪要 -lark-cli vc +notes --meeting-ids +# 第 2 步:查询会议详情,拿到 note_id 和 minute_token +lark-cli vc +detail --meeting-ids + +# 第 3 步:根据用户诉求继续拉产物 +# 优先:通过 note_id 获取纪要文档 token,再用 docs +fetch 读正文 +lark-cli note +detail --note-id +# 备选:通过 minute_token 获取妙记产物(必须显式指定 flag) +lark-cli minutes +detail --minute-tokens --summary --todo --chapter --transcript ``` ## 常见错误与排查 @@ -104,7 +110,7 @@ lark-cli vc +notes --meeting-ids - [lark-vc-agent-meeting-events](lark-vc-agent-meeting-events.md) — 会中事件流 - [lark-vc-search](../../lark-vc/references/lark-vc-search.md) — 搜索历史会议(获取 meeting_id) - [lark-vc-recording](../../lark-vc/references/lark-vc-recording.md) — 查询 minute_token -- [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 获取会议纪要 +- [lark-vc-detail](../../lark-vc/references/lark-vc-detail.md) — 获取会议详情 - [lark-vc-agent](../SKILL.md) — Agent 参会能力(本 skill) - [lark-vc](../../lark-vc/SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念) - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-vc/SKILL.md b/skills/lark-vc/SKILL.md index 8125a6597..44cc3f37c 100644 --- a/skills/lark-vc/SKILL.md +++ b/skills/lark-vc/SKILL.md @@ -35,7 +35,7 @@ lark-cli vc +search --query "站会" --start-time ... | Shortcut | 说明 | |----------|------| | [`+search`](references/lark-vc-search.md) | 搜索历史会议记录(需至少一个筛选条件) | -| [`+notes`](references/lark-vc-notes.md) | 查询会议纪要和妙记产物(通过 meeting-ids、minute-tokens 或 calendar-event-ids) | +| [`+detail`](references/lark-vc-detail.md) | 通过 meeting-ids 获取会议详情,包括 note_id 和 minute_token | | [`+recording`](references/lark-vc-recording.md) | 通过 meeting-ids 或 calendar-event-ids 查询 minute_token | - 使用任何 Shortcut 前,必须先读其对应 reference 文档。 @@ -49,7 +49,8 @@ lark-cli vc +search --query "站会" --start-time ... | 查"今天有哪些会议" | `vc +search`(已结束)+ lark-calendar(未开始),合并展示 | | 只按自然语言标题查"xx 纪要的逐字稿 / 原始记录 / 谁说了什么" | 先到 [lark-drive](../lark-drive/SKILL.md) / [lark-doc](../lark-doc/SKILL.md);仅在已拿到 `note_id` / `vc-node-id` 后再到 [lark-note](../lark-note/SKILL.md) | | Agent 真实入会/离会、会中实时事件 | [lark-vc-agent](../lark-vc-agent/SKILL.md) | -| 本地音视频文件转纪要/逐字稿 | 先走 [lark-minutes](../lark-minutes/SKILL.md) 上传,再回 `vc +notes --minute-tokens` | +| 妙记信息/时长/封面/链接 | 先走 `vc +detail` 获取 `minute_token`,再用 [lark-minutes](../lark-minutes/SKILL.md) 的 `minutes get` | +| 本地音视频文件转纪要/逐字稿 | 先走 [lark-minutes](../lark-minutes/SKILL.md) 上传,再用 `minutes +detail --minute-tokens` | ## 核心概念 @@ -98,7 +99,7 @@ lark-cli docs +fetch --api-version v2 --doc --doc-format markdo # 并非所有纪要都有封面画板,没有 标签时跳过即可 lark-cli docs +media-download --type whiteboard --token --output ./minutes//cover ``` -> **产物目录规范**:同一会议的所有下载产物(录像、逐字稿、封面图等)统一放到 `./minutes/{minute_token}/` 目录下。这与 `minutes +download` 和 `vc +notes --minute-tokens` 的默认落点保持一致,便于 Agent 聚合。显式路径(如封面图)需手动对齐到同一目录。 +> **产物目录规范**:同一会议的所有下载产物(录像、逐字稿、封面图等)统一放到 `./minutes/{minute_token}/` 目录下。这与 `minutes +download` 和 `minutes +detail --minute-tokens` 的默认落点保持一致,便于 Agent 聚合。显式路径(如封面图)需手动对齐到同一目录。 > **纪要相关文档 — 根据用户意图选择:** > - `note_doc_token` → **AI 智能纪要**(AI 总结 + 待办) @@ -106,7 +107,7 @@ lark-cli docs +media-download --type whiteboard --token --out > - 用户说"逐字稿""完整记录""谁说了什么"时 → 按 `note_display_type` 路由,详见 [`+notes`](references/lark-vc-notes.md) > - 用户说"纪要""总结""纪要内容"时,应同时返回 `note_doc_token` 和 `meeting_notes`(如有) > - 用户意图不明确时,应展示所有文档链接让用户选择,而不是替用户决定 -> - 如果用户提供的是**本地音视频文件**并说"转纪要""转逐字稿",不要直接从 `vc +notes` 开始;应先用 [minutes +upload](../lark-minutes/references/lark-minutes-upload.md) 生成 `minute_url`,再提取 `minute_token` 调用 `vc +notes --minute-tokens` +> - 如果用户提供的是**本地音视频文件**并说"转纪要""转逐字稿",不要直接从 `vc +detail` 开始;应先用 [minutes +upload](../lark-minutes/references/lark-minutes-upload.md) 生成 `minute_url`,再提取 `minute_token` 调用 `minutes +detail --minute-tokens` ### 3. 纪要文档与逐字稿链接 1. 纪要文档、逐字稿文档与关联的共享文档默认使用文档 Token 返回。 @@ -137,7 +138,7 @@ lark-cli vc meeting get --params '{"meeting_id":"","with_participant | 用户意图 | 推荐命令 | 所在 skill | |---------|---------|--------| | 参会人快照(谁参加过、何时入/离会,任意时点)| `vc meeting get --with-participants` | 本 skill | -| 已结束会议的发言内容 | 先 `vc +notes`,再按 `note_display_type` 路由 | 本 skill / [`lark-note`](../lark-note/SKILL.md) | +| 已结束会议的发言内容 | 优先:`vc +detail` 取 `note_id` 再 `note +detail` 取 `verbatim_doc_token` 后 `docs +fetch`;备选:`vc +detail` 取 `minute_token` 再 `minutes +detail --transcript` | [lark-note](../lark-note/SKILL.md) / [lark-minutes](../lark-minutes/SKILL.md) | | **进行中会议**的实时事件流(转写、聊天、共享、会中加入/离开)| `vc +meeting-events` | [`lark-vc-agent`](../lark-vc-agent/SKILL.md) | | **Agent 真实入会 / 离会** | `vc +meeting-join` / `vc +meeting-leave` | [`lark-vc-agent`](../lark-vc-agent/SKILL.md) | @@ -193,5 +194,5 @@ lark-cli vc meeting get --params '{"meeting_id": "", "with_participa - 查询未来的会议日程 → [lark-calendar](../lark-calendar/SKILL.md) - Agent 真实入会/离会、会中实时事件 → [lark-vc-agent](../lark-vc-agent/SKILL.md) - 只有纪要文档标题的逐字稿查询 → 文档搜索 / Docx 正文读取;有显式 `vc-node-id` 才进入 [lark-note](../lark-note/SKILL.md) -- 本地音视频文件转纪要/逐字稿 → [lark-minutes](../lark-minutes/SKILL.md)(上传后回 `vc +notes`) +- 本地音视频文件转纪要/逐字稿 → [lark-minutes](../lark-minutes/SKILL.md)(上传后使用 `minutes +detail`) - 妙记搜索/下载/上传/重命名/替换说话人 → [lark-minutes](../lark-minutes/SKILL.md) diff --git a/skills/lark-vc/references/lark-vc-detail.md b/skills/lark-vc/references/lark-vc-detail.md new file mode 100644 index 000000000..0c361dd1f --- /dev/null +++ b/skills/lark-vc/references/lark-vc-detail.md @@ -0,0 +1,71 @@ + +# vc +detail + +> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。 + +通过会议 ID 获取会议详情,包括会议基本信息、关联的纪要 ID(`note_id`)和妙记 Token(`minute_token`)。只读操作。 + +本 skill 对应 shortcut:`lark-cli vc +detail`。 + +## 命令 + +```bash +# 批量查询(逗号分隔,最多 50 个) +lark-cli vc +detail --meeting-ids 69xxxxxxxxxxxxx28,69xxxxxxxxxxxxx29 +``` + +## 参数 + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--meeting-ids ` | 是 | 会议 ID,逗号分隔支持批量,最多 50 个 | + +## 输出结果 + +返回 `meetings` 数组,每条记录包含: + +| 字段 | 说明 | +|------|------| +| `meeting_id` | 会议 ID | +| `meeting_no` | 会议 9 位号码 | +| `topic` | 会议主题 | +| `start_time` | 开始时间 | +| `end_time` | 结束时间 | +| `note_id` | 关联的纪要 ID。 | +| `minute_token` | 关联的妙记 Token。 | + +## 典型场景 + +### 场景 1:获取会议的纪要和妙记关联 + +`vc +detail` 只能拿到 `note_id` 和 `minute_token`,不直接返回纪要文档 token 与妙记产物内容。要获取实际产物,需根据用户诉求继续调用 `note +detail` 或 `minutes +detail`: + +```bash +# 1. 获取会议详情,拿到 note_id 和 minute_token +lark-cli vc +detail --meeting-ids 69xxxxxxxxxxxxx28 + +# 2. 用 note_id 获取纪要文档 Token(note_doc_token / verbatim_doc_token / shared_doc_tokens) +lark-cli note +detail --note-id + +# 3. 用 minute_token 获取妙记产物 +# ⚠️ 必须显式指定 --summary / --todo / --chapter / --keyword / --transcript 中至少一个 flag, +# 不传任何 flag 则不会返回任何产物内容。 +lark-cli minutes +detail --minute-tokens --todo --transcript +``` + +> **路由建议**:当用户未明确指定使用妙记时,**优先**走 `note +detail` 链路(纪要文档信息更完整、含逐字稿原文),仅在 `note_id` 为空或用户要求妙记产物时才走 `minutes +detail`。 + +## 与其他命令的关系 + +| 需求 | 推荐命令 | +|------|---------| +| 只需获取 note_id 和 minute_token | `vc +detail` | +| 需要纪要文档 Token(note_doc_token、verbatim_doc_token 等) | `note +detail --note-id` | +| 需要妙记的 AI 产物(总结、待办、章节、逐字稿) | `minutes +detail --minute-tokens` | + +## 参考 + +- [lark-vc](../SKILL.md) — 视频会议全部命令 +- [lark-note-detail](../../lark-note/references/lark-note-detail.md) — 查询纪要详情命令介绍 +- [lark-minutes-detail](../../lark-minutes/references/lark-minutes-detail.md) — 查询妙记详情命令介绍 +- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-vc/references/lark-vc-recording.md b/skills/lark-vc/references/lark-vc-recording.md index b3c42b8f7..2b45a1a38 100644 --- a/skills/lark-vc/references/lark-vc-recording.md +++ b/skills/lark-vc/references/lark-vc-recording.md @@ -5,7 +5,7 @@ 通过 meeting_id 或 calendar_event_id 查询对应的 minute_token。这是 VC 域和 Minutes 域之间的桥梁命令。只读操作。 -> **边界提醒:** 如果用户明确要的是"妙记信息""妙记详情""妙记链接""minute_token""标题""时长""owner"这类妙记元信息,先用本命令拿到 `minute_token`,再调用 `minutes minutes get`。不要直接切到 `vc +notes`;`vc +notes` 只用于纪要内容和逐字稿。 +> **边界提醒:** 如果用户明确要的是"妙记信息""妙记详情""妙记链接""minute_token""标题""时长""owner"这类妙记元信息,先用本命令拿到 `minute_token`,再调用 `minutes minutes get`。不要直接切到 `minutes +detail`;`minutes +detail` 只用于纪要内容和逐字稿。 本 skill 对应 shortcut:`lark-cli vc +recording`。 @@ -102,7 +102,8 @@ lark-cli minutes minutes get --params '{"minute_token":""}' lark-cli vc +recording --meeting-ids xxx # 第 2 步:使用上一步返回的 minute_token 获取完整纪要 -lark-cli vc +notes --minute-tokens +# ⚠️ 必须显式指定要获取的产物 flag,不传则不会返回任何产物内容 +lark-cli minutes +detail --minute-tokens --summary --todo --chapter --transcript ``` ### 场景 4:先搜索会议,再获取录制并下载 @@ -143,11 +144,11 @@ lark-cli minutes +download --minute-tokens - 默认使用 `--format json` 输出,Agent 更擅长解析 JSON 数据。 - 排查参数与请求结构时优先使用 `--dry-run`。 - `minute_token` 从录制 URL 尾段解析(`https://meetings.feishu.cn/minutes/{minute_token}`)。 -- 拿到 `minute_token` 后,如果要妙记基础信息,优先传给 `minutes minutes get`;如果要下载媒体文件,传给 `minutes +download`;如果要逐字稿、总结、待办、章节,再传给 `vc +notes --minute-tokens`。 +- 拿到 `minute_token` 后,如果要妙记基础信息,优先传给 `minutes minutes get`;如果要下载媒体文件,传给 `minutes +download`;如果要逐字稿、总结、待办、章节,再传给 `minutes +detail --minute-tokens`。 ## 参考 - [lark-vc](../SKILL.md) — 视频会议全部命令 - [lark-vc-search](lark-vc-search.md) — 搜索历史会议(获取 meeting_id) -- [lark-vc-notes](lark-vc-notes.md) — 获取会议纪要 +- [lark-minutes-detail](../../lark-minutes/references/lark-minutes-detail.md) — 获取会议纪要 - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数 diff --git a/skills/lark-vc/references/lark-vc-search.md b/skills/lark-vc/references/lark-vc-search.md index 91361134c..ca9bb31cc 100644 --- a/skills/lark-vc/references/lark-vc-search.md +++ b/skills/lark-vc/references/lark-vc-search.md @@ -11,7 +11,7 @@ `--query` 只用于真实会议关键词,例如会议主题、项目名、评审名、客户名。用户只是说"我这月参加的所有视频会议"、"最近两周我组织的所有视频会议"、"总结主要议题 / 看看参会情况"时,本质是历史会议列表和后续总结,不要把"回顾"、"所有视频会议"、"总结主要议题"等动作词放进 `--query`。这类请求应先用时间范围 + `--participant-ids` / `--organizer-ids` 搜全量候选,再按结果继续取纪要或录制信息。 -列表阶段只负责找会议记录;总结阶段必须继续取证。若用户要求"主要议题"、"主要决策"、"参会情况",先确认搜索结果的 `meeting_id`、时间、组织者/参与者符合过滤条件,然后用 `vc +notes` 或 `vc +recording` / `minutes` 读取纪要、妙记或录制信息。没有纪要或妙记时,如实说明只能基于会议标题/参会数据汇总,不要编造议题。 +列表阶段只负责找会议记录;总结阶段必须继续取证。若用户要求"主要议题"、"主要决策"、"参会情况",先确认搜索结果的 `meeting_id`、时间、组织者/参与者符合过滤条件,然后用 `vc +detail` 或 `minutes` 读取纪要、妙记或录制信息。没有纪要或妙记时,如实说明只能基于会议标题/参会数据汇总,不要编造议题。 ## 典型触发表达 @@ -161,7 +161,7 @@ lark-cli vc +search --query "周会" --page-size 15 --page-token "" ```bash # 如果要会议纪要 / 逐字稿 / AI 总结 / 待办 / 章节 -lark-cli vc +notes --meeting-ids +lark-cli vc +detail --meeting-ids # 如果要会议对应的妙记信息 / minute_token / 妙记链接 lark-cli vc +recording --meeting-ids @@ -183,11 +183,11 @@ lark-cli minutes minutes get --params '{"minute_token":""}' - 排查参数与请求结构时优先使用 `--dry-run`。 - 搜索的时间范围最大为 1 个月,如果需要搜索更长时间范围的会议,需要拆分为多次时间范围为一个月查询。 - 不要使用 `yesterday`、`today` 这类相对时间字面量;请先转换成明确日期,例如 `2026-03-10`。 -- 用户如果明确问的是“妙记信息”而不是“纪要内容”,不要默认走 `vc +notes`;应先用 `vc +recording`。 +- 用户如果明确问的是“妙记信息”而不是“纪要内容”,不要默认走 `vc +detail`;应先用 `vc +recording`。 ## 参考 - [lark-vc](../SKILL.md) -- 视频会议全部命令 -- [lark-vc-recording](lark-vc-recording.md) -- 查询会议对应的 minute_token -- [lark-vc-notes](lark-vc-notes.md) -- 获取会议纪要 +- [lark-vc-detail](lark-vc-detail.md) -- 获取会议详情 +- [lark-vc-recording](lark-vc-recording.md) -- 基于 meeting_id 查询 minute_token - [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数 diff --git a/skills/lark-vc/references/vc-domain-boundaries.md b/skills/lark-vc/references/vc-domain-boundaries.md index 01014a835..bb2c1702f 100644 --- a/skills/lark-vc/references/vc-domain-boundaries.md +++ b/skills/lark-vc/references/vc-domain-boundaries.md @@ -93,8 +93,20 @@ lark-cli vc +search --start "" --end "" --format json ##### 获取会议产物 +当用户提供 `meeting_id` 并需要会议产物时,先用 `vc +detail` 拿到 `note_id` 和 `minute_token`: + ```bash -lark-cli vc +notes --meeting-ids ',' +lark-cli vc +detail --meeting-ids ',' +``` + +详细用法请阅读 [`lark-vc-detail.md`](lark-vc-detail.md)。 + +**优先路径:通过 `note_id` 获取纪要产物** + +如果用户未明确要求使用妙记,且返回了 `note_id`,**优先**使用 `note +detail` 获取纪要文档的 token 信息: + +```bash +lark-cli note +detail --note-id ``` 可获取会议的所有产物信息,包括: @@ -102,17 +114,20 @@ lark-cli vc +notes --meeting-ids ',' - 智能纪要(`note_doc_token`)— AI 生成的总结和待办信息 - 逐字稿(`verbatim_doc_token`)— 完整的会中发言记录(仅 `normal` 纪要可直接读取该文档) - 共享文档(`shared_doc_token`)— 会中投屏共享的文档 -- 妙记 Token(`minute_token`)— 如存在录制产物则返回 -详细用法请阅读 [`lark-vc-notes.md`](lark-vc-notes.md)。 +拿到文档 token 后,再通过 Doc 域 `docs +fetch` 拉取文档正文内容(见 Step 3)。详细用法请阅读 [`lark-note-detail.md`](../../lark-note/references/lark-note-detail.md)。 -如果返回了 `minute_token`,可通过以下命令获取妙记的详细信息(总结、待办、章节、文字记录): +**备选路径:通过 `minute_token` 获取妙记产物** + +如果 `note_id` 为空,或用户明确要求使用妙记产物,则使用 `minutes +detail` 获取妙记的具体产物: ```bash -lark-cli vc +notes --minute-tokens ',' +# 必须显式指定要获取的产物 flag,至少传一个;不传则不会返回任何产物内容 +lark-cli minutes +detail --minute-tokens ',' \ + --summary --todo --chapter --keyword --transcript ``` -可获取妙记的总结、待办、章节、文字记录等信息。详细用法请阅读 [`lark-vc-notes.md`](lark-vc-notes.md)。 +> **注意**:`minutes +detail` 需要**手动指定**要获取的产物 flag,可选 `--summary`(总结)、`--todo`(待办)、`--chapter`(章节)、`--keyword`(关键词)、`--transcript`(文字记录)。**未传任何产物 flag 时不会返回产物内容**,请按用户诉求按需指定。详细用法请阅读 [`lark-minutes-detail.md`](../../lark-minutes/references/lark-minutes-detail.md)。 #### Step 3: 按 `note_display_type` 拉取正文 / 逐字稿 diff --git a/skills/lark-workflow-meeting-summary/SKILL.md b/skills/lark-workflow-meeting-summary/SKILL.md index d5c5a163a..eb931c2c6 100644 --- a/skills/lark-workflow-meeting-summary/SKILL.md +++ b/skills/lark-workflow-meeting-summary/SKILL.md @@ -37,7 +37,10 @@ lark-cli auth login --domain vc,drive # 含读取纪要文档正文、生成 {时间范围} ─► vc +search ──► 会议列表 (meeting_ids) │ ▼ - vc +notes ──► 纪要文档 tokens + vc +detail ──► 获取 note_id + │ + ▼ + note +detail ──► 纪要文档 tokens │ ▼ drive metas batch_query 纪要元数据 @@ -69,12 +72,16 @@ lark-cli vc +search --start "" --end "" --format json -- 1. 查询会议关联的纪要信息 ```bash -lark-cli vc +notes --meeting-ids "id1,id2,...,idN" +# 首先获取 note_id 和 minute_token +lark-cli vc +detail --meeting-ids "id1,id2,...,idN" + +# 然后用 note_id 获取文档 tokens(如有多个需分别获取) +lark-cli note +detail --note-id "note_id" ``` -- 根据上一步搜集到的 `meeting-id` 查询会议纪要。 -- 单次最多查询 50 个纪要信息,超过 50 个需分批调用。 -- 部分会议返回 `no notes available`,在最终输出中标注"无纪要" -- 记录每个会议的 `note_id`(纪要 ID)、`note_display_type`(展示类型:`unknown` / `normal` / `unified`)、`note_doc_token`(纪要文档 Token)和 `verbatim_doc_token`(逐字稿文档 Token) +- 根据上一步搜集到的 `meeting-id` 查询。 +- 单次最多查询 50 个,超过 50 个需分批调用。 +- 部分会议没有 `note_id` 或报错 `no notes available`,在最终输出中标注"无纪要"。 +- 记录每个纪要的 `note_id`(纪要 ID)、`note_display_type`(展示类型:`unknown` / `normal` / `unified`)、`note_doc_token`(纪要文档 Token)和 `verbatim_doc_token`(逐字稿文档 Token)。 > **逐字稿路由按 `note_display_type` 决定**(详见 [vc-domain-boundaries.md](../lark-vc/references/vc-domain-boundaries.md) 的 Note 域): > - `normal`:逐字稿是独立文档,链接/正文走 `verbatim_doc_token`。 @@ -110,6 +117,6 @@ lark-cli docs +update --api-version v2 --doc "" --command append - ## 参考 - [lark-shared](../lark-shared/SKILL.md) — 认证、权限(必读) -- [lark-vc](../lark-vc/SKILL.md) — `+search`、`+notes` 详细用法 +- [lark-vc](../lark-vc/SKILL.md) — `+search`、`+detail` 详细用法 - [lark-note](../lark-note/SKILL.md) — `note +detail`、`note +transcript`(unified 纪要逐字稿) - [lark-doc](../lark-doc/SKILL.md) — `+fetch`、`+create`、`+update` 详细用法 \ No newline at end of file