This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-skills/skills/kb-workflow/SKILL.md
T
OpenClaw Agent fa85add7c4 docs(kb-workflow): 强调OCR步骤为耗时步骤
- 严禁跳过,必须等待完成
- 定时汇报进度(每2-3分钟)
- 超时时间30分钟
2026-02-11 01:37:45 +08:00

244 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: kb-workflow
description: 当收到"添加到知识库 + 链接" 或"保存到知识库 + 链接"时使用
---
# KB Workflow
## 什么时候使用
当用户发送包含以下模式的消息时,此技能自动触发:
| 触发词 | 行为 | 示例 |
|--------|------|------|
| `添加到知识库` + 链接 | 添加到知识库并处理 | "添加到知识库 https://www.bilibili.com/video/BVxxx" |
| `保存到知识库` + 链接 | 同上 | "保存到知识库 https://www.bilibili.com/video/BVxxx" |
## 环境变量
检查以下环境变量
KB_BASE_PATH
环境变量默认值
```bash
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 步骤
当触发后,按照以下步骤执行:
### 步骤 1: 查重
运行查重命令:
```bash
python3 kb_workflow.py --check --url "[URL]"
```
- 如果存在:汇报用户并询问是更新还是跳过
- 如果不存在:继续步骤 2
### 步骤 2: 链接解析
1. 获取目录路径:
```bash
python3 kb_workflow.py --pending
```
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
# 返回: {"path": "/home/admin/work/knowledge-base/metadata"}
```
2. 构建输出文件路径:`${metadata_dir}/${platform}_${id}.meta.json`
3. 启动子代理调用对应平台的 metadata 技能(传入 `--output`):
```bash
# Bilibili
python3 /path/to/bilibili_metadata.py --id "[ID]" --type video --output "${metadata_dir}/bilibili_[ID].meta.json"
# Zhihu
python3 /path/to/zhihu_metadata.py --id "[ID]" --type question --output "${metadata_dir}/zhihu_[ID].meta.json"
```
4. 解析输出 JSON,提取 filename
### 步骤 4: 内容下载
1. 获取目录路径:
```bash
python3 kb_workflow.py --content_downloads
python3 kb_workflow.py --content_subtitles
```
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]
```
3. 解析输出 JSON,提取 video_filename 和 subtitle_filename(如有)
### 步骤 5: OCR 处理(可选,耗时步骤)
> ⚠️ **重要**:此步骤为耗时步骤,视频按帧截取和 OCR 识别需要较长时间。
> - **严禁跳过**:即使等待时间较长,也必须等待 OCR 完成
> - **定时汇报**:每2-3分钟向用户汇报进度(处理帧数/预计剩余时间)
> - **超时时间**:30分钟
> - **耐心等待**:不要中途启动其他步骤,必须串行执行
如果步骤4没有获取到字幕,需要从视频截帧 OCR:
1. 获取目录路径:
```bash
python3 kb_workflow.py --content
```
2. 启动子代理调用 kb-ocr-processor(传入完整路径):
```bash
# 必须传入 --output 完整路径
python3 /path/to/ocr_processor.py --video [video_path] --output [content_dir]/ocr.json --merge
```
3. 等待 OCR 完成(定时汇报进度)
4. 解析输出 JSON,生成 content 文件供步骤6使用
### 步骤 6: 深度分析
1. 获取目录路径:
```bash
python3 kb_workflow.py --analyzed
```
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
```
4. 解析输出 JSON,获取分析结果
### 步骤 7: 归档
运行归档命令:
```bash
python3 kb_workflow.py --archive-file "[分析报告文件路径]"
```
### 步骤 8: 汇报完成
向用户汇报:
- 视频标题
- 处理阶段完成情况
- 最终文件路径
- Git commit 信息
## 子技能清单
| 步骤 | 子技能 | 命令示例 | 输出 |
|------|--------|----------|------|
| 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` |
## 目录结构
```
~/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-file "[分析报告路径]"
# ------------------- 目录路径查询 -------------------
# 获取知识库根目录(默认 ~/work/knowledge-base)
python3 kb_workflow.py --base-path "~/custom/path"
# 获取待处理目录(pending)
python3 kb_workflow.py --pending
# 获取元数据目录
python3 kb_workflow.py --metadata
# 获取内容目录
python3 kb_workflow.py --content
# 获取内容下载目录
python3 kb_workflow.py --content_downloads
# 获取字幕目录
python3 kb_workflow.py --content_subtitles
# 获取深度分析目录
python3 kb_workflow.py --analyzed
# 获取归档目录
python3 kb_workflow.py --archive
# 获取订阅信息目录
python3 kb_workflow.py --archive_subscriptions
# ------------------- 工具函数 -------------------
# 从文件名提取平台名称
python3 kb_workflow.py --extract_platform "bilibili_BVxxx.mp4"
```