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
kb-skills/.planning/research/SUMMARY.md
T

189 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Project Research Summary
**Project:** kb-skills (Skill-based Workflow Orchestration System)
**Domain:** Content Processing Pipeline with LLM Agent Orchestration
**Researched:** 2026-03-13
**Confidence:** HIGH
## Executive Summary
这是一个技能型工作流编排系统,专门用于内容处理管道(视频/文章的元数据提取、ASR识别、AI深度分析)。专家构建此类系统时,通常采用分层架构将编排层、技能定义层、执行层和基础设施层分离,并使用步骤级状态管理实现断点续传和幂等执行。
基于研究,推荐采用**串行管道编排模式**,使用 `transitions` 状态机管理步骤状态,`Pydantic` 定义 Schema 并实现验证。核心原则是:每个步骤完成后立即持久化状态,失败时可以从断点恢复,重复执行不会产生重复文件。这与 Airflow/Prefect 等重量级编排工具不同——本项目专注于单机批处理场景,无需分布式执行。
关键风险在于**无状态执行**和**错误上下文丢失**。长时间运行的任务(Whisper识别可能需要30分钟)如果失败后需要从头开始,成本极高。缓解措施是在 Phase 1 就实现 `workflow_state.json` 状态文件,并确保每个步骤输出结构化错误信息。
## Key Findings
### Recommended Stack
推荐使用 Python 3.12+ 作为运行时,配合 Pydantic 2.11+ 进行数据验证和 JSON Schema 生成,transitions 0.9.3+ 实现步骤状态机,Typer + Rich 构建现代化 CLI。这套组合轻量、Pythonic,与项目的 SKILL.md 规范模式完美契合。
**Core technologies:**
- **Pydantic 2.11+**: 数据验证 & Schema 生成 — v2.11+ 解析速度更快,原生支持 JSON Schema,与 PIPE-07 需求匹配
- **transitions 0.9.3+**: 状态机 — 轻量级、支持回调和嵌套状态,无需数据库
- **pydantic-settings 2.8+**: 配置管理 — 解决现有 `~/.kb_env` 分散配置问题
- **Typer 0.15+**: CLI 框架 — 基于 Click 的现代 CLI,利用类型提示自动生成参数
- **tenacity 8.5+**: 重试机制 — 实现指数退避重试,处理 API 调用失败
**避免使用:** Airflow/Celery(过重)、argparse(样板代码多)、requests(同步阻塞)
### Expected Features
**Must have (table stakes):**
- **步骤级状态管理** — 用户期望能从断点恢复,不重新执行已完成的步骤
- **幂等执行** — 相同输入重复执行产生相同结果,无重复文件
- **JSON Schema 验证** — 数据契约确保步骤间接口一致性
- **结构化错误处理** — 错误消息包含上下文和可操作建议
- **平台特定内容处理** — B站/知乎元数据和内容提取
**Should have (competitive):**
- **SKILL.md 声明式技能定义** — AI 代理可发现和执行技能
- **多模态内容处理** — 视频(ASR/OCR)+文本统一管道
- **Tmux 会话持久化** — 长时间运行操作可断开终端
**Defer (v2+):**
- **并发执行** — 当前串行模式足够,并发增加复杂度
- **Web UI** — CLI 优先,可视化需求低
- **多租户** — 单用户工具
### Architecture Approach
推荐四层架构:编排层(Workflow Coordinator、State Manager、Error Handler)、技能定义层(SKILL.md specs、Schema Definitions)、执行层(Platform/Processing/Analysis Skills)、基础设施层(File System、External APIs、AI Services)。
**Major components:**
1. **State Manager** — 管理 `workflow_state.json`,实现步骤级状态持久化和原子写入
2. **Schema Registry** — 统一的输入输出 JSON Schema 定义和验证
3. **Pipeline Engine** — 串行执行技能,检查状态跳过已完成步骤
4. **Platform Skills** — B站/知乎的元数据提取和内容下载
5. **Processing Skills** — Whisper/FunASR 语音识别、OCR 处理
6. **Analysis Skills** — kb-deep-analyzer AI 深度分析
### Critical Pitfalls
1. **无状态执行 = 从头重来** — Whisper 识别 20 分钟后失败,没有状态文件则需要重新识别。避免:每个步骤完成后写入 `workflow_state.json`
2. **错误上下文丢失** — 步骤 6 失败只报告 "API error",不知道是哪个内容、什么输入。避免:结构化 JSON 错误,包含步骤名、输入摘要、失败原因、可操作建议
3. **假设模型"理解上下文"** — 主代理期望子代理知道之前发生了什么,但每次调用是独立会话。避免:显式传递所有需要的上下文,输入 JSON 自包含
4. **非幂等操作** — 每次执行创建 `output_1.mp4`、`output_2.mp4`。避免:基于输入生成确定性文件名,已存在则跳过
5. **环境变量分散** — `~/.kb_env`、子技能配置、HF_TOKEN 分散各处。避免:统一配置文件,启动时检查所有必需变量
## Implications for Roadmap
Based on research, suggested phase structure:
### Phase 1: Foundation (基础设施层)
**Rationale:** 状态管理和 Schema 验证是所有后续组件的基础,必须首先实现。没有状态文件就无法实现断点续传和幂等执行。
**Delivers:** State Manager、Schema Registry、Error Handler、统一配置管理
**Addresses:** 步骤级状态管理、幂等执行、JSON Schema 验证、结构化错误处理
**Avoids:** 无状态执行、错误上下文丢失、环境变量分散
**Components:**
- `skills/core/state_manager.py` — workflow_state.json 管理
- `skills/core/schema_registry.py` — JSON Schema 定义和验证
- `skills/core/error_handler.py` — 统一错误处理
- `config.py` — pydantic-settings 配置管理
### Phase 2: Core Skills (核心技能集成)
**Rationale:** 基于现有技能进行集成,将分散的技能统一到管道模型中。Link Parser 是入口点,无依赖;Platform Skills 依赖其输出。
**Delivers:** Link Parser 集成、B站/知乎 Metadata 和 Content 技能适配
**Uses:** Pydantic (Schema)、transitions (状态)、Typer (CLI)
**Implements:** Pipeline Engine 原型
**Components:**
- Link Parser 技能适配(已有 kb-link-parser)
- B站/知乎技能适配(已有 kb-bilibili-*、kb-zhihu-*)
- 管道执行引擎原型
### Phase 3: Processing Skills (处理技能集成)
**Rationale:** ASR 和 OCR 依赖视频文件,必须在内容下载后执行。这些技能已有实现,需要集成到管道。
**Delivers:** Whisper/FunASR 集成、OCR 集成、处理技能状态管理
**Addresses:** 多模态内容处理
**Avoids:** 假设模型理解上下文 — 显式传递转录结果给分析步骤
**Components:**
- Whisper/FunASR 技能适配
- OCR 技能适配
- 处理结果 Schema 定义
### Phase 4: Analysis & Orchestration (分析技能与编排)
**Rationale:** 深度分析是管道的最终输出,依赖所有前置步骤。编排层整合所有技能形成完整工作流。
**Delivers:** Deep Analyzer 集成、完整管道编排、工作流定义文件
**Uses:** 所有前置组件
**Implements:** 声明式工作流定义 (YAML)
**Components:**
- Deep Analyzer 技能适配
- Pipeline Engine 完善
- `workflows/video_pipeline.yaml`
- `workflows/article_pipeline.yaml`
### Phase 5: Polish & Testing (完善与测试)
**Rationale:** 核心功能完成后,补充测试、文档和边缘情况处理。
**Delivers:** 单元测试、集成测试、错误恢复策略完善、用户文档
**Addresses:** 错误恢复策略、进度可见性
### Phase Ordering Rationale
- **依赖关系决定顺序:** State Manager 是所有组件的基础,必须 Phase 1;Analysis 依赖 Processing,Processing 依赖 Platform Skills
- **架构模式指导分组:** Foundation -> Skills -> Orchestration 符合分层架构
- **避免陷阱:** Phase 1 就实现状态文件和 Schema,防止无状态执行和接口不一致
### Research Flags
Phases likely needing deeper research during planning:
- **Phase 3:** ASR/OCR 集成可能需要研究 FunASR vs Whisper 选择逻辑,以及 HuggingFace token 缺失时的降级策略
- **Phase 4:** AI API 调用的重试策略和超时配置可能需要根据实际使用调整
Phases with standard patterns (skip research-phase):
- **Phase 1:** 状态管理和 Schema 验证是成熟模式,Pydantic/transitions 文档充分
- **Phase 2:** 现有技能适配,无需额外研究
- **Phase 5:** 测试和文档是标准实践
## Confidence Assessment
| Area | Confidence | Notes |
|------|------------|-------|
| Stack | HIGH | Pydantic/transitions/Typer 都是成熟库,官方文档完善,与项目需求匹配度高 |
| Features | HIGH | 基于现有代码库分析和行业标准,功能边界清晰 |
| Architecture | HIGH | 四层架构是工作流系统的标准模式,管道编排模式适合内容处理场景 |
| Pitfalls | HIGH | 基于多篇研究论文和行业实践,坑点识别充分 |
**Overall confidence:** HIGH
### Gaps to Address
- **ASR 后端选择:** Whisper vs FunASR 的选择逻辑需要根据实际性能测试确定,目前建议支持配置切换
- **错误恢复策略细节:** 403/超时等具体错误类型的处理策略需要在实现时细化
- **进度汇报机制:** 长时间运行的 Whisper 任务需要进度汇报,具体实现方式待定
## Sources
### Primary (HIGH confidence)
- Pydantic v2.11 Release & JSON Schema Docs — 技术选型验证
- transitions 0.9.3 on PyPI — 状态机库详情
- Dagster: Data Pipeline Architecture Design Patterns — 管道模式
- AI Architecture Patterns 101: Workflows, Agents — 架构模式
- Demystifying Failures in Platform-Orchestrated Workflows (arxiv) — 失败模式研究
### Secondary (MEDIUM confidence)
- Prefect vs Dagster Comparison — 编排工具对比
- Multi-Step LLM Chains: Best Practices — LLM 链最佳实践
- Data Pipeline State Management (Fivetran) — 状态管理挑战
- 9 Things I Hate About Environment Variables — 配置管理问题
### Tertiary (LOW confidence)
- AI Agent Anti-Patterns (Medium) — 反模式识别,需要结合实践验证
---
*Research completed: 2026-03-13*
*Ready for roadmap: yes*