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
2026-02-11 00:37:30 +08:00

214 lines
5.5 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" |
## 启动子代理方式
子代理需要:
- **特定范围:** 明确的任务
- **全部上下文:** 不要让他们自己去寻找
- **清晰的输出:** 应该返回什么内容?
- **约束:** 什么事情不能干?
使用 sessions_spawn 启动代理
## 环境变量
检查以下环境变量
KB_BASE_PATH
环境变量默认值
```bash
export KB_BASE_PATH="~/work/knowledge-base"
```
## Workflow 步骤
当触发后,按照以下步骤执行:
### 步骤 1: 查重
运行查重命令:
```bash
python3 kb_workflow.py --check --url "[URL]"
```
- 如果存在:汇报用户并询问是更新还是跳过
- 如果不存在:继续步骤 2
### 步骤 2: 链接解析
- 启动子代理
- 将以下内容输入上下文:
```
1.使用kb-link-parser技能解析这个链接:[用户的 URL]
2.文件输出路径:[知识库pending目录]
3.结束时返回结果json。
```
- 等待子代里结束返回
- 如果返回错误,停止并汇报错误给用户。
- 如果返回成功,解析文件名,提取平台名称。
### 步骤 3: 元数据提取
- 启动子代理
- 将以下内容输入上下文:
```
1.使用[kb-平台名称-metadata]技能获取元数据
2.输入文件:[知识库pending目录/步骤2返回的文件名]
3.输出目录:[知识库metadata目录]
4.结束时返回结果json
```
- 等待子代理结束返回
- 如果返回错误,停止并汇报错误给用户。
### 步骤 4: 内容下载
- 启动子代理
- 将以下内容输入上下文:
```
1.使用[kb-平台名称-content]技能获取内容
2.输入文件:[知识库metadata目录/步骤3返回的文件名]
3.输出目录:[知识库内容下载目录]
4.结束时返回结果json
```
- 每5分钟检查一次子代理情况,将进度汇报给用户。
- 等待子代理结束返回
- 如果返回错误,停止并汇报错误给用户。
### 步骤 5: OCR 处理
- 启动子代理
- 将以下内容输入上下文:
```
1.使用kb-ocr-processor技能通过视频帧解析字幕内容
2.输入文件:[知识库内容下载目录/步骤4返回的文件名]
3.输出目录:[知识库内容下载目录]
4.结束时返回结果json
```
- 每5分钟检查一次子代理情况,将进度汇报给用户。
- 等待子代理结束返回
- 如果返回错误,停止并汇报错误给用户。
### 步骤 6: 深度分析
- 启动子代理
- 将以下内容输入上下文:
```
1.使用kb-deep-analyzer技能对字幕内容进行深度分析,总结提炼
2.输入文件1:[元数据目录/步骤3返回的元数据文件名]
3.输入文件2:[知识库内容下载目录/步骤5返回的字幕文件名]
3.输出目录:[知识库analyzed目录]
4.结束时返回结果json
```
- 每5分钟检查一次子代理情况,将进度汇报给用户。
- 等待子代理结束返回
- 如果返回错误,停止并汇报错误给用户。
### 步骤 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 "[分析报告路径]"
# ------------------- 目录路径查询 -------------------
# 获取知识库根目录(默认 ~/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"
```