飞书妙记 · 会议纪要
公司使用飞书妙记录制会议语音并自动转文字,清海接收事件通知后提炼会议内容,生成标准化会议纪要,自动归档至飞书云文档会议记录目录,并通知相关部门。
背景与现状
| 维度 | 现状 |
|---|---|
| 会议录制 | 飞书会议 + 妙记,自动语音转文字 |
| 当前痛点 | 转录文字质量参差,口语化严重,无人整理为结构化纪要 |
| 归档需求 | 人事部门 / 各部门需要可查询的会议记录,存储在飞书云文档 |
| 清海角色 | 监听妙记事件 → 自动提炼 → 写入云文档 → 通知归档 |
场景概览
飞书妙记会议纪要覆盖 2 类触发方式 和 3 类归档场景:
场景一:自动触发(妙记转录完成)
核心价值:会议结束即有纪要,无需人工干预。
典型交互
| 触发事件 | 清海动作 | 产出 |
|---|---|---|
| 妙记转录完成(Webhook),满足归档条件 | 自动拉取全文 → LLM 提炼 → 写入云文档 | 向会议组织者发送云文档卡片 |
| 妙记转录完成,但时长 < 5 分钟或仅 1 人 | 跳过,不处理 | 无通知 |
| 会议标题含薪酬/绩效等敏感词 | 提炼后归档至 HR 专属目录 | 仅通知 HR,不通知普通参会人 |
| 人事部门在会议群 @ 清海 | 查询本月所有会议纪要并汇总 | 月度会议纪要清单(含云文档链接) |
自动归档过滤逻辑
Webhook 触发后先过滤,再决定是否进入 LLM 处理:
数据流转
场景二:主动触发(用户 @ 清海)
核心价值:会议组织者可随时触发,灵活控制处理时机。
典型对话
| 用户说 | 清海做 | 前提 |
|---|---|---|
| "@清海 帮我整理一下今天下午的会议纪要" | 查找该用户最近一次妙记 → 提炼 → 写入云文档 → 发送云文档卡片 | 用户有妙记访问权限 |
| "@清海 把 [妙记链接] 整理成纪要" | 读取指定妙记 → 提炼 → 写入 → 发送云文档卡片 | 直接指定 |
| "@清海 把这个会议归档到产品部会议记录" | 指定目录归档 → 发送云文档卡片 | 用户自然语言指定目录 |
| "@清海 本月的会议纪要汇总一下" | 查询指定目录下本月所有纪要文档 → 生成清单 | 已完成历史归档 |
会议纪要标准格式
每份纪要输出为飞书云文档,固定包含以下结构:
# 【会议纪要】{会议主题} · {日期}
## 基本信息
- 会议时间:YYYY-MM-DD HH:mm ~ HH:mm
- 主持人:{姓名}
- 参会人员:{姓名列表}
- 会议目的:{一句话}
## 讨论要点
### {议题一}
- 背景:...
- 讨论过程:...
- 结论:...
### {议题二}
...
## 决策结论
| 决策 | 负责人 | 备注 |
|------|--------|------|
| ... | ... | ... |
## 后续待办
| 事项 | 负责人 | 截止日期 | 优先级 |
|------|--------|---------|--------|
| ... | ... | ... | ... |
## 下次会议
- 时间:{待定 / 具体时间}
- 议题:{待定}AI 提炼原则:过滤无效对话(闲聊、重复确认、口语填充词),保留核心信息;参会人员从飞书 PersonIndex 映射为真实姓名。
归档目录规则
飞书云文档/
└── 会议记录/
├── {年份}/
│ ├── {月份}/
│ │ └── {YYYY-MM-DD}-{会议主题}.doc| 规则 | 说明 |
|---|---|
| 目录权限 | 人事部门拥有所有目录的编辑权;各部门在本部门子目录下有读取权 |
| 文档命名 | YYYY-MM-DD-会议主题,不含特殊字符 |
| 重复处理 | 同一妙记若已归档,追加版本号(v2、v3),不覆盖原文档 |
| 失败处理 | 写入失败时通知会议组织者,提供纪要文本供手动归档 |
角色权限
| 角色 | 可查询范围 | 说明 |
|---|---|---|
| 老板 | 全公司所有会议纪要 | 无限制 |
| 人事部门 | 全公司所有会议纪要 | 负责归档管理 |
| 部门负责人 | 本部门所有会议纪要 | 含本人参与的跨部门会议 |
| 普通员工 | 仅本人参与的会议纪要 | 通过参会人员名单匹配 |
| 会议组织者 | 自己发起的所有会议纪要 | 默认接收通知 |
越权查询处理
所需飞书 API 权限
⚠️ 授权说明:飞书妙记 API 支持
tenant_access_token,但 Bot 的租户级权限只能访问被共享给 Bot 的妙记。访问员工个人录制的妙记需要该用户的user_access_token,因此采用方案 B(用户 OAuth 授权),首次使用前引导用户完成一次授权,授权后静默自动续期(access_token 2 小时 / refresh_token 30 天)。
| API | 用途 | 权限 scope | Token 类型 |
|---|---|---|---|
GET /minutes/v1/minutes/{minute_token} | 获取妙记基本信息 | minutes:minutes.basic:read | user_access_token |
GET /minutes/v1/minutes/{minute_token}/transcript | 获取完整转录文本 ⚠️ 需在开发者后台实测确认可用性 | minutes:minutes:readonly | user_access_token |
POST /docx/v1/documents | 在飞书云文档创建纪要文档 | docx:document:create | user_access_token(文档所属人为发起操作的用户,非 Bot) |
POST /docx/v1/documents/{document_id}/blocks/{block_id}/children | 向文档根块追加内容块(纪要正文) | docx:document | user_access_token |
POST /im/v1/messages | 通知相关人员 | im:message:send_as_bot | tenant_access_token |
事件订阅:minutes.transcription_completed ⚠️ 需在控制台「事件订阅」中确认准确事件名 | 妙记转录完成回调 | 事件权限 | — |
Skill 设计要点
触发词:妙记 / 会议纪要 / 整理一下 / 归档 / 会议记录 / minute
加载路径:skills/feishu_minutes/SKILL.md
核心工具:
- get_minute_transcript(minute_token) → 获取转录全文
- create_meeting_minutes(content, meta) → 写入飞书云文档
- notify_participants(doc_url, participant_ids) → 通知参会人
LLM 提炼 Prompt 关键点:
- 识别说话人(飞书妙记含说话人标注,映射到 PersonIndex)
- 区分陈述、提问、决策、待办 4 种话语类型
- 过滤:笑声、语气词、重复确认("好的好的"、"嗯嗯")
- 时长 > 2 小时的会议分段处理,避免超 token 限制边界与约束
| 约束 | 说明 |
|---|---|
| 最短会议时长 | < 5 分钟的妙记跳过自动处理(可能是误录),可通过主动触发强制处理 |
| 单人妙记 | 参会人数 = 1 时跳过,不作为会议纪要处理 |
| 转录质量 | 转录置信度低时,纪要中标注「⚠️ 此段转录可能不准确」 |
| 敏感内容 | 标题含薪酬/绩效/裁员等关键词时,仅归档至人事专属目录,不通知普通参会人 |
| 超长会议 | 转录 > 50,000 字时分段提炼,合并后输出完整纪要 |
| 权限缺失 | 清海无云文档写入权限时,以飞书消息发送纪要文本,提示手动归档 |
| 首次使用须授权 | 用户首次触发妙记场景时,Bot 发送 OAuth 授权链接,用户点击完成后即可使用,后续自动续期 |
| 授权到期重授权 | refresh_token 30 天过期(长期不用妙记场景时),下次触发时重新引导授权一次 |