Skip to content

feat: 添加技能系统(Skill System)#2

Merged
robscc merged 1 commit intomainfrom
feat/skill-system
Mar 12, 2026
Merged

feat: 添加技能系统(Skill System)#2
robscc merged 1 commit intomainfrom
feat/skill-system

Conversation

@robscc
Copy link
Owner

@robscc robscc commented Mar 12, 2026

🎯 功能概述

添加完整的技能系统,支持动态加载、管理和使用技能包。

✨ 主要特性

后端

  • 技能加载器 (skills/loader.py): 支持从 ZIP 包动态加载技能
  • 技能管理器 (skills/manager.py): 单例模式管理所有已安装技能
  • 技能模型 (models/skill.py): Skill ORM 模型,支持启用/禁用状态
  • 技能 API (api/v1/endpoints/skills.py):
    • GET /api/v1/skills - 列出所有技能
    • POST /api/v1/skills/install/url - 从 URL 安装技能
    • POST /api/v1/skills/install/upload - 上传 ZIP 安装技能
    • PATCH /api/v1/skills/{name} - 启用/禁用技能
    • DELETE /api/v1/skills/{name} - 卸载技能
  • skill_cli 工具: 新增内置工具,支持命令行管理技能

前端

  • SkillsPage: 技能管理页面,支持浏览、安装、启用/禁用、卸载
  • useSkills hook: 技能状态管理和 API 调用
  • 导航集成: 侧边栏新增"技能"入口

示例

  • hello-skill: 示例技能包,展示技能开发模板

📦 文件变更

新增文件 (10 个):

  • backend/agentpal/skills/ (init.py, loader.py, manager.py)
  • backend/agentpal/models/skill.py
  • backend/agentpal/api/v1/endpoints/skills.py
  • frontend/src/hooks/useSkills.ts
  • frontend/src/pages/SkillsPage.tsx
  • docs/examples/hello-skill/ (完整示例)

修改文件 (11 个):

  • backend/agentpal/tools/builtin.py (新增 skill_cli 工具)
  • backend/agentpal/tools/registry.py (技能集成)
  • backend/agentpal/api/v1/router.py (注册技能路由)
  • backend/agentpal/config.py (技能配置)
  • frontend/src/App.tsx, Layout.tsx, ChatPage.tsx

🧪 测试

待添加:

  • 技能加载器单元测试
  • 技能 API 集成测试
  • 前端组件测试

📝 使用示例

安装技能

# 通过 API 安装
curl -X POST http://localhost:8099/api/v1/skills/install/url \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/my-skill.zip"}'

前端使用

访问 http://localhost:3000/skills 管理技能

🔗 相关 Issue

Closes #XX (如有相关 issue)


检查清单:

  • 代码符合项目规范
  • 新增功能有基本文档
  • 添加单元测试
  • 前端 UI 测试通过
  • 后端 API 手动测试通过

核心功能:
- 新增技能加载器和管理器 (backend/agentpal/skills/)
- 新增技能模型和 API 端点 (skills.py, skill.py)
- 新增 skill_cli 工具用于技能管理
- 前端新增技能管理页面 (SkillsPage.tsx)
- 新增 useSkills hook 用于技能状态管理
- 添加示例技能包 (hello-skill)

技术实现:
- 支持从 ZIP 包动态加载技能
- 技能启用/禁用/卸载 API
- 前端技能列表、安装、管理界面
- 与现有工具系统集成

文档:
- 添加示例技能包和文档
@robscc robscc merged commit 538e077 into main Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant