文档检索与创建
员工用说话的方式查找公司文件,制度、规范、项目文档随问随答;文档有更新时自动通知关注者;用自然语言创建和编辑飞书文档。
背景与现状
| 维度 | 现状 |
|---|---|
| 文档数量 | 公司文件分散在飞书云文档各目录下,找文件靠自己翻 |
| 当前痛点 | 员工不知道文件在哪、不知道制度有没有更新 |
| 清海角色 | 帮员工"问文档",制度有变化时主动通知相关人,帮员工"写文档" |
场景概览
飞书文档覆盖 3 类触发方式 和 2 类文档处理路径:
场景一:用户主动查询
核心价值:员工不用翻文件夹,用自然语言问清海。
典型对话
| 用户说 | 清海做 |
|---|---|
| "考勤制度是几点打卡?" | 从制度文档中找到相关段落,直接回答并附链接 |
| "报销流程是什么?" | 找到报销制度,摘出关键步骤回答 |
| "找一下 XX 项目的需求文档" | 实时搜索项目文件夹,列出匹配文档 |
| "最新的绩效方案是什么版本?" | 找到绩效文档,说明最后更新时间 |
| "这周有哪些文档更新了?" | 列出本周有修改记录的文档(按权限过滤) |
数据流转
场景二:文档更新自动通知
核心价值:制度改了不用靠群公告,关注的人自动收到通知。
典型场景
| 触发事件 | 清海动作 | 通知对象 |
|---|---|---|
| HR 更新了「差旅报销制度」 | 提炼变化摘要,推送通知 | 所有订阅此文档的人 |
| 产品更新了「XX 项目需求文档」 | 推送更新提醒 | 订阅该项目目录的人 |
数据流转
通知内容格式
「{文档名称}」刚刚有更新
修改人:{姓名} · 更新时间:{时间}
主要变化:{AI 提炼的 1-2 句摘要}
→ 查看文档:{链接}场景三:创建与编辑文档
核心价值:用自然语言告诉清海要写什么,自动在飞书创建文档。
典型对话
| 用户说 | 清海做 |
|---|---|
| "帮我把刚才的讨论整理成一份需求文档" | 根据对话内容生成文档,创建到指定目录 |
| "写一份会议纪要,标题是 XX" | 在指定目录创建文档,填入内容 |
| "把这段内容追加到 XX 文档末尾" | 找到目标文档,追加内容块 |
数据流转
谁能查什么
| 角色 | 可访问范围 |
|---|---|
| 老板 | 所有文档 |
| 部门负责人 | 公司公开文档 + 本部门文档 |
| 普通员工 | 公司公开文档(制度、流程、规范等) |
越权查询处理:
- 查无权限的文档 → 「这个文档你暂无访问权限,可以联系对应负责人申请」
- 不猜测、不透露文档内容,直接引导
文档分类规则
清海将公司云文档分为两类,决定检索方式:
| 分类 | 判断依据 | 检索方式 |
|---|---|---|
| 制度/规范类 | 目录名含「制度」「规范」「流程」「手册」,或 Wiki 知识库 | 预先建立索引,语义检索 |
| 项目文档 | 其他目录(需求、设计、周报、记录等) | 实时从飞书拉取 |
分类规则可配置,管理员可手动将某个目录标记为"制度类"或"项目类"。
边界与约束
| 约束 | 处理方式 |
|---|---|
| 文档超长 | 仅引用相关段落回答,附原文链接让用户自行阅读 |
| 找到多个匹配文档 | 列出文档列表供用户选择,不擅自合并多份内容 |
| 找不到相关文档 | 「没有找到相关文档,你可以描述得更具体一些,或联系 HR / 对应负责人」 |
| 制度类索引未及时更新 | 回答时注明「内容来自 {最后同步时间},建议确认最新版本」 |
| 清海 Bot 无文档访问权限 | 「这个文档我暂时无法访问,需要管理员配置权限」 |
| 创建文档无目录权限 | 「我没有这个目录的写入权限,需要管理员配置」 |
| 无订阅者 | 文档更新时跳过通知 |
所需飞书 API 权限
| API | 用途 | 权限 scope |
|---|---|---|
GET /docx/v1/documents/{id}/raw_content | 读取文档内容 | docx:document:readonly |
POST /docx/v1/documents | 创建文档 | docx:document |
POST /docx/v1/documents/{id}/blocks/{block_id}/children | 追加内容块 | docx:document |
GET /drive/v1/files | 列出目录下的文件 | drive:drive:readonly |
GET /wiki/v2/spaces/{space_id}/nodes | 列出 Wiki 知识库节点 | wiki:wiki:readonly |
GET /drive/v1/files/{file_token}/versions | 查询文档修改历史 | drive:drive:version:readonly |
事件订阅:drive.file.edit_v1 | 文档被修改回调 | 事件权限 |
实现路线
Phase 1:主动查询(优先)
| # | 事项 | 状态 |
|---|---|---|
| 1 | 飞书云文档 API 封装(读取内容、列目录) | 🔲 待开发 |
| 2 | 文档分类规则 + 目录配置 | 🔲 待开发 |
| 3 | 制度类文档向量索引(Qdrant,复用现有) | 🔲 待开发 |
| 4 | search_docs Tool(制度类走 Qdrant,项目类走实时) | 🔲 待开发 |
| 5 | get_doc_content Tool | 🔲 待开发 |
| 6 | feishu_doc SKILL.md | 🔲 待开发 |
Phase 2:文档创建与编辑
| # | 事项 | 状态 |
|---|---|---|
| 7 | create_doc Tool(创建文档 + 写入内容) | 🔲 待开发 |
| 8 | append_doc_content Tool(追加内容块) | 🔲 待开发 |
Phase 3:文档变更通知
| # | 事项 | 状态 |
|---|---|---|
| 9 | 订阅关系存储(MongoDB:谁订阅了哪个目录) | 🔲 待开发 |
| 10 | Webhook 接收端点(drive.file.edit_v1) | 🔲 待开发 |
| 11 | 变化摘要提炼(LLM 对比新旧内容) | 🔲 待开发 |
| 12 | 通知推送(飞书消息) | 🔲 待开发 |
Phase 4:索引增强
| # | 事项 | 状态 |
|---|---|---|
| 13 | 定期全量同步制度类目录 | 🔲 待开发 |
| 14 | 文档更新时增量更新向量索引 | 🔲 待开发 |
| 15 | 后台配置(管理员标记目录分类) | 🔲 待开发 |