docs: complete project research

This commit is contained in:
2026-03-13 15:45:47 +08:00
parent 431732179c
commit 408a02e615
5 changed files with 1289 additions and 0 deletions
+188
View File
@@ -0,0 +1,188 @@
# 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*