From 4794f3e9146fc5914e1e6febcaa23cd731262e7a Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Wed, 11 Feb 2026 01:13:43 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3Workflow=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=B5=81=E7=A8=8B=E8=AF=B4=E6=98=8E=EF=BC=8C=E4=B8=BB?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E7=9B=B4=E6=8E=A5=E8=B0=83=E7=94=A8=E5=AD=90?= =?UTF-8?q?=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skills/kb-workflow/SKILL.md | 150 ++++++++++++++++++++---------------- 1 file changed, 84 insertions(+), 66 deletions(-) diff --git a/skills/kb-workflow/SKILL.md b/skills/kb-workflow/SKILL.md index 269c900..76d21a6 100644 --- a/skills/kb-workflow/SKILL.md +++ b/skills/kb-workflow/SKILL.md @@ -15,16 +15,6 @@ description: 当收到"添加到知识库 + 链接" 或"保存到知识库 + 链 | `保存到知识库` + 链接 | 同上 | "保存到知识库 https://www.bilibili.com/video/BVxxx" | -## 启动子代理方式 - -子代理需要: -- **特定范围:** 明确的任务 -- **全部上下文:** 不要让他们自己去寻找 -- **清晰的输出:** 应该返回什么内容? -- **约束:** 什么事情不能干? - -使用 sessions_spawn 启动代理 - ## 环境变量 检查以下环境变量 KB_BASE_PATH @@ -34,6 +24,19 @@ KB_BASE_PATH export KB_BASE_PATH="~/work/knowledge-base" ``` +## Workflow 执行方式 + +主代理直接执行以下步骤,无需启动 kb-workflow 子代理: + +1. 主代理执行 `kb_workflow.py --check` 查重 +2. 主代理启动子代理调用 kb-link-parser +3. 主代理启动子代理调用 kb-平台-metadata +4. 主代理启动子代理调用 kb-平台-content +5. 主代理启动子代理调用 kb-ocr-processor(如需要) +6. 主代理启动子代理调用 kb-deep-analyzer +7. 主代理执行 `kb_workflow.py --archive-file` 归档 + + ## Workflow 步骤 当触发后,按照以下步骤执行: @@ -50,78 +53,92 @@ python3 kb_workflow.py --check --url "[URL]" ### 步骤 2: 链接解析 -- 启动子代理 -- 将以下内容输入上下文: +1. 获取目录路径: +```bash +python3 kb_workflow.py --pending ``` -1.使用kb-link-parser技能解析这个链接:[用户的 URL] -2.文件输出路径:[知识库pending目录] -3.结束时返回结果json。 + +2. 启动子代理调用 kb-link-parser: +```bash +python3 /path/to/link-parser.py --url "[URL]" ``` -- 等待子代里结束返回 -- 如果返回错误,停止并汇报错误给用户。 -- 如果返回成功,解析文件名,提取平台名称。 + +3. 解析输出 JSON,提取 filename 和 platform ### 步骤 3: 元数据提取 -- 启动子代理 -- 将以下内容输入上下文: +1. 获取目录路径: +```bash +python3 kb_workflow.py --metadata ``` -1.使用[kb-平台名称-metadata]技能获取元数据 -2.输入文件:[知识库pending目录/步骤2返回的文件名] -3.输出目录:[知识库metadata目录] -4.结束时返回结果json + +2. 启动子代理调用对应平台的 metadata 技能: +```bash +# Bilibili +python3 /path/to/bilibili_metadata.py --id "[ID]" --type video + +# Zhihu +python3 /path/to/zhihu_metadata.py --id "[ID]" --type question ``` -- 等待子代理结束返回 -- 如果返回错误,停止并汇报错误给用户。 + +3. 解析输出 JSON,提取 filename ### 步骤 4: 内容下载 -- 启动子代理 -- 将以下内容输入上下文: +1. 获取目录路径: +```bash +python3 kb_workflow.py --content_downloads +python3 kb_workflow.py --content_subtitles ``` -1.使用[kb-平台名称-content]技能获取内容 -2.输入文件:[知识库metadata目录/步骤3返回的文件名] -3.输出目录:[知识库内容下载目录] -4.结束时返回结果json -``` -- 每5分钟检查一次子代理情况,将进度汇报给用户。 -- 等待子代理结束返回 -- 如果返回错误,停止并汇报错误给用户。 -### 步骤 5: OCR 处理 +2. 启动子代理调用对应平台的 content 技能: +```bash +# Bilibili 视频 +python3 /path/to/bilibili_content.py --id "[ID]" --type video --output [content_dir] -- 启动子代理 -- 将以下内容输入上下文: +# Bilibili 字幕 +python3 /path/to/bilibili_content.py --id "[ID]" --type subtitle --output [subtitles_dir] ``` -1.使用kb-ocr-processor技能通过视频帧解析字幕内容 -2.输入文件:[知识库内容下载目录/步骤4返回的文件名] -3.输出目录:[知识库内容下载目录] -4.结束时返回结果json + +3. 解析输出 JSON,提取 video_filename 和 subtitle_filename(如有) + +### 步骤 5: OCR 处理(可选) + +如果步骤4没有获取到字幕,需要从视频截帧 OCR: + +1. 获取目录路径: +```bash +python3 kb_workflow.py --content ``` -- 每5分钟检查一次子代理情况,将进度汇报给用户。 -- 等待子代理结束返回 -- 如果返回错误,停止并汇报错误给用户。 + +2. 启动子代理调用 kb-ocr-processor: +```bash +python3 /path/to/ocr_processor.py --video [video_path] --output [content_dir]/ocr.json --merge +``` + +3. 解析输出 JSON,生成 content 文件供步骤6使用 ### 步骤 6: 深度分析 -- 启动子代理 -- 将以下内容输入上下文: +1. 获取目录路径: +```bash +python3 kb_workflow.py --analyzed ``` -1.使用kb-deep-analyzer技能对字幕内容进行深度分析,总结提炼 -2.输入文件1:[元数据目录/步骤3返回的元数据文件名] -3.输入文件2:[知识库内容下载目录/步骤5返回的字幕文件名] -3.输出目录:[知识库analyzed目录] -4.结束时返回结果json + +2. 准备 content JSON 文件(包含 subtitle/description) + +3. 启动子代理调用 kb-deep-analyzer: +```bash +python3 /path/to/deep_analyzer.py --metadata [meta_path] --content [content_path] --output [analyzed_dir]/[filename].md ``` -- 每5分钟检查一次子代理情况,将进度汇报给用户。 -- 等待子代理结束返回 -- 如果返回错误,停止并汇报错误给用户。 + +4. 解析输出 JSON,获取分析结果 ### 步骤 7: 归档 运行归档命令: ```bash -python3 kb_workflow.py --archive "[分析报告文件路径]" +python3 kb_workflow.py --archive-file "[分析报告文件路径]" ``` ### 步骤 8: 汇报完成 @@ -132,16 +149,17 @@ python3 kb_workflow.py --archive "[分析报告文件路径]" - 最终文件路径 - 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 | +| 步骤 | 子技能 | 命令示例 | 输出 | +|------|--------|----------|------| +| 2 | kb-link-parser | `--url "BVxxx"` | `{p}_{id}.link.json` | +| 3 | kb-bilibili-metadata | `--id "BVxxx" --type video` | `{p}_{id}.meta.json` | +| 3 | kb-zhihu-metadata | `--id "xxx" --type question` | `{p}_{id}.meta.json` | +| 4 | kb-bilibili-content | `--id "BVxxx" --type video` | `{p}_{id}.{ext}` | +| 5 | kb-ocr-processor | `--video xxx.flv --output ocr.json` | `ocr.json`, `ocr.txt` | +| 6 | kb-deep-analyzer | `--metadata x.meta.json --content x.json --output x.md` | `{p}_{id}.md` | ## 目录结构 @@ -172,7 +190,7 @@ python3 kb_workflow.py --archive "[分析报告文件路径]" python3 kb_workflow.py --check --url "[URL]" # 归档分析报告 -python3 kb_workflow.py --archive "[分析报告路径]" +python3 kb_workflow.py --archive-file "[分析报告路径]" # ------------------- 目录路径查询 -------------------