版本:v1.0 · 2026-09-14 · 评审稿 作者:Claude Code(樊国柱会话)
问题:公司版方案(05)把 Skill 中心定为自研(约 3 人周);团队正在调研开源的 iFlytek SkillHub(https://github.com/iflytek/skillhub )。它能否整合进 AI 网关方案,整合后自研范围与工程量如何变化。
证据:GitHub 仓库与 API(2026-09-14 查阅)、docs/ 下的架构、认证、私有 SSO、API、部署、安全扫描、生命周期、路线图文档,README 中英文版(文档取证)。未做实机部署(未取证项标注)。
0. 结论
- 可以整合,且建议采纳为 Skill 中心的注册与分发底座。SkillHub 覆盖了公司版方案 Skill 中心的大部分自研项:技能库注册与版本、命名空间与可见性、提交 → 扫描 → 审核 → 发布的流程、审计日志、检索 API、面向 Claude Code / Codex / Cursor / OpenClaw 的 CLI 安装、私有化部署。
- 四处缺口由网关侧补齐:无签名与安装端校验(v1 用内容哈希 + 私有仓 TLS,CI 侧加签名清单);无 MCP server(用小型 MCP 包装其 REST,经 MCP 网关暴露
skill_search/skill_get);无 Claude Code 插件市场清单(由网关按人生成marketplace.json);CLI 用自有 API 令牌(Web 登录走 AI IdP 的 OIDC,CLI 令牌由管理中心在发个人 Key 时一并创建并绑定,或经网关做 Key 到令牌的映射)。 - 工程量:Skill 中心自研从约 3 人周降到约 1.5 人周(部署与 SSO 对接 0.5、CI 发布与签名 0.5、MCP 包装与清单生成 0.5);总量从 27.5 人周降到约 26 人周(区间 23–28)。代价是多运维一个 Java 服务与可选扫描器,数据库、缓存、对象存储复用现有云资源。
- 风险:项目只有 6 个月(2026-03 创建),v0.2.x 每周发版、API 仍在变;贡献集中在讯飞团队;路线图未提 MCP、签名、Claude Code 市场;扫描失败默认不阻断发布(靠人工审核兜底)。对冲:锁版本、只用公开 REST API、CI 发布流程与网关增强都不侵入其代码;若停更,技能库仍在公司 GitLab,切换成本低。
- **
05与07中"Skill 中心新开发 3 人周"的口径由本文更新;One Pager 已同步。
1. SkillHub 事实(文档取证)
| 项 | 事实 |
|---|---|
| 定位 | "Self-hosted, open-source agent skill registry for enterprises":发布与版本化技能包、RBAC 与审计、Docker / Kubernetes 私有化部署;讯飞星辰生态的一部分,AAIF 准成员徽标 |
| 治理与活跃度 | Apache-2.0;2026-03-11 创建;5,093 star、834 fork、41 个 open issue;最近推送 2026-09-14;最新 v0.2.20(2026-09-13),CLI cli-v0.1.12(09-09),近两周 5 次发版;前四名贡献者占绝大多数提交 |
| 技术栈 | Java 21 + Spring Boot 3 模块化单体(app / domain / auth / search / storage / infra),React 19 前端;PostgreSQL 16 + Flyway,Redis 7(会话、锁、幂等),S3 / MinIO / 本地存储;PostgreSQL 全文检索(预留 Elasticsearch 与向量检索 SPI);可选扫描服务 |
| 技能格式 | SKILL.md(name、description 必填)+ references/ scripts/ assets/;允许的扩展名白名单;单文件 1 MB、包 10 MB、100 文件上限(可配);语义化版本 + 自定义标签 + latest;安装坐标 @namespace/skill@version;v0.2.20 加入版本化 Skill Suites |
| 生命周期 | DRAFT → PENDING_REVIEW → PUBLISHED / REJECTED,YANKED 下架;命名空间管理员审核,平台管理员决定是否提升到全局范围;hidden 与 latest 指针只指向已发布版本 |
| 安全扫描 | 发布时入队 ScanTask,SCANNING → PENDING_REVIEW 或 SCAN_FAILED,重试 3 次;多引擎分析,可选接入 LLM;结果存 security_audit;扫描失败不阻断,仍创建审核任务 |
| 权限 | 命名空间 Owner / Admin / Member;个人命名空间;可见性 private / public;平台角色 SUPER_ADMIN、SKILL_ADMIN、USER_ADMIN、AUDITOR;审计日志 API |
| 认证 | Web:Spring Security OAuth2 / OIDC 注册项(部署文档示例 okta、keycloak,SPRING_SECURITY_OAUTH2_CLIENT_* 注入)、GitHub OAuth、本地账号;私有 SSO 的 SPI(DirectAuthProvider 直连校验、PassiveSessionAuthenticator 读共享 Cookie);账号合并。CLI:API 令牌(skillhub login --token sk_xxx,前缀哈希存储),设备码流程在路线图 |
| 接口 | REST /api/v1/skills、/search、/resolve(支持 version / tag / hash)、/download、/publish(Bearer)、命名空间与成员、审核 approve / reject、/admin/audit-logs;ClawHub 兼容层 /.well-known/clawhub.json、/api/v1/whoami |
| 客户端 | 原生 CLI npm install -g @astron-team/skillhub:search / install --agent codex / list / publish --namespace / remove / doctor;安装目录按客户端约定(~/.codex/skills、~/.claude/skills、.agents/skills、Cursor、OpenClaw);OpenClaw 的 ClawHub CLI 可直接搜索与安装 |
| 部署 | compose.release.yml 一键;deploy/k8s/ 清单与 Helm chart(README);多架构镜像(amd64 / arm64 / riscv64),GHCR 与阿里云镜像;SKILLHUB_PUBLIC_BASE_URL、子路径部署、SKILLHUB_TRUST_FORWARDED_PROTO;JSON 日志与 OTel 追踪模式 |
| 未提供 | 签名或证明(仅内容哈希);MCP server;Claude Code 插件市场清单;可信反向代理头认证;离线(air-gapped)部署指南;资源规格建议 |
2. 与公司需求的契合
公司版方案对 Skill 中心的要求(05 §1.2 / §2.4 / 场景 E) |
SkillHub | 缺口与处理 |
|---|---|---|
| 技能库存储、版本、语义化版本、固定版本安装 | 有 | — |
| 发布审核(提交 → 审核人批准 → 打版本) | 有:命名空间审核 + 平台提升 | 把"审核通过才可发布"落到命名空间策略 |
| 安全扫描(密钥、提示注入、危险命令) | 有:多引擎 + 可选 LLM | 默认不阻断;在审核规则里把 SCAN_FAILED 设为不可批准(需在流程约定,或改配置,未取证) |
| 签名与安装端校验 | 无 | v1:resolve 的内容哈希 + 私有仓 TLS;CI 发布时生成签名清单,安装脚本校验(增强 0.5 人周) |
| 可见性:公开 / 部门 / 项目 / 应用 | 有:命名空间 + private / public + hidden | 部门与项目映射为命名空间;应用级可见性以命名空间成员身份实现 |
| 检索 API 与门户 | 有:Web、REST、ClawHub 兼容层 | 门户可直接用其 Web;管理中心只放入口 |
| Claude Code 插件市场清单 | 无 | 网关或管理中心按人可见集合生成 marketplace.json(新开发 0.3 人周) |
| 命令行安装(Codex、Cursor、Claude Code 技能目录) | 有:--agent、--scope、--dir |
— |
MCP 工具 skill_search / skill_get |
无 | 小型 MCP server 包装 REST,经 MCP 网关暴露(新开发 0.2 人周) |
| 一把 Key | 无:自有 API 令牌 | Web 登录走 AI IdP OIDC(同一 sub);CLI 令牌由管理中心在发个人 Key 时创建并绑定,或网关在 /skills/* 路由把个人 Key 换成 SkillHub 令牌(增强 0.5 人周,含 SSO 对接) |
| 撤回与下架 | 有:YANKED、hidden |
— |
| 审计 | 有:审计日志 API | 接入数据平台 |
| 私有化与客户交付 | 有:Compose / k8s / Helm,多架构 | 依赖 PostgreSQL、Redis、对象存储;属地化包可选装 |
| 外部 Skill 引入须经同一审核 | 有:任何发布都进审核 | — |
3. 整合架构
- 数据面:SkillHub 部署在内部环境,只接受来自网关的连接;agentgateway 增加
/skills/*路由做个人 Key 校验,再以映射后的 SkillHub 令牌或用户身份转发。 - 身份:SkillHub Web 登录配置 AI IdP(Keycloak)的 OIDC 注册项,用户与网关侧是同一
sub;CLI 令牌由管理中心在发放个人 Key 时通过 SkillHub 令牌 API 一并创建并绑定,回收 Key 时一并吊销。 - 发布:技能源码在公司 GitLab 技能库;CI 做 frontmatter 校验、密钥与注入扫描、生成签名清单,然后调用
/api/v1/publish提交,SkillHub 侧扫描与审核后发布。 - 发现与安装:门户直接嵌入 SkillHub Web;Claude Code 走网关生成的市场清单;Codex 与 Cursor 用 SkillHub CLI;Agent 在对话中用 MCP 网关暴露的
skill_search/skill_get。 - 多环境:内部 1 套部署 SkillHub;外部 SIT / PROD 不部署(外部应用暂不提供 Skill);客户属地化按需选装。
4. 工程量与运维成本
| 项 | 自研方案(05) |
整合 SkillHub |
|---|---|---|
| 注册中心、版本、检索、门户 | 自研 | 复用 |
| 审核流程与审计 | 自研 | 复用 |
| 安全扫描 | 自研 CI 扫描 | SkillHub 扫描 + CI 扫描双重 |
| 签名清单与安装校验 | 自研 | 增强(CI 侧) |
| MCP 工具与市场清单 | 自研 | 新开发(小) |
| SSO 与一把 Key | 自研 | 配置 OIDC + 令牌绑定(增强) |
| 人周 | 约 3 | 约 1.5 |
| 运维 | 无新服务 | 1 个 Java 服务 + 前端 + 可选扫描器;PostgreSQL / Redis / 对象存储复用云资源 |
总工程量:27.5 人周 → 约 26 人周(区间 23–28)。
5. 风险与对冲
| 风险 | 对冲 |
|---|---|
| 项目年轻(6 个月,v0.2.x 周更),API 与数据模型可能变 | 锁定版本;只依赖公开 REST 与 CLI;网关增强不侵入其代码;技能源码始终在公司 GitLab,可随时换底座 |
| 贡献集中在讯飞团队 | 同上;观察季度发版与 issue 响应 |
| 扫描失败默认不阻断发布 | 审核规则明确 SCAN_FAILED 不批准;CI 侧扫描作为第二道 |
| CLI 令牌是第二把凭据 | 管理中心自动创建并绑定到个人 Key,离职一并吊销;用户无感 |
| 无签名 | v1 用哈希 + 私有仓 TLS;签名清单在 CI 侧实现;关注上游是否加入签名 |
| 离线交付无官方指南 | 属地化包按 Compose 自行打包,含镜像与迁移脚本 |
6. 建议与下一步
- 采纳 SkillHub 为 Skill 中心底座;阶段 2 内完成内部部署、OIDC 对接、CI 发布流程与三项网关增强。
- 试点前实测三件事:Keycloak OIDC 登录与账号映射;
SCAN_FAILED是否可配置为阻断;/skills/*经网关的 Key 到令牌映射与 CLI 安装到 Claude Code / Codex。 - 复评触发:SkillHub 连续一个季度无发版或 API 破坏性变更;上游加入签名与 MCP 后可去掉对应增强。