如何设计一个 Skill 市场或仓库,让第三方开发者可以提交和发布 Skill?

面试官:“如果要设计一个 Skill 市场或仓库,让第三方开发者可以提交和发布 Skill,你会怎么设计?”

候选人:

“设计一个 Skill 市场,本质上是在做三方生态的信任平台。核心挑战不是技术上的‘上传下载’,而是怎么保证安全可控、质量达标、易发现、可运营。我参考了应用商店和插件市场的成熟实践,把它拆成五个核心板块来设计。

漫画技能市场设计.png


一、标准化 Skill 包结构与元信息规范

首先要定义一套所有开发者必须遵守的Skill 打包规范。没有统一标准,后面的审核、部署、发现都没法做。

一个标准的 Skill 包应该是一个压缩文件(如 .skill 后缀),内部包含:

  • skill.yaml / skill.json:元信息描述文件(必须)。包含 Skill 名称、版本、描述、触发示例、参数 schema、兼容性声明、前置依赖、入口类路径等。

  • code/:Skill 的实现代码,可以是编译后的 jar 包、Python 包或通用 WASM 字节码(如果市场要实现语言无关的沙箱)。

  • resources/:Skill 依赖的静态资源,比如模板、配置文件。

  • README.md:给人看的文档,方便审核和用户了解。

  • tests/:自动化测试用例,用于审核阶段的自动验证。

元信息规范我会基于之前聊的那套结构,并强制要求:触发示例不少于 5 条、必须声明副作用和权限需求、必须声明兼容的 Agent 框架版本。这样自动化工具和人工审核都有依据。


二、开发者注册与 Skill 提交流程

开发者侧:

  1. 注册成为开发者,通过实名/企业认证(防止恶意提交)。

  2. 在开发者后台创建 Skill 项目,上传 Skill 包,填写市场展示信息(图标、分类、定价模式——免费/按调用付费/订阅)。

  3. 提交审核前,系统自动运行静态扫描 + 自动化测试,检查包格式、元信息完整性、安全漏洞,结果即时反馈,不通过则打回。

平台侧审核流水线:

  • 自动化审核:扫描依赖漏洞、代码风格、必填字段完整性、用例测试通过率。

  • 人工审核(高危或首次提交):重点看业务逻辑是否合规、有无恶意行为(如偷偷发邮件、窃取用户数据)、描述与实际功能是否一致。

  • 沙箱验证:在隔离沙箱环境中实际运行 Skill,用一批标准测试用例检验输入输出是否符合预期。

审核通过后,Skill 进入“已发布”状态,并在市场中可见。


三、安全沙箱与权限控制

这是三方市场的生命线。不能让一个第三方 Skill 直接访问 Agent 的内存或任意调用系统 API。

设计思路是最小权限 + 隔离执行:

  • 每个 Skill 必须在元信息里声明它需要的权限,比如 send_emailread_user_profilecall_http_api

  • Agent 框架在执行 Skill 时,把 Skill 放在一个受限的沙箱容器里运行。技术上可以是:

  • Docker / Firecracker 微VM:每个 Skill 跑在独立容器中,网络、文件系统全部隔离。
  • WASM 沙箱:如果 Skill 是轻量计算逻辑,可以编译成 WASM 在 wasmtime 等运行时里跑,更轻量,启动更快。

  • 所有外部 API 调用都经过权限网关,网关检查该 Skill 声明了对应权限才放行,否则拒绝并记录告警。

  • 网络访问默认全禁,必须声明域名白名单。

这样即便开发者上传了恶意 Skill,它能造成的破坏也被严格限制在沙箱内。


四、版本管理与灰度发布

市场必须支持多版本共存和灰度策略,因为企业用户不能接受一键升级后全部崩掉。

  • 开发者可以为一个 Skill 发布多个版本,每次提交都走同样的审核流水线。

  • 版本号严格遵守 SemVer,并在元信息里声明兼容性。

  • 平台提供灰度发布能力:用户(Agent 的使用方)可以在市场界面上设置流量分配,比如 80% 走稳定版,20% 走新 beta 版,随时可一键回滚。

  • 如果一个版本被发现有严重漏洞,平台可以标记为 recalled,并强制推送给所有安装了这个版本的用户,通知他们立即升级或自动降级到上一个安全版本。


五、发现、评价与生态治理

没有发现机制的市场就是死水。

  • 分类与标签体系:多级分类(如 通信/营销/数据分析)和用户自定义标签,配合全文搜索。

  • 质量信号:每个 Skill 有下载量、调用成功率、平均响应时间、用户评分、审核通过历史等指标。这些指标公开展示,也作为搜索排序的权重。

  • 用户反馈闭环:用户可以对 Skill 打分、写评价、报告问题。差评过多或调用失败率突增的 Skill,自动触发复审核或临时下架。

  • 认证与推荐:平台对高质量、通过严格安全测试的 Skill 给予“官方认证”标识,优先推荐,类似于应用商店的编辑精选。