# SkillBug.md ## 问题记录 ### 2026-02-10: 子代理权限问题 **问题:** `sessions_spawn` 调用子代理时返回 `forbidden` 错误。 **原因:** OpenClaw 配置中 allowlist 为空,Python 脚本没有权限调用子代理。 **解决方案:** 改用 Prompt-based 模式(方案B)。 --- ## 架构重构 ### 之前(Script-based) ``` kb_workflow.py (Python脚本) ↓ sessions_spawn() # ❌ 失败(脚本没有权限) ``` ### 之后(Prompt-based) ``` 主代理读取 SKILL.md ↓ 按照指导调用 sessions_spawn # ✅ 成功(主代理有权限) ``` ### 文件变更 | 文件 | 变更 | 说明 | |------|------|------| | `SKILL.md` | 重写 | 详细定义 workflow 步骤,主代理直接读取执行 | | `kb_workflow.py` | 简化 | 保留为辅助工具函数库(查重、归档、Git) | | `skill_main.py` | 简化 | 只做触发检测,返回指导信息 | | `SkillBug.md` | 更新 | 记录架构变更 | ### SKILL.md 结构 ``` 1. 触发条件 2. 步骤 1: 查重 3. 步骤 2: kb-link-parser 4. 步骤 3: 元数据技能 5. 步骤 4: 内容下载 6. 步骤 5: OCR(30分钟超时) 7. 步骤 6: 深度分析 8. 步骤 7: 归档和 Git 9. 步骤 8: 汇报完成 10. 目录结构 11. 支持平台 12. 注意事项 ``` ### kb_workflow.py 保留的函数 ```python extract_platform(filename) # 从文件名提取平台 extract_base_name(filename) # 从文件名提取基础名称 get_knowledge_base_path() # 获取知识库根目录 ensure_directories(base_path) # 确保目录存在 check_duplicate(url) # 查重 archive_and_git(analyzed_file) # 归档和 Git generate_summary(...) # 生成汇报 ``` --- ## 待办 - [ ] 测试 Prompt-based 模式是否正常工作 - [ ] 验证主代理能否正确执行 SKILL.md 中的步骤