科大讯飞开源SkillHub:企业级智能体技能注册中心
GitHub: https://github.com/iflytek/skillhub
开源协议: Apache-2.0
发布平台: 程序员茄子(chenxutan.com)
标签: AI Agent, Skill Registry, 企业级, 讯飞开源, 技能管理
引言
在企业内部,AI Agent 的技能包如何高效管理?
传统方式下,团队成员通过 Git 仓库或文件共享来分发技能包。这种方式存在几个痛点:
- 版本混乱:不同版本散落在各处,难以追踪
- 权限失控:无法精细控制谁能访问哪些技能包
- 发现困难:新成员不知道团队已有哪些可用技能
SkillHub 应运而生。
这是科大讯飞开源的企业级智能体技能注册中心——一个自托管平台,为团队提供私有的、受治理的智能体技能共享空间。
一、项目简介
SkillHub 是一个自托管平台,为团队提供私有的、受治理的智能体技能共享空间。
核心定位
| 维度 | 说明 |
|---|---|
| 部署方式 | 自托管,完全私有化 |
| 核心功能 | 发布、发现、管理技能包 |
| 目标用户 | 企业团队、组织内部 |
| 访问控制 | 精细的 RBAC 权限管理 |
核心价值
发布技能包,推送到命名空间,让其他人通过搜索发现或通过 CLI 安装。
专为防火墙后的本地部署而构建,提供与公共注册中心相同的精致体验。
二、解决的问题
| 痛点 | 传统方式 | SkillHub 解决方案 |
|---|---|---|
| 版本混乱 | 各处散落,难以追踪 | 语义化版本控制,自动 latest 跟踪 |
| 权限失控 | 无精细控制 | RBAC 权限,命名空间隔离 |
| 发现困难 | 依赖口头传播 | 全文搜索,按多维度筛选 |
| 审核缺失 | 无审核流程 | 团队/平台两级审核机制 |
| 审计缺失 | 无操作记录 | 完整审计日志,满足合规 |
三、核心特性
1. 自托管与私有化
部署在您自己的基础设施上:
- 将专有技能保留在防火墙后
- 完全掌控数据主权
- 一条命令本地运行:
make dev-all
2. 发布与版本管理
| 功能 | 说明 |
|---|---|
| 语义化版本 | 支持 major.minor.patch |
| 自定义标签 | beta、stable 等 |
| 自动跟踪 | latest 版本自动更新 |
| 元数据提取 | 自动提取技能包信息 |
3. 发现机制
全文搜索,支持多维度筛选:
- 按命名空间
- 按下载量
- 按评分
- 按时间
可见性规则确保用户只能看到其有权访问的内容。
4. 团队命名空间
| 层级 | 说明 |
|---|---|
| 团队命名空间 | 团队内部组织技能 |
| 全局范围 | 平台级公共技能 |
每个命名空间拥有:
- 独立成员管理
- 角色体系(Owner / Admin / Member)
- 发布策略控制
5. 审核与治理
| 审核层级 | 职责 |
|---|---|
| 团队管理员 | 在命名空间内审核 |
| 平台管理员 | 控制向全局范围的推广 |
治理操作记录审计日志,满足合规要求。
6. 社交功能
| 功能 | 说明 |
|---|---|
| 收藏 | 标记常用技能 |
| 评分 | 五星评价体系 |
| 下载量 | 统计使用热度 |
围绕组织的最佳实践构建社区。
7. 账户合并
将多个 OAuth 身份和 API 令牌整合到单个用户账户下。
8. API 令牌管理
| 特性 | 说明 |
|---|---|
| 作用域令牌 | 限制权限范围 |
| 前缀哈希 | 基于前缀的安全哈希 |
| CLI 访问 | 支持命令行程序化访问 |
9. CLI 优先设计
原生 REST API + ClawHub 兼容层:
- 原生 CLI API 是主要支持路径
- 协议兼容性持续扩展
10. 可插拔存储
| 环境 | 存储方式 |
|---|---|
| 开发环境 | 本地文件系统 |
| 生产环境 | S3 / MinIO |
通过配置一键切换。
11. 国际化
使用 i18next 支持多语言。
四、技术架构
技术栈概览
| 层级 | 技术 | 职责 |
|---|---|---|
| 前端 | React 19, TypeScript, Vite, TanStack Router & Query, shadcn/ui, Tailwind CSS, i18next | 包含路由、状态管理和国际化的 SPA |
| 后端 | Java 21, Spring Boot 3.2, Spring Security, Springdoc OpenAPI | 采用模块化架构的 REST API |
| 数据库 | PostgreSQL 16 + Flyway | 主数据存储、全文搜索、架构迁移 |
| 缓存 | Redis 7 | 会话管理、分布式锁、限流 |
| 对象存储 | 本地文件系统 / S3 / MinIO | 技能包文件与打包归档 |
| 安全 | Spring Security OAuth2, RBAC, API 令牌, CSRF 防护 | 认证、授权、凭证管理 |
| 扫描器 | Python 服务 | 对上传的技能包进行多引擎安全分析 |
| 部署 | Docker Compose, Kubernetes, GitHub Actions → GHCR | 容器编排、多架构镜像发布 |
项目结构
skillhub/
├── server/
│ ├── skillhub-app/ # 入口点、控制器、配置
│ ├── skillhub-domain/ # 核心实体、领域服务
│ ├── skillhub-auth/ # OAuth2、RBAC、设备流、API 令牌
│ ├── skillhub-search/ # 搜索 SPI + PostgreSQL 全文检索
│ ├── skillhub-storage/ # 对象存储 SPI (本地 / S3)
│ ├── skillhub-infra/ # JPA 仓库、事件、工具类
│ └── skillhub-notification/ # 邮件与告警通知
├── web/ # React 19 前端 (Vite + pnpm)
├── scanner/ # 安全扫描器 (Python)
├── deploy/ # Kubernetes 清单
├── monitoring/ # Prometheus / Grafana 配置
├── scripts/ # DevOps 与 CI 辅助脚本
├── docs/ # 架构与设计文档
├── document/ # Docusaurus 用户指南站点
├── docker-compose.yml # 开发依赖 (PG、Redis、MinIO)
└── compose.release.yml # 生产环境容器编排
五、快速开始
前置要求
| 工具 | 版本 |
|---|---|
| Java | 21+ |
| Node.js | 20+ |
| Docker & Docker Compose | 最新版 |
| Make | - |
启动开发环境
# 克隆仓库
git clone https://github.com/iflytek/skillhub.git
cd skillhub
# 启动完整的本地开发栈(后端 + 前端 + 依赖)
make dev-all
# 或者分别启动
make dev-backend # 仅后端
make dev-web # 仅前端
国内开发者提示
如果 Maven 依赖下载超时,需配置阿里云镜像。详见本地开发指南。
常用命令
make help # 显示所有可用命令
make test # 运行后端测试
make test-backend-app # 运行 skillhub-app 及其依赖模块测试
make build-backend-app # 构建 skillhub-app 及其依赖模块
make typecheck-web # TypeScript 类型检查
make build-web # 构建前端
make generate-api # 重新生成 OpenAPI 类型
./scripts/check-openapi-generated.sh # 验证 API 契约同步
./scripts/smoke-test.sh http://localhost:8080 # 运行冒烟测试
六、安全特性
认证与授权
| 机制 | 说明 |
|---|---|
| OAuth2 | 企业级身份认证 |
| RBAC | 基于角色的访问控制 |
| API 令牌 | CLI 和程序化访问 |
| CSRF 防护 | 跨站请求伪造防护 |
安全扫描
Python 扫描器服务对上传的技能包进行多引擎安全分析。
七、与其他方案对比
| 维度 | Git 仓库共享 | 文件共享 | SkillHub |
|---|---|---|---|
| 版本管理 | ⚠️ 手动 | ❌ 无 | ✅ 自动 |
| 权限控制 | ⚠️ 粗粒度 | ❌ 无 | ✅ 细粒度 RBAC |
| 发现机制 | ❌ 无 | ❌ 无 | ✅ 全文搜索 |
| 审核流程 | ❌ 无 | ❌ 无 | ✅ 两级审核 |
| 审计日志 | ⚠️ Git log | ❌ 无 | ✅ 完整审计 |
| CLI 支持 | ❌ 无 | ❌ 无 | ✅ 原生支持 |
| 社交功能 | ❌ 无 | ❌ 无 | ✅ 收藏/评分 |
八、适用场景
| 场景 | 说明 |
|---|---|
| 企业内部 | 私有化部署,数据不出内网 |
| 团队协作 | 命名空间隔离,权限精细控制 |
| 技能复用 | 发布一次,团队共享 |
| 合规审计 | 完整操作日志,满足监管 |
| CI/CD 集成 | CLI 支持,自动化流程 |
九、部署方式
开发环境
docker-compose up -d
make dev-all
生产环境
docker-compose -f compose.release.yml up -d
Kubernetes
kubectl apply -f deploy/
十、总结
SkillHub 填补了企业级 AI Agent 技能管理的空白:
核心价值
| 价值 | 说明 |
|---|---|
| 私有化 | 数据完全掌控,不出内网 |
| 治理化 | 两级审核,完整审计 |
| 标准化 | 语义化版本,统一管理 |
| 社交化 | 收藏、评分、下载统计 |
| 自动化 | CLI 支持,CI/CD 集成 |
技术亮点
| 亮点 | 说明 |
|---|---|
| 现代化技术栈 | Java 21, React 19, PostgreSQL 16 |
| 模块化架构 | 清晰的领域划分 |
| 可插拔存储 | 本地/S3 一键切换 |
| 国际化支持 | i18next 多语言 |
| 企业级安全 | OAuth2, RBAC, API 令牌 |
本文首发于「程序员茄子」博客,原文链接:https://chenxutan.com