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 11c62dd383 refactor(kb-workflow): 重构为真正的编排者,使用sessions_spawn调用子agent
- kb_workflow.py: 重构为编排者,使用sessions_spawn调用子技能
- skill_main.py: 新增技能入口,处理用户消息
- SKILL.md: 更新文档,明确架构和流程
- SkillBug.md: 新增问题记录文档

设计原则:
- workflow不读文件内容,从文件名提取平台
- 使用sessions_spawn调用子agent
- 子技能自己定义输入输出格式
2026-02-10 20:31:33 +08:00

7.6 KiB
Raw Blame History

name, description, metadata
name description metadata
kb-workflow 知识库工作流编排技能,提供收件箱扫描、内容处理、归档、订阅检测、Git版本管理和自动清理功能。
short-description
知识库工作流编排

KB Workflow

Description

KB Workflow 是一个完整的知识库管理系统,包含:

核心功能:

  • 📥 收件箱扫描 - 扫描四个子目录 (pending, metadata, content, analyzed)
  • 🔄 内容处理 - 调用子agent处理各阶段
  • 📦 Git版本管理 - 归档后自动提交并推送
  • 🔔 订阅管理 - 跟踪订阅源更新
  • 🧹 自动清理 - 定期清理临时文件
  • 📊 汇报生成 - 生成处理统计

触发方式

自然语言触发

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

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

支持的平台

平台 子技能
Bilibili kb-bilibili-metadata, kb-bilibili-content
知乎 kb-zhihu-metadata

架构设计

用户: "添加到知识库 https://www.bilibili.com/video/BV1ci4y1V7tb"
     │
     ▼
┌─────────────────────────────────────────────────────────┐
│ kb-workflow (主代理)                                      │
│                                                          │
│ 职责:                                                    │
│ 1. 接收用户消息,识别触发词和链接                          │
│ 2. 查重(根据URL/文件名)                                  │
│ 3. 调用子agent处理各阶段                                  │
│ 4. 文件流转(mv)                                         │
│ 5. Git版本管理                                           │
│ 6. 归档和清理                                             │
└─────────────────────────────────────────────────────────┘
         │              │              │              │
         ▼              ▼              ▼              ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ kb-link-parser│ │kb-bilibili- │ │kb-bilibili- │ │ kb-deep-     │
│  (子agent)    │ │ metadata     │ │ content      │ │ analyzer     │
│               │ │  (子agent)    │ │  (子agent)    │ │  (子agent)    │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘

处理流程

完整流程(6个阶段)

用户发送"添加到知识库 + 链接"
        │
        ▼
kb-workflow:
  1. 查重(根据URL/文件名)
  2. 确认目录存在
  3. 调用 kb-link-parser (sessions_spawn)
        │
        ▼
kb-link-parser (子agent):
  解析URL
  输出: pending/bilibili_BV1ci4y1V7tb.link.json
  返回: {"success": true/false, "output_file": "pending/..."}
        │
        ▼
kb-workflow:
  从文件名提取平台 "bilibili" → 调用 kb-bilibili-metadata
        │
        ▼
kb-bilibili-metadata (子agent):
  获取元数据
  输出: metadata/bilibili_BV1ci4y1V7tb.meta.json
  返回: {"success": true/false, "output_file": "metadata/..."}
        │
        ▼
kb-workflow:
  调用 kb-bilibili-content
        │
        ▼
kb-bilibili-content (子agent):
  下载视频+字幕
  输出: content/downloads/*.mp4, *.srt
  返回: {"success": true/false, "output_file": "...", "subtitles": "..."}
        │
        ▼
kb-workflow:
  拿到字幕文件 → 调用 kb-ocr-processor
        │
        ▼
kb-ocr-processor (子agent):
  OCR处理
  输出: content/bilibili_BV1ci4y1V7tb.txt
  返回: {"success": true/false, "output_file": "content/..."}
        │
        ▼
kb-workflow:
  拿到txt文件 → 调用 kb-deep-analyzer
        │
        ▼
kb-deep-analyzer (子agent):
  深度分析
  输出: analyzed/bilibili_BV1ci4y1V7tb.md
  返回: {"success": true/false, "output_file": "analyzed/..."}
        │
        ▼
kb-workflow:
  mv → archive/YYYY-MM-DD/
  git add → commit → push
  汇报完成

目录结构

知识库根目录 KB_BASE_PATH/
├── archive/            # Git归档目录
│   ├── YYYY-MM-DD/    # 按日期归档
│   └── subscriptions/  # 订阅数据
├── pending/           # 链接解析结果 (*.link.json)
├── metadata/          # 元数据 (*.meta.json)
├── content/
│   ├── downloads/     # 视频文件 (*.mp4) - 7天后清理
│   └── subtitles/     # 字幕文件 (*.srt) - 7天后清理
├── frames/            # 视频截帧 (*.jpg) - 7天后清理
└── analyzed/          # 分析报告 (*.md)

设计原则

workflow 职责

操作 说明
查重 根据URL/文件名查重
创建目录 确保 base_path 下目录存在
调用子agent 使用 sessions_spawn 调用子技能
提取文件名 从子agent返回的output_file提取
提取平台 从文件名第一个下划线之前提取(不读内容)
传递信息 给子agent提示词 + 需要的路径
文件流转 最后归档
Git commit + push

workflow 不管

  • 不读文件内容
  • 不关心子技能内部格式
  • 子技能自己定义输入输出规范

子agent 调用方式

# kb-workflow 调用子agent
result = sessions_spawn(
    agentId="子技能名称",
    task="提示词 + 需要的路径信息",
    timeoutSeconds=120
)

子技能返回格式

所有子技能应返回JSON:

{
  "success": true,
  "output_file": "完整文件路径",
  "subtitles": "字幕文件路径(可选)"
}

环境变量

export KB_BASE_PATH="/path/to/knowledge-base"   # 知识库根目录
export KB_GIT_ROOT="/path/to/archive"           # Git仓库目录
export KB_GIT_REMOTE="git@github.com:user/repo.git"  # 远程仓库
export KB_GIT_USER="Username"                   # 用户名
export KB_GIT_EMAIL="user@example.com"          # 邮箱

Usage

作为 OpenClaw 技能

当用户发送消息时自动触发:

用户: "添加到知识库 https://www.bilibili.com/video/BVxxx"

作为子代理

# 从其他技能调用
result = sessions_spawn(
    agentId="kb-workflow",
    task="添加到知识库 https://www.bilibili.com/video/BVxxx"
)

命令行

# 处理单个URL
python kb_workflow.py --url "https://www.bilibili.com/video/BVxxx"

子技能集成

阶段 子技能 输出文件
链接解析 kb-link-parser pending/{platform}_{id}.link.json
元数据 kb-bilibili-metadata metadata/{platform}_{id}.meta.json
内容 kb-bilibili-content content/downloads/{platform}{id}.mp4, content/subtitles/{platform}{id}.srt
OCR kb-ocr-processor content/{platform}_{id}.txt
分析 kb-deep-analyzer analyzed/{platform}_{id}.md
  • kb-link-parser - 链接解析
  • kb-bilibili-metadata - B站元数据
  • kb-bilibili-content - B站内容获取
  • kb-deep-analyzer - 深度分析
  • kb-ocr-processor - OCR处理