Skill 中心:SkillHub 整合评估

Skill 中心:SkillHub 整合评估

讯飞开源 SkillHub(Apache-2.0)能否作为公司 Skill 中心的底座:事实、与公司需求的契合与缺口、整合架构、工程量与运维成本、风险对冲、建议与实测清单。

v1.0 · 2026-09-14 · 评审稿 · 文档取证(仓库、docs、API,2026-09-14)· 未实机部署

版本: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. 结论

  1. 可以整合,且建议采纳为 Skill 中心的注册与分发底座。SkillHub 覆盖了公司版方案 Skill 中心的大部分自研项:技能库注册与版本、命名空间与可见性、提交 → 扫描 → 审核 → 发布的流程、审计日志、检索 API、面向 Claude Code / Codex / Cursor / OpenClaw 的 CLI 安装、私有化部署。
  2. 四处缺口由网关侧补齐:无签名与安装端校验(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 到令牌的映射)。
  3. 工程量:Skill 中心自研从约 3 人周降到约 1.5 人周(部署与 SSO 对接 0.5、CI 发布与签名 0.5、MCP 包装与清单生成 0.5);总量从 27.5 人周降到约 26 人周(区间 23–28)。代价是多运维一个 Java 服务与可选扫描器,数据库、缓存、对象存储复用现有云资源。
  4. 风险:项目只有 6 个月(2026-03 创建),v0.2.x 每周发版、API 仍在变;贡献集中在讯飞团队;路线图未提 MCP、签名、Claude Code 市场;扫描失败默认不阻断发布(靠人工审核兜底)。对冲:锁版本、只用公开 REST API、CI 发布流程与网关增强都不侵入其代码;若停更,技能库仍在公司 GitLab,切换成本低。
  5. **0507 中"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(namedescription 必填)+ references/ scripts/ assets/;允许的扩展名白名单;单文件 1 MB、包 10 MB、100 文件上限(可配);语义化版本 + 自定义标签 + latest;安装坐标 @namespace/skill@version;v0.2.20 加入版本化 Skill Suites
生命周期 DRAFTPENDING_REVIEWPUBLISHED / REJECTEDYANKED 下架;命名空间管理员审核,平台管理员决定是否提升到全局范围;hiddenlatest 指针只指向已发布版本
安全扫描 发布时入队 ScanTaskSCANNINGPENDING_REVIEWSCAN_FAILED,重试 3 次;多引擎分析,可选接入 LLM;结果存 security_audit扫描失败不阻断,仍创建审核任务
权限 命名空间 Owner / Admin / Member;个人命名空间;可见性 private / public;平台角色 SUPER_ADMINSKILL_ADMINUSER_ADMINAUDITOR;审计日志 API
认证 Web:Spring Security OAuth2 / OIDC 注册项(部署文档示例 oktakeycloakSPRING_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/skillhubsearch / 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 对接)
撤回与下架 有:YANKEDhidden
审计 有:审计日志 API 接入数据平台
私有化与客户交付 有:Compose / k8s / Helm,多架构 依赖 PostgreSQL、Redis、对象存储;属地化包可选装
外部 Skill 引入须经同一审核 有:任何发布都进审核

3. 整合架构

Skill 中心整合 SkillHub 使用方 开发者 / 业务人员Claude Code · Codex · 门户 Skill 作者GitLab 技能库 · 合并请求 Agent(对话中自助发现) AI 网关 · 一把 Key 增强/skills/* 路由 · Key 校验个人 Key → SkillHub 令牌映射(增强) 新开发MCP 网关 · skill_search / skill_get包装 SkillHub REST 的小型 MCP server(新开发) 新开发插件市场清单生成按人可见集合生成 Claude Code marketplace.json(新开发) Skill 中心 · SkillHub(讯飞开源 · Apache-2.0 · 复用) 开源复用注册中心 · Web / API / CLI命名空间 · 版本与标签 · 检索 · 可见性 开源复用审核与安全扫描提交 → 扫描 → 审核 → 发布 · 审计日志 配置登录:AI IdP(OIDC)同一身份 · Keycloak 注册项 增强 · 配置CI 发布 · 签名清单技能库 CI 校验后 publish(增强) PostgreSQL · Redis · 对象存储(复用云资源)· 扫描器可选 存量 / 范围外 开源复用 增强 · 配置 新开发 SkillHub 缺口:无签名、无 MCP、无 Claude Code 市场清单、CLI 用自有令牌 —— 由网关侧三项增强补齐
Skill 中心整合 SkillHub:使用方经网关一把 Key 访问;SkillHub 复用;网关侧三项增强补缺口 · 下载:SVG PNG
  • 数据面: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. 建议与下一步

  1. 采纳 SkillHub 为 Skill 中心底座;阶段 2 内完成内部部署、OIDC 对接、CI 发布流程与三项网关增强。
  2. 试点前实测三件事:Keycloak OIDC 登录与账号映射;SCAN_FAILED 是否可配置为阻断;/skills/* 经网关的 Key 到令牌映射与 CLI 安装到 Claude Code / Codex。
  3. 复评触发:SkillHub 连续一个季度无发版或 API 破坏性变更;上游加入签名与 MCP 后可去掉对应增强。