- AGENTS.md: Update agent workspace guidelines (read TODO.md in workflow) - TODO.md: Add security inspection and TTS configuration tasks - memory/: Add knowledge base refactoring progress notes - .gitignore: Add debug/ directory
8.7 KiB
知识库维护系统 - 实现计划
目标: 将 obsidian-kb 拆分为 7 个独立技能,实现模块化、可维护的知识库维护系统
方案: 复用现有代码,按详细设计文档实现
预计总时间: 约 180 分钟(3 小时)
检查点 1: 项目初始化
-
任务 1.1: 创建技能目录结构 (~2 min)
- 动作: 创建
skills/link-parser/,skills/bilibili-metadata/,skills/zhihu-metadata/,skills/bilibili-content/,skills/ocr-processor/,skills/deep-analyzer/,skills/kb-workflow/目录 - 验证:
ls skills/显示 7 个新目录
- 动作: 创建
-
任务 1.2: 复制现有代码库到临时位置 (~3 min)
- 动作: 复制
obsidian-kb/src/到临时目录备份 - 验证: 确认
tmp_backup/src/存在所有 .py 文件
- 动作: 复制
-
任务 1.3: 创建通用配置文件模板 (~3 min)
- 动作: 按详细设计创建
skills/_common/config_template.yaml - 验证:
cat config_template.yaml显示所有配置项
- 动作: 按详细设计创建
检查点 2: 技能 1 - link-parser
-
任务 2.1: 创建 SKILL.md (~2 min)
- 动作: 复制 SKILL.md 模板,填写 link-parser 描述
- 验证:
cat skills/link-parser/SKILL.md包含功能描述和命令
-
任务 2.2: 实现链接解析器主文件 (~8 min)
- 动作: 创建
skills/link-parser/link-parser.py,实现:resolve_shortlink()短链跳转extract_bilibili_id()B站ID提取extract_youtube_id()YouTube ID提取extract_zhihu_id()知乎ID提取
- 验证:
python link-parser.py --url "https://b23.tv/xxx"返回 JSON
- 动作: 创建
-
任务 2.3: 测试链接解析器 (~3 min)
- 动作: 测试以下链接:
https://www.bilibili.com/video/BV1xxhttps://space.bilibili.com/7770724https://b23.tv/xxxxxhttps://www.zhihu.com/question/266309957
- 验证: 每个链接返回正确的 platform, type, id
- 动作: 测试以下链接:
-
任务 2.4: 验证复用代码 (~2 min)
- 动作: 确认复用
shortlink_resolver.py - 验证: import 语句存在,代码无红色报错
- 动作: 确认复用
检查点 3: 技能 2 - bilibili-metadata
-
任务 3.1: 创建 SKILL.md (~2 min)
- 动作: 复制 SKILL.md 模板,填写 bilibili-metadata 描述
- 验证: 文件包含功能描述和命令行示例
-
任务 3.2: 实现 B站元数据获取器 (~10 min)
- 动作: 创建
skills/bilibili-metadata/bilibili_metadata.py:- 复用
BilibiliExtractor类 - 实现
extract_video_metadata() - 实现
extract_article_metadata() - 实现
extract_up_metadata()
- 复用
- 验证:
python bilibili_metadata.py --id "BV1xx"返回完整 JSON
- 动作: 创建
-
任务 3.3: 测试 B站元数据获取 (~5 min)
- 动作: 测试视频、专栏、UP主三种类型
- 验证: 每种类型返回对应格式的元数据
检查点 4: 技能 2 - zhihu-metadata
-
任务 4.1: 创建 SKILL.md (~2 min)
- 动作: 复制 SKILL.md 模板,填写 zhihu-metadata 描述
- 验证: 文件包含功能描述
-
任务 4.2: 实现知乎元数据获取器 (~8 min)
- 动作: 创建
skills/zhihu-metadata/zhihu_metadata.py:- 复用
ZhihuDrissionExtractor类 - 实现
extract_question() - 实现
extract_answer() - 实现
extract_user()
- 复用
- 验证:
python zhihu_metadata.py --id "266309957"返回 JSON
- 动作: 创建
-
任务 4.3: 测试知乎元数据获取 (~3 min)
- 动作: 测试问题、回答两种类型
- 验证: 返回正确格式的元数据
检查点 5: 技能 3 - bilibili-content
-
任务 5.1: 创建 SKILL.md (~2 min)
- 动作: 复制 SKILL.md 模板,填写 bilibili-content 描述
- 验证: 文件包含功能描述
-
任务 5.2: 实现 B站内容获取器 (~12 min)
- 动作: 创建
skills/bilibili-content/bilibili_content.py:- 复用
VideoStreamExtractor - 实现
download_video(quality=480) - 实现
extract_subtitle() - 实现
extract_article_content()
- 复用
- 验证:
python bilibili_content.py --id "BV1xx"下载视频到 output 目录
- 动作: 创建
-
任务 5.3: 测试内容获取 (~5 min)
- 动作: 测试视频下载、字幕提取
- 验证: output 目录包含 .mp4 和 .srt 文件
检查点 6: 技能 3 - ocr-processor
-
任务 6.1: 创建 SKILL.md (~2 min)
- 动作: 复制 SKILL.md 模板,填写 ocr-processor 描述
- 验证: 文件包含功能描述
-
任务 6.2: 实现 OCR 处理器 (~8 min)
- 动作: 创建
skills/ocr-processor/ocr_processor.py:- 复用
OCRProcessor - 实现
process_frames(input_dir, fps=0.1) - 实现
merge_texts()
- 复用
- 验证:
python ocr_processor.py --input ./frames/生成 ocr.json
- 动作: 创建
-
任务 6.3: 测试 OCR 功能 (~3 min)
- 动作: 用测试帧目录运行 OCR
- 验证: 返回包含 texts 和 confidence 的 JSON
检查点 7: 技能 4 - deep-analyzer
-
任务 7.1: 创建 SKILL.md (~2 min)
- 动作: 复制 SKILL.md 模板,填写 deep-analyzer 描述
- 验证: 文件包含模板变量说明
-
任务 7.2: 实现深度分析器 (~15 min)
- 动作: 创建
skills/deep-analyzer/deep_analyzer.py:- 复用
DeepAnalyzer - 实现
analyze(metadata, content, type) - 实现
load_template(type) - 实现
render_template(variables)
- 复用
- 验证:
python deep_analyzer.py --metadata m.json --content c.json生成 .md
- 动作: 创建
-
任务 7.3: 测试深度分析 (~5 min)
- 动作: 用示例元数据和内容运行分析
- 验证: 生成包含 frontmatter 和模板内容的 Markdown
检查点 8: 技能 5 - kb-workflow
-
任务 8.1: 创建 SKILL.md (~2 min)
- 动作: 复制 SKILL.md 模板,填写 kb-workflow 描述
- 验证: 文件包含工作流步骤说明
-
任务 8.2: 实现工作流编排器 (~20 min)
- 动作: 创建
skills/kb-workflow/kb_workflow.py:- 实现
scan_inbox()扫描四个子目录 - 实现
process_item(item)调用技能2-4 - 实现
archive_item(item, analysis)归档 - 实现
check_subscriptions()订阅更新检测 - 实现
generate_report()生成汇报
- 实现
- 验证:
python kb_workflow.py --trigger manual运行无报错
- 动作: 创建
-
任务 8.3: 测试工作流 (~5 min)
- 动作: 用一个测试 item 运行完整流程
- 验证: item 从 pending → metadata → content → archive
检查点 9: 目录结构与配置
-
任务 9.1: 创建收件箱目录模板 (~2 min)
- 动作: 创建
inbox/{pending,metadata,content,analyzed}/目录 - 验证:
ls inbox/显示四个子目录
- 动作: 创建
-
任务 9.2: 创建归档目录模板 (~2 min)
- 动作: 创建
archive/YYYY/MM/{video,article}/目录 - 验证:
ls archive/2024/01/显示子目录
- 动作: 创建
-
任务 9.3: 创建 config.yaml 示例 (~3 min)
- 动作: 创建
skills/_common/config.yaml示例 - 验证: 文件包含 AI、存储、Git、OCR 等配置
- 动作: 创建
检查点 10: 集成测试
-
任务 10.1: 端到端测试 - 单个视频 (~10 min)
- 动作:
link-parser解析视频链接bilibili-metadata获取元数据bilibili-content获取内容deep-analyzer生成分析kb-workflow归档
- 验证: archive 目录生成 .md 文件
- 动作:
-
任务 10.2: 端到端测试 - 列表类型 (~5 min)
- 动作: 模拟 UP主链接,测试列表处理流程
- 验证: 返回 requires_user_input 标记
-
任务 10.3: 汇报功能测试 (~3 min)
- 动作: 运行工作流后检查 report.json
- 验证: report.json 包含 processed, success, failed 统计
验证标准
- 所有 7 个技能的 SKILL.md 存在且内容正确
- 每个技能可通过命令行独立运行
- link-parser 支持所有设计的链接格式
- bilibili-metadata 和 zhihu-metadata 返回正确元数据
- bilibili-content 可下载视频和提取字幕
- ocr-processor 可处理帧图片并输出文字
- deep-analyzer 可生成模板化的 Markdown
- kb-workflow 可完成端到端流程并归档
- 汇报文件格式正确
- 代码复用已验证的现有模块
执行选项
计划已保存到 memory/plans/knowledge-base-refactoring.md
两种执行方式:
1. 单代理顺序执行(当前会话)
- 我按顺序执行每个任务
- 每个检查点完成后向您汇报
- 适合需要频繁确认的场景
- 预计时间: 约 3 小时
2. 并行分发执行
- 使用 dispatch-multiple-agents 技能
- 并行创建多个子代理同时工作
- 适合时间紧迫的场景
- 预计时间: 约 1 小时(需要更多协调)
蒋先生,您选择哪种方式?