e370b6b39f
- SKILL.md: 重写为详细workflow指导,主代理直接读取执行 - kb_workflow.py: 简化为辅助工具函数库 - skill_main.py: 简化为触发检测入口 - SkillBug.md: 记录架构变更 主代理读取SKILL.md后,按照指导调用sessions_spawn,无需配置allowlist
1.8 KiB
1.8 KiB
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 保留的函数
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 中的步骤