diff --git a/skills/kb-workflow/SKILL.md b/skills/kb-workflow/SKILL.md index 1c4068e..fb37312 100644 --- a/skills/kb-workflow/SKILL.md +++ b/skills/kb-workflow/SKILL.md @@ -1,13 +1,11 @@ --- name: kb-workflow -description: 知识库工作流编排技能。接收"添加到知识库 + 链接"消息,完成完整处理流程。 -metadata: - short-description: 知识库工作流编排 +description: 当收到"添加到知识库 + 链接" 或"保存到知识库 + 链接"时使用 --- # KB Workflow -## 触发条件 +## 什么时候使用 当用户发送包含以下模式的消息时,此技能自动触发: @@ -16,6 +14,26 @@ metadata: | `添加到知识库` + 链接 | 添加到知识库并处理 | "添加到知识库 https://www.bilibili.com/video/BVxxx" | | `保存到知识库` + 链接 | 同上 | "保存到知识库 https://www.bilibili.com/video/BVxxx" | + +## 启动子代理方式 + +子代理需要: +- **特定范围:** 明确的任务 +- **全部上下文:** 不要让他们自己去寻找 +- **清晰的输出:** 应该返回什么内容? +- **约束:** 什么事情不能干? + +使用 sessions_spawn 启动代理 + +## 环境变量 +检查以下环境变量 +KB_BASE_PATH + +环境变量默认值 +```bash +export KB_BASE_PATH="~/work/knowledge-base" +``` + ## Workflow 步骤 当触发后,按照以下步骤执行: @@ -32,51 +50,72 @@ python3 kb_workflow.py --check --url "[URL]" ### 步骤 2: 链接解析 -**启动子代理:** `kb-link-parser` - -**输入:** 用户的 URL - -**预期输出:** `pending/{platform}_{id}.link.json` +- 启动子代理 +- 将以下内容输入上下文: +``` +1.使用kb-link-parser技能解析这个链接:[用户的 URL] +2.文件输出路径:[知识库pending目录] +3.结束时返回结果json。 +``` +- 等待子代里结束返回 +- 如果返回错误,停止并汇报错误给用户。 +- 如果返回成功,解析文件名,提取平台名称。 ### 步骤 3: 元数据提取 -**启动子代理:** 根据平台选择 -- Bilibili → `kb-bilibili-metadata` -- 知乎 → `kb-zhihu-metadata` - -**输入:** 步骤 2 输出的文件路径 - -**预期输出:** `metadata/{platform}_{id}.meta.json` +- 启动子代理 +- 将以下内容输入上下文: +``` +1.使用[kb-平台名称-metadata]技能获取元数据 +2.输入文件:[知识库pending目录/步骤2返回的文件名] +3.输出目录:[知识库metadata目录] +4.结束时返回结果json +``` +- 等待子代理结束返回 +- 如果返回错误,停止并汇报错误给用户。 ### 步骤 4: 内容下载 -**启动子代理:** 根据平台选择 -- Bilibili → `kb-bilibili-content` -- 知乎 → (暂无) - -**输入:** 步骤 3 输出的文件路径 - -**预期输出:** -- `content/downloads/{platform}_{id}.mp4` -- `content/subtitles/{platform}_{id}.srt`(可能没有) +- 启动子代理 +- 将以下内容输入上下文: +``` +1.使用[kb-平台名称-content]技能获取内容 +2.输入文件:[知识库metadata目录/步骤3返回的文件名] +3.输出目录:[知识库内容下载目录] +4.结束时返回结果json +``` +- 每5分钟检查一次子代理情况,将进度汇报给用户。 +- 等待子代理结束返回 +- 如果返回错误,停止并汇报错误给用户。 ### 步骤 5: OCR 处理 -**启动子代理:** `kb-ocr-processor` - -**输入:** 步骤 4 输出的字幕文件路径(没有字幕则用视频文件路径) - -**预期输出:** `content/{platform}_{id}.txt` +- 启动子代理 +- 将以下内容输入上下文: +``` +1.使用kb-ocr-processor技能通过视频帧解析字幕内容 +2.输入文件:[知识库内容下载目录/步骤4返回的文件名] +3.输出目录:[知识库内容下载目录] +4.结束时返回结果json +``` +- 每5分钟检查一次子代理情况,将进度汇报给用户。 +- 等待子代理结束返回 +- 如果返回错误,停止并汇报错误给用户。 ### 步骤 6: 深度分析 -**启动子代理:** `kb-deep-analyzer` - -**输入:** -- 步骤 3 输出的元数据文件路径 -- 步骤 5 输出的文字内容文件路径(如有,否则用元数据文件路径) - -**预期输出:** `analyzed/{platform}_{id}.md` +- 启动子代理 +- 将以下内容输入上下文: +``` +1.使用kb-deep-analyzer技能对字幕内容进行深度分析,总结提炼 +2.输入文件1:[元数据目录/步骤3返回的元数据文件名] +3.输入文件2:[知识库内容下载目录/步骤5返回的字幕文件名] +3.输出目录:[知识库analyzed目录] +4.结束时返回结果json +``` +- 每5分钟检查一次子代理情况,将进度汇报给用户。 +- 等待子代理结束返回 +- 如果返回错误,停止并汇报错误给用户。 ### 步骤 7: 归档 @@ -134,8 +173,3 @@ python3 kb_workflow.py --check --url "[URL]" python3 kb_workflow.py --archive "[分析报告路径]" ``` -## 环境变量(可选) - -```bash -export KB_BASE_PATH="~/work/knowledge-base" -```