--- name: kb-workflow description: 知识库工作流编排技能。接收"添加到知识库 + 链接"消息,完成完整处理流程。 metadata: short-description: 知识库工作流编排 --- # KB Workflow ## 触发条件 当用户发送包含以下模式的消息时,此技能自动触发: | 触发词 | 行为 | 示例 | |--------|------|------| | `添加到知识库` + 链接 | 添加到知识库并处理 | "添加到知识库 https://www.bilibili.com/video/BVxxx" | | `保存到知识库` + 链接 | 同上 | "保存到知识库 https://www.bilibili.com/video/BVxxx" | ## Workflow 步骤 当触发后,按照以下步骤执行: ### 步骤 1: 查重 运行查重命令: ```bash python3 kb_workflow.py --check --url "[URL]" ``` - 如果存在:汇报用户并询问是更新还是跳过 - 如果不存在:继续步骤 2 ### 步骤 2: 链接解析 **启动子代理:** `kb-link-parser` **输入:** 用户的 URL **预期输出:** `pending/{platform}_{id}.link.json` ### 步骤 3: 元数据提取 **启动子代理:** 根据平台选择 - Bilibili → `kb-bilibili-metadata` - 知乎 → `kb-zhihu-metadata` **输入:** 步骤 2 输出的文件路径 **预期输出:** `metadata/{platform}_{id}.meta.json` ### 步骤 4: 内容下载 **启动子代理:** 根据平台选择 - Bilibili → `kb-bilibili-content` - 知乎 → (暂无) **输入:** 步骤 3 输出的文件路径 **预期输出:** - `content/downloads/{platform}_{id}.mp4` - `content/subtitles/{platform}_{id}.srt`(可能没有) ### 步骤 5: OCR 处理 **启动子代理:** `kb-ocr-processor` **输入:** 步骤 4 输出的字幕文件路径(没有字幕则用视频文件路径) **预期输出:** `content/{platform}_{id}.txt` ### 步骤 6: 深度分析 **启动子代理:** `kb-deep-analyzer` **输入:** - 步骤 3 输出的元数据文件路径 - 步骤 5 输出的文字内容文件路径(如有,否则用元数据文件路径) **预期输出:** `analyzed/{platform}_{id}.md` ### 步骤 7: 归档 运行归档命令: ```bash python3 kb_workflow.py --archive "[分析报告文件路径]" ``` ### 步骤 8: 汇报完成 向用户汇报: - 视频标题 - 处理阶段完成情况 - 最终文件路径 - Git commit 信息 ## 子技能清单 | 步骤 | 子技能 | 输入 | 输出 | |------|--------|------|------| | 2 | kb-link-parser | URL | pending/{p}_{id}.link.json | | 3 | kb-bilibili-metadata | link.json | metadata/{p}_{id}.meta.json | | 3 | kb-zhihu-metadata | link.json | metadata/{p}_{id}.meta.json | | 4 | kb-bilibili-content | meta.json | downloads/{p}_{id}.mp4, subtitles/{p}_{id}.srt | | 5 | kb-ocr-processor | srt/mp4 | {p}_{id}.txt | | 6 | kb-deep-analyzer | meta.json, txt | analyzed/{p}_{id}.md | ## 目录结构 ``` ~/work/knowledge-base/ ├── archive/ │ └── YYYY-MM-DD/ ├── pending/ │ └── {platform}_{id}.link.json ├── metadata/ │ └── {platform}_{id}.meta.json ├── content/ │ ├── downloads/ │ │ └── {platform}_{id}.mp4 │ ├── subtitles/ │ │ └── {platform}_{id}.srt │ └── {platform}_{id}.txt └── analyzed/ └── {platform}_{id}.md ``` ## 辅助命令 ```bash # 查重 python3 kb_workflow.py --check --url "[URL]" # 归档 python3 kb_workflow.py --archive "[分析报告路径]" ``` ## 环境变量(可选) ```bash export KB_BASE_PATH="~/work/knowledge-base" ```