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

5.5 KiB
Raw Blame History

name, description
name description
kb-workflow 当收到"添加到知识库 + 链接" 或"保存到知识库 + 链接"时使用

KB Workflow

什么时候使用

当用户发送包含以下模式的消息时,此技能自动触发:

触发词 行为 示例
添加到知识库 + 链接 添加到知识库并处理 "添加到知识库 https://www.bilibili.com/video/BVxxx"
保存到知识库 + 链接 同上 "保存到知识库 https://www.bilibili.com/video/BVxxx"

启动子代理方式

子代理需要:

  • 特定范围: 明确的任务
  • 全部上下文: 不要让他们自己去寻找
  • 清晰的输出: 应该返回什么内容?
  • 约束: 什么事情不能干?

使用 sessions_spawn 启动代理

环境变量

检查以下环境变量 KB_BASE_PATH

环境变量默认值

export KB_BASE_PATH="~/work/knowledge-base"

Workflow 步骤

当触发后,按照以下步骤执行:

步骤 1: 查重

运行查重命令:

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: 归档

运行归档命令:

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

辅助命令

# ------------------- 查重与归档 -------------------

# 查重
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"