内容提要
OpenDeepWiki 的 Skill 基于 agentskills.io 标准的文件夹结构,核心是 SKILL.md 文件,包含元数据和 AI 指令。SkillConfig 实体用于存储元数据,支持上传、解析和管理。通过 AdminToolsService 处理上传,使用 Minimal API 提供管理接口,SkillToolConverter 将 Skill 转换为 AI 工具,支持 Chat 助手和 Wiki 生成器。设计注重容错和延迟加载,以提升系统灵活性。
关键要点
- OpenDeepWiki 的 Skill 遵循 agentskills.io 开放标准,核心是 SKILL.md 文件。
- SkillConfig 实体用于存储元数据,支持上传、解析和管理。
- AdminToolsService 处理 Skill 的上传和生命周期管理。
- SkillToolConverter 将 Skill 转换为 AI 工具,支持 Chat 助手和 Wiki 生成器。
- 设计注重容错和延迟加载,以提升系统灵活性。
- Skill 文件夹结构包括 SKILL.md、scripts、references 和 assets。
- SkillConfig 的 Name 字段必须是 kebab-case 格式,且唯一。
- 上传流程包括解压、查找 SKILL.md、解析 YAML、校验和入库。
- API 端点使用 ASP.NET Core 的 Minimal API 风格进行 Skill 管理。
- SkillToolConverter 将所有 Skill 合并成一个名为 Skill 的 Tool,简化 AI 的调用。
- AI Agent 根据用户请求判断是否调用 Skill,并返回相应的 prompt 内容。
- Wiki 生成器和 Chat 助手的 Skill 加载逻辑有所不同,提供灵活性。
- 设计中考虑了容错机制,确保核心功能不受 Skill 加载失败的影响。
延伸问答
OpenDeepWiki 的 Skill 是什么?
OpenDeepWiki 的 Skill 是一个遵循 agentskills.io 开放标准的文件夹,核心是 SKILL.md 文件,包含元数据和 AI 指令。
如何上传和管理 Skill?
Skill 的上传和管理通过 AdminToolsService 进行,流程包括解压 ZIP、解析 YAML、校验格式、写入磁盘和数据库。
SkillToolConverter 的作用是什么?
SkillToolConverter 将所有 Skill 合并成一个名为 Skill 的 Tool,简化 AI 的调用,并提供描述信息供 AI 使用。
SKILL.md 文件的结构是什么样的?
SKILL.md 文件包含 YAML frontmatter 声明元数据和正文部分的 AI prompt 指令,格式包括名称、描述、许可等信息。
Skill 的设计中有哪些容错机制?
设计中考虑了容错机制,确保核心功能不受 Skill 加载失败的影响,特别是在 Wiki 生成器中,Skill 加载失败不会阻断生成流程。
SkillConfig 实体的主要字段有哪些?
SkillConfig 实体主要字段包括 Name、Description、License、Compatibility、AllowedTools 和 FolderPath 等,用于存储 Skill 的元数据。