跳转到主要内容
插件开发完成后,最后一步是发布到 npm 并在宿主系统(Xpert AI)中启用。

发布插件

在 monorepo 根目录执行:
发布成功后,你会在 npm 上得到一个可安装的包,例如:

使用插件

在 Xpert AI 宿主系统中,通过环境变量 PLUGINS 来声明启用的插件列表。多个插件用逗号分隔:
当宿主启动时,会自动解析 PLUGINS 环境变量并按顺序加载这些插件。 注意事项
  • 宿主项目通过 npm/yarn/pnpm 安装(npm install @xpert-ai/my-plugin) 环境变量中配置插件包列表。
  • 插件的 meta.name 必须与 npm package name 保持一致。
  • 如果插件未能正确加载,请检查日志中是否有 registeronPluginBootstrap 的输出。
  • 在启动XpertAI系统后在系统设置插件页面中查看已加载的插件列表。

安装 Scope

已安装插件都有明确 scope:
  • Organization 插件 安装到当前组织,可在该组织中管理。
  • Tenant-global 插件 由当前租户内的所有组织共享。
  • System 插件 声明 meta.level = 'system',全平台只安装一份,scope 为 system:global
System 插件是平台单例。它只能由 Default tenant 中的 Super Admin 安装或更新。其他租户可以看到并使用 system 插件提供的能力,但不能在自己的组织或租户视图中安装、卸载或配置系统实例。 运行时插件能力按以下顺序解析:
因此租户或组织插件可以按需覆盖系统默认能力,但不会创建第二份 system 实例。

初始化插件资源

插件被宿主加载后,不只是“启用”这么简单,还可以把插件包内声明的资源初始化到对应运行时目标中。 在系统设置的插件页里,已安装插件卡片上会提供资源初始化入口。点击后会打开资源初始化弹窗,宿主会实时读取当前插件包中的资源定义,而不是依赖一份静态缓存列表。 资源目标分两类:
  • Workspace:初始化到工作空间,可用于 SkillsMCPApps
  • Xpert:初始化到已有的 Xpert,可用于 Hooks
初始化弹窗会按资源类型分组展示,并显示当前状态:
  • 已初始化的资源会显示为已安装,不能重复选择
  • 插件包内容更新后,若资源定义发生变化,系统会提示可更新状态
  • assets/ 只作为包元数据和展示内容,不作为可初始化资源
完成初始化后,宿主会把资源绑定到真实运行时对象,并在当前工作空间或 Xpert 中更新对应的中间件、工具集或连接配置。