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
starmen1265 29dd236bb9 feat(kb-workflow): 切换为 Whisper 语音识别
- 将步骤5从 OCR 改为 Whisper 语音识别
- 更新 kb-whisper 支持自动音频转换
- 默认使用中文语言 (zh) 和 base 模型
- 更新输出格式为 {platform}_{id}.txt/.srt/.json
- 添加 FunASR 作为备用方案
2026-02-13 09:04:27 +08:00

6.9 KiB
Raw Blame History

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

KB Workflow

什么时候使用

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

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

环境变量

在执行 workflow 之前,必须检查环境变量是否已经设置。 以下是必须的环境变量,如果缺失必须询问用户获得。没有全部设置完成之前禁止进行后续操作。

变量名 用途 示例
KB_BASE_PATH 知识库根目录 ~/work/kb
AI_API_KEY AI深度分析 sk-xxx
AI_PROVIDER AI提供商 openai, zhipu, minimax
AI_MODEL AI模型 gpt-4

以下是可选的环境变量,询问用户是否要设置,允许暂时跳过

变量名 用途 示例
BILIBILI_COOKIE 下载会员视频 SESSDATA=xxx; bili_jct=xxx
KB_GIT_USER Git提交用户名 Your Name
KB_GIT_EMAIL Git提交邮箱 your@email.com

Workflow 执行方式

主代理直接执行以下步骤,无需启动 kb-workflow 子代理:

  1. 主代理启动子代理调用 kb-link-parser
  2. 主代理启动子代理调用 kb-平台-metadata
  3. 主代理启动子代理调用 kb-平台-content
  4. 主代理启动子代理调用 kb-ocr-processor(如需要)
  5. 主代理启动子代理调用 kb-deep-analyzer
  6. 主代理执行 kb_workflow.py --archive-file 归档

Workflow 执行步骤

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

步骤 1: 环境变量检查

立刻告知用户,启用技能kb-workflow. 参考环境变量标题下内容执行。 如果必须的环境变量都没问题,继续执行下面的步骤。

步骤 2: 链接解析

  1. 获取目录路径:
python3 kb_workflow.py --pending
  1. 启动子代理调用 kb-link-parser:
python3 /path/to/link-parser.py --url "[URL]"
  1. 解析输出 JSON,提取 filename 和 platform

步骤 3: 元数据提取

  1. 获取元数据目录路径:
python3 kb_workflow.py --metadata
# 返回: {"path": "/home/admin/work/knowledge-base/metadata"}
  1. 构建输出文件路径:${metadata_dir}/${platform}_${id}.meta.json

  2. 启动子代理调用对应平台的 metadata 技能(传入 --output):

# 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"
  1. 解析输出 JSON,提取 filename

步骤 4: 内容下载

  1. 获取目录路径:
python3 kb_workflow.py --content_downloads
python3 kb_workflow.py --content_subtitles
  1. 启动子代理调用对应平台的 content 技能:
# 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. 解析输出 JSON,提取 video_filename 和 subtitle_filename(如有)

步骤 5: 语音识别转文字(禁止跳过)

⚠️ 重要:此步骤为耗时步骤,使用 Whisper 进行语音识别。

  • 严禁跳过:即使等待时间较长,也必须等待识别完成
  • 定时汇报:每2-3分钟向用户汇报进度
  • 超时时间:30分钟
  • 耐心等待:不要中途启动其他步骤,必须串行执行

如果步骤4没有获取到字幕,需要使用 Whisper 进行语音识别:

  1. 获取目录路径:
python3 kb_workflow.py --content
  1. 启动子代理调用 kb-whisper(传入完整路径):
# 必须传入 --output 完整路径
python3 /path/to/whisper.py --input [video_path] --model base --output [content_dir]
  1. 等待 Whisper 完成(定时汇报进度)

  2. 解析输出 JSON,生成 content 文件供步骤6使用

步骤 6: 深度分析

  1. 获取目录路径:
python3 kb_workflow.py --analyzed
  1. 准备 content JSON 文件(包含 subtitle/description)

  2. 启动子代理调用 kb-deep-analyzer:

python3 /path/to/deep_analyzer.py --metadata [meta_path] --content [content_path] --output [analyzed_dir]/[filename].md
  1. 解析输出 JSON,获取分析结果

步骤 7: 归档

运行归档命令:

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-whisper --input xxx.mp4 --model base {p}_{id}.json, {p}_{id}.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
│   ├── {platform}_{id}.txt        # Whisper 识别的文本
│   └── {platform}_{id}.json       # Whisper 完整结果
└── analyzed/
    └── {platform}_{id}.md

辅助命令

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

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