# 001: Skill 架构设计 ## 状态 已采纳 (Accepted) ## 上下文 需要为 QWEN_AGENT 模式的机器人提供可扩展的技能(插件/工具)支持,允许动态加载自定义功能。 ## 决策 ### 目录结构设计 ``` skill-name/ ├── SKILL.md # 核心指令文档(必需) ├── skill.yaml # 元数据配置(可选) ├── .claude-plugin/ │ └── plugin.json # Hook 和 MCP 配置(可选) └── scripts/ # 可执行脚本(可选) ``` ### Hook 系统 | Hook 类型 | 执行时机 | 用途 | |-----------|---------|------| | `PrePrompt` | system_prompt 加载时 | 动态注入用户上下文 | | `PostAgent` | agent 执行后 | 处理响应结果 | | `PreSave` | 保存消息前 | 内容过滤/修改 | ### 技能来源 1. **官方 skills**: `./skills/` 目录 2. **用户 skills**: `projects/uploads/{bot_id}/skills/` ## 结果 ### 正面影响 - 渐进式加载,按需读取 - 支持多种元数据格式(优先级: plugin.json > SKILL.md) - 完整的 Hook 扩展机制 - MCP 服���器配置支持 ### 负面影响 - 需要管理文件系统权限 - 技能包格式验证复杂度增加 ## 替代方案 1. 使用数据库存储(拒绝:文件更灵活) 2. 仅支持单一格式(拒绝:用户多样性需求)