11c62dd383
- kb_workflow.py: 重构为编排者,使用sessions_spawn调用子技能 - skill_main.py: 新增技能入口,处理用户消息 - SKILL.md: 更新文档,明确架构和流程 - SkillBug.md: 新增问题记录文档 设计原则: - workflow不读文件内容,从文件名提取平台 - 使用sessions_spawn调用子agent - 子技能自己定义输入输出格式
2.3 KiB
2.3 KiB
SkillBug.md
问题记录
2026-02-10: 缺少自动写入pending目录的功能
状态: ✅ 已修复
解决方案:
- 创建
skill_main.py作为技能入口 - 创建
kb_workflow.py实现完整流程 - 接收用户消息后自动处理
2026-02-10: kb-workflow 自己实现链接解析而非调用子技能
状态: ✅ 已修复
解决方案:
重构 kb_workflow.py:
- 使用
sessions_spawn调用子agent - 不自己实现链接解析,调用
kb-link-parser - 从文件名提取平台(不读内容)
# 调用子agent
result = sessions_spawn(
agentId="kb-link-parser",
task="解析URL,输出到pending目录"
)
2026-02-10: _extract_metadata 是空壳
状态: ✅ 已修复
解决方案: 实现真正的子agent调用:
def call_metadata_agent(platform, link_file, metadata_dir):
agent_id = METADATA_AGENTS.get(platform) # bilibili → kb-bilibili-metadata
return call_subagent(agent_id, task, timeout=120)
重构总结
架构变化
之前(错误):
kb_workflow.py (自己造轮子)
├── _extract_link() - 自己解析URL
├── _extract_metadata() - 空壳
之后(正确):
kb-workflow (主代理)
├── sessions_spawn() 调用子agent
│ ├── kb-link-parser → pending/*.link.json
│ ├── kb-bilibili-metadata → metadata/*.meta.json
│ ├── kb-bilibili-content → content/downloads/*.mp4
│ ├── kb-ocr-processor → content/*.txt
│ └── kb-deep-analyzer → analyzed/*.md
└── 文件流转 + Git归档
设计原则
| workflow 管 | workflow 不管 |
|---|---|
| 查重 | 读文件内容 |
| 调用子agent | 子技能内部格式 |
| 提取文件名(从返回结果) | 子技能逻辑 |
| 提取平台(从文件名) | |
| 传递路径信息 | |
| Git归档 |
文件变更
| 文件 | 操作 | 说明 |
|---|---|---|
kb_workflow.py |
重构 | 使用 sessions_spawn 调用子agent |
skill_main.py |
新增 | 技能入口 |
SKILL.md |
更新 | 明确架构和流程 |
待办
- 测试完整的处理流程
- 验证 sessions_spawn 调用是否正常
- 完善错误处理
- 添加单元测试