This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw/agents/haonan/workspace/memory/plans/obsidian-kb-complete.md
T
2026-02-15 00:36:24 +08:00

9.9 KiB

Obsidian 知识库维护技能 - 完整实施计划(含长视频分段)

目标: 构建可扩展的多源内容知识库维护系统,支持B站/YouTube/知乎/本地Markdown汇入Obsidian,并解决超长视频上下文溢出问题 方法: 模块化架构 + 源适配器模式 + 主题聚合机制 + 动态分段分析 预估总时间: ~5-7小时(可并行)


核心特性

多源内容支持

  • B站收藏夹/UP主视频
  • YouTube频道/播放列表
  • 知乎专栏/回答
  • 本地Markdown文件

智能分析流程

  1. 轻量扫描 - 一句话摘要 + 质量评分
  2. Inbox管理 - 候选列表,用户确认后再分析
  3. 深度分析 - 结构化笔记生成
  4. 长视频分段 - 30分钟+视频自动分段处理
  5. 主题聚合 - 相似内容自动归类
  6. Git同步 - 自动commit/push

多代理并行模型分配策略

统一使用最强模型:kimi-coding/k2p5

Checkpoint 任务类型 模型
Checkpoint 1-2 项目脚手架、数据模型 kimi-coding/k2p5
Checkpoint 3 B站适配器开发 kimi-coding/k2p5
Checkpoint 4-5 内容处理管道 + 分段分析 kimi-coding/k2p5
Checkpoint 6 CLI命令实现 kimi-coding/k2p5
Checkpoint 7-8 模板与测试 kimi-coding/k2p5

Checkpoint 1: 项目脚手架与配置 (~30min)

  • Task 1.1: 创建技能目录 skills/obsidian-kb/

    • Action: 创建目录结构
    obsidian-kb/
    ├── src/
    │   ├── __init__.py
    │   ├── cli.py              # 命令行入口
    │   ├── config.py           # 配置管理
    │   ├── models.py           # 统一元数据模型
    │   ├── pipeline.py         # 内容处理管道
    │   ├── storage.py          # 本地存储/Inbox管理
    │   ├── git_sync.py         # Git同步
    │   ├── content_chunker.py  # 长视频分段工具 [新增]
    │   └── sources/
    │       ├── __init__.py
    │       ├── base.py         # 源适配器基类
    │       ├── bilibili.py     # B站适配器
    │       ├── youtube.py      # YouTube适配器
    │       ├── zhihu.py        # 知乎适配器
    │       └── local.py        # 本地Markdown扫描
    │   └── templates/
    │       ├── light_video.md
    │       ├── tutorial_video.md
    │       ├── article.md
    │       └── topic_index.md
    ├── tests/
    └── requirements.txt
    
  • Task 1.2: 创建 SKILL.md

    • Verify: 包含命令: /kb-subscribe, /kb-inbox, /kb-process, /kb-skip, /kb-status, /kb-search
  • Task 1.3: 创建配置模板 config.yaml.example

    • Verify: 包含: kimi_api_key, git_repo, git_token, obsidian_path, quality_threshold, chunking配置

Checkpoint 2: 核心数据模型与存储 (~40min)

  • Task 2.1: 实现 models.py - 统一元数据模型

    • Action: 定义 Content 类,包含核心字段
    • 字段: id, source, source_id, url, title, author, description, duration, content_type, transcript, etc.
  • Task 2.2: 实现 storage.py - Inbox/Topics存储管理

    • Action: Inbox队列管理、Topics目录结构、主题聚合检测
  • Task 2.3: 实现 git_sync.py - Git自动同步

    • Action: 检测变更、自动生成commit message、执行commit+push

Checkpoint 3: 源适配器基类与B站实现 (~60min)

  • Task 3.1: 实现 sources/base.py - 源适配器基类

    • Action: 定义抽象基类 SourceAdapter
    • 方法: fetch_new(), extract_content(), get_transcript()
  • Task 3.2: 实现 sources/bilibili.py - B站适配器

    • Action:
      • fetch_new(): 获取收藏夹/UP主动态
      • extract_content(): 从URL提取元数据
      • get_transcript(): 获取字幕(支持AI字幕和CC字幕)
  • Task 3.3: 实现 sources/local.py - 本地Markdown扫描

    • Action: 扫描指定目录的Markdown文件,提取YAML frontmatter
  • Task 3.4: 创建源注册表 sources/__init__.py

    • Action: SourceRegistry,支持动态注册新适配器

Checkpoint 4: 内容处理管道 (~50min)

  • Task 4.1: 实现轻量扫描阶段

    • Action: 调用AI生成一句话摘要、提取关键词、质量评分(0-10)
  • Task 4.2: 实现深度分析阶段

    • Action: 根据content_type和duration选择分析策略
    • 策略:
      • 短视频(<10min): 轻量结构
      • 长教程(>10min): 详细时间轴拆解
      • 文章: 结构大纲+核心观点
  • Task 4.3: 实现自适应模板系统

    • Action: 创建模板渲染器,根据content_type选择模板
  • Task 4.4: 实现主题聚合检测

    • Action: AI对比新内容与现有Topics,计算相似度
  • Task 4.5: 实现 pipeline.py - 整合所有阶段

    • Action: 编排: 轻量扫描→入库→深度分析→生成笔记→Git同步

Checkpoint 5: 长视频分段分析 (~45min) [新增]

5.1 基础结构搭建

  • Task 5.1.1: 创建 src/content_chunker.py 模块

    • Action: 实现 ContentChunker 类
    • 方法:
      • chunk_by_duration(srt_text, chunk_duration_seconds) - 按时长分割
      • chunk_by_count(srt_text, num_chunks) - 按段数分割
      • estimate_chunks(duration_seconds) - 估算段数
    • 返回: List[Chunk],每个Chunk包含text, start_time, end_time
  • Task 5.1.2: 实现 get_chunking_strategy(duration_seconds) 函数

    • 策略:
      • <10分钟: direct(直接分析)
      • 10-30分钟: truncate(截断至8000字符)
      • 30-60分钟: chunk_2(分2段)
      • 60分钟+: chunk_N(每15分钟一段)
  • Task 5.1.3: 更新 config.yaml 添加分段配置

    chunking:
      long_video_threshold: 1800      # 30分钟(秒)
      medium_video_threshold: 3600    # 60分钟(秒)
      chunk_duration: 900             # 每段15分钟(秒)
      max_chars_per_chunk: 6000       # 每段最大字符数
      summary_max_length: 500         # 每段摘要最大字数
    
  • Task 5.1.4: 更新 config.py 读取chunking配置

5.2 MultiAIClient 改造

  • Task 5.2.1: 修改 _deep_analyze() 方法

    • Action: 添加时长判断逻辑
    if duration >= 1800:  # 30分钟以上
        return self._analyze_in_chunks(content_text, duration)
    
  • Task 5.2.2: 实现 _analyze_in_chunks(content_text, duration)

    • Action:
      • 根据时长决定分段数(30-60分→2段,60分+→每15分钟一段)
      • 循环每段,调用 _analyze_chunk() 获取摘要
      • 收集所有段摘要
      • 调用 _merge_summaries() 生成最终结果
  • Task 5.2.3: 实现 _analyze_chunk(chunk_text)

    • Action: 调用AI生成单段摘要(限制500字)
  • Task 5.2.4: 实现 _merge_summaries(summaries, content_type)

    • Action: 将所有段摘要合并,生成完整分析报告

5.3 测试验证

  • Task 5.3.1: 创建 tests/test_chunking.py

    • Action: 测试 ContentChunker 的分割逻辑
    • 覆盖: 正常分割、短文本、空文本
  • Task 5.3.2: 创建测试数据 tests/fixtures/sample_long_video.srt

    • Action: 模拟1小时视频字幕(约15000字符)
  • Task 5.3.3: 创建测试脚本 test_long_video.py

    • Action: 手动测试长视频分析流程

Checkpoint 6: CLI命令实现 (~40min)

  • Task 6.1: 实现 /kb-subscribe 命令

    • Action: 支持订阅B站收藏夹、UP主、YouTube频道
  • Task 6.2: 实现 /kb-inbox 命令

    • Action: 显示待处理候选列表,带摘要和评分
  • Task 6.3: 实现 /kb-process 命令

    • Action: 处理指定ID或全部确认的内容
    • 注意: 长视频自动触发分段分析
  • Task 6.4: 实现 /kb-skip 命令

    • Action: 跳过指定内容,记录跳过原因
  • Task 6.5: 实现 /kb-status 命令

    • Action: 显示同步状态、Inbox数量、今日处理量
  • Task 6.6: 实现 /kb-search 命令

    • Action: 搜索已处理的笔记

Checkpoint 7: 模板与文档 (~30min)

  • Task 7.1: 创建所有Markdown模板

    • light_video.md
    • tutorial_video.md
    • article.md
    • topic_index.md
  • Task 7.2: 完善 SKILL.md 使用文档

  • Task 7.3: 创建 README.md


Checkpoint 8: 测试与验证 (~30min)

  • Task 8.1: 编写单元测试

    • Action: 测试核心模块: models, storage, pipeline, chunking
  • Task 8.2: 集成测试

    • Action: 端到端测试: 订阅→爬取→分析(含长视频分段)→生成→同步
  • Task 8.3: 手动验证

    • Action: 实际处理1-2个B站视频(含长视频),检查输出

Verification Criteria

  • 所有Checkpoints完成
  • 可以订阅B站收藏夹并获取新内容
  • Inbox预览功能正常,显示摘要和评分
  • 确认处理后生成格式正确的Markdown
  • 长视频(30分钟+)能正常分段分析,不抛Context overflow错误
  • 相似内容自动归入同一主题
  • Git自动同步工作正常
  • 代码通过基本测试
  • 文档完整可理解

视频处理策略总结

视频时长 处理策略 API调用次数
< 10分钟 直接完整分析 1次
10-30分钟 截断至8000字符分析 1次
30-60分钟 分2段分析 3次(2段摘要+1次合并)
60分钟+ 每15分钟一段 N+1次(N段+1次合并)

执行选项

选项1: 单代理顺序执行

  • 在当前会话中按Checkpoint顺序执行
  • 每个Checkpoint完成后汇报进度

选项2: 多代理并行(推荐)

  • 同时启动多个子代理并行工作
代理 Checkpoint 任务
代理A 1-2 项目基础 + 数据模型
代理B 3 B站适配器
代理C 4-5 内容处理管道 + 分段分析
代理D 6 CLI命令
代理E 7-8 模板 + 测试

选择哪种执行方式?